]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 5.3 v5.3
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 13 Oct 2002 03:35:53 +0000 (23:35 -0400)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 13 Oct 2002 03:35:53 +0000 (23:35 -0400)
851 files changed:
ANNOUNCE
Ada95/Makefile.in
Ada95/README
Ada95/gen/Makefile.in
Ada95/gen/gen.c
Ada95/gen/terminal_interface-curses-aux.ads.m4
Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
Ada95/gen/terminal_interface-curses-forms.ads.m4
Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
Ada95/gen/terminal_interface-curses-menus.ads.m4
Ada95/gen/terminal_interface-curses-mouse.ads.m4
Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
Ada95/gen/terminal_interface-curses-panels.ads.m4
Ada95/gen/terminal_interface-curses-trace.ads.m4 [new file with mode: 0644]
Ada95/gen/terminal_interface-curses.ads.m4
Ada95/samples/Makefile.in
Ada95/samples/ncurses.adb [new file with mode: 0644]
Ada95/samples/ncurses2-acs_and_scroll.adb [new file with mode: 0644]
Ada95/samples/ncurses2-acs_and_scroll.ads [new file with mode: 0644]
Ada95/samples/ncurses2-acs_display.adb [new file with mode: 0644]
Ada95/samples/ncurses2-acs_display.ads [new file with mode: 0644]
Ada95/samples/ncurses2-attr_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-attr_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-color_edit.adb [new file with mode: 0644]
Ada95/samples/ncurses2-color_edit.ads [new file with mode: 0644]
Ada95/samples/ncurses2-color_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-color_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-demo_forms.adb [new file with mode: 0644]
Ada95/samples/ncurses2-demo_forms.ads [new file with mode: 0644]
Ada95/samples/ncurses2-demo_pad.adb [new file with mode: 0644]
Ada95/samples/ncurses2-demo_pad.ads [new file with mode: 0644]
Ada95/samples/ncurses2-demo_panels.adb [new file with mode: 0644]
Ada95/samples/ncurses2-demo_panels.ads [new file with mode: 0644]
Ada95/samples/ncurses2-flushinp_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-flushinp_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-genericputs.adb [new file with mode: 0644]
Ada95/samples/ncurses2-genericputs.ads [new file with mode: 0644]
Ada95/samples/ncurses2-getch.ads [new file with mode: 0644]
Ada95/samples/ncurses2-getch_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-getch_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-getopt.adb [new file with mode: 0644]
Ada95/samples/ncurses2-getopt.ads [new file with mode: 0644]
Ada95/samples/ncurses2-m.adb [new file with mode: 0644]
Ada95/samples/ncurses2-m.ads [new file with mode: 0644]
Ada95/samples/ncurses2-menu_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-menu_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-overlap_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-overlap_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-slk_test.adb [new file with mode: 0644]
Ada95/samples/ncurses2-slk_test.ads [new file with mode: 0644]
Ada95/samples/ncurses2-test_sgr_attributes.adb [new file with mode: 0644]
Ada95/samples/ncurses2-test_sgr_attributes.ads [new file with mode: 0644]
Ada95/samples/ncurses2-trace_set.adb [new file with mode: 0644]
Ada95/samples/ncurses2-trace_set.ads [new file with mode: 0644]
Ada95/samples/ncurses2-util.adb [new file with mode: 0644]
Ada95/samples/ncurses2-util.ads [new file with mode: 0644]
Ada95/samples/ncurses2.ads [new file with mode: 0644]
Ada95/samples/rain.adb
Ada95/samples/rain.ads
Ada95/samples/sample-curses_demo-attributes.adb
Ada95/samples/sample-curses_demo-attributes.ads
Ada95/samples/sample-curses_demo-mouse.adb
Ada95/samples/sample-curses_demo-mouse.ads
Ada95/samples/sample-curses_demo.adb
Ada95/samples/sample-curses_demo.ads
Ada95/samples/sample-explanation.adb
Ada95/samples/sample-explanation.ads
Ada95/samples/sample-form_demo-aux.adb
Ada95/samples/sample-form_demo-aux.ads
Ada95/samples/sample-form_demo-handler.adb
Ada95/samples/sample-form_demo-handler.ads
Ada95/samples/sample-form_demo.adb
Ada95/samples/sample-form_demo.ads
Ada95/samples/sample-function_key_setting.adb
Ada95/samples/sample-function_key_setting.ads
Ada95/samples/sample-header_handler.adb
Ada95/samples/sample-header_handler.ads
Ada95/samples/sample-helpers.adb
Ada95/samples/sample-helpers.ads
Ada95/samples/sample-keyboard_handler.adb
Ada95/samples/sample-keyboard_handler.ads
Ada95/samples/sample-manifest.ads
Ada95/samples/sample-menu_demo-aux.adb
Ada95/samples/sample-menu_demo-aux.ads
Ada95/samples/sample-menu_demo-handler.adb
Ada95/samples/sample-menu_demo-handler.ads
Ada95/samples/sample-menu_demo.adb
Ada95/samples/sample-menu_demo.ads
Ada95/samples/sample-my_field_type.adb
Ada95/samples/sample-my_field_type.ads
Ada95/samples/sample-text_io_demo.adb
Ada95/samples/sample-text_io_demo.ads
Ada95/samples/sample.adb
Ada95/samples/sample.ads
Ada95/samples/status.adb
Ada95/samples/status.ads
Ada95/samples/tour.adb
Ada95/samples/tour.ads
Ada95/src/Makefile.in
Ada95/src/terminal_interface-curses-aux.adb
Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
Ada95/src/terminal_interface-curses-forms-field_types-user.adb
Ada95/src/terminal_interface-curses-forms-field_types-user.ads
Ada95/src/terminal_interface-curses-forms-field_types.adb
Ada95/src/terminal_interface-curses-forms-field_user_data.adb
Ada95/src/terminal_interface-curses-forms-form_user_data.adb
Ada95/src/terminal_interface-curses-forms.adb
Ada95/src/terminal_interface-curses-menus-item_user_data.adb
Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
Ada95/src/terminal_interface-curses-menus.adb
Ada95/src/terminal_interface-curses-mouse.adb
Ada95/src/terminal_interface-curses-panels-user_data.adb
Ada95/src/terminal_interface-curses-panels.adb
Ada95/src/terminal_interface-curses-putwin.adb [new file with mode: 0644]
Ada95/src/terminal_interface-curses-putwin.ads [new file with mode: 0644]
Ada95/src/terminal_interface-curses-termcap.adb [new file with mode: 0644]
Ada95/src/terminal_interface-curses-termcap.ads [new file with mode: 0644]
Ada95/src/terminal_interface-curses-terminfo.adb [new file with mode: 0644]
Ada95/src/terminal_interface-curses-terminfo.ads [new file with mode: 0644]
Ada95/src/terminal_interface-curses-text_io-aux.adb
Ada95/src/terminal_interface-curses-text_io-aux.ads
Ada95/src/terminal_interface-curses-text_io-complex_io.adb
Ada95/src/terminal_interface-curses-text_io-complex_io.ads
Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
Ada95/src/terminal_interface-curses-text_io-float_io.adb
Ada95/src/terminal_interface-curses-text_io-float_io.ads
Ada95/src/terminal_interface-curses-text_io-integer_io.adb
Ada95/src/terminal_interface-curses-text_io-integer_io.ads
Ada95/src/terminal_interface-curses-text_io-modular_io.adb
Ada95/src/terminal_interface-curses-text_io-modular_io.ads
Ada95/src/terminal_interface-curses-text_io.adb
Ada95/src/terminal_interface-curses-text_io.ads
Ada95/src/terminal_interface-curses-trace.adb_p [new file with mode: 0644]
Ada95/src/terminal_interface-curses.adb
Ada95/src/terminal_interface.ads
INSTALL
MANIFEST
Makefile.glibc
Makefile.in
NEWS
README.emx
TO-DO
aclocal.m4
announce.html.in
c++/Makefile.in
c++/README-first
c++/cursesapp.cc
c++/cursesapp.h
c++/cursesf.cc
c++/cursesf.h
c++/cursesm.cc
c++/cursesm.h
c++/cursesmain.cc
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/html/Ada95.html
doc/html/ada/files/T.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/main.htm
doc/html/ada/table.html
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 [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-putwin__ads.htm [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-termcap__adb.htm [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-termcap__ads.htm [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-terminfo__adb.htm [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-terminfo__ads.htm [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/ada/terminal_interface-curses-trace__ads.htm [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/man/curs_add_wchstr.3x.html [new file with mode: 0644]
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 [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/man/curs_border.3x.html
doc/html/man/curs_border_set.3x.html [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/man/curs_get_wstr.3x.html [new file with mode: 0644]
doc/html/man/curs_getcchar.3x.html [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/man/curs_in_wchstr.3x.html [new file with mode: 0644]
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 [new file with mode: 0644]
doc/html/man/curs_ins_wstr.3x.html [new file with mode: 0644]
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 [new file with mode: 0644]
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/infocmp.1m.html
doc/html/man/infotocap.1m.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/READ.ME
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 [new file with mode: 0644]
include/Caps
include/Caps.aix4 [new file with mode: 0644]
include/Caps.hpux11 [new file with mode: 0644]
include/Caps.keys [new file with mode: 0644]
include/Caps.osf1r5 [new file with mode: 0644]
include/Caps.uwin [new file with mode: 0644]
include/MKkey_defs.sh [new file with mode: 0755]
include/MKterm.h.awk.in
include/Makefile.in
include/curses.h.in
include/curses.tail [new file with mode: 0644]
include/curses.wide [new file with mode: 0644]
include/edit_cfg.sh
include/headers
include/nc_alloc.h
include/nc_panel.h
include/ncurses_cfg.hin
include/ncurses_defs
include/ncurses_dll.h [new file with mode: 0644]
include/term_entry.h
include/termcap.h.in
include/tic.h
include/unctrl.h.in
man/MKterminfo.sh
man/Makefile.in
man/curs_add_wch.3x [new file with mode: 0644]
man/curs_add_wchstr.3x [new file with mode: 0644]
man/curs_addch.3x
man/curs_addstr.3x
man/curs_addwstr.3x [new file with mode: 0644]
man/curs_attr.3x
man/curs_bkgd.3x
man/curs_bkgrnd.3x [new file with mode: 0644]
man/curs_border.3x
man/curs_border_set.3x [new file with mode: 0644]
man/curs_color.3x
man/curs_deleteln.3x
man/curs_extend.3x
man/curs_get_wch.3x [new file with mode: 0644]
man/curs_get_wstr.3x [new file with mode: 0644]
man/curs_getcchar.3x [new file with mode: 0644]
man/curs_getch.3x
man/curs_getstr.3x
man/curs_getyx.3x
man/curs_in_wch.3x [new file with mode: 0644]
man/curs_in_wchstr.3x [new file with mode: 0644]
man/curs_initscr.3x
man/curs_inopts.3x
man/curs_ins_wch.3x [new file with mode: 0644]
man/curs_ins_wstr.3x [new file with mode: 0644]
man/curs_insstr.3x
man/curs_instr.3x
man/curs_inwstr.3x [new file with mode: 0644]
man/curs_kernel.3x
man/curs_mouse.3x
man/curs_move.3x
man/curs_outopts.3x
man/curs_overlay.3x
man/curs_print.3x
man/curs_printw.3x
man/curs_refresh.3x
man/curs_scanw.3x
man/curs_scroll.3x
man/curs_slk.3x
man/curs_termattrs.3x
man/curs_termcap.3x
man/curs_terminfo.3x
man/curs_trace.3x
man/curs_util.3x
man/default_colors.3x
man/define_key.3x
man/form.3x
man/form_driver.3x
man/form_field_attributes.3x
man/form_field_buffer.3x
man/form_field_info.3x
man/form_field_just.3x
man/form_field_new.3x
man/form_field_validation.3x
man/form_fieldtype.3x
man/form_new_page.3x
man/infocmp.1m
man/keybound.3x
man/keyok.3x
man/man_db.renames
man/manlinks.sed
man/menu.3x
man/menu_attributes.3x
man/menu_driver.3x
man/menu_format.3x
man/menu_pattern.3x
man/menu_spacing.3x
man/mitem_value.3x
man/ncurses.3x
man/resizeterm.3x
man/term.5
man/term.7
man/terminfo.head
man/terminfo.tail
man/tic.1m
man/tput.1
man/wresize.3x
menu/Makefile.in
menu/READ.ME
menu/eti.h
menu/llib-lmenu
menu/llib-lmenuw [new file with mode: 0644]
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_userptr.c
menu/m_win.c
menu/menu.h
menu/menu.priv.h
menu/mf_common.h
misc/Makefile.in
misc/makellib
misc/run_tic.in
misc/tdlint
misc/terminfo.src
mk-0th.awk
mk-1st.awk
mkinstalldirs
ncurses/Makefile.in
ncurses/README
ncurses/README.IZ [new file with mode: 0644]
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/keyok.c
ncurses/base/lib_addch.c
ncurses/base/lib_addstr.c
ncurses/base/lib_beep.c
ncurses/base/lib_bkgd.c
ncurses/base/lib_box.c
ncurses/base/lib_chgat.c
ncurses/base/lib_clear.c
ncurses/base/lib_clearok.c
ncurses/base/lib_clrbot.c
ncurses/base/lib_clreol.c
ncurses/base/lib_color.c
ncurses/base/lib_colorset.c
ncurses/base/lib_delch.c
ncurses/base/lib_delwin.c
ncurses/base/lib_dft_fgbg.c
ncurses/base/lib_echo.c
ncurses/base/lib_endwin.c
ncurses/base/lib_erase.c
ncurses/base/lib_flash.c
ncurses/base/lib_freeall.c
ncurses/base/lib_getch.c
ncurses/base/lib_getstr.c
ncurses/base/lib_hline.c
ncurses/base/lib_immedok.c
ncurses/base/lib_inchstr.c
ncurses/base/lib_initscr.c
ncurses/base/lib_insch.c
ncurses/base/lib_insdel.c
ncurses/base/lib_insstr.c
ncurses/base/lib_instr.c
ncurses/base/lib_isendwin.c
ncurses/base/lib_leaveok.c
ncurses/base/lib_mouse.c
ncurses/base/lib_move.c
ncurses/base/lib_mvwin.c
ncurses/base/lib_newterm.c
ncurses/base/lib_newwin.c
ncurses/base/lib_nl.c
ncurses/base/lib_overlay.c
ncurses/base/lib_pad.c
ncurses/base/lib_printw.c
ncurses/base/lib_redrawln.c
ncurses/base/lib_refresh.c
ncurses/base/lib_restart.c
ncurses/base/lib_scanw.c
ncurses/base/lib_screen.c
ncurses/base/lib_scroll.c
ncurses/base/lib_scrollok.c
ncurses/base/lib_scrreg.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_slkclear.c
ncurses/base/lib_slkcolor.c
ncurses/base/lib_slkinit.c
ncurses/base/lib_slklab.c
ncurses/base/lib_slkrefr.c
ncurses/base/lib_slkset.c
ncurses/base/lib_slktouch.c
ncurses/base/lib_touch.c
ncurses/base/lib_ungetch.c
ncurses/base/lib_vline.c
ncurses/base/lib_wattroff.c
ncurses/base/lib_wattron.c
ncurses/base/lib_winch.c
ncurses/base/lib_window.c
ncurses/base/memmove.c
ncurses/base/nc_panel.c
ncurses/base/resizeterm.c
ncurses/base/safe_sprintf.c
ncurses/base/sigaction.c
ncurses/base/tries.c
ncurses/base/version.c
ncurses/base/vsscanf.c
ncurses/base/wresize.c
ncurses/curses.priv.h
ncurses/fifo_defs.h
ncurses/llib-lncurses
ncurses/llib-lncursesw [new file with mode: 0644]
ncurses/modules
ncurses/tinfo/MKcaptab.awk
ncurses/tinfo/MKfallback.sh
ncurses/tinfo/MKkeys_list.sh [new file with mode: 0755]
ncurses/tinfo/MKnames.awk
ncurses/tinfo/access.c
ncurses/tinfo/add_tries.c
ncurses/tinfo/alloc_entry.c
ncurses/tinfo/alloc_ttype.c
ncurses/tinfo/captoinfo.c
ncurses/tinfo/comp_error.c
ncurses/tinfo/comp_expand.c
ncurses/tinfo/comp_hash.c
ncurses/tinfo/comp_parse.c
ncurses/tinfo/comp_scan.c
ncurses/tinfo/doalloc.c
ncurses/tinfo/free_ttype.c
ncurses/tinfo/getenv_num.c
ncurses/tinfo/home_terminfo.c
ncurses/tinfo/init_keytry.c
ncurses/tinfo/keys.list [deleted file]
ncurses/tinfo/lib_acs.c
ncurses/tinfo/lib_baudrate.c
ncurses/tinfo/lib_cur_term.c
ncurses/tinfo/lib_data.c
ncurses/tinfo/lib_has_cap.c
ncurses/tinfo/lib_kernel.c
ncurses/tinfo/lib_longname.c
ncurses/tinfo/lib_napms.c
ncurses/tinfo/lib_options.c
ncurses/tinfo/lib_print.c
ncurses/tinfo/lib_raw.c
ncurses/tinfo/lib_setup.c
ncurses/tinfo/lib_termcap.c
ncurses/tinfo/lib_termname.c
ncurses/tinfo/lib_tgoto.c
ncurses/tinfo/lib_ti.c
ncurses/tinfo/lib_tparm.c
ncurses/tinfo/lib_tputs.c
ncurses/tinfo/lib_ttyflags.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/setbuf.c
ncurses/tinfo/strings.c
ncurses/tinfo/write_entry.c
ncurses/trace/lib_trace.c
ncurses/trace/lib_traceatr.c
ncurses/trace/lib_tracebits.c
ncurses/trace/lib_tracechr.c
ncurses/trace/lib_tracedmp.c
ncurses/trace/lib_tracemse.c
ncurses/trace/trace_buf.c
ncurses/trace/trace_tries.c
ncurses/trace/trace_xnames.c
ncurses/trace/varargs.c [new file with mode: 0644]
ncurses/trace/visbuf.c [new file with mode: 0644]
ncurses/tty/MKexpanded.sh
ncurses/tty/hardscroll.c
ncurses/tty/hashmap.c
ncurses/tty/lib_mvcur.c
ncurses/tty/lib_tstp.c
ncurses/tty/lib_twait.c
ncurses/tty/lib_vidattr.c
ncurses/tty/tty_display.h
ncurses/tty/tty_input.h
ncurses/tty/tty_update.c
ncurses/widechar/lib_box_set.c [new file with mode: 0644]
ncurses/widechar/lib_cchar.c [new file with mode: 0644]
ncurses/widechar/lib_erasewchar.c [new file with mode: 0644]
ncurses/widechar/lib_get_wch.c [new file with mode: 0644]
ncurses/widechar/lib_get_wstr.c [new file with mode: 0644]
ncurses/widechar/lib_hline_set.c [new file with mode: 0644]
ncurses/widechar/lib_in_wch.c [new file with mode: 0644]
ncurses/widechar/lib_in_wchnstr.c [new file with mode: 0644]
ncurses/widechar/lib_ins_nwstr.c [new file with mode: 0644]
ncurses/widechar/lib_ins_wch.c [new file with mode: 0644]
ncurses/widechar/lib_inwstr.c [new file with mode: 0644]
ncurses/widechar/lib_unget_wch.c [new file with mode: 0644]
ncurses/widechar/lib_vid_attr.c [new file with mode: 0644]
ncurses/widechar/lib_vline_set.c [new file with mode: 0644]
ncurses/widechar/lib_wacs.c [new file with mode: 0644]
ncurses/widechar/lib_wunctrl.c [new file with mode: 0644]
panel/Makefile.in
panel/llib-lpanel
panel/llib-lpanelw [new file with mode: 0644]
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.h
panel/panel.priv.h
progs/MKtermsort.sh
progs/Makefile.in
progs/dump_entry.c
progs/dump_entry.h
progs/infocmp.c
progs/progs.priv.h
progs/tic.c
progs/toe.c
progs/tput.c
progs/tset.c
tack/Makefile.in
tack/ansi.c
tack/charset.c
tack/edit.c
tack/init.c
tack/output.c
tack/sync.c
tack/sysdep.c
tack/tack.c
tack/tack.h
test/Makefile.in
test/blue.c
test/bs.c
test/cardfile.c
test/configure
test/configure.in
test/ditto.c
test/dots.c
test/filter.c
test/firework.c
test/firstlast.c
test/gdc.c
test/hanoi.c
test/hashtest.c
test/keynames.c
test/knight.c
test/lrtest.c
test/ncurses.c
test/newdemo.c
test/railroad.c
test/rain.c
test/tclock.c
test/test.priv.h
test/testaddch.c
test/testcurs.c
test/testscanw.c
test/tracemunch
test/view.c
test/worm.c
test/xmas.c

index 7b5f4efa69ae44ea29f14dc42e07bdc41dd5ca87..e39a0bee28d8656945825566da2f96f66f8a3c81 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
 
 
-                            Announcing ncurses 5.2
+                            Announcing ncurses 5.3
 
 
-   The ncurses (new curses) library is a free software emulation of
-   curses in System V Release 4.0, and more. It uses terminfo format,
-   supports pads and color and multiple highlights and forms characters
-   and function-key mapping, and has all the other SYSV-curses
+   The  ncurses  (new  curses)  library  is  a free software emulation of
+   curses  in  System  V  Release 4.0, and more. It uses terminfo format,
+   supports  pads  and color and multiple highlights and forms characters
+   and   function-key   mapping,   and  has  all  the  other  SYSV-curses
    enhancements over BSD curses.
 
    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
+   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.
 
    ncurses.
 
-   The ncurses code was developed under GNU/Linux. It should port easily
-   to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2
-   Warp!
+   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
+   and  NetBSD  as  an  external  package.  It  should port easily to any
+   ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
 
    The distribution includes the library and support utilities, including
 
    The distribution includes the library and support utilities, including
-   a terminfo compiler tic(1), a decompiler infocmp(1), clear(1),
-   tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full
+   a   terminfo  compiler  tic(1),  a  decompiler  infocmp(1),  clear(1),
+   tput(1),  tset(1),  and  a  termcap conversion tool captoinfo(1). Full
    manual pages are provided for the library and tools.
 
    manual pages are provided for the library and tools.
 
-   The ncurses distribution is available via anonymous FTP at the GNU
+   The  ncurses  distribution  is  available via anonymous FTP at the GNU
    distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
    distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
-   It is also available at [2]ftp://dickey.his.com/ncurses.
+   It is also available at [2]ftp://invisible-island.net/ncurses.
 
                                  Release Notes
 
 
                                  Release Notes
 
-   This release is designed to be upward compatible from ncurses 5.0 and
-   5.1; very few applications will require recompilation, depending on
-   the platform. These are the highlights from the change-log since
-   ncurses 5.1 release.
+   This  release is designed to be upward compatible from ncurses 5.0 and
+   5.2;  very  few  applications will require recompilation, depending on
+   the  platform.  These  are  the  highlights  from the change-log since
+   ncurses 5.2 release.
 
    Interface changes:
 
    Interface changes:
-     * change type of ospeed variable back to short to match its use in
-       legacy applications. It was altered after ncurses 4.2 to speed_t
-       to repair a type mismatch which was introduced after 1.9.4 in
-       1995. The principal users of termcap continued to use short, which
-       is not the same size.
-       NOTE: A few applications will have to be recompiled (about 1% of
-       the programs in a typical Linux distribution, 10% of the programs
-       that use ncurses). These are easy to identify with nm or strings.
-     * remove a private function _nc_can_clear_with(), which was built
-       with the configure --enable-expanded option but not used.
-     * add several private functions (prefixed with "_nc_") for tracing
-       chtype values in the debug library, and for better access and
-       buffer limit checking.
+     * change  type  for  bool  used  in  headers  to NCURSES_BOOL, which
+       usually is the same as the compiler's definition for bool.
+     * add  all  but  two  functions  for  X/Open  curses  wide-character
+       support.  These  are  only  available if the library is configured
+       using the --enable-widec option. Missing functions are
+          + pecho_wchar()
+          + slk_wset()
+     * add  environment  variable  $NCURSES_ASSUMED_COLORS  to modify the
+       assume_default_colors() extension.
 
    New features and improvements:
 
    New features and improvements:
-     * rewrote tgoto() to make it better support existing termcap
-       applications which use hardcoded strings rather than obtain all of
-       their information from the termcap file. If the string does not
-       appear to be a terminfo string (i.e., does not refer to a "%p"
-       parameter, or terminfo-style padding), and termcap support is
-       configured, tgoto() will interpret it as termcap. Otherwise, as
-       before, it will use tparm().
-     * to ensure that the tgoto() changes work properly, added checks to
-       tic which report capabilities that do not reference the expected
-       number of parameters.
-     * new configure script options:
-          + option --disable-root-environ adds runtime checks which tell
-            ncurses to disregard $TERMINFO and similar environment
-            variables if the current user is root, or running
-            setuid/setgid.
-          + option --disable-assumed-color allows you to use the pre-5.1
-            convention of default colors used for color-pair 0 to be
-            configured (see assume_default_colors()).
-          + implement configure script options that transform installed
-            program names, e.g., --program-prefix, including the manpage
-            names and cross references.
-          + option --with-database allows you to specify a different
-            terminfo source-file to install. On OS/2 EMX, the default is
-            misc/emx.src, otherwise misc/terminfo.src
-          + option --with-default-terminfo-dir allows you to specify the
-            default terminfo database directory.
-          + option --with-libtool allows you to build with libtool.
-            NOTE: libtool uses a different notation for numbering shared
-            library versions from the existing ncurses configuration.
-          + option --with-manpage-tbl causes the manpages to be
-            preprocessed by tbl(1) prior to installation,
-          + option --without-curses-h causes the installation process to
-            install curses.h as ncurses.h and make appropriate changes to
-            headers and manpages.
-     * modified configure script options:
-          + change symbol used by the --install-prefix configure option
-            from INSTALL_PREFIX to DESTDIR (the latter has become common
-            usage although the name is misleading).
-          + modify ld -rpath options (e.g., Linux, and Solaris) to use an
-            absolute pathname for the build tree's lib directory,
-            avoiding confusion with directories relative to the current
-            one with the installed programs.
-          + modified misc/run_tic.in to use tic -o, to eliminate
-            dependency on $TERMINFO variable for installs.
-     * terminfo database:
-          + updated xterm terminfo entries to match XFree86 xterm patch
-            #146.
-          + added amiga-vnc, Matrix Orbital, and QNX qansi to
-            misc/terminfo.src.
-          + added os2 entry to misc/emx.src.
-          + add S0 and E0 extensions to screen's terminfo entry since
-            otherwise the FreeBSD port makes it pass termcap equivalents
-            to tgoto, which would be misinterpreted by older versions of
-            ncurses.
-     * improvements to program usability:
-          + modify programs to use curses_version() string to report the
-            version of ncurses with which they are compiled rather than
-            the NCURSES_VERSION string. The function returns the patch
-            level in addition to the major and minor version numbers.
-          + modify tput program so it can be renamed or invoked via a
-            link as 'reset' or 'init', producing the same effect as
-            tput reset or tput init.
-          + add error checking to infocmp's -v and -m options to ensure
-            that the option value is indeed a number.
-     * improved performance:
-          + replace a lookup table in lib_vidattr.c used to decode
-            no_color_video with a logic expression which is faster.
+     * Improved support for termcap applications:
+          + add  logic to dump_entry.c to remove function-key definitions
+            that  do  not  fit  into  the  1023-byte  limit for generated
+            termcaps. This makes hds200 fit.
+          + modify  tgetent()  to check if exit_attribute_mode resets the
+            alternate  character  set,  and  if so, attempt to adjust the
+            copy  of  the  termcap  "me"  string  which it will return to
+            eliminate that part. In particular, 'screen' would lose track
+            of line-drawing characters.
+          + add  check/fix  to  comp_parse.c  to  suppress  warning about
+            missing acsc string. This happens in configurations where raw
+            termcap  information  is processed; tic already does this and
+            other checks.
+          + add   tic  -A  option  to  suppress  capabilities  which  are
+            commented out when translating to termcap.
+          + modify  logic  in  lib_baudrate.c  for ospeed, for FreeBSD to
+            make  it  work  properly  for  termcap applications (patch by
+            Andrey A Chernov).
+     * add a call to _nc_keypad() in keypad() to accommodate applications
+       such  as nvi, which use curses for output but not for input (fixes
+       Debian #131263, cf: 20011215).
+     * correct  logic  for  COLORFGBG  environment  variable:  if rxvt is
+       compiled  with  xpm support, the variable has three fields, making
+       it   slightly  incompatible  with  itself.  In  either  case,  the
+       background color is the last field.
 
    Major bug fixes:
 
    Major bug fixes:
-     * correct manlinks.sed script introduced in ncurses 5.1 to avoid
-       using ERE "\+", which is not understood by standard versions of
-       sed. This happens to work with GNU sed, but is not portable, and
-       was the initial motivation for this release.
-     * remove "hpux10.*" case from CF_SHARED_OPTS configure script macro.
-       This differed from the "hpux*" case by using reversed symbolic
-       links, which made the 5.1 version not match the configuration of
-       5.0 shared libraries.
-     * guard against corrupt terminfo data:
-          + modify tparm() to disallow arithmetic on strings, analyze the
-            varargs list to read strings as strings and numbers as
-            numbers.
-          + modify tparm()'s internal function spop() to treat a null
-            pointer as an empty string.
-          + modify parse_format() in lib_tparm.c to ignore precision if
-            it is longer than 10000.
-          + rewrote limit checks in lib_mvcur.c using new functions
-            _nc_safe_strcat(), etc. Made other related changes to check
-            lengths used for strcat() and strcpy().
-     * corrections to screen optimization:
-          + added special case in lib_vidattr.c to reset underline and
-            standout for devices that have no sgr0 defined.
-          + change handling of non_dest_scroll_region in tty_update.c to
-            clear text after it is shifted in rather than before shifting
-            out. Also correct row computation.
-          + modify rs2 capability in xterm-r6 and similar entries where
-            cursor save/restore bracketed the sequence for resetting
-            video attributes. The cursor restore would undo that.
-     * UTF-8 support:
-          + when checking LC_ALL, LC_CTYPE, and LANG environment
-            variables for UTF-8 locale, ignore those which are set to an
-            empty value, as per SUSV2.
-          + encode 0xFFFD in UTF-8 with 3 bytes, not 2.
-          + modify _nc_utf8_outch() to avoid sign-extension when checking
-            for out-of-range value.
-     * other library fixes:
-          + added checks for an empty $HOME environment variable, to
-            avoid retrieving terminfo descriptions from ./.terminfo .
-          + change functions _nc_parse_entry() and postprocess_termcap()
-            to avoid using strtok(), because it is non-reentrant.
-          + initialize fds[] array to 0's in _nc_timed_wait(); apparently
-            poll() only sets the revents members of that array when there
-            is activity corresponding to the related file.
-          + add a check for null pointer in Make_Enum_Type().
-          + fix a heap problem with the c++ binding.
-          + correct missing includes for <string.h> in several places,
-            including the C++ binding. This is not noted by gcc unless we
-            use the -fno-builtin option.
-     * several fixes for tic:
-          + add a check for empty buffers returned by fgets() in
-            comp_scan.c next_char() function, in case tic is run on a
-            non-text file (fixes a core dump).
-          + modify tic to verify that its inputs are really files, in
-            case someone tries to read a directory (or /dev/zero).
-          + correct an uninitialized parameter to open_tempfile() in
-            tic.c which made "tic -I" give an ambiguous error message
-            about tmpnam.
-          + correct logic in adjust_cancels(), which did not check both
-            alternatives when reclassifying an extended name between
-            boolean, number and string, causing an infinite loop in tic.
-     * using new checks in tic for parameter counts in capability
-       strings, found/fixed several errors both in the terminfo database
-       and in the include/Caps file.
-          + modified several terminfo capability strings, including the
-            definitions for setaf, setab, in include/Caps to indicate
-            that the entries are parameterized. This information is used
-            to tell which strings are translated when converting to
-            termcap. This fixes a problem where the generated termcap
-            would contain a spurious "%p1" for the terminfo "%p1%d".
-          + correct parameter counts in include/Caps for dclk as well as
-            some printer-specific capabilities: csnm, defc, scs, scsd,
-            smgtp, smglp.
-     * various fixes for install scripts used to support configure
-       --srcdir and --with-install-prefix.
-     * correct several mismatches between manpage filename and ".TH"
-       directives, renaming dft_fgbg.3x to default_colors.3x and
-       menu_attribs.3x to menu_attributes.3x.
+     * rewrote     limit-checks     in     wscrl()     and     associated
+       _nc_scroll_window(), to ensure that if the parameter of wscrl() is
+       larger  than  the size of the scrolling region, then the scrolling
+       region will be cleared.
+     * modify  tset  to  restore  original  I/O  modes  if  an  error  is
+       encountered.  Also  modify  to  use  buffered  stderr consistently
+       rather than mixing with write().
+     * move  calls  to  def_shell_mode()  and def_prog_mode() before loop
+       with  callbacks  in  lib_set_term.c,  since the c++ demo otherwise
+       initialized the tty modes before saving them.
+     * modified  wresize()  to  ensure  that  a  failed  realloc will not
+       corrupt  the  window  structure, and to make subwindows fit within
+       the resized window.
+     * altered  resizeterm()  to avoid having it fail when a child window
+       cannot be resized because it would be larger than its parent.
+     * correct/improve  logic  to  produce  an  exit status for errors in
+       tput,  which  did not exit with an error when told to put a string
+       not in the current terminfo entry.
+     * modify  behavior  of can_clear_with() so that if an application is
+       running  in  a  non-bce  terminals with default colors enabled, it
+       returns  true,  allowing  the  user  to  select/paste text without
+       picking up extraneous trailing blanks.
+     * add a check in relative_move() to guard against buffer overflow in
+       the overwrite logic.
+     * add some limit/pointer checks to -S option of tputs.
+     * modify  mvcur()  to  avoid emitting newline characters when nonl()
+       mode  is  set.  Normally  this  is  not a problem since the actual
+       terminal  mode is set to suppress nl/crlf translations, however it
+       is  useful  to allow the caller to manipulate the terminal mode to
+       avoid  staircasing  effects  after spawning a process which writes
+       messages (for lynx 2.8.4).
 
    Portability:
      * configure script:
 
    Portability:
      * configure script:
-          + newer config.guess, config.sub, including changes to support
-            OS/2 EMX. The configure script for OS/2 EMX still relies on a
-            patch since there is no (working) support for that platform
-            in the main autoconf distribution.
-          + make configure script checks on variables $GCC and $GXX
-            consistently compare against 'yes' rather than test if they
-            are nonnull, since either may be set to the corresponding
-            name of the C or C++ compiler.
-          + change configure script to use AC_CANONICAL_SYSTEM rather
-            than AC_CANONICAL_HOST, which means that configure --target
-            will set a default program-prefix.
-          + modify the check for big-core to force a couple of memory
-            accesses, which may work as needed for older/less-capable
-            machines (if not, there's still the explicit configure
-            option).
-          + modify configure test for tcgetattr() to allow for old
-            implementations, e.g., on BeOS, which only defined it as a
-            macro.
-          + add configure check for filesystems (such as OS/2 EMX) which
-            do not distinguish between upper/lowercase filenames, use
-            this to fix tags rules in makefiles.
-          + add MKncurses_def.sh to generate fallback definitions for
-            ncurses_cfg.h, to quiet gcc -Wundef warnings, modified
-            ifdef's in code to consistently use "#if" rather than
-            "#ifdef".
-          + change most remaining unquoted parameters of test in
-            configure script to use quotes, for instance fixing a problem
-            in the --disable-database option.
-          + modify scripts so that "make install.data" works on OS/2 EMX.
-          + modify scripts and makefiles so the Ada95 directory builds on
-            OS/2 EMX.
+          + modify check in --disable-overwrite option so that it is used
+            by  default unless the --prefix/$prefix value is not /usr, in
+            attempt  to work around packagers who do not read the INSTALL
+            notes.
+          + correct  a  typo  in configure --enable-colorfgbg option, and
+            move it to the experimental section (cf: 20011208).
+          + modify  configure script to allow building with termcap only,
+            or with fallbacks only. In this case, we do not build tic and
+            toe.
+          + modify  run_tic.sh  to check if the build is a cross-compile.
+            In  that  case,  do  not  use  the build's tic to install the
+            terminfo database.
+          + modify  c++/Makefile.in  to accommodate archive programs that
+            are  different for C++ than for C, and add cases for vendor's
+            C++ compilers on Solaris and IRIX.
+          + add   several   configure   script   options   to   aid  with
+            cross-compiling:     --with-build-cc,    --with-build-cflags,
+            --with-build-ldflags, and --with-build-libs.
+          + add  experimental  --with-caps=XXX  option  to  customize  to
+            similar terminfo database formats such as AIX 4.x
+          + add  configure  option  --with-ospeed  to assist packagers in
+            transition to 5.3 change to ospeed type.
      * library:
      * library:
-          + replaced case-statement in _nc_tracebits() for CSIZE with a
-            table to simplify working around implementations that define
-            random combinations of the related macros to zero.
-          + improved OS/2 mouse support by retrying as a 2-button mouse
-            if code fails to set up a 3-button mouse.
-          + added private entrypoint _nc_basename(), used to consolidate
-            related code in progs, as well as accommodating OS/2 EMX
-            pathnames.
-          + alter definition of NCURSES_CONST to make it non-empty.
-          + redefine 'TEXT' in menu.h for AMIGA, since it is reported to
-            have an (unspecified) symbol conflict.
+          + implement a simple vsscanf() fallback function which uses the
+            %n conversion to help parse the input data.
+          + various fixes to build/work with different implementations of
+            vsscanf().
+          + add/use  macro  to  suppress  sign-extension  of char type on
+            platforms  where  this  is  a  problem in ctype macros, e.g.,
+            Solaris.
+          + finish changes needed to build dll's on cygwin.
+          + add  #undef's  before  possible redefinition of ERR and OK in
+            curses.h
      * programs:
      * programs:
-          + modified progs/tset.c and tack/sysdep.c to build with sgttyb
-            interface if neither termio or termios is available. Tested
-            this with FreeBSD 2.1.5 (which does have termios - but the
-            sgttyb does work).
+          + modify  ifdef's  in  write_entry.c  to  allow use of symbolic
+            links on platforms with no hard links, e.g., BeOS.
+          + modify  _nc_write_entry()  to  allow for the possibility that
+            linking  aliases  on a filesystem that ignores case would not
+            succeed  because  the  source  and destination differ only by
+            case, e.g., NCR260VT300WPP0 on cygwin.
+          + modify  logic  in  tic,  toe,  tput and tset which checks for
+            basename  of argv[0] to work properly on systems such as OS/2
+            which   have   case-independent   filenames   and/or  program
+            suffixes, e.g., ".ext".
 
                               Features of Ncurses
 
    The ncurses package is fully compatible with SVr4 (System V Release 4)
    curses:
 
                               Features of Ncurses
 
    The ncurses package is fully compatible with SVr4 (System V Release 4)
    curses:
-     * All 257 of the SVr4 calls have been implemented (and are
+     * All  257  of  the  SVr4  calls  have  been  implemented  (and  are
        documented).
        documented).
-     * Full support for SVr4 curses features including keyboard mapping,
-       color, forms-drawing with ACS characters, and automatic
+     * Full  support for SVr4 curses features including keyboard mapping,
+       color,   forms-drawing   with   ACS   characters,   and  automatic
        recognition of keypad and function keys.
        recognition of keypad and function keys.
-     * An emulation of the SVr4 panels library, supporting a stack of
+     * An  emulation  of  the  SVr4 panels library, supporting a stack of
        windows with backing store, is included.
        windows with backing store, is included.
-     * An emulation of the SVr4 menus library, supporting a uniform but
+     * An  emulation  of the SVr4 menus library, supporting a uniform but
        flexible interface for menu programming, is included.
        flexible interface for menu programming, is included.
-     * An emulation of the SVr4 form library, supporting data collection
+     * An  emulation of the SVr4 form library, supporting data collection
        through on-screen forms, is included.
        through on-screen forms, is included.
-     * Binary terminfo entries generated by the ncurses tic(1)
-       implementation are bit-for-bit-compatible with the entry format
+     * Binary   terminfo   entries   generated   by  the  ncurses  tic(1)
+       implementation  are  bit-for-bit-compatible  with the entry format
        SVr4 curses uses.
      * The utilities have options to allow you to filter terminfo entries
        SVr4 curses uses.
      * The utilities have options to allow you to filter terminfo entries
-       for use with less capable curses/terminfo versions such as the
+       for  use  with  less  capable curses/terminfo versions such as the
        HP/UX and AIX ports.
 
    The ncurses package also has many useful extensions over SVr4:
        HP/UX and AIX ports.
 
    The ncurses package also has many useful extensions over SVr4:
-     * The API is 8-bit clean and base-level conformant with the X/OPEN
-       curses specification, XSI curses (that is, it implements all BASE
-       level features, but not all EXTENDED features). Most
+     * The  API  is 8-bit clean and base-level conformant with the X/OPEN
+       curses  specification, XSI curses (that is, it implements all BASE
+       level   features,   but   not   all   EXTENDED   features).   Most
        EXTENDED-level features not directly concerned with wide-character
        EXTENDED-level features not directly concerned with wide-character
-       support are implemented, including many function calls not
-       supported under SVr4 curses (but portability of all calls is
+       support   are  implemented,  including  many  function  calls  not
+       supported  under  SVr4  curses  (but  portability  of all calls is
        documented so you can use the SVr4 subset only).
        documented so you can use the SVr4 subset only).
-     * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
-       corner of the screen if your terminal has an insert-character
+     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
+       corner  of  the  screen  if  your terminal has an insert-character
        capability.
      * Ada95 and C++ bindings.
        capability.
      * Ada95 and C++ bindings.
-     * Support for mouse event reporting with X Window xterm and OS/2
+     * Support  for  mouse  event  reporting with X Window xterm and OS/2
        console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
        console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
-     * The function wresize() allows you to resize windows, preserving
+     * The  function  wresize()  allows you to resize windows, preserving
        their data.
      * The function use_default_colors() allows you to use the terminal's
        default colors for the default color pair, achieving the effect of
        transparent colors.
      * The functions keyok() and define_key() allow you to better control
        their data.
      * The function use_default_colors() allows you to use the terminal's
        default colors for the default color pair, achieving the effect of
        transparent colors.
      * The functions keyok() and define_key() allow you to better control
-       the use of function keys, e.g., disabling the ncurses KEY_MOUSE,
-       or by defining more than one control sequence to map to a given
+       the  use  of function keys, e.g., disabling the ncurses KEY_MOUSE,
+       or  by  defining  more than one control sequence to map to a given
        key code.
      * Support for 16-color terminals, such as aixterm and XFree86 xterm.
        key code.
      * Support for 16-color terminals, such as aixterm and XFree86 xterm.
-     * Better cursor-movement optimization. The package now features a
+     * Better  cursor-movement  optimization.  The package now features a
        cursor-local-movement computation more efficient than either BSD's
        or System V's.
        cursor-local-movement computation more efficient than either BSD's
        or System V's.
-     * Super hardware scrolling support. The screen-update code
-       incorporates a novel, simple, and cheap algorithm that enables it
-       to make optimal use of hardware scrolling, line-insertion, and
-       line-deletion for screen-line movements. This algorithm is more
+     * Super   hardware   scrolling   support.   The  screen-update  code
+       incorporates  a novel, simple, and cheap algorithm that enables it
+       to  make  optimal  use  of hardware scrolling, line-insertion, and
+       line-deletion  for  screen-line  movements. This algorithm is more
        powerful than the 4.4BSD curses quickch() routine.
        powerful than the 4.4BSD curses quickch() routine.
-     * Real support for terminals with the magic-cookie glitch. The
-       screen-update code will refrain from drawing a highlight if the
-       magic- cookie unattributed spaces required just before the
-       beginning and after the end would step on a non-space character.
-       It will automatically shift highlight boundaries when doing so
-       would make it possible to draw the highlight without changing the
+     * Real  support  for  terminals  with  the  magic-cookie glitch. The
+       screen-update  code  will  refrain from drawing a highlight if the
+       magic-   cookie  unattributed  spaces  required  just  before  the
+       beginning  and  after the end would step on a non-space character.
+       It  will  automatically  shift  highlight boundaries when doing so
+       would  make it possible to draw the highlight without changing the
        visual appearance of the screen.
        visual appearance of the screen.
-     * It is possible to generate the library with a list of pre-loaded
-       fallback entries linked to it so that it can serve those terminal
-       types even when no terminfo tree or termcap file is accessible
-       (this may be useful for support of screen-oriented programs that
+     * It  is  possible to generate the library with a list of pre-loaded
+       fallback  entries linked to it so that it can serve those terminal
+       types  even  when  no  terminfo tree or termcap file is accessible
+       (this  may  be useful for support of screen-oriented programs that
        must run in single-user mode).
      * The tic(1)/captoinfo utility provided with ncurses has the ability
        must run in single-user mode).
      * The tic(1)/captoinfo utility provided with ncurses has the ability
-       to translate many termcaps from the XENIX, IBM and AT&T extension
+       to  translate many termcaps from the XENIX, IBM and AT&T extension
        sets.
      * A BSD-like tset(1) utility is provided.
      * The ncurses library and utilities will automatically read terminfo
        sets.
      * A BSD-like tset(1) utility is provided.
      * The ncurses library and utilities will automatically read terminfo
-       entries from $HOME/.terminfo if it exists, and compile to that
-       directory if it exists and the user has no write access to the
-       system directory. This feature makes it easier for users to have
-       personal terminfo entries without giving up access to the system
+       entries  from  $HOME/.terminfo  if  it exists, and compile to that
+       directory  if  it  exists  and the user has no write access to the
+       system  directory.  This feature makes it easier for users to have
+       personal  terminfo  entries without giving up access to the system
        terminfo directory.
        terminfo directory.
-     * You may specify a path of directories to search for compiled
-       descriptions with the environment variable TERMINFO_DIRS (this
-       generalizes the feature provided by TERMINFO under stock System
+     * You  may  specify  a  path  of  directories to search for compiled
+       descriptions  with  the  environment  variable TERMINFO_DIRS (this
+       generalizes  the  feature  provided by TERMINFO under stock System
        V.)
        V.)
-     * In terminfo source files, use capabilities may refer not just to
+     * In  terminfo  source files, use capabilities may refer not just to
        other entries in the same source file (as in System V) but also to
        other entries in the same source file (as in System V) but also to
-       compiled entries in either the system terminfo directory or the
+       compiled  entries  in  either the system terminfo directory or the
        user's $HOME/.terminfo directory.
        user's $HOME/.terminfo directory.
-     * A script (capconvert) is provided to help BSD users transition
-       from termcap to terminfo. It gathers the information in a TERMCAP
-       environment variable and/or a ~/.termcap local entries file and
-       converts it to an equivalent local terminfo tree under
+     * A  script  (capconvert)  is  provided to help BSD users transition
+       from  termcap to terminfo. It gathers the information in a TERMCAP
+       environment  variable  and/or  a ~/.termcap local entries file and
+       converts   it   to   an   equivalent  local  terminfo  tree  under
        $HOME/.terminfo.
        $HOME/.terminfo.
-     * Automatic fallback to the /etc/termcap file can be compiled in
-       when it is not possible to build a terminfo tree. This feature is
-       neither fast nor cheap, you don't want to use it unless you have
+     * Automatic  fallback  to  the  /etc/termcap file can be compiled in
+       when  it is not possible to build a terminfo tree. This feature is
+       neither  fast  nor cheap, you don't want to use it unless you have
        to, but it's there.
        to, but it's there.
-     * The table-of-entries utility toe makes it easy for users to see
+     * The  table-of-entries  utility  toe makes it easy for users to see
        exactly what terminal types are available on the system.
      * The library meets the XSI requirement that every macro entry point
        exactly what terminal types are available on the system.
      * The library meets the XSI requirement that every macro entry point
-       have a corresponding function which may be linked (and will be
-       prototype-checked) if the macro definition is disabled with
+       have  a  corresponding  function  which may be linked (and will be
+       prototype-checked)  if  the  macro  definition  is  disabled  with
        #undef.
        #undef.
-     * An HTML "Introduction to Programming with NCURSES" document
-       provides a narrative introduction to the curses programming
+     * An  HTML  "Introduction  to  Programming  with  NCURSES"  document
+       provides  a  narrative  introduction  to  the  curses  programming
        interface.
 
                              State of the Package
 
    Numerous bugs present in earlier versions have been fixed; the library
        interface.
 
                              State of the Package
 
    Numerous bugs present in earlier versions have been fixed; the library
-   is far more reliable than it used to be. Bounds checking in many
-   `dangerous' entry points has been improved. The code is now type-safe
-   according to gcc -Wall. The library has been checked for malloc leaks
+   is  far  more  reliable  than  it  used to be. Bounds checking in many
+   `dangerous'  entry points has been improved. The code is now type-safe
+   according  to gcc -Wall. The library has been checked for malloc leaks
    and arena corruption by the Purify memory-allocation tester.
 
    and arena corruption by the Purify memory-allocation tester.
 
-   The ncurses code has been tested with a wide variety of applications
+   The  ncurses  code has been tested with a wide variety of applications
    including (versions starting with those noted):
 
    cdk
           Curses Development Kit
    including (versions starting with those noted):
 
    cdk
           Curses Development Kit
-          [3]http://www.vexus.ca/CDK.html
-          [4]http://dickey.his.com/cdk.
+          [3]http://invisible-island.net/cdk.
+          [4]http://www.vexus.ca/CDK.html
 
    ded
           directory-editor
 
    ded
           directory-editor
-          [5]http://dickey.his.com/ded.
+          [5]http://invisible-island.net/ded.
 
    dialog
 
    dialog
-          the underlying application used in Slackware's setup, and the
+          the  underlying  application used in Slackware's setup, and the
           basis for similar applications on GNU/Linux.
           basis for similar applications on GNU/Linux.
-          [6]http://dickey.his.com/dialog.
+          [6]http://invisible-island.net/dialog.
 
    lynx
           the character-screen WWW browser
           [7]http://lynx.isc.org/release.
 
 
    lynx
           the character-screen WWW browser
           [7]http://lynx.isc.org/release.
 
-   Midnight Commander 4.1
+   Midnight Commander
           file manager
           [8]www.gnome.org/mc/.
 
           file manager
           [8]www.gnome.org/mc/.
 
 
    vile
           vi-like-emacs
 
    vile
           vi-like-emacs
-          [16]http://dickey.his.com/vile.
+          [16]http://invisible-island.net/vile.
 
 
-   The ncurses distribution includes a selection of test programs
+   The  ncurses  distribution  includes  a  selection  of  test  programs
    (including a few games).
 
 Who's Who and What's What
 
    The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric
    (including a few games).
 
 Who's Who and What's What
 
    The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric
-   S. Raymond. Ongoing work is being done by [19]Thomas Dickey and
-   [20]Jürgen Pfeifer. [21]Thomas Dickey acts as the maintainer for the
-   Free Software Foundation, which holds the copyright on ncurses.
+   S.  Raymond.  Ongoing  work  is  being  done  by [19]Thomas Dickey and
+   [20]Jürgen  Pfeifer.  [21]Thomas Dickey acts as the maintainer for the
+   Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
    Contact the current maintainers at [22]bug-ncurses@gnu.org.
 
    Contact the current maintainers at [22]bug-ncurses@gnu.org.
 
-   To join the ncurses mailing list, please write email to
+   To   join   the   ncurses   mailing   list,   please  write  email  to
    bug-ncurses-request@gnu.org containing the line:
              subscribe <name>@<host.domain>
 
    This list is open to anyone interested in helping with the development
    and testing of this package.
 
    bug-ncurses-request@gnu.org containing the line:
              subscribe <name>@<host.domain>
 
    This list is open to anyone interested in helping with the development
    and testing of this package.
 
-   Beta versions of ncurses and patches to the current release are made
-   available at [23]ftp://dickey.his.com/ncurses.
+   Beta  versions  of ncurses and patches to the current release are made
+   available at [23]ftp://invisible-island.net/ncurses.
 
 Future Plans
 
 
 Future Plans
 
-     * Extended-level XPG4 conformance, with internationalization
+     * Extended-level   XPG4   conformance,   with   internationalization
        support.
      * Ports to more systems, including DOS and Windows.
 
        support.
      * Ports to more systems, including DOS and Windows.
 
-   We need people to help with these projects. If you are interested in
+   We  need  people to help with these projects. If you are interested in
    working on them, please join the ncurses list.
 
 Other Related Resources
 
    working on them, please join the ncurses list.
 
 Other Related Resources
 
-   The distribution includes and uses a version of the terminfo-format
-   terminal description file maintained by Eric Raymond.
+   The  distribution  includes  and uses a version of the terminfo-format
+   terminal    description    file    maintained    by    Eric   Raymond.
    [24]http://earthspace.net/~esr/terminfo.
 
    [24]http://earthspace.net/~esr/terminfo.
 
-   You can find lots of information on terminal-related topics not
+   You  can  find  lots  of  information  on  terminal-related topics not
    covered in the terminfo file at [25]Richard Shuford's archive.
 
 References
 
    1. ftp://ftp.gnu.org/pub/gnu/ncurses
    covered in the terminfo file at [25]Richard Shuford's archive.
 
 References
 
    1. ftp://ftp.gnu.org/pub/gnu/ncurses
-   2. ftp://dickey.his.com/ncurses
-   3. http://www.vexus.ca/CDK.html
-   4. http://dickey.his.com/cdk/cdk.html
-   5. http://dickey.his.com/ded/ded.html
-   6. http://dickey.his.com/dialog/dialog.html
+   2. ftp://invisible-island.net/ncurses
+   3. http://invisible-island.net/cdk/cdk.html
+   4. http://www.vexus.ca/CDK.html
+   5. http://invisible-island.net/ded/ded.html
+   6. http://invisible-island.net/dialog/dialog.html
    7. http://lynx.isc.org/release/
    7. http://lynx.isc.org/release/
-   8. file://localhost/usr/build/ncurses/ncurses-5.2-20001021/doc/html/www.gnome.org/mc/
+   8. file://localhost/usr/build/ncurses/ncurses-5.2-20021012/doc/html/www.gnome.org/mc/
    9. http://www.mutt.org/
   10. http://www.ncftp.com/
   11. http://www.bostic.com/vi/
    9. http://www.mutt.org/
   10. http://www.ncftp.com/
   11. http://www.bostic.com/vi/
@@ -474,13 +379,13 @@ References
   13. http://members.iinet.net.au/~yusuf/taper/
   14. http://www.bg.debian.org/Packages/unstable/text/vh.html
   15. http://www.pp.clinet.fi/~walker/minicom.html
   13. http://members.iinet.net.au/~yusuf/taper/
   14. http://www.bg.debian.org/Packages/unstable/text/vh.html
   15. http://www.pp.clinet.fi/~walker/minicom.html
-  16. http://dickey.his.com/vile/vile.html
+  16. http://invisible-island.net/vile/vile.html
   17. mailto:zmbenhal@netcom.com
   18. http://www.ccil.org/~esr/home.html
   19. mailto:dickey@herndon4.his.com
   17. mailto:zmbenhal@netcom.com
   18. http://www.ccil.org/~esr/home.html
   19. mailto:dickey@herndon4.his.com
-  20. mailto:juergen.pfeifer@gmx.net
+  20. http://www.familiepfeifer.de/Contact.aspx?Lang=en
   21. mailto:dickey@herndon4.his.com
   22. mailto:bug-ncurses@gnu.org
   21. mailto:dickey@herndon4.his.com
   22. mailto:bug-ncurses@gnu.org
-  23. ftp://dickey.his.com/ncurses
+  23. ftp://invisible-island.net/ncurses
   24. http://earthspace.net/~esr/terminfo
   25. http://www.cs.utk.edu/~shuford/terminal_index.html
   24. http://earthspace.net/~esr/terminfo
   25. http://www.cs.utk.edu/~shuford/terminal_index.html
index 9f38ec4cb64e2c3619819d691505b750a50aaa43..9f6db419a51f6273216375a68d0b26c68f693844 100644 (file)
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-#  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+#  Author:  Juergen Pfeifer, 1996
+#  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 #
 #  Version Control
 #
 #  Version Control
-#  $Revision: 1.13 $
+#  $Revision: 1.14 $
 #
 SHELL          = /bin/sh
 THIS           = Makefile
 #
 SHELL          = /bin/sh
 THIS           = Makefile
index 8a530611917a9b19b3d31d451653c4c19e0d8f48..21e9b4cd86fb0fb5d09849e662025c95c9bf9eb7 100644 (file)
@@ -26,7 +26,8 @@
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
 
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
 
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 
 The documentation is provided in HTML format in the ./html 
 subdirectory. The main document is named index.html
 
 The documentation is provided in HTML format in the ./html 
 subdirectory. The main document is named index.html
index b1651379df2828b9a686b7a042a507549a6ee9d8..bccea45f57413775fd7cf3bf6cf570d38557c9cd 100644 (file)
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-#  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+#  Author:  Juergen Pfeifer, 1996
+#  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 #
 #  Version Control
 #
 #  Version Control
-#  $Revision: 1.34 $
+#  $Revision: 1.41 $
 #
 .SUFFIXES:
 
 #
 .SUFFIXES:
 
@@ -81,8 +82,8 @@ DEL_ADAMODE   = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
 
 GNATHTML       = `type -p gnathtml || type -p gnathtml.pl`
 GNATHP          = www.gnat.com
 
 GNATHTML       = `type -p gnathtml || type -p gnathtml.pl`
 GNATHP          = www.gnat.com
-MAIL            = juergen.pfeifer@gmx.net
-HOMEP           = home.t-online.de/home/Juergen.Pfeifer
+MAIL            = www.familiepfeifer.de/Contact.aspx?Lang=en
+HOMEP           = www.familiepfeifer.de/juergen
 
 ################################################################################
 ALIB            = @cf_ada_package@
 
 ################################################################################
 ALIB            = @cf_ada_package@
@@ -101,7 +102,8 @@ GEN_FILES1      = Key_Definitions                           \
                  Linker_Options                        \
                  Base_Defs                             \
                  Window_Offsets                        \
                  Linker_Options                        \
                  Base_Defs                             \
                  Window_Offsets                        \
-                 Version_Info
+                 Version_Info                          \
+                 Trace_Defs
 
 GEN_FILES2      = Menu_Opt_Rep                         \
                  Menu_Base_Defs                        \
 
 GEN_FILES2      = Menu_Opt_Rep                         \
                  Menu_Base_Defs                        \
@@ -123,6 +125,7 @@ GEN_FILES5  = Chtype_Def                            \
 
 GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads                           \
                  $(ADA_SRCDIR)/$(ABASE)-aux.ads                        \
 
 GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads                           \
                  $(ADA_SRCDIR)/$(ABASE)-aux.ads                        \
+                 $(ADA_SRCDIR)/$(ABASE)-trace.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-menus.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-forms.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-mouse.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-menus.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-forms.ads                      \
                  $(ADA_SRCDIR)/$(ABASE)-mouse.ads                      \
@@ -136,6 +139,7 @@ GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads                                \
 
 GEN_SRC                = $(srcdir)/$(ABASE).ads.m4                             \
                  $(srcdir)/$(ABASE)-aux.ads.m4                         \
 
 GEN_SRC                = $(srcdir)/$(ABASE).ads.m4                             \
                  $(srcdir)/$(ABASE)-aux.ads.m4                         \
+                 $(srcdir)/$(ABASE)-trace.ads.m4                       \
                  $(srcdir)/$(ABASE)-menus.ads.m4                       \
                  $(srcdir)/$(ABASE)-forms.ads.m4                       \
                  $(srcdir)/$(ABASE)-mouse.ads.m4                       \
                  $(srcdir)/$(ABASE)-menus.ads.m4                       \
                  $(srcdir)/$(ABASE)-forms.ads.m4                       \
                  $(srcdir)/$(ABASE)-mouse.ads.m4                       \
@@ -217,6 +221,9 @@ Version_Info: gen$x
 Window_Offsets: gen$x
        $(GENERATE) B D >$@
 
 Window_Offsets: gen$x
        $(GENERATE) B D >$@
 
+Trace_Defs: gen$x
+       $(GENERATE) B T >$@
+
 Menu_Opt_Rep: gen$x
        $(GENERATE) M R >$@
 
 Menu_Opt_Rep: gen$x
        $(GENERATE) M R >$@
 
@@ -271,6 +278,12 @@ $(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
        $(srcdir)/$(ABASE)-aux.ads.m4 |\
        $(DEL_ADAMODE) >$@
 
        $(srcdir)/$(ABASE)-aux.ads.m4 |\
        $(DEL_ADAMODE) >$@
 
+$(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
+                               $(GEN_FILES5) $(srcdir)/normal.m4
+       $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+       $(srcdir)/$(ABASE)-trace.ads.m4 |\
+       $(DEL_ADAMODE) >$@
+
 $(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
                                  $(GEN_FILES2) $(srcdir)/normal.m4
        $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
 $(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
                                  $(GEN_FILES2) $(srcdir)/normal.m4
        $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
@@ -406,9 +419,9 @@ adahtml:
           sed -e 's%&lt;A HREF%<A HREF%g' |\
           sed -e 's%"&gt;%">%g' |\
           sed -e 's/3X/3x/g' |\
           sed -e 's%&lt;A HREF%<A HREF%g' |\
           sed -e 's%"&gt;%">%g' |\
           sed -e 's/3X/3x/g' |\
-          sed -e 's/$$\([A-Za-z0-9_]*:.*\)\$$/@\1@/' |\
+          sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
           sed -e 's%Juergen Pfeifer%<A HREF="http://$(HOMEP)">J\&uuml;rgen Pfeifer</A>%g' |\
           sed -e 's%Juergen Pfeifer%<A HREF="http://$(HOMEP)">J\&uuml;rgen Pfeifer</A>%g' |\
-          sed -e 's%$(MAIL)%<A HREF="mailto:$(MAIL)">\&lt;$(MAIL)\&gt;</A>%g' |\
+          sed -e 's%http://$(MAIL)%<A HREF="http://$(MAIL)">$(MAIL)</A>%g' |\
           sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
            mv $$a.tmp $$f ;\
         done
           sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
            mv $$a.tmp $$f ;\
         done
index 64e9f912e443c6fc4a8ed45ad31d10eb94e18cb8..11ba3d73706a4417fcf966bf57183896043bfc3a 100644 (file)
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996                 *
+ *   Author:  Juergen Pfeifer, 1996                                         *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /*
     Version Control
  ****************************************************************************/
 
 /*
     Version Control
-    $Revision: 1.32 $
+    $Revision: 1.35 $
   --------------------------------------------------------------------------*/
 /*
   This program generates various record structures and constants from the
   --------------------------------------------------------------------------*/
 /*
   This program generates various record structures and constants from the
@@ -285,6 +286,26 @@ static void gen_attr_set( const char *name )
   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}
+  };
+  gen_reps(nap,name,sizeof(int),0);
+}
+
 static void gen_menu_opt_rep(const char *name)
 {
   static const name_attribute_pair nap[] = {
 static void gen_menu_opt_rep(const char *name)
 {
   static const name_attribute_pair nap[] = {
@@ -937,6 +958,9 @@ void gen_mouse_events(void)
 #ifdef BUTTON_ALT
   GEN_MEVENT(BUTTON_ALT);
 #endif
 #ifdef BUTTON_ALT
   GEN_MEVENT(BUTTON_ALT);
 #endif
+#ifdef REPORT_MOUSE_POSITION
+  GEN_MEVENT(REPORT_MOUSE_POSITION);
+#endif   
 #ifdef ALL_MOUSE_EVENTS
   GEN_MEVENT(ALL_MOUSE_EVENTS);
 #endif
 #ifdef ALL_MOUSE_EVENTS
   GEN_MEVENT(ALL_MOUSE_EVENTS);
 #endif
@@ -1012,14 +1036,19 @@ static void mouse_basedefs(void)
  */
 static void color_def (const char *name, int value)
 {
  */
 static void color_def (const char *name, int value)
 {
-  printf("   %-8s : constant Color_Number := %d;\n",name,value);
+  printf("   %-16s : constant Color_Number := %d;\n",name,value);
 }
 
 }
 
+#define HAVE_USE_DEFAULT_COLORS 1
+
 /*
  * Generate all color definitions
  */
 static void gen_color (void)
 {
 /*
  * Generate all color definitions
  */
 static void gen_color (void)
 {
+#ifdef HAVE_USE_DEFAULT_COLORS
+  color_def ("Default_Color",-1);
+#endif
 #ifdef COLOR_BLACK
   color_def ("Black",COLOR_BLACK);
 #endif
 #ifdef COLOR_BLACK
   color_def ("Black",COLOR_BLACK);
 #endif
@@ -1108,7 +1137,7 @@ 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", \
     o = offsetof(WINDOW, member);                                   \
     if ((o%sizeof(itype) == 0)) {                                   \
        printf("   Offset%-*s : constant Natural := %2ld; --  %s\n", \
-              8, #member, o/sizeof(itype),#itype);                  \
+              12, #member, o/sizeof(itype),#itype);                 \
     }                                                               \
   }
   
     }                                                               \
   }
   
@@ -1128,22 +1157,46 @@ gen_offsets(void)
   GEN_OFFSET(_pary,int);
   GEN_OFFSET(_parx,int);
   if (sizeof(bool) == sizeof(char)) {
   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(_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)) {
     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(_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)) {
     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(_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",
     s_bool = "int";
   }
   printf("   Sizeof%-*s : constant Natural := %2ld; --  %s\n",
-        8, "_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",
   /* In ncurses _maxy and _maxx needs an offset for the "public"
    * value
    */
   printf("   Offset%-*s : constant Natural := %2d; --  %s\n",
-        8, "_XY",1,"int");
+        12, "_XY",1,"int");
   printf("\n");
   printf("   type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
 }
   printf("\n");
   printf("   type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
 }
@@ -1212,6 +1265,9 @@ int main(int argc, char *argv[])
        case 'V': /* generate version info */
          gen_version_info();
          break;
        case 'V': /* generate version info */
          gen_version_info();
          break;
+       case 'T': /* generate the Trace info */
+         gen_trace("Trace_Attribute_Set");
+         break;
        default:
          break;
        }
        default:
          break;
        }
index 71e4872b47c41a8d327e0e32545f1ee0bab186f8..aacac4f59d4a3758a7ec2e4fea7074bd1d5b446e 100644 (file)
@@ -35,9 +35,10 @@ include(M4MACRO)----------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.13 $
+--  $Revision: 1.14 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
index ff7882f7cf03ea39b545b73f8aa03f5b91dee17f..79726781e404789462062a6b4c0c7a0db772c81d 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index aedd01bab3538bda020b87458a05dbf7bf8e5848..6f99e8544b024f147f67f81cc02d4f33f507bd61 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.13 $
+--  $Revision: 1.14 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
index cddc1d1e58d1f439650932b24dcd808985b30edb..b07618aebfddf6abf9b6f76b3e26a7ca70f6af07 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
index f969ce0422ac10add2c42bc88327ff4bbf3bc456..9123f9d97261ce41afcc7aa36aa6b74bb8b7e406 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.24 $
+--  $Revision: 1.26 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Form_Base_Defs')
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Form_Base_Defs')
@@ -685,6 +686,9 @@ include(`Form_Opt_Rep')Dnl
    --  AKA
    pragma Inline (Is_New_Page);
 
    --  AKA
    pragma Inline (Is_New_Page);
 
+   --  MANPAGE(`form_requestname.3x')
+   --  Not Implemented: form_request_name, form_request_by_name
+
 ------------------------------------------------------------------------------
 private
    type Field is new System.Storage_Elements.Integer_Address;
 ------------------------------------------------------------------------------
 private
    type Field is new System.Storage_Elements.Integer_Address;
index 8d601d80b929398bb06f380927797487e230094e..1c42bbebb9944fab8679c2363005e15340c3075e 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
index 2f26f08afda15baa2179af9ca934abf4f8e4c149..87ffadc7fcbd3e642b6cd21355485be6c6197124 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
index 2bc350a72d18ca3958ced723520e58d5d3c80719..ba620792b379417f381aaeafa00be1e96952b7ec 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.21 $
+--  $Revision: 1.23 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Menu_Base_Defs')
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Menu_Base_Defs')
@@ -473,6 +474,13 @@ include(`Item_Rep')dnl
    procedure Set_Format (Men     : in Menu;
                          Lines   : in Line_Count;
                          Columns : in Column_Count);
    procedure Set_Format (Men     : in Menu;
                          Lines   : in Line_Count;
                          Columns : in Column_Count);
+   --  Not implemented: 0 argument for Lines or Columns;
+   --  instead use Format to get the current sizes
+   --      The  default  format  is  16  rows,  1  column.    Calling
+   --      set_menu_format  with a null menu pointer will change this
+   --      default.  A zero row or column argument to set_menu_format
+   --      is  interpreted  as  a  request  not to change the current
+   --      value.
    --  AKA
    pragma Inline (Set_Format);
 
    --  AKA
    pragma Inline (Set_Format);
 
@@ -570,7 +578,7 @@ include(`Item_Rep')dnl
    --  Reset Men to Null_Menu
    --  Not inlined
 
    --  Reset Men to Null_Menu
    --  Not inlined
 
-   --  MANPAGE(`menu_new.3x')
+   --  MANPAGE(`menu_driver.3x')
 
    type Driver_Result is (Menu_Ok,
                           Request_Denied,
 
    type Driver_Result is (Menu_Ok,
                           Request_Denied,
@@ -583,6 +591,8 @@ include(`Item_Rep')dnl
    --  AKA
    --  Driver is not inlined
 
    --  AKA
    --  Driver is not inlined
 
+   --  ANCHOR(`menu_requestname.3x')
+   --  Not Implemented: menu_request_name, menu_request_by_name
 -------------------------------------------------------------------------------
 private
    type Item   is new System.Storage_Elements.Integer_Address;
 -------------------------------------------------------------------------------
 private
    type Item   is new System.Storage_Elements.Integer_Address;
index 0db4ffbbc77f7940a4b1e930908bb10bf9f7ded1..84eeacb2962c886e9eebf1357326bf4480ced7cd 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.19 $
+--  $Revision: 1.21 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Mouse_Base_Defs')
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Mouse_Base_Defs')
@@ -52,6 +53,12 @@ package Terminal_Interface.Curses.Mouse is
    --  is still marked as experimental. So also this binding will change
    --  if the ncurses methods change.
    --
    --  is still marked as experimental. So also this binding will change
    --  if the ncurses methods change.
    --
+   --  mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates
+   --  in the parent package.
+   --
+   --  Not implemented:
+   --  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event
+   --  or Start_Mouse)
    type Event_Mask is private;
    No_Events  : constant Event_Mask;
    All_Events : constant Event_Mask;
    type Event_Mask is private;
    No_Events  : constant Event_Mask;
    All_Events : constant Event_Mask;
@@ -107,6 +114,8 @@ package Terminal_Interface.Curses.Mouse is
    --  ANCHOR(`mousemask()',`Start_Mouse')
    --  There is one difference to mousmask(): we return the value of the
    --  old mask, that means the event mask value before this call.
    --  ANCHOR(`mousemask()',`Start_Mouse')
    --  There is one difference to mousmask(): we return the value of the
    --  old mask, that means the event mask value before this call.
+   --  Not Implemented: The library version
+   --  returns a Mouse_Mask that tells which events are reported.
    function Start_Mouse (Mask : Event_Mask := All_Events)
                          return Event_Mask;
    --  AKA
    function Start_Mouse (Mask : Event_Mask := All_Events)
                          return Event_Mask;
    --  AKA
@@ -128,6 +137,8 @@ package Terminal_Interface.Curses.Mouse is
                         State  : out Button_State);
    --  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they
    --  may not be identical to window coordinates.
                         State  : out Button_State);
    --  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they
    --  may not be identical to window coordinates.
+   --  Not Implemented: Get_Event only reports one event, the C library
+   --  version supports multiple events, e.g. {click-1, click-3}
    pragma Inline (Get_Event);
 
    --  ANCHOR(`ungetmouse()',`Unget_Mouse')
    pragma Inline (Get_Event);
 
    --  ANCHOR(`ungetmouse()',`Unget_Mouse')
index 1369cfd72c0c4f44f03bfce15e504bdd2a68a043..4b9a85814da753c1285b72e5e3d933d2650b76ab 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
index 04e374fceb0a0c15c57110e7bbf6dfba98aa3473..7d571b9e97ae531f4a8dc5766f5608708350386c 100644 (file)
@@ -36,9 +36,10 @@ include(M4MACRO)dnl
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.16 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
diff --git a/Ada95/gen/terminal_interface-curses-trace.ads.m4 b/Ada95/gen/terminal_interface-curses-trace.ads.m4
new file mode 100644 (file)
index 0000000..546004f
--- /dev/null
@@ -0,0 +1,78 @@
+--  -*- ada -*-
+define(`HTMLNAME',`terminal_interface-curses-trace__ads.htm')dnl
+include(M4MACRO)------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Trace                     --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control:
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+package Terminal_Interface.Curses.Trace is
+   pragma Preelaborate (Terminal_Interface.Curses.Trace);
+
+   pragma Warnings (Off);
+include(`Trace_Defs')
+
+   pragma Warnings (On);
+
+   Trace_Disable  : constant Trace_Attribute_Set := (others => False);
+
+   Trace_Ordinary : constant Trace_Attribute_Set :=
+     (Times            => True,
+      Tputs            => True,
+      Update           => True,
+      Cursor_Move      => True,
+      Character_Output => True,
+      others           => False);
+   Trace_Maximum : constant Trace_Attribute_Set := (others => True);
+
+------------------------------------------------------------------------------
+
+   --  MANPAGE(`curs_trace.3x')
+
+   --  ANCHOR(`trace()',`Trace_on')
+   procedure Trace_On (x : Trace_Attribute_Set);
+   --  The debugging library has trace.
+
+   --  ANCHOR(`_tracef()',`Trace_Put')
+   procedure Trace_Put (str : String);
+   --  AKA
+
+   Current_Trace_Setting : Trace_Attribute_Set;
+   pragma Import (C, Current_Trace_Setting, "_nc_tracing");
+
+end Terminal_Interface.Curses.Trace;
index 11930d9709ee10508b6abf60d4d2cfa44712aa39..bd879cdde4329441a868a033c9ac8d9be82a37bb 100644 (file)
@@ -35,9 +35,10 @@ include(M4MACRO)----------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.28 $
+--  $Revision: 1.30 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
@@ -95,7 +96,7 @@ include(`Old_Keys')dnl
 
 ------------------------------------------------------------------------------
 
 
 ------------------------------------------------------------------------------
 
-   type Color_Number is range 0 .. Integer (Interfaces.C.short'Last);
+   type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
    for Color_Number'Size use Interfaces.C.short'Size;
    --  (n)curses uses a short for the color index
    --  The model is, that a Color_Number is an index into an array of
    for Color_Number'Size use Interfaces.C.short'Size;
    --  (n)curses uses a short for the color index
    --  The model is, that a Color_Number is an index into an array of
@@ -198,7 +199,7 @@ include(`AC_Rep')
 include(`ACS_Map')dnl
 
    --  MANPAGE(`curs_initscr.3x')
 include(`ACS_Map')dnl
 
    --  MANPAGE(`curs_initscr.3x')
-   --  | Not implemented: newterm, set_term, delscreen
+   --  | Not implemented: newterm, set_term, delscreen, curscr
 
    --  ANCHOR(`stdscr',`Standard_Window')
    function Standard_Window return Window;
 
    --  ANCHOR(`stdscr',`Standard_Window')
    function Standard_Window return Window;
@@ -233,6 +234,7 @@ include(`ACS_Map')dnl
                           Line   : in Line_Position;
                           Column : in Column_Position);
    --  AKA
                           Line   : in Line_Position;
                           Column : in Column_Position);
    --  AKA
+   --  ALIAS(`move()')
    pragma Inline (Move_Cursor);
 
    --  MANPAGE(`curs_addch.3x')
    pragma Inline (Move_Cursor);
 
    --  MANPAGE(`curs_addch.3x')
@@ -241,6 +243,7 @@ include(`ACS_Map')dnl
    procedure Add (Win :  in Window := Standard_Window;
                   Ch  :  in Attributed_Character);
    --  AKA
    procedure Add (Win :  in Window := Standard_Window;
                   Ch  :  in Attributed_Character);
    --  AKA
+   --  ALIAS(`addch()')
 
    procedure Add (Win :  in Window := Standard_Window;
                   Ch  :  in Character);
 
    procedure Add (Win :  in Window := Standard_Window;
                   Ch  :  in Character);
@@ -254,6 +257,7 @@ include(`ACS_Map')dnl
       Column : in Column_Position;
       Ch     : in Attributed_Character);
    --  AKA
       Column : in Column_Position;
       Ch     : in Attributed_Character);
    --  AKA
+   --  ALIAS(`mvaddch()')
 
    procedure Add
      (Win    : in Window := Standard_Window;
 
    procedure Add
      (Win    : in Window := Standard_Window;
@@ -268,6 +272,7 @@ include(`ACS_Map')dnl
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
+   --  ALIAS(`echochar()')
 
    procedure Add_With_Immediate_Echo
      (Win : in Window := Standard_Window;
 
    procedure Add_With_Immediate_Echo
      (Win : in Window := Standard_Window;
@@ -276,6 +281,7 @@ include(`ACS_Map')dnl
    pragma Inline (Add_With_Immediate_Echo);
 
    --  MANPAGE(`curs_window.3x')
    pragma Inline (Add_With_Immediate_Echo);
 
    --  MANPAGE(`curs_window.3x')
+   --  Not Implemented: wcursyncup
 
    --  ANCHOR(`newwin()',`Create')
    function Create
 
    --  ANCHOR(`newwin()',`Create')
    function Create
@@ -283,6 +289,8 @@ include(`ACS_Map')dnl
       Number_Of_Columns     : Column_Count;
       First_Line_Position   : Line_Position;
       First_Column_Position : Column_Position) return Window;
       Number_Of_Columns     : Column_Count;
       First_Line_Position   : Line_Position;
       First_Column_Position : Column_Position) return Window;
+   --  Not Implemented: Default Number_Of_Lines, Number_Of_Columns
+   --  the C version lets them be 0, see the man page.
    --  AKA
    pragma Inline (Create);
 
    --  AKA
    pragma Inline (Create);
 
@@ -363,6 +371,8 @@ include(`ACS_Map')dnl
                   Len : in Integer := -1);
    --  AKA
    --  ALIAS(`waddstr()')
                   Len : in Integer := -1);
    --  AKA
    --  ALIAS(`waddstr()')
+   --  ALIAS(`addnstr()')
+   --  ALIAS(`addstr()')
 
    --  ANCHOR(`mvwaddnstr()',`Add')
    procedure Add (Win    : in Window := Standard_Window;
 
    --  ANCHOR(`mvwaddnstr()',`Add')
    procedure Add (Win    : in Window := Standard_Window;
@@ -372,6 +382,8 @@ include(`ACS_Map')dnl
                   Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddstr()')
                   Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddstr()')
+   --  ALIAS(`mvaddnstr()')
+   --  ALIAS(`mvaddstr()')
 
    --  MANPAGE(`curs_addchstr.3x')
 
 
    --  MANPAGE(`curs_addchstr.3x')
 
@@ -381,6 +393,8 @@ include(`ACS_Map')dnl
                   Len : in Integer := -1);
    --  AKA
    --  ALIAS(`waddchstr()')
                   Len : in Integer := -1);
    --  AKA
    --  ALIAS(`waddchstr()')
+   --  ALIAS(`addchnstr()')
+   --  ALIAS(`addchstr()')
 
    --  ANCHOR(`mvwaddchnstr()',`Add')
    procedure Add (Win    : in Window := Standard_Window;
 
    --  ANCHOR(`mvwaddchnstr()',`Add')
    procedure Add (Win    : in Window := Standard_Window;
@@ -390,9 +404,13 @@ include(`ACS_Map')dnl
                   Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddchstr()')
                   Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddchstr()')
+   --  ALIAS(`mvaddchnstr()')
+   --  ALIAS(`mvaddchstr()')
    pragma Inline (Add);
 
    --  MANPAGE(`curs_border.3x')
    pragma Inline (Add);
 
    --  MANPAGE(`curs_border.3x')
+   --  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline
+   --  | use Move_Cursor then Horizontal_Line or Vertical_Line
 
    --  ANCHOR(`wborder()',`Border')
    procedure Border
 
    --  ANCHOR(`wborder()',`Border')
    procedure Border
@@ -407,6 +425,7 @@ include(`ACS_Map')dnl
       Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character
      );
    --  AKA
       Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character
      );
    --  AKA
+   --  ALIAS(`border()')
    pragma Inline (Border);
 
    --  ANCHOR(`box()',`Box')
    pragma Inline (Border);
 
    --  ANCHOR(`box()',`Box')
@@ -423,6 +442,7 @@ include(`ACS_Map')dnl
       Line_Size   : in Natural;
       Line_Symbol : in Attributed_Character := Default_Character);
    --  AKA
       Line_Size   : in Natural;
       Line_Symbol : in Attributed_Character := Default_Character);
    --  AKA
+   --  ALIAS(`hline()')
    pragma Inline (Horizontal_Line);
 
    --  ANCHOR(`wvline()',`Vertical_Line')
    pragma Inline (Horizontal_Line);
 
    --  ANCHOR(`wvline()',`Vertical_Line')
@@ -431,14 +451,17 @@ include(`ACS_Map')dnl
       Line_Size   : in Natural;
       Line_Symbol : in Attributed_Character := Default_Character);
    --  AKA
       Line_Size   : in Natural;
       Line_Symbol : in Attributed_Character := Default_Character);
    --  AKA
+   --  ALIAS(`vline()')
    pragma Inline (Vertical_Line);
 
    --  MANPAGE(`curs_getch.3x')
    pragma Inline (Vertical_Line);
 
    --  MANPAGE(`curs_getch.3x')
+   --  Not implemented: mvgetch, mvwgetch
 
    --  ANCHOR(`wgetch()',`Get_Keystroke')
    function Get_Keystroke (Win : Window := Standard_Window)
                            return Real_Key_Code;
    --  AKA
 
    --  ANCHOR(`wgetch()',`Get_Keystroke')
    function Get_Keystroke (Win : Window := Standard_Window)
                            return Real_Key_Code;
    --  AKA
+   --  ALIAS(`getch()')
    --  Get a character from the keyboard and echo it - if enabled - to the
    --  window.
    --  If for any reason (i.e. a timeout) we couldn't get a character the
    --  Get a character from the keyboard and echo it - if enabled - to the
    --  window.
    --  If for any reason (i.e. a timeout) we couldn't get a character the
@@ -475,14 +498,28 @@ include(`ACS_Map')dnl
    pragma Inline (Function_Key_Code);
 
    --  MANPAGE(`curs_attr.3x')
    pragma Inline (Function_Key_Code);
 
    --  MANPAGE(`curs_attr.3x')
+   --  | Not implemented attr_off,  wattr_off,
+   --  |  attr_on, wattr_on, attr_set, wattr_set
+
+   --  PAIR_NUMBER
+   --  PAIR_NUMBER(c) is the same as c.Color
+
+   --  ANCHOR(`standout()',`Standout')
+   procedure Standout (Win : Window  := Standard_Window;
+                       On  : Boolean := True);
+   --  ALIAS(`wstandout()')
+   --  ALIAS(`wstandend()')
 
    --  ANCHOR(`wattron()',`Switch_Character_Attribute')
    procedure Switch_Character_Attribute
      (Win  : in Window := Standard_Window;
       Attr : in Character_Attribute_Set := Normal_Video;
       On   : in Boolean := True); --  if False we switch Off.
 
    --  ANCHOR(`wattron()',`Switch_Character_Attribute')
    procedure Switch_Character_Attribute
      (Win  : in Window := Standard_Window;
       Attr : in Character_Attribute_Set := Normal_Video;
       On   : in Boolean := True); --  if False we switch Off.
+   --  Switches those Attributes set to true in the list.
    --  AKA
    --  ALIAS(`wattroff()')
    --  AKA
    --  ALIAS(`wattroff()')
+   --  ALIAS(`attron()')
+   --  ALIAS(`attroff()')
 
    --  ANCHOR(`wattrset()',`Set_Character_Attributes')
    procedure Set_Character_Attributes
 
    --  ANCHOR(`wattrset()',`Set_Character_Attributes')
    procedure Set_Character_Attributes
@@ -490,12 +527,14 @@ include(`ACS_Map')dnl
       Attr  : in Character_Attribute_Set := Normal_Video;
       Color : in Color_Pair := Color_Pair'First);
    --  AKA
       Attr  : in Character_Attribute_Set := Normal_Video;
       Color : in Color_Pair := Color_Pair'First);
    --  AKA
+   --  ALIAS(`attrset()')
    pragma Inline (Set_Character_Attributes);
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attributes')
    function Get_Character_Attribute
      (Win : in Window := Standard_Window) return Character_Attribute_Set;
    --  AKA
    pragma Inline (Set_Character_Attributes);
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attributes')
    function Get_Character_Attribute
      (Win : in Window := Standard_Window) return Character_Attribute_Set;
    --  AKA
+   --  ALIAS(`attr_get()')
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attribute')
    function Get_Character_Attribute
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attribute')
    function Get_Character_Attribute
@@ -507,6 +546,7 @@ include(`ACS_Map')dnl
    procedure Set_Color (Win  : in Window := Standard_Window;
                         Pair : in Color_Pair);
    --  AKA
    procedure Set_Color (Win  : in Window := Standard_Window;
                         Pair : in Color_Pair);
    --  AKA
+   --  ALIAS(`color_set()')
    pragma Inline (Set_Color);
 
    --  ANCHOR(`wchgat()',`Change_Attributes')
    pragma Inline (Set_Color);
 
    --  ANCHOR(`wchgat()',`Change_Attributes')
@@ -516,6 +556,7 @@ include(`ACS_Map')dnl
       Attr  : in Character_Attribute_Set := Normal_Video;
       Color : in Color_Pair := Color_Pair'First);
    --  AKA
       Attr  : in Character_Attribute_Set := Normal_Video;
       Color : in Color_Pair := Color_Pair'First);
    --  AKA
+   --  ALIAS(`chgat()')
 
    --  ANCHOR(`mvwchgat()',`Change_Attributes')
    procedure Change_Attributes
 
    --  ANCHOR(`mvwchgat()',`Change_Attributes')
    procedure Change_Attributes
@@ -526,6 +567,7 @@ include(`ACS_Map')dnl
       Attr   : in Character_Attribute_Set := Normal_Video;
       Color  : in Color_Pair := Color_Pair'First);
    --  AKA
       Attr   : in Character_Attribute_Set := Normal_Video;
       Color  : in Color_Pair := Color_Pair'First);
    --  AKA
+   --  ALIAS(`mvchgat()')
    pragma Inline (Change_Attributes);
 
    --  MANPAGE(`curs_beep.3x')
    pragma Inline (Change_Attributes);
 
    --  MANPAGE(`curs_beep.3x')
@@ -574,6 +616,11 @@ include(`ACS_Map')dnl
    --  AKA
    pragma Inline (Set_KeyPad_Mode);
 
    --  AKA
    pragma Inline (Set_KeyPad_Mode);
 
+   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
+                             return Boolean;
+   --  This has no pendant in C. There you've to look into the WINDOWS
+   --  structure to get the value. Bad practice, not repeated in Ada.
+
    type Half_Delay_Amount is range 1 .. 255;
 
    --  ANCHOR(`halfdelay()',`Half_Delay')
    type Half_Delay_Amount is range 1 .. 255;
 
    --  ANCHOR(`halfdelay()',`Half_Delay')
@@ -610,6 +657,7 @@ include(`ACS_Map')dnl
                                Mode   : in Timeout_Mode;
                                Amount : in Natural); --  in Milliseconds
    --  AKA
                                Mode   : in Timeout_Mode;
                                Amount : in Natural); --  in Milliseconds
    --  AKA
+   --  ALIAS(`timeout()')
    --  Instead of overloading the semantic of the sign of amount, we
    --  introduce the Timeout_Mode parameter. This should improve
    --  readability. For Blocking and Non_Blocking, the Amount is not
    --  Instead of overloading the semantic of the sign of amount, we
    --  introduce the Timeout_Mode parameter. This should improve
    --  readability. For Blocking and Non_Blocking, the Amount is not
@@ -683,6 +731,7 @@ include(`ACS_Map')dnl
       Top_Line    : in Line_Position;
       Bottom_Line : in Line_Position);
    --  AKA
       Top_Line    : in Line_Position;
       Bottom_Line : in Line_Position);
    --  AKA
+   --  ALIAS(`setscrreg()')
    pragma Inline (Set_Scroll_Region);
 
    --  MANPAGE(`curs_refresh.3x')
    pragma Inline (Set_Scroll_Region);
 
    --  MANPAGE(`curs_refresh.3x')
@@ -697,6 +746,7 @@ include(`ACS_Map')dnl
    --  AKA
    --  There is an overloaded Refresh for Pads.
    --  The Inline pragma appears there
    --  AKA
    --  There is an overloaded Refresh for Pads.
    --  The Inline pragma appears there
+   --  ALIAS(`refresh()')
 
    --  ANCHOR(`wnoutrefresh()',`Refresh_Without_Update')
    procedure Refresh_Without_Update
 
    --  ANCHOR(`wnoutrefresh()',`Refresh_Without_Update')
    procedure Refresh_Without_Update
@@ -721,33 +771,41 @@ include(`ACS_Map')dnl
    --  ANCHOR(`werase()',`Erase')
    procedure Erase (Win : in Window := Standard_Window);
    --  AKA
    --  ANCHOR(`werase()',`Erase')
    procedure Erase (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`erase()')
    pragma Inline (Erase);
 
    --  ANCHOR(`wclear()',`Clear')
    procedure Clear
      (Win : in Window := Standard_Window);
    --  AKA
    pragma Inline (Erase);
 
    --  ANCHOR(`wclear()',`Clear')
    procedure Clear
      (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`clear()')
    pragma Inline (Clear);
 
    --  ANCHOR(`wclrtobot()',`Clear_To_End_Of_Screen')
    procedure Clear_To_End_Of_Screen
      (Win : in Window := Standard_Window);
    --  AKA
    pragma Inline (Clear);
 
    --  ANCHOR(`wclrtobot()',`Clear_To_End_Of_Screen')
    procedure Clear_To_End_Of_Screen
      (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`clrtobot()')
    pragma Inline (Clear_To_End_Of_Screen);
 
    --  ANCHOR(`wclrtoeol()',`Clear_To_End_Of_Line')
    procedure Clear_To_End_Of_Line
      (Win : in Window := Standard_Window);
    --  AKA
    pragma Inline (Clear_To_End_Of_Screen);
 
    --  ANCHOR(`wclrtoeol()',`Clear_To_End_Of_Line')
    procedure Clear_To_End_Of_Line
      (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`clrtoeol()')
    pragma Inline (Clear_To_End_Of_Line);
 
    --  MANPAGE(`curs_bkgd.3x')
 
    --  ANCHOR(`wbkgdset()',`Set_Background')
    pragma Inline (Clear_To_End_Of_Line);
 
    --  MANPAGE(`curs_bkgd.3x')
 
    --  ANCHOR(`wbkgdset()',`Set_Background')
+   --  TODO: we could have Set_Background(Window; Character_Attribute_Set)
+   --  because in C it is common to see bkgdset(A_BOLD) or
+   --  bkgdset(COLOR_PAIR(n))
    procedure Set_Background
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
    procedure Set_Background
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
+   --  ALIAS(`bkgdset()')
    pragma Inline (Set_Background);
 
    --  ANCHOR(`wbkgd()',`Change_Background')
    pragma Inline (Set_Background);
 
    --  ANCHOR(`wbkgd()',`Change_Background')
@@ -755,12 +813,15 @@ include(`ACS_Map')dnl
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
      (Win : in Window := Standard_Window;
       Ch  : in Attributed_Character);
    --  AKA
+   --  ALIAS(`bkgd()')
    pragma Inline (Change_Background);
 
    --  ANCHOR(`wbkgdget()',`Get_Background')
    pragma Inline (Change_Background);
 
    --  ANCHOR(`wbkgdget()',`Get_Background')
+   --  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.
    function Get_Background (Win : Window := Standard_Window)
      return Attributed_Character;
    --  AKA
    function Get_Background (Win : Window := Standard_Window)
      return Attributed_Character;
    --  AKA
+   --  ALIAS(`bkgdget()')
    pragma Inline (Get_Background);
 
    --  MANPAGE(`curs_touch.3x')
    pragma Inline (Get_Background);
 
    --  MANPAGE(`curs_touch.3x')
@@ -834,16 +895,19 @@ include(`ACS_Map')dnl
      (Win   : in Window  := Standard_Window;
       Lines : in Integer := 1); --  default is to insert one line above
    --  AKA
      (Win   : in Window  := Standard_Window;
       Lines : in Integer := 1); --  default is to insert one line above
    --  AKA
+   --  ALIAS(`insdelln()')
    pragma Inline (Insert_Delete_Lines);
 
    --  ANCHOR(`wdeleteln()',`Delete_Line')
    procedure Delete_Line (Win : in Window := Standard_Window);
    --  AKA
    pragma Inline (Insert_Delete_Lines);
 
    --  ANCHOR(`wdeleteln()',`Delete_Line')
    procedure Delete_Line (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`deleteln()')
    pragma Inline (Delete_Line);
 
    --  ANCHOR(`winsertln()',`Insert_Line')
    procedure Insert_Line (Win : in Window := Standard_Window);
    --  AKA
    pragma Inline (Delete_Line);
 
    --  ANCHOR(`winsertln()',`Insert_Line')
    procedure Insert_Line (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`insertln()')
    pragma Inline (Insert_Line);
 
    --  MANPAGE(`curs_getyx.3x')
    pragma Inline (Insert_Line);
 
    --  MANPAGE(`curs_getyx.3x')
@@ -942,6 +1006,8 @@ include(`ACS_Map')dnl
    procedure Scroll (Win    : in Window  := Standard_Window;
                      Amount : in Integer := 1);
    --  AKA
    procedure Scroll (Win    : in Window  := Standard_Window;
                      Amount : in Integer := 1);
    --  AKA
+   --  ALIAS(`scroll()')
+   --  ALIAS(`scrl()')
    pragma Inline (Scroll);
 
    --  MANPAGE(`curs_delch.3x')
    pragma Inline (Scroll);
 
    --  MANPAGE(`curs_delch.3x')
@@ -949,6 +1015,7 @@ include(`ACS_Map')dnl
    --  ANCHOR(`wdelch()',`Delete_Character')
    procedure Delete_Character (Win : in Window := Standard_Window);
    --  AKA
    --  ANCHOR(`wdelch()',`Delete_Character')
    procedure Delete_Character (Win : in Window := Standard_Window);
    --  AKA
+   --  ALIAS(`delch()')
 
    --  ANCHOR(`mvwdelch()',`Delete_Character')
    procedure Delete_Character
 
    --  ANCHOR(`mvwdelch()',`Delete_Character')
    procedure Delete_Character
@@ -956,6 +1023,7 @@ include(`ACS_Map')dnl
       Line   : in Line_Position;
       Column : in Column_Position);
    --  AKA
       Line   : in Line_Position;
       Column : in Column_Position);
    --  AKA
+   --  ALIAS(`mvdelch()')
    pragma Inline (Delete_Character);
 
    --  MANPAGE(`curs_inch.3x')
    pragma Inline (Delete_Character);
 
    --  MANPAGE(`curs_inch.3x')
@@ -963,6 +1031,7 @@ include(`ACS_Map')dnl
    --  ANCHOR(`winch()',`Peek')
    function Peek (Win : Window := Standard_Window)
      return Attributed_Character;
    --  ANCHOR(`winch()',`Peek')
    function Peek (Win : Window := Standard_Window)
      return Attributed_Character;
+   --  ALIAS(`inch()')
    --  AKA
 
    --  ANCHOR(`mvwinch()',`Peek')
    --  AKA
 
    --  ANCHOR(`mvwinch()',`Peek')
@@ -971,14 +1040,16 @@ include(`ACS_Map')dnl
       Line   : Line_Position;
       Column : Column_Position) return Attributed_Character;
    --  AKA
       Line   : Line_Position;
       Column : Column_Position) return Attributed_Character;
    --  AKA
+   --  ALIAS(`mvinch()')
    --  More Peek's follow, pragma Inline appears later.
 
    --  More Peek's follow, pragma Inline appears later.
 
-   --  MANPAGE(`curs_winch.3x')
+   --  MANPAGE(`curs_insch.3x')
 
    --  ANCHOR(`winsch()',`Insert')
    procedure Insert (Win : in Window := Standard_Window;
                      Ch  : in Attributed_Character);
    --  AKA
 
    --  ANCHOR(`winsch()',`Insert')
    procedure Insert (Win : in Window := Standard_Window;
                      Ch  : in Attributed_Character);
    --  AKA
+   --  ALIAS(`insch()')
 
    --  ANCHOR(`mvwinsch()',`Insert')
    procedure Insert (Win    : in Window := Standard_Window;
 
    --  ANCHOR(`mvwinsch()',`Insert')
    procedure Insert (Win    : in Window := Standard_Window;
@@ -986,8 +1057,9 @@ include(`ACS_Map')dnl
                      Column : in Column_Position;
                      Ch     : in Attributed_Character);
    --  AKA
                      Column : in Column_Position;
                      Ch     : in Attributed_Character);
    --  AKA
+   --  ALIAS(`mvinsch()')
 
 
-   --  MANPAGE(`curs_winch.3x')
+   --  MANPAGE(`curs_insstr.3x')
 
    --  ANCHOR(`winsnstr()',`Insert')
    procedure Insert (Win : in Window := Standard_Window;
 
    --  ANCHOR(`winsnstr()',`Insert')
    procedure Insert (Win : in Window := Standard_Window;
@@ -995,6 +1067,8 @@ include(`ACS_Map')dnl
                      Len : in Integer := -1);
    --  AKA
    --  ALIAS(`winsstr()')
                      Len : in Integer := -1);
    --  AKA
    --  ALIAS(`winsstr()')
+   --  ALIAS(`insnstr()')
+   --  ALIAS(`insstr()')
 
    --  ANCHOR(`mvwinsnstr()',`Insert')
    procedure Insert (Win    : in Window := Standard_Window;
 
    --  ANCHOR(`mvwinsnstr()',`Insert')
    procedure Insert (Win    : in Window := Standard_Window;
@@ -1004,6 +1078,8 @@ include(`ACS_Map')dnl
                      Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwinsstr()')
                      Len    : in Integer := -1);
    --  AKA
    --  ALIAS(`mvwinsstr()')
+   --  ALIAS(`mvinsnstr()')
+   --  ALIAS(`mvinsstr()')
    pragma Inline (Insert);
 
    --  MANPAGE(`curs_instr.3x')
    pragma Inline (Insert);
 
    --  MANPAGE(`curs_instr.3x')
@@ -1014,6 +1090,8 @@ include(`ACS_Map')dnl
                    Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`winstr()')
                    Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`winstr()')
+   --  ALIAS(`innstr()')
+   --  ALIAS(`instr()')
 
    --  ANCHOR(`mvwinnstr()',`Peek')
    procedure Peek (Win    : in  Window := Standard_Window;
 
    --  ANCHOR(`mvwinnstr()',`Peek')
    procedure Peek (Win    : in  Window := Standard_Window;
@@ -1023,6 +1101,8 @@ include(`ACS_Map')dnl
                    Len    : in  Integer := -1);
    --  AKA
    --  ALIAS(`mvwinstr()')
                    Len    : in  Integer := -1);
    --  AKA
    --  ALIAS(`mvwinstr()')
+   --  ALIAS(`mvinnstr()')
+   --  ALIAS(`mvinstr()')
 
    --  MANPAGE(`curs_inchstr.3x')
 
 
    --  MANPAGE(`curs_inchstr.3x')
 
@@ -1032,6 +1112,8 @@ include(`ACS_Map')dnl
                    Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`winchstr()')
                    Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`winchstr()')
+   --  ALIAS(`inchnstr()')
+   --  ALIAS(`inchstr()')
 
    --  ANCHOR(`mvwinchnstr()',`Peek')
    procedure Peek (Win    : in  Window := Standard_Window;
 
    --  ANCHOR(`mvwinchnstr()',`Peek')
    procedure Peek (Win    : in  Window := Standard_Window;
@@ -1041,6 +1123,8 @@ include(`ACS_Map')dnl
                    Len    : in  Integer := -1);
    --  AKA
    --  ALIAS(`mvwinchstr()')
                    Len    : in  Integer := -1);
    --  AKA
    --  ALIAS(`mvwinchstr()')
+   --  ALIAS(`mvinchnstr()')
+   --  ALIAS(`mvinchstr()')
    --  We don't inline the Peek procedures
 
    --  MANPAGE(`curs_getstr.3x')
    --  We don't inline the Peek procedures
 
    --  MANPAGE(`curs_getstr.3x')
@@ -1051,19 +1135,27 @@ include(`ACS_Map')dnl
                   Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`wgetstr()')
                   Len : in  Integer := -1);
    --  AKA
    --  ALIAS(`wgetstr()')
+   --  ALIAS(`getnstr()')
+   --  ALIAS(`getstr()')
+   --  actually getstr is not supported because that results in buffer
+   --  overflows.
 
 
+   --  ANCHOR(`mvwgetnstr()',`Get')
    procedure Get (Win    : in  Window := Standard_Window;
                   Line   : in  Line_Position;
                   Column : in  Column_Position;
                   Str    : out String;
                   Len    : in  Integer := -1);
    --  AKA
    procedure Get (Win    : in  Window := Standard_Window;
                   Line   : in  Line_Position;
                   Column : in  Column_Position;
                   Str    : out String;
                   Len    : in  Integer := -1);
    --  AKA
-   --  not specified in ncurses, should be: mvwgetnstr()
-   --       and mvwgetstr() (which exists)
+   --  ALIAS(`mvwgetstr()')
+   --  ALIAS(`mvgetnstr()')
+   --  ALIAS(`mvgetstr()')
    --  Get is not inlined
 
    --  MANPAGE(`curs_slk.3x')
 
    --  Get is not inlined
 
    --  MANPAGE(`curs_slk.3x')
 
+   --  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set
+
    type Soft_Label_Key_Format is (Three_Two_Three,
                                   Four_Four,
                                   PC_Style,              --  ncurses specific
    type Soft_Label_Key_Format is (Three_Two_Three,
                                   Four_Four,
                                   PC_Style,              --  ncurses specific
@@ -1149,6 +1241,9 @@ include(`ACS_Map')dnl
    --  AKA
    pragma Inline (Set_Soft_Label_Key_Color);
 
    --  AKA
    pragma Inline (Set_Soft_Label_Key_Color);
 
+   --  MANPAGE(`keybound.3x')
+   --  Not Implemented: keybound
+
    --  MANPAGE(`keyok.3x')
 
    --  ANCHOR(`keyok()',`Enable_Key')
    --  MANPAGE(`keyok.3x')
 
    --  ANCHOR(`keyok()',`Enable_Key')
@@ -1167,8 +1262,10 @@ include(`ACS_Map')dnl
 
    --  MANPAGE(`curs_util.3x')
 
 
    --  MANPAGE(`curs_util.3x')
 
-   --  | Not implemented : filter, use_env, putwin, getwin
+   --  | Not implemented : filter, use_env
+   --  | putwin, getwin are in the child package PutWin
    --
    --
+
    --  ANCHOR(`keyname()',`Key_Name')
    procedure Key_Name (Key  : in  Real_Key_Code;
                        Name : out String);
    --  ANCHOR(`keyname()',`Key_Name')
    procedure Key_Name (Key  : in  Real_Key_Code;
                        Name : out String);
@@ -1256,6 +1353,12 @@ include(`ACS_Map')dnl
 
    --  MANPAGE(`curs_color.3x')
 
 
    --  MANPAGE(`curs_color.3x')
 
+   --  COLOR_PAIR
+   --  COLOR_PAIR(n) in C is the same as
+   --  Attributed_Character(Ch => Nul, Color => n, Attr => Normal_Video)
+   --  In C you often see something like c = c | COLOR_PAIR(n);
+   --  This is equivalent to c.Color := n;
+
    --  ANCHOR(`start_color()',`Start_Color')
    procedure Start_Color;
    --  AKA
    --  ANCHOR(`start_color()',`Start_Color')
    procedure Start_Color;
    --  AKA
@@ -1302,7 +1405,6 @@ include(`ACS_Map')dnl
    pragma Inline (Color_Content);
 
    --  MANPAGE(`curs_kernel.3x')
    pragma Inline (Color_Content);
 
    --  MANPAGE(`curs_kernel.3x')
-
    --  | Not implemented: getsyx, setsyx
    --
    type Curses_Mode is (Curses, Shell);
    --  | Not implemented: getsyx, setsyx
    --
    type Curses_Mode is (Curses, Shell);
@@ -1375,6 +1477,73 @@ include(`ACS_Map')dnl
    --  Window or if you pass the Null_Window as argument.
    --  We don't inline this procedure
 
    --  Window or if you pass the Null_Window as argument.
    --  We don't inline this procedure
 
+   --  MANPAGE(`dft_fgbg.3x')
+
+   --  ANCHOR(`use_default_colors()',`Use_Default_Colors')
+   procedure Use_Default_Colors;
+   --  AKA
+   pragma Inline (Use_Default_Colors);
+
+   --  ANCHOR(`assume_default_colors()',`Assume_Default_Colors')
+   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
+                                    Back : Color_Number := Default_Color);
+   --  AKA
+   pragma Inline (Assume_Default_Colors);
+
+   --  MANPAGE(`curs_extend.3x')
+
+   --  ANCHOR(`curses_version()',`Curses_Version')
+   function Curses_Version return String;
+   --  AKA
+
+   --  ANCHOR(`use_extended_names()',`Use_Extended_Names')
+   --  The returnvalue is the previous setting of the flag
+   function Use_Extended_Names (Enable : Boolean) return Boolean;
+   --  AKA
+
+   --  MANPAGE(`curs_scr_dump.3x')
+
+   --  ANCHOR(`scr_dump()',`Screen_Dump_To_File')
+   procedure Screen_Dump_To_File (Filename : in String);
+   --  AKA
+
+   --  ANCHOR(`scr_restore()',`Screen_Restore_From_File')
+   procedure Screen_Restore_From_File (Filename : in String);
+   --  AKA
+
+   --  ANCHOR(`scr_init()',`Screen_Init_From_File')
+   procedure Screen_Init_From_File (Filename : in String);
+   --  AKA
+
+   --  ANCHOR(`scr_set()',`Screen_Set_File')
+   procedure Screen_Set_File (Filename : in String);
+   --  AKA
+
+   --  MANPAGE(`curs_print.3x')
+   --  Not implemented:  mcprint
+
+   --  MANPAGE(`curs_printw.3x')
+   --  Not implemented: printw,  wprintw, mvprintw, mvwprintw, vwprintw,
+   --                   vw_printw
+   --  Please use the Ada style Text_IO child packages for formatted
+   --  printing. It doesn't make a lot of sense to map the printf style
+   --  C functions to Ada.
+
+   --  MANPAGE(`curs_scanw.3x')
+   --  Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw
+
+
+   --  MANPAGE(`resizeterm.3x')
+   --  Not Implemented: resizeterm
+
+   --  MANPAGE(`wresize.3x')
+
+   --  ANCHOR(`wresize()',`Resize')
+   procedure Resize (Win               : Window := Standard_Window;
+                     Number_Of_Lines   : Line_Count;
+                     Number_Of_Columns : Column_Count);
+   --  AKA
+
 private
    type Window is new System.Storage_Elements.Integer_Address;
    Null_Window : constant Window := 0;
 private
    type Window is new System.Storage_Elements.Integer_Address;
    Null_Window : constant Window := 0;
index d9cf0cf738aacfdacdb301ee27e9d46ab1c28105..23cf94f80f05a3b2497ad93d5ee93a27d5ec0812 100644 (file)
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-#  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+#  Author:  Juergen Pfeifer, 1996
+#  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 #
 #  Version Control
 #
 #  Version Control
-#  $Revision: 1.25 $
+#  $Revision: 1.29 $
 #
 .SUFFIXES:
 
 #
 .SUFFIXES:
 
@@ -84,9 +85,9 @@ ALIB         = @cf_ada_package@
 ABASE        = $(ALIB)-curses
 
 CARGS        =-cargs $(ADAFLAGS)
 ABASE        = $(ALIB)-curses
 
 CARGS        =-cargs $(ADAFLAGS)
-LARGS        =-largs -L../../lib $(LD_FLAGS) -lAdaCurses -lncurses@LIB_SUFFIX@
-
-PROGS        = tour rain
+LARGS        =-largs -L../../lib @TEST_ARGS@ $(LD_FLAGS) -lAdaCurses @EXTRA_LIBS@
+PROGS        = tour rain ncurses 
 
 TOUR_OBJS    = tour.o sample.o sample-curses_demo.o sample-explanation.o       \
                sample-form_demo.o sample-function_key_setting.o                \
 
 TOUR_OBJS    = tour.o sample.o sample-curses_demo.o sample-explanation.o       \
                sample-form_demo.o sample-function_key_setting.o                \
@@ -98,7 +99,19 @@ TOUR_OBJS    =       tour.o sample.o sample-curses_demo.o sample-explanation.o       \
 
 RAIN_OBJS    = rain.o status.o
 
 
 RAIN_OBJS    = rain.o status.o
 
-all ::  tour$x rain$x
+NCURSES_OBJS = ncurses.o               ncurses2-getch_test.o \
+       ncurses2-acs_and_scroll.o       ncurses2-m.o \
+       ncurses2-acs_display.o          ncurses2-menu_test.o \
+       ncurses2-attr_test.o            ncurses2-overlap_test.o \
+       ncurses2-color_edit.o           ncurses2-slk_test.o \
+       ncurses2-color_test.o           ncurses2-test_sgr_attributes.o \
+       ncurses2-demo_forms.o           ncurses2-trace_set.o \
+       ncurses2-demo_pad.o             ncurses2-util.o \
+       ncurses2-demo_panels.o          ncurses2.o \
+       ncurses2-flushinp_test.o
+
+
+all ::  tour$x rain$x ncurses$x
        @
 
 sources :
        @
 
 sources :
@@ -113,6 +126,9 @@ uninstall \
 uninstall.libs ::
        @
 
 uninstall.libs ::
        @
 
+ncurses$x :
+       $(ADAMAKE) $(ADAMAKEFLAGS) ncurses $(CARGS) $(LARGS)
+
 tour$x :       explain.msg
        $(ADAMAKE) $(ADAMAKEFLAGS) tour $(CARGS) $(LARGS)
 
 tour$x :       explain.msg
        $(ADAMAKE) $(ADAMAKEFLAGS) tour $(CARGS) $(LARGS)
 
@@ -126,7 +142,8 @@ mostlyclean:
        @
 
 clean :: mostlyclean
        @
 
 clean :: mostlyclean
-       rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] explain.msg
+       rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] \
+       explain.msg trace screendump 
 
 distclean :: clean
        rm -f Makefile
 
 distclean :: clean
        rm -f Makefile
diff --git a/Ada95/samples/ncurses.adb b/Ada95/samples/ncurses.adb
new file mode 100644 (file)
index 0000000..19f658d
--- /dev/null
@@ -0,0 +1,47 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.m; use ncurses2.m;
+with GNAT.OS_Lib; use GNAT.OS_Lib;
+
+procedure ncurses is
+begin
+   OS_Exit (main);
+end ncurses;
diff --git a/Ada95/samples/ncurses2-acs_and_scroll.adb b/Ada95/samples/ncurses2-acs_and_scroll.adb
new file mode 100644 (file)
index 0000000..65c2939
--- /dev/null
@@ -0,0 +1,722 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+--  Windows and scrolling tester.
+--  Demonstrate windows
+
+with Ada.Strings.Fixed;
+with Ada.Strings;
+
+with ncurses2.util; use ncurses2.util;
+with ncurses2.genericPuts;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+with Terminal_Interface.Curses.PutWin; use Terminal_Interface.Curses.PutWin;
+
+with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO;
+with Ada.Streams; use Ada.Streams;
+
+procedure ncurses2.acs_and_scroll is
+
+
+   Macro_Quit   : constant Key_Code := Character'Pos ('Q') mod 16#20#;
+   Macro_Escape : constant Key_Code := Character'Pos ('[') mod 16#20#;
+
+   Quit : constant Key_Code := CTRL ('Q');
+   Escape : constant Key_Code := CTRL ('[');
+
+
+   Botlines : constant Line_Position := 4;
+
+   type pair is record
+      y : Line_Position;
+      x : Column_Position;
+   end record;
+
+   type Frame;
+   type FrameA is access Frame;
+
+   f : File_Type;
+   dumpfile : constant String := "screendump";
+
+   procedure Outerbox (ul, lr : pair; onoff : Boolean);
+   function  HaveKeyPad (w : Window) return Boolean;
+   function  HaveScroll (w : Window) return Boolean;
+   procedure newwin_legend (curpw : Window);
+   procedure transient (curpw : Window; msg : String);
+   procedure newwin_report (win : Window := Standard_Window);
+   procedure selectcell (uli : Line_Position;
+                         ulj : Column_Position;
+                         lri : Line_Position;
+                         lrj : Column_Position;
+                         p   : out pair;
+                         b   : out Boolean);
+   function  getwindow return Window;
+   procedure newwin_move (win : Window;
+                          dy  : Line_Position;
+                          dx  : Column_Position);
+   function delete_framed (fp : FrameA; showit : Boolean) return FrameA;
+
+   use Ada.Streams.Stream_IO;
+
+
+   --  A linked list
+   --  I  wish there was a standard library linked list. Oh well.
+   type Frame is record
+      next, last : FrameA;
+      do_scroll : Boolean;
+      do_keypad : Boolean;
+      wind : Window;
+   end record;
+
+   current : FrameA;
+
+   c : Key_Code;
+
+   procedure Outerbox (ul, lr : pair; onoff : Boolean) is
+   begin
+      if onoff then
+         --  Note the fix of an obscure bug
+         --  try making a 1x1 box then enlarging it, the is a blank
+         --  upper left corner!
+         Add (Line => ul.y - 1, Column => ul.x - 1,
+             Ch => ACS_Map (ACS_Upper_Left_Corner));
+         Add (Line => ul.y - 1, Column => lr.x + 1,
+             Ch => ACS_Map (ACS_Upper_Right_Corner));
+         Add (Line => lr.y + 1, Column => lr.x + 1,
+             Ch => ACS_Map (ACS_Lower_Right_Corner));
+         Add (Line => lr.y + 1, Column => ul.x - 1,
+             Ch => ACS_Map (ACS_Lower_Left_Corner));
+
+         Move_Cursor (Line => ul.y - 1, Column => ul.x);
+         Horizontal_Line (Line_Symbol => ACS_Map (ACS_Horizontal_Line),
+                          Line_Size => Integer (lr.x - ul.x) + 1);
+         Move_Cursor (Line => ul.y, Column => ul.x - 1);
+         Vertical_Line (Line_Symbol => ACS_Map (ACS_Vertical_Line),
+                        Line_Size => Integer (lr.y - ul.y) + 1);
+         Move_Cursor (Line => lr.y + 1, Column => ul.x);
+         Horizontal_Line (Line_Symbol => ACS_Map (ACS_Horizontal_Line),
+                          Line_Size => Integer (lr.x - ul.x) + 1);
+         Move_Cursor (Line => ul.y, Column => lr.x + 1);
+         Vertical_Line (Line_Symbol => ACS_Map (ACS_Vertical_Line),
+                        Line_Size => Integer (lr.y - ul.y) + 1);
+      else
+         Add (Line => ul.y - 1, Column => ul.x - 1, Ch => ' ');
+         Add (Line => ul.y - 1, Column => lr.x + 1, Ch => ' ');
+         Add (Line => lr.y + 1, Column => lr.x + 1, Ch => ' ');
+         Add (Line => lr.y + 1, Column => ul.x - 1, Ch => ' ');
+
+         Move_Cursor (Line => ul.y - 1, Column => ul.x);
+         Horizontal_Line (Line_Symbol => Blank2,
+                          Line_Size => Integer (lr.x - ul.x) + 1);
+         Move_Cursor (Line => ul.y, Column => ul.x - 1);
+         Vertical_Line (Line_Symbol => Blank2,
+                        Line_Size => Integer (lr.y - ul.y) + 1);
+         Move_Cursor (Line => lr.y + 1, Column => ul.x);
+         Horizontal_Line (Line_Symbol => Blank2,
+                          Line_Size => Integer (lr.x - ul.x) + 1);
+         Move_Cursor (Line => ul.y, Column => lr.x + 1);
+         Vertical_Line (Line_Symbol => Blank2,
+                        Line_Size => Integer (lr.y - ul.y) + 1);
+      end if;
+   end Outerbox;
+
+   function HaveKeyPad (w : Window) return Boolean is
+   begin
+      return Get_KeyPad_Mode (w);
+   exception
+      when Curses_Exception => return False;
+   end HaveKeyPad;
+
+   function HaveScroll (w : Window) return Boolean is
+   begin
+      return Scrolling_Allowed (w);
+   exception
+      when Curses_Exception => return False;
+   end HaveScroll;
+
+
+   procedure newwin_legend (curpw : Window) is
+
+      package p is new genericPuts (200);
+      use p;
+      use p.BS;
+
+      type string_a is access String;
+
+      type rrr is record
+         msg : string_a;
+         code : Integer range 0 .. 3;
+      end record;
+
+      legend : constant array (Positive range <>) of rrr :=
+        (
+         (
+          new String'("^C = create window"), 0
+          ),
+         (
+          new String'("^N = next window"), 0
+          ),
+         (
+          new String'("^P = previous window"), 0
+          ),
+         (
+          new String'("^F = scroll forward"), 0
+          ),
+         (
+          new String'("^B = scroll backward"), 0
+          ),
+         (
+          new String'("^K = keypad(%s)"), 1
+          ),
+         (
+          new String'("^S = scrollok(%s)"), 2
+          ),
+         (
+          new String'("^W = save window to file"), 0
+          ),
+         (
+          new String'("^R = restore window"), 0
+          ),
+         (
+          new String'("^X = resize"), 0
+          ),
+         (
+          new String'("^Q%s = exit"), 3
+          )
+         );
+
+      buf : Bounded_String;
+      do_keypad : Boolean := HaveKeyPad (curpw);
+      do_scroll : Boolean := HaveScroll (curpw);
+
+      pos : Natural;
+
+      mypair : pair;
+
+      use Ada.Strings.Fixed;
+
+   begin
+      Move_Cursor (Line => Lines - 4, Column => 0);
+      for n in legend'Range loop
+         pos := Ada.Strings.Fixed.Index (Source => legend (n).msg.all,
+                                         Pattern => "%s");
+         --  buf := (others => ' ');
+         buf := To_Bounded_String (legend (n).msg.all);
+         case legend (n).code is
+            when 0 => null;
+            when 1 =>
+               if do_keypad then
+                  Replace_Slice (buf, pos, pos + 1, "yes");
+               else
+                  Replace_Slice (buf, pos, pos + 1, "no");
+               end if;
+            when 2 =>
+               if do_scroll then
+                  Replace_Slice (buf, pos, pos + 1, "yes");
+               else
+                  Replace_Slice (buf, pos, pos + 1, "no");
+               end if;
+            when 3 =>
+               if do_keypad then
+                  Replace_Slice (buf, pos, pos + 1, "/ESC");
+               else
+                  Replace_Slice (buf, pos, pos + 1, "");
+               end if;
+         end case;
+         Get_Cursor_Position (Line => mypair.y, Column => mypair.x);
+         if Columns < mypair.x + 3 + Column_Position (Length (buf)) then
+            Add (Ch => newl);
+         elsif n /= 1 then -- n /= legen'First
+            Add (Str => ", ");
+         end if;
+         myAdd (Str => buf);
+      end loop;
+      Clear_To_End_Of_Line;
+   end newwin_legend;
+
+
+   procedure transient (curpw : Window; msg : String) is
+   begin
+      newwin_legend (curpw);
+      if msg /= "" then
+         Add (Line => Lines - 1, Column => 0, Str => msg);
+         Refresh;
+         Nap_Milli_Seconds (1000);
+      end if;
+
+      Move_Cursor (Line => Lines - 1, Column => 0);
+
+      if HaveKeyPad (curpw) then
+         Add (Str => "Non-arrow");
+      else
+         Add (Str => "All other");
+      end if;
+      Add (str => " characters are echoed, window should ");
+      if not HaveScroll (curpw) then
+         Add (Str => "not ");
+      end if;
+      Add (str => "scroll");
+
+      Clear_To_End_Of_Line;
+   end transient;
+
+
+   procedure newwin_report (win : Window := Standard_Window) is
+      y : Line_Position;
+      x : Column_Position;
+      use Int_IO;
+      tmp2a : String (1 .. 2);
+      tmp2b : String (1 .. 2);
+   begin
+      if win /= Standard_Window then
+         transient (win, "");
+      end if;
+      Get_Cursor_Position (win, y, x);
+      Move_Cursor (Line => Lines - 1, Column => Columns - 17);
+      Put (tmp2a, Integer (y));
+      Put (tmp2b, Integer (x));
+      Add (Str => "Y = " & tmp2a & " X = " & tmp2b);
+      if win /= Standard_Window then
+         Refresh;
+      else
+         Move_Cursor (win, y, x);
+      end if;
+   end newwin_report;
+
+   procedure selectcell (uli : Line_Position;
+                         ulj : Column_Position;
+                         lri : Line_Position;
+                         lrj : Column_Position;
+                         p   : out pair;
+                         b   : out Boolean) is
+      c : Key_Code;
+      res : pair;
+      i : Line_Position := 0;
+      j : Column_Position := 0;
+      si : Line_Position := lri - uli + 1;
+      sj : Column_Position := lrj - ulj + 1;
+   begin
+      res.y := uli;
+      res.x := ulj;
+      loop
+         Move_Cursor (Line => uli + i, Column => ulj + j);
+         newwin_report;
+
+         c := Getchar;
+         case c is
+            when
+              Macro_Quit   |
+              Macro_Escape =>
+               --  on the same line macro calls interfere due to the # comment
+               --  this is needed because keypad off affects all windows.
+               --  try removing the ESCAPE and see what happens.
+               b := False;
+               return;
+            when KEY_UP =>
+               i := i + si - 1;
+               --  same as  i := i - 1 because of Modulus arithetic,
+               --  on Line_Position, which is a Natural
+               --  the C version uses this form too, interestingly.
+            when KEY_DOWN =>
+               i := i + 1;
+            when KEY_LEFT =>
+               j := j + sj - 1;
+            when KEY_RIGHT =>
+               j := j + 1;
+            when Key_Mouse =>
+               declare
+                  event : Mouse_Event;
+                  y : Line_Position;
+                  x : Column_Position;
+                  Button : Mouse_Button;
+                  State : Button_State;
+
+               begin
+                  event := Get_Mouse;
+                  Get_Event (Event => event,
+                             Y => y,
+                             X => x,
+                             Button => Button,
+                             State  => State);
+                  if y > uli and x > ulj then
+                     i := y - uli;
+                     j := x - ulj;
+                     --  same as when others =>
+                     res.y := uli + i;
+                     res.x := ulj + j;
+                     p := res;
+                     b := True;
+                     return;
+                  else
+                     Beep;
+                  end if;
+               end;
+            when others =>
+               res.y := uli + i;
+               res.x := ulj + j;
+               p := res;
+               b := True;
+               return;
+         end case;
+         i := i mod si;
+         j := j mod sj;
+      end loop;
+   end selectcell;
+
+
+   function getwindow return Window is
+      rwindow : Window;
+      ul, lr : pair;
+      result : Boolean;
+   begin
+      Move_Cursor (Line => 0, Column => 0);
+      Clear_To_End_Of_Line;
+      Add (Str => "Use arrows to move cursor, anything else to mark corner 1");
+      Refresh;
+      selectcell (2, 1, Lines - Botlines - 2, Columns - 2, ul, result);
+      if not result then
+         return Null_Window;
+      end if;
+      Add (Line => ul.y - 1, Column => ul.x - 1,
+           Ch => ACS_Map (ACS_Upper_Left_Corner));
+      Move_Cursor (Line => 0, Column => 0);
+      Clear_To_End_Of_Line;
+      Add (Str => "Use arrows to move cursor, anything else to mark corner 2");
+      Refresh;
+      selectcell (ul.y, ul.x, Lines - Botlines - 2, Columns - 2, lr, result);
+      if not result then
+         return Null_Window;
+      end if;
+
+      rwindow := Sub_Window (Number_Of_Lines => lr.y - ul.y + 1,
+                             Number_Of_Columns => lr.x - ul.x + 1,
+                             First_Line_Position => ul.y,
+                             First_Column_Position => ul.x);
+
+      Outerbox (ul, lr, True);
+      Refresh;
+
+      Refresh (rwindow);
+
+      Move_Cursor (Line => 0, Column => 0);
+      Clear_To_End_Of_Line;
+      return rwindow;
+   end getwindow;
+
+
+   procedure newwin_move (win : Window;
+                          dy  : Line_Position;
+                          dx  : Column_Position) is
+      cur_y, max_y : Line_Position;
+      cur_x, max_x : Column_Position;
+   begin
+      Get_Cursor_Position (win, cur_y, cur_x);
+      Get_Size (win, max_y, max_x);
+      cur_x := Column_Position'Min (Column_Position'Max (cur_x + dx, 0),
+                                    max_x - 1);
+      cur_y := Line_Position'Min (Line_Position'Max (cur_y + dy, 0),
+                                  max_y - 1);
+
+      Move_Cursor (win, Line => cur_y, Column => cur_x);
+   end newwin_move;
+
+   function delete_framed (fp : FrameA; showit : Boolean) return FrameA is
+      np : FrameA;
+   begin
+      fp.last.next := fp.next;
+      fp.next.last := fp.last;
+
+      if showit then
+         Erase (fp.wind);
+         Refresh (fp.wind);
+      end if;
+      Delete (fp.wind);
+
+      if fp = fp.next then
+         np := null;
+      else
+         np := fp.next;
+      end if;
+      --  TODO free(fp);
+      return np;
+   end delete_framed;
+
+   Mask : Event_Mask := No_Events;
+   Mask2 : Event_Mask;
+
+   usescr : Window;
+
+begin
+   if Has_Mouse then
+      Register_Reportable_Event (
+                                 Button => Left,
+                                 State => Clicked,
+                                 Mask => Mask);
+      Mask2 := Start_Mouse (Mask);
+   end if;
+   c := CTRL ('C');
+   Set_Raw_Mode (SwitchOn => True);
+   loop
+      transient (Standard_Window, "");
+      case c is
+         when Character'Pos ('c') mod 16#20# => --  Ctrl('c')
+            declare
+               neww : FrameA := new Frame'(null, null, False, False,
+                                           Null_Window);
+            begin
+               neww.wind := getwindow;
+               if neww.wind = Null_Window  then
+                  exit;
+                  --  was goto breakout; ha ha ha
+               else
+
+                  if current = null  then
+                     neww.next := neww;
+                     neww.last := neww;
+                  else
+                     neww.next := current.next;
+                     neww.last := current;
+                     neww.last.next := neww;
+                     neww.next.last := neww;
+                  end if;
+                  current := neww;
+
+                  Set_KeyPad_Mode (current.wind, True);
+                  current.do_keypad := HaveKeyPad (current.wind);
+                  current.do_scroll := HaveScroll (current.wind);
+               end if;
+            end;
+         when Character'Pos ('N') mod 16#20#  => --  Ctrl('N')
+            if current /= null then
+               current := current.next;
+            end if;
+         when Character'Pos ('P') mod 16#20#  => --  Ctrl('P')
+            if current /= null then
+               current := current.last;
+            end if;
+         when Character'Pos ('F') mod 16#20#  => --  Ctrl('F')
+            if current /= null and HaveScroll (current.wind) then
+               Scroll (current.wind, 1);
+            end if;
+         when Character'Pos ('B') mod 16#20#  => --  Ctrl('B')
+            if current /= null and HaveScroll (current.wind) then
+            --  The C version of Scroll may return ERR which is ignored
+            --  we need to avoid the exception
+            --  with the 'and HaveScroll(current.wind)'
+               Scroll (current.wind, -1);
+            end if;
+         when Character'Pos ('K') mod 16#20#  => --  Ctrl('K')
+            if current /= null then
+               current.do_keypad := not current.do_keypad;
+               Set_KeyPad_Mode (current.wind, current.do_keypad);
+            end if;
+         when Character'Pos ('S') mod 16#20#  => --  Ctrl('S')
+            if current /= null then
+               current.do_scroll := not current.do_scroll;
+               Allow_Scrolling (current.wind, current.do_scroll);
+            end if;
+         when Character'Pos ('W') mod 16#20#  => --  Ctrl('W')
+            if current /= current.next then
+               Create (f, Name => dumpfile); -- TODO error checking
+               if not Is_Open (f) then
+                  raise Curses_Exception;
+               end if;
+               Put_Window (current.wind, f);
+               Close (f);
+               current := delete_framed (current, True);
+            end if;
+         when Character'Pos ('R') mod 16#20#  => --  Ctrl('R')
+            declare
+               neww : FrameA := new Frame'(null, null, False, False,
+                                           Null_Window);
+            begin
+               Open (f, Mode => In_File, Name => dumpfile);
+               neww := new Frame'(null, null, False, False, Null_Window);
+
+               neww.next := current.next;
+               neww.last := current;
+               neww.last.next := neww;
+               neww.next.last := neww;
+
+               neww.wind := Get_Window (f);
+               Close (f);
+
+               Refresh (neww.wind);
+            end;
+         when Character'Pos ('X') mod 16#20# => --  Ctrl('X')
+            if current /= null then
+               declare
+                  tmp, ul, lr : pair;
+                  mx : Column_Position;
+                  my : Line_Position;
+                  tmpbool : Boolean;
+               begin
+                  Move_Cursor (Line => 0, Column => 0);
+                  Clear_To_End_Of_Line;
+                  Add (Str => "Use arrows to move cursor, anything else " &
+                       "to mark new corner");
+                  Refresh;
+
+                  Get_Window_Position (current.wind, ul.y, ul.x);
+
+                  selectcell (ul.y, ul.x, Lines - Botlines - 2, Columns - 2,
+                              tmp, tmpbool);
+                  if not tmpbool then
+                     --  the C version had a goto. I refuse gotos.
+                     Beep;
+                  else
+                     Get_Size (current.wind, lr.y, lr.x);
+                     lr.y := lr.y + ul.y - 1;
+                     lr.x := lr.x + ul.x - 1;
+                     Outerbox (ul, lr, False);
+                     Refresh_Without_Update;
+
+                     Get_Size (current.wind, my, mx);
+                     if my > tmp.y - ul.y then
+                        Get_Cursor_Position (current.wind, lr.y, lr.x);
+                        Move_Cursor (current.wind, tmp.y - ul.y + 1, 0);
+                        Clear_To_End_Of_Screen (current.wind);
+                        Move_Cursor (current.wind, lr.y, lr.x);
+                     end if;
+                     if mx > tmp.x - ul.x then
+                        for i in 0 .. my - 1 loop
+                           Move_Cursor (current.wind, i, tmp.x - ul.x + 1);
+                           Clear_To_End_Of_Line (current.wind);
+                        end loop;
+                     end if;
+                     Refresh_Without_Update (current.wind);
+
+                     lr := tmp;
+                     --  The C version passes invalid args to resize
+                     --  which returns an ERR. For Ada we avoid the exception.
+                     if lr.y /= ul.y and lr.x /= ul.x then
+                        Resize (current.wind, lr.y - ul.y + 0,
+                                lr.x - ul.x + 0);
+                     end if;
+
+                     Get_Window_Position (current.wind, ul.y, ul.x);
+                     Get_Size (current.wind, lr.y, lr.x);
+                     lr.y := lr.y + ul.y - 1;
+                     lr.x := lr.x + ul.x - 1;
+                     Outerbox (ul, lr, True);
+                     Refresh_Without_Update;
+
+                     Refresh_Without_Update (current.wind);
+                     Move_Cursor (Line => 0, Column => 0);
+                     Clear_To_End_Of_Line;
+                     Update_Screen;
+                  end if;
+               end;
+            end if;
+         when Key_F10  =>
+            declare tmp : pair; tmpbool : Boolean;
+            begin
+               --  undocumented --- use this to test area clears
+               selectcell (0, 0, Lines - 1, Columns - 1, tmp, tmpbool);
+               Clear_To_End_Of_Screen;
+               Refresh;
+            end;
+         when Key_Cursor_Up =>
+            newwin_move (current.wind, -1, 0);
+         when Key_Cursor_Down  =>
+            newwin_move (current.wind, 1, 0);
+         when Key_Cursor_Left  =>
+            newwin_move (current.wind, 0, -1);
+         when Key_Cursor_Right  =>
+            newwin_move (current.wind, 0, 1);
+         when Key_Backspace | Key_Delete_Char  =>
+            declare
+               y : Line_Position;
+               x : Column_Position;
+               tmp : Line_Position;
+            begin
+               Get_Cursor_Position (current.wind, y, x);
+               --  x := x - 1;
+               --  I got tricked by the -1 = Max_Natural - 1 result
+               --  y := y - 1;
+               if not (x = 0 and y = 0) then
+                  if x = 0 then
+                     y := y - 1;
+                     Get_Size (current.wind, tmp, x);
+                  end if;
+                  x := x - 1;
+                  Delete_Character (current.wind, y, x);
+               end if;
+            end;
+         when others =>
+            --  TODO c = '\r' ?
+            if current /= null then
+               declare
+               begin
+                  Add (current.wind, Ch => Code_To_Char (c));
+               exception
+                  when Curses_Exception => null;
+                     --  this happens if we are at the
+                     --  lower right of a window and add a character.
+               end;
+            else
+               Beep;
+            end if;
+      end case;
+      newwin_report (current.wind);
+      if current /= null then
+         usescr := current.wind;
+      else
+         usescr := Standard_Window;
+      end if;
+      Refresh (usescr);
+      c := Getchar (usescr);
+      exit when c = Quit or (c = Escape and HaveKeyPad (usescr));
+      --  TODO when does c = ERR happen?
+   end loop;
+
+   --  TODO while current /= null loop
+   --  current := delete_framed(current, False);
+   --  end loop;
+
+   Allow_Scrolling (Mode => True);
+
+   End_Mouse;
+   Set_Raw_Mode (SwitchOn => True);
+   Erase;
+   End_Windows;
+
+end ncurses2.acs_and_scroll;
diff --git a/Ada95/samples/ncurses2-acs_and_scroll.ads b/Ada95/samples/ncurses2-acs_and_scroll.ads
new file mode 100644 (file)
index 0000000..79e4862
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.acs_and_scroll;
diff --git a/Ada95/samples/ncurses2-acs_display.adb b/Ada95/samples/ncurses2-acs_display.adb
new file mode 100644 (file)
index 0000000..ab07213
--- /dev/null
@@ -0,0 +1,231 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with ncurses2.genericPuts;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Ada.Strings.Unbounded;
+with Ada.Strings.Fixed;
+
+procedure ncurses2.acs_display is
+   use Int_IO;
+
+   procedure show_upper_chars (first : Integer);
+   function  show_1_acs (N    : Integer;
+                         name : String;
+                         code :  Attributed_Character)
+                        return Integer;
+   procedure show_acs_chars;
+
+
+   procedure show_upper_chars (first : Integer)  is
+      C1 : Boolean := (first = 128);
+      last : Integer := first + 31;
+      package p is new ncurses2.genericPuts (200);
+      use p;
+      use p.BS;
+      use Ada.Strings.Unbounded;
+
+      tmpa : Unbounded_String;
+      tmpb : BS.Bounded_String;
+   begin
+      Erase;
+      Switch_Character_Attribute
+        (Attr => (Bold_Character => True, others => False));
+      Move_Cursor (Line => 0, Column => 20);
+      tmpa := To_Unbounded_String ("Display of ");
+      if C1 then
+         tmpa := tmpa & "C1";
+      else
+         tmpa := tmpa & "GR";
+      end if;
+      tmpa := tmpa & " Character Codes ";
+      myPut (tmpb, first);
+      Append (tmpa, To_String (tmpb));
+      Append (tmpa, " to ");
+      myPut (tmpb, last);
+      Append (tmpa, To_String (tmpb));
+      Add (Str => To_String (tmpa));
+      Switch_Character_Attribute
+        (On => False,
+         Attr => (Bold_Character => True, others => False));
+      Refresh;
+
+      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);
+            tmp3 : String (1 .. 3);
+            tmpx : String (1 .. Integer (Columns / 4));
+            reply : Key_Code;
+         begin
+            Put (tmp3, code);
+            myPut (tmpb, code, 16);
+            tmpa := To_Unbounded_String (tmp3 & " (" & To_String (tmpb) & ')');
+
+            Ada.Strings.Fixed.Move (To_String (tmpa), tmpx,
+                                    Justify => Ada.Strings.Right);
+            Add (Line => row, Column => col,
+                 Str => tmpx & ' ' & ':' & ' ');
+            if C1 then
+               Set_NoDelay_Mode (Mode => True);
+            end if;
+            Add_With_Immediate_Echo (Ch => Code_To_Char (Key_Code (code)));
+            --  TODO check this
+            if C1 then
+               reply := Getchar;
+               while reply /= Key_None loop
+                  Add (Ch => Code_To_Char (reply));
+                  Nap_Milli_Seconds (10);
+                  reply := Getchar;
+               end loop;
+               Set_NoDelay_Mode (Mode => False);
+            end if;
+         end;
+      end loop;
+   end show_upper_chars;
+
+   function show_1_acs (N    : Integer;
+                        name : String;
+                        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) *
+                                                Integer (Columns) / 2);
+      tmpx : String (1 .. Integer (Columns) / 3);
+   begin
+      Ada.Strings.Fixed.Move (name, tmpx,
+                              Justify => Ada.Strings.Right,
+                              Drop => Ada.Strings.Left);
+      Add (Line => row, Column => col, Str => tmpx & ' ' & ':' & ' ');
+      --  we need more room than C because our identifiers are longer
+      --  22 chars actually
+      Add (Ch => code);
+      return N + 1;
+   end show_1_acs;
+
+   procedure show_acs_chars is
+      n : Integer;
+   begin
+      Erase;
+      Switch_Character_Attribute
+        (Attr => (Bold_Character => True, others => False));
+      Add (Line => 0, Column => 20,
+           Str => "Display of the ACS Character Set");
+      Switch_Character_Attribute (On => False,
+                                  Attr => (Bold_Character => True,
+                                           others => False));
+      Refresh;
+
+      --  the following is useful to generate the below
+      --  grep '^[ ]*ACS_' ../src/terminal_interface-curses.ads |
+      --  awk '{print  "n := show_1_acs(n, \""$1"\", ACS_Map("$1"));"}'
+
+      n := show_1_acs (0, "ACS_Upper_Left_Corner",
+                       ACS_Map (ACS_Upper_Left_Corner));
+      n := show_1_acs (n, "ACS_Lower_Left_Corner",
+                       ACS_Map (ACS_Lower_Left_Corner));
+      n := show_1_acs (n, "ACS_Upper_Right_Corner",
+                       ACS_Map (ACS_Upper_Right_Corner));
+      n := show_1_acs (n, "ACS_Lower_Right_Corner",
+                       ACS_Map (ACS_Lower_Right_Corner));
+      n := show_1_acs (n, "ACS_Left_Tee", ACS_Map (ACS_Left_Tee));
+      n := show_1_acs (n, "ACS_Right_Tee", ACS_Map (ACS_Right_Tee));
+      n := show_1_acs (n, "ACS_Bottom_Tee", ACS_Map (ACS_Bottom_Tee));
+      n := show_1_acs (n, "ACS_Top_Tee", ACS_Map (ACS_Top_Tee));
+      n := show_1_acs (n, "ACS_Horizontal_Line",
+                       ACS_Map (ACS_Horizontal_Line));
+      n := show_1_acs (n, "ACS_Vertical_Line", ACS_Map (ACS_Vertical_Line));
+      n := show_1_acs (n, "ACS_Plus_Symbol", ACS_Map (ACS_Plus_Symbol));
+      n := show_1_acs (n, "ACS_Scan_Line_1", ACS_Map (ACS_Scan_Line_1));
+      n := show_1_acs (n, "ACS_Scan_Line_9", ACS_Map (ACS_Scan_Line_9));
+      n := show_1_acs (n, "ACS_Diamond", ACS_Map (ACS_Diamond));
+      n := show_1_acs (n, "ACS_Checker_Board", ACS_Map (ACS_Checker_Board));
+      n := show_1_acs (n, "ACS_Degree", ACS_Map (ACS_Degree));
+      n := show_1_acs (n, "ACS_Plus_Minus", ACS_Map (ACS_Plus_Minus));
+      n := show_1_acs (n, "ACS_Bullet", ACS_Map (ACS_Bullet));
+      n := show_1_acs (n, "ACS_Left_Arrow", ACS_Map (ACS_Left_Arrow));
+      n := show_1_acs (n, "ACS_Right_Arrow", ACS_Map (ACS_Right_Arrow));
+      n := show_1_acs (n, "ACS_Down_Arrow", ACS_Map (ACS_Down_Arrow));
+      n := show_1_acs (n, "ACS_Up_Arrow", ACS_Map (ACS_Up_Arrow));
+      n := show_1_acs (n, "ACS_Board_Of_Squares",
+                       ACS_Map (ACS_Board_Of_Squares));
+      n := show_1_acs (n, "ACS_Lantern", ACS_Map (ACS_Lantern));
+      n := show_1_acs (n, "ACS_Solid_Block", ACS_Map (ACS_Solid_Block));
+      n := show_1_acs (n, "ACS_Scan_Line_3", ACS_Map (ACS_Scan_Line_3));
+      n := show_1_acs (n, "ACS_Scan_Line_7", ACS_Map (ACS_Scan_Line_7));
+      n := show_1_acs (n, "ACS_Less_Or_Equal", ACS_Map (ACS_Less_Or_Equal));
+      n := show_1_acs (n, "ACS_Greater_Or_Equal",
+                       ACS_Map (ACS_Greater_Or_Equal));
+      n := show_1_acs (n, "ACS_PI", ACS_Map (ACS_PI));
+      n := show_1_acs (n, "ACS_Not_Equal", ACS_Map (ACS_Not_Equal));
+      n := show_1_acs (n, "ACS_Sterling", ACS_Map (ACS_Sterling));
+
+   end show_acs_chars;
+
+   c1 : Key_Code;
+   c : Character := 'a';
+begin
+   loop
+      case c is
+         when 'a' =>
+            show_acs_chars;
+         when '0' | '1' | '2' | '3' =>
+            show_upper_chars (ctoi (c) * 32 + 128);
+         when others =>
+            null;
+      end case;
+      Add (Line => Lines - 3, Column => 0,
+           Str => "Note: ANSI terminals may not display C1 characters.");
+      Add (Line => Lines - 2, Column => 0,
+           Str => "Select: a=ACS, 0=C1, 1,2,3=GR characters, q=quit");
+      Refresh;
+      c1 := Getchar;
+      c := Code_To_Char (c1);
+      exit when c = 'q' or c = 'x';
+   end loop;
+   Pause;
+   Erase;
+   End_Windows;
+end ncurses2.acs_display;
+
diff --git a/Ada95/samples/ncurses2-acs_display.ads b/Ada95/samples/ncurses2-acs_display.ads
new file mode 100644 (file)
index 0000000..4e616c5
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.acs_display;
diff --git a/Ada95/samples/ncurses2-attr_test.adb b/Ada95/samples/ncurses2-attr_test.adb
new file mode 100644 (file)
index 0000000..d852bb7
--- /dev/null
@@ -0,0 +1,367 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Terminfo;
+use Terminal_Interface.Curses.Terminfo;
+with Ada.Characters.Handling;
+with Ada.Strings.Fixed;
+
+procedure ncurses2.attr_test is
+
+   function  subset (super, sub : Character_Attribute_Set) return Boolean;
+   function  intersect (b, a : Character_Attribute_Set) return Boolean;
+   function  has_A_COLOR (attr : Attributed_Character) return Boolean;
+   function  show_attr (row  : Line_Position;
+                        skip : Natural;
+                        attr : Character_Attribute_Set;
+                        name : String;
+                        once : Boolean) return Line_Position;
+   procedure attr_getc (skip : out Integer;
+                        fg, bg : in out Color_Number;
+                        result : out Boolean);
+
+
+   function subset (super, sub : Character_Attribute_Set) return Boolean is
+   begin
+      if
+        (super.Stand_Out or not sub.Stand_Out) and
+        (super.Under_Line or not sub.Under_Line) and
+        (super.Reverse_Video or not sub.Reverse_Video) and
+        (super.Blink or not sub.Blink) and
+        (super.Dim_Character or not sub.Dim_Character) and
+        (super.Bold_Character or not sub.Bold_Character) and
+        (super.Alternate_Character_Set or not sub.Alternate_Character_Set) and
+        (super.Invisible_Character or not sub.Invisible_Character) -- and
+--      (super.Protected_Character or not sub.Protected_Character) and
+--      (super.Horizontal or not sub.Horizontal) and
+--      (super.Left or not sub.Left) and
+--      (super.Low or not sub.Low) and
+--      (super.Right or not sub.Right) and
+--      (super.Top or not sub.Top) and
+--      (super.Vertical or not sub.Vertical)
+      then
+         return True;
+      else
+         return False;
+      end if;
+   end subset;
+
+
+   function intersect (b, a : Character_Attribute_Set) return Boolean is
+   begin
+      if
+        (a.Stand_Out and b.Stand_Out) or
+        (a.Under_Line and b.Under_Line) or
+        (a.Reverse_Video and b.Reverse_Video) or
+        (a.Blink and b.Blink) or
+        (a.Dim_Character and b.Dim_Character) or
+        (a.Bold_Character and b.Bold_Character) or
+        (a.Alternate_Character_Set and b.Alternate_Character_Set) or
+        (a.Invisible_Character and b.Invisible_Character) -- or
+--      (a.Protected_Character and b.Protected_Character) or
+--      (a.Horizontal and b.Horizontal) or
+--      (a.Left and b.Left) or
+--      (a.Low and b.Low) or
+--      (a.Right and b.Right) or
+--      (a.Top and b.Top) or
+--      (a.Vertical and b.Vertical)
+      then
+         return True;
+      else
+         return False;
+      end if;
+   end intersect;
+
+   function has_A_COLOR (attr : Attributed_Character) return Boolean is
+   begin
+      if attr.Color /= Color_Pair (0) then
+         return True;
+      else
+         return False;
+      end if;
+   end has_A_COLOR;
+
+   --  Print some text with attributes.
+   function show_attr (row  : Line_Position;
+                       skip : Natural;
+                       attr : Character_Attribute_Set;
+                       name : String;
+                       once : Boolean) return Line_Position is
+
+      function make_record (n : Integer) return Character_Attribute_Set;
+      function make_record (n : Integer) return Character_Attribute_Set is
+         --  unsupported means true
+         a : Character_Attribute_Set := (others => False);
+         m : Integer;
+         rest : Integer;
+      begin
+         --  ncv is a bitmap with these fields
+         --              A_STANDOUT,
+         --              A_UNDERLINE,
+         --              A_REVERSE,
+         --              A_BLINK,
+         --              A_DIM,
+         --              A_BOLD,
+         --              A_INVIS,
+         --              A_PROTECT,
+         --              A_ALTCHARSET
+         --  It means no_color_video,
+         --  video attributes that can't be used with colors
+         --  see man terminfo.5
+         m := n mod 2;
+         rest := n / 2;
+         if 1 = m then
+            a.Stand_Out := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Under_Line := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Reverse_Video := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Blink := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Bold_Character := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Invisible_Character := True;
+         end if;
+         m := rest mod 2;
+         rest := rest / 2;
+--       if 1 = m then
+--          a.Protected_Character := True;
+--       end if;
+         m := rest mod 2;
+         rest := rest / 2;
+         if 1 = m then
+            a.Alternate_Character_Set := True;
+         end if;
+
+         return a;
+      end make_record;
+
+      ncv : constant Integer := Get_Number ("ncv");
+
+   begin
+      Move_Cursor (Line => row, Column => 8);
+      Add (Str => name & " mode:");
+      Move_Cursor (Line => row, Column => 24);
+      Add (Ch => '|');
+      if skip /= 0 then
+         --  printw("%*s", skip, " ")
+         Add (Str => Ada.Strings.Fixed."*" (skip, ' '));
+      end if;
+      if once then
+         Switch_Character_Attribute (Attr => attr);
+      else
+         Set_Character_Attributes (Attr => attr);
+      end if;
+      Add (Str => "abcde fghij klmno pqrst uvwxy z");
+      if once then
+         Switch_Character_Attribute (Attr => attr, On => False);
+      end if;
+      if skip /= 0 then
+         Add (Str => Ada.Strings.Fixed."*" (skip, ' '));
+      end if;
+      Add (Ch => '|');
+      if attr /= Normal_Video then
+         declare begin
+            if not subset (super => Supported_Attributes, sub => attr) then
+               Add (Str => " (N/A)");
+            elsif ncv > 0 and has_A_COLOR (Get_Background) then
+               declare
+                  Color_Supported_Attributes :
+                    Character_Attribute_Set := make_record (ncv);
+               begin
+                  if intersect (Color_Supported_Attributes, attr) then
+                     Add (Str => " (NCV) ");
+                  end if;
+               end;
+            end if;
+         end;
+      end if;
+      return row + 2;
+   end show_attr;
+
+   procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number;
+                                            result : out Boolean) is
+      ch : Key_Code := Getchar;
+      nc : constant Color_Number := Color_Number (Number_Of_Colors);
+      curscr : Window;
+      pragma Import (C, curscr, "curscr");
+      --  curscr is not implemented in the Ada binding
+   begin
+      result := True;
+      if Ada.Characters.Handling.Is_Digit (Character'Val (ch)) then
+         skip := ctoi (Code_To_Char (ch));
+      elsif ch = CTRL ('L') then
+         Touch;
+         Touch (curscr);
+         Refresh;
+      elsif Has_Colors then
+         case ch is
+            --  Note the mathematical elegance compared to the C version.
+            when Character'Pos ('f') => fg := (fg + 1) mod nc;
+            when Character'Pos ('F') => fg := (fg - 1) mod nc;
+            when Character'Pos ('b') => bg := (bg + 1) mod nc;
+            when Character'Pos ('B') => bg := (bg - 1) mod nc;
+            when others =>
+               result := False;
+         end case;
+      else
+         result := False;
+      end if;
+   end attr_getc;
+
+
+
+   --      pairs could be defined as array ( Color_Number(0) .. colors - 1) of
+   --      array (Color_Number(0).. colors - 1) of Boolean;
+   pairs : array (Color_Pair'Range) of Boolean := (others => False);
+   fg, bg : Color_Number := Black; -- = 0;
+   xmc : constant Integer := Get_Number ("xmc");
+   skip : Integer := xmc;
+   n : Integer;
+
+   use Int_IO;
+
+begin
+   pairs (0) := True;
+
+   if skip < 0 then
+      skip := 0;
+   end if;
+   n := skip;
+
+   loop
+      declare
+         row : Line_Position := 2;
+         normal : Attributed_Character := Blank2;
+         --  ???
+      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 :=
+              Color_Pair (fg * Color_Number (Number_Of_Colors) + bg);
+         begin
+            --  Go though each color pair. Assume that the number of
+            --  Redefinable_Color_Pairs is 8*8 with predefined Colors 0..7
+            if not pairs (pair) then
+               Init_Pair (pair, fg, bg);
+               pairs (pair) := True;
+            end if;
+            normal.Color := pair;
+         end;
+         end if;
+         Set_Background (Ch => normal);
+         Erase;
+
+         Add (Line => 0, Column => 20,
+              Str => "Character attribute test display");
+
+         row := show_attr (row, n, (Stand_Out => True, others => False),
+                           "STANDOUT", True);
+         row := show_attr (row, n, (Reverse_Video => True, others => False),
+                           "REVERSE", True);
+         row := show_attr (row, n, (Bold_Character => True, others => False),
+                           "BOLD", True);
+         row := show_attr (row, n, (Under_Line => True, others => False),
+                           "UNDERLINE", True);
+         row := show_attr (row, n, (Dim_Character => True, others => False),
+                           "DIM", True);
+         row := show_attr (row, n, (Blink => True, others => False),
+                           "BLINK", True);
+--       row := show_attr (row, n, (Protected_Character => True,
+--                                  others => False), "PROTECT", True);
+         row := show_attr (row, n, (Invisible_Character => True,
+                                    others => False), "INVISIBLE", True);
+         row := show_attr (row, n, Normal_Video, "NORMAL", False);
+
+         Move_Cursor (Line => row, Column => 8);
+         if xmc > -1 then
+            Add (Str => "This terminal does have the magic-cookie glitch");
+         else
+            Add (Str => "This terminal does not have the magic-cookie glitch");
+         end if;
+         Move_Cursor (Line => row + 1, Column => 8);
+         Add (Str => "Enter a digit to set gaps on each side of " &
+              "displayed attributes");
+         Move_Cursor (Line => row + 2, Column => 8);
+         Add (Str => "^L = repaint");
+         if Has_Colors then
+            declare tmp1 : String (1 .. 1);
+            begin
+               Add (Str => ".  f/F/b/F toggle colors (");
+               Put (tmp1, Integer (fg));
+               Add (Str => tmp1);
+               Add (Ch => '/');
+               Put (tmp1, Integer (bg));
+               Add (Str => tmp1);
+               Add (Ch => ')');
+            end;
+         end if;
+         Refresh;
+      end;
+
+      declare result : Boolean; begin
+         attr_getc (n, fg, bg, result);
+         exit when not result;
+      end;
+   end loop;
+
+   Set_Background (Ch => Blank2);
+   Erase;
+   End_Windows;
+end ncurses2.attr_test;
diff --git a/Ada95/samples/ncurses2-attr_test.ads b/Ada95/samples/ncurses2-attr_test.ads
new file mode 100644 (file)
index 0000000..fb1ed18
--- /dev/null
@@ -0,0 +1,42 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.attr_test;
+
diff --git a/Ada95/samples/ncurses2-color_edit.adb b/Ada95/samples/ncurses2-color_edit.adb
new file mode 100644 (file)
index 0000000..ac14628
--- /dev/null
@@ -0,0 +1,264 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with ncurses2.genericPuts;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+
+procedure ncurses2.color_edit is
+   use Int_IO;
+
+   type RGB_Enum is (Redx, Greenx, Bluex);
+
+   procedure change_color (current : Color_Number;
+                           field   : RGB_Enum;
+                           value   : RGB_Value;
+                           usebase : Boolean);
+
+
+
+   procedure change_color (current : Color_Number;
+                           field   : RGB_Enum;
+                           value   : RGB_Value;
+                           usebase : Boolean)  is
+      red, green, blue : RGB_Value;
+   begin
+      if usebase then
+         Color_Content (current, red, green, blue);
+      else
+         red := 0;
+         green := 0;
+         blue := 0;
+      end if;
+
+      case field is
+         when Redx => red :=  red + value;
+         when Greenx => green := green + value;
+         when Bluex => blue := blue + value;
+      end case;
+
+      declare
+      begin
+         Init_Color (current, red, green, blue);
+      exception
+         when Curses_Exception => Beep;
+      end;
+
+   end change_color;
+
+
+   package x is new ncurses2.genericPuts (100); use x;
+
+   tmpb : x.BS.Bounded_String;
+
+   tmp4 : String (1 .. 4);
+   tmp6 : String (1 .. 6);
+   tmp8 : String (1 .. 8);
+   --  This would be easier if Ada had a Bounded_String
+   --  defined as a class instead of the inferior generic package,
+   --  then I could define Put, Add, and Get for them. Blech.
+   value : RGB_Value := 0;
+   red, green, blue : RGB_Value;
+   max_colors : constant Natural := Number_Of_Colors;
+   current : Color_Number := 0;
+   field : RGB_Enum := Redx;
+   this_c : Key_Code := 0;
+   last_c : Key_Code;
+begin
+   Refresh;
+
+   for i in Color_Number'(0) .. Color_Number (Number_Of_Colors) loop
+      Init_Pair (Color_Pair (i), White, i);
+   end loop;
+
+   Move_Cursor (Line => Lines - 2, Column => 0);
+   Add (Str => "Number: ");
+   myPut (tmpb, Integer (value));
+   myAdd (Str => tmpb);
+
+   loop
+
+      Switch_Character_Attribute (On => False,
+                                  Attr => (Bold_Character => True,
+                                           others => False));
+      Add (Line => 0, Column => 20, Str => "Color RGB Value Editing");
+
+      Switch_Character_Attribute (On => False,
+                                  Attr => (Bold_Character => True,
+                                           others => False));
+
+      for i in Color_Number'(0) .. Color_Number (Number_Of_Colors) loop
+         Move_Cursor (Line => 2 + Line_Position (i), Column => 0);
+         if current = i then
+            Add (Ch => '>');
+         else
+            Add (Ch => ' ');
+         end if;
+         --  TODO if i <= color_names'Max  then
+         Put (tmp8, Integer (i));
+         Set_Character_Attributes (Color => Color_Pair (i));
+         Add (Str => "        ");
+         Set_Character_Attributes;
+
+         Refresh;
+
+         Color_Content (i, red, green, blue);
+         Add (Str => "   R = ");
+         if current = i and field = Redx then
+            Switch_Character_Attribute (On => True,
+                                        Attr => (Stand_Out => True,
+                                                 others => False));
+         end if;
+         Put (tmp4, Integer (red));
+         Add (Str => tmp4);
+         if current = i and field = Redx then
+            Set_Character_Attributes;
+         end if;
+         Add (Str => "   G = ");
+         if current = i and field =  Greenx then
+            Switch_Character_Attribute (On => True,
+                                        Attr => (Stand_Out => True,
+                                                 others => False));
+         end if;
+         Put (tmp4, Integer (green));
+         Add (Str => tmp4);
+         if current = i and field = Greenx then
+            Set_Character_Attributes;
+         end if;
+         Add (Str => "   B = ");
+         if current = i and field = Bluex then
+            Switch_Character_Attribute (On => True,
+                                        Attr => (Stand_Out => True,
+                                                 others => False));
+         end if;
+         Put (tmp4, Integer (blue));
+         Add (Str => tmp4);
+         if current = i and field = Bluex then
+            Set_Character_Attributes;
+         end if;
+         Set_Character_Attributes;
+         Add (ch => ')');
+      end loop;
+      Add (Line => Line_Position (Number_Of_Colors + 3), Column => 0,
+           Str => "Use up/down to select a color, left/right to change " &
+           "fields.");
+      Add (Line => Line_Position (Number_Of_Colors + 4), Column => 0,
+           Str => "Modify field by typing nnn=, nnn-, or nnn+.  ? for help.");
+
+      Move_Cursor (Line => 2 + Line_Position (current), Column => 0);
+
+      last_c := this_c;
+      this_c := Getchar;
+      if Is_Digit (this_c) then
+         value := 0;
+      end if;
+
+      case this_c is
+         when KEY_UP =>
+            current := (current - 1) mod Color_Number (max_colors);
+         when KEY_DOWN =>
+            current := (current + 1) mod Color_Number (max_colors);
+         when KEY_RIGHT =>
+            field := RGB_Enum'Val ((RGB_Enum'Pos (field) + 1) mod 3);
+         when KEY_LEFT =>
+            field := RGB_Enum'Val ((RGB_Enum'Pos (field) - 1) mod 3);
+         when
+           Character'Pos ('0') |
+           Character'Pos ('1') |
+           Character'Pos ('2') |
+           Character'Pos ('3') |
+           Character'Pos ('4') |
+           Character'Pos ('5') |
+           Character'Pos ('6') |
+           Character'Pos ('7') |
+           Character'Pos ('8') |
+           Character'Pos ('9')  =>
+            value := value * 10 + RGB_Value (ctoi (Code_To_Char (this_c)));
+
+         when Character'Pos ('+') =>
+            change_color (current, field,  value, True);
+
+         when Character'Pos ('-') =>
+            change_color (current, field, -value, True);
+
+         when Character'Pos ('=') =>
+            change_color (current, field,  value, False);
+
+         when Character'Pos ('?') =>
+            Erase;
+            P ("                      RGB Value Editing Help");
+            P ("");
+            P ("You are in the RGB value editor.  Use the arrow keys to " &
+               "select one of");
+            P ("the fields in one of the RGB triples of the current colors;" &
+               " the one");
+            P ("currently selected will be reverse-video highlighted.");
+            P ("");
+            P ("To change a field, enter the digits of the new value; they" &
+               " are echoed");
+            P ("as entered.  Finish by typing `='.  The change will take" &
+               " effect instantly.");
+            P ("To increment or decrement a value, use the same procedure," &
+               " but finish");
+            P ("with a `+' or `-'.");
+            P ("");
+            P ("To quit, do `x' or 'q'");
+
+            Pause;
+            Erase;
+         when Character'Pos ('q') |
+           Character'Pos ('x') =>
+            null;
+         when others =>
+            Beep;
+      end case;
+      Move_Cursor (Line => Lines - 2, Column => 0);
+      Put (tmp6, Integer (value));
+      Add (Str => "Number: " & tmp6);
+
+      Clear_To_End_Of_Line;
+      exit when this_c = Character'Pos ('x') or
+        this_c = Character'Pos ('q');
+   end loop;
+
+   Erase;
+   End_Windows;
+end ncurses2.color_edit;
diff --git a/Ada95/samples/ncurses2-color_edit.ads b/Ada95/samples/ncurses2-color_edit.ads
new file mode 100644 (file)
index 0000000..3e8e392
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.color_edit;
diff --git a/Ada95/samples/ncurses2-color_test.adb b/Ada95/samples/ncurses2-color_test.adb
new file mode 100644 (file)
index 0000000..ecbf290
--- /dev/null
@@ -0,0 +1,164 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Ada.Strings.Fixed;
+
+procedure ncurses2.color_test is
+   use Int_IO;
+
+   procedure show_color_name (y, x : Integer; color : Integer);
+
+   color_names : constant array (0 .. 15) of String (1 .. 7) :=
+     (
+      "black",
+      "red",
+      "green",
+      "yellow",
+      "blue",
+      "magenta",
+      "cyan",
+      "white",
+      "BLACK",
+      "RED",
+      "GREEN",
+      "YELLOW",
+      "BLUE",
+      "MAGENTA",
+      "CYAN",
+      "WHITE"
+      );
+
+
+   procedure show_color_name (y, x : Integer; color : Integer) is
+      tmp5 : String (1 .. 5);
+   begin
+      if Number_Of_Colors > 8 then
+
+         Put (tmp5, color);
+         Add (Line => Line_Position (y), Column => Column_Position (x),
+              Str => tmp5);
+      else
+         Add (Line => Line_Position (y), Column => Column_Position (x),
+              Str => color_names (color));
+      end if;
+   end show_color_name;
+
+
+   top, width : Integer;
+   hello : String (1 .. 5);
+   --  tmp3 : String (1 .. 3);
+   --  tmp2 : String (1 .. 2);
+
+begin
+   Refresh;
+   Add (Str => "There are ");
+   --  Put(tmp3, Number_Of_Colors*Number_Of_Colors);
+   Add (Str => Ada.Strings.Fixed.Trim (Integer'Image (Number_Of_Colors *
+                                                      Number_Of_Colors),
+                                       Ada.Strings.Left));
+   Add (Str => " color pairs");
+   Add (Ch => newl);
+
+   if Number_Of_Colors > 8 then
+      width := 4;
+   else
+      width := 8;
+   end if;
+
+   if Number_Of_Colors > 8 then
+      hello := "Test";
+   else
+      hello := "Hello";
+   end if;
+
+   for Bright in Boolean loop
+      if Number_Of_Colors > 8 then
+         top := 0;
+      else
+         top := Boolean'Pos (Bright) * (Number_Of_Colors + 3);
+      end if;
+      Clear_To_End_Of_Screen;
+      Move_Cursor (Line => Line_Position (top) + 1, Column => 0);
+      --  Put(tmp2, Number_Of_Colors);
+      Add (Str => Ada.Strings.Fixed.Trim (Integer'Image (Number_Of_Colors),
+                                          Ada.Strings.Left));
+      Add (Ch => 'x');
+      Add (Str => Ada.Strings.Fixed.Trim (Integer'Image (Number_Of_Colors),
+                                          Ada.Strings.Left));
+      Add (Str => "  matrix of foreground/background colors, bright *");
+      if Bright then
+         Add (Str => "on");
+      else
+         Add (Str => "off");
+      end if;
+      Add (Ch => '*');
+
+      for i in 0 .. Number_Of_Colors - 1 loop
+         show_color_name (top + 2, (i + 1) * width, i);
+      end loop;
+      for i in 0 .. Number_Of_Colors - 1 loop
+         show_color_name (top + 3 + i, 0, i);
+      end loop;
+      for i in 1 .. Number_Of_Color_Pairs - 1 loop
+         Init_Pair (Color_Pair (i), Color_Number (i mod Number_Of_Colors),
+                    Color_Number (i / Number_Of_Colors));
+         --  attron((attr_t) COLOR_PAIR(i)) -- Huh?
+         Set_Color (Pair => Color_Pair (i));
+         if Bright then
+            Switch_Character_Attribute (Attr => (Bold_Character => True,
+                                                 others => False));
+         end if;
+         Add (Line => Line_Position (top + 3 + (i / Number_Of_Colors)),
+              Column => Column_Position ((i mod Number_Of_Colors + 1) *
+                                         width),
+              Str => hello);
+         Set_Character_Attributes;
+      end loop;
+      if Number_Of_Colors > 8 or Bright then
+         Pause;
+      end if;
+   end loop;
+
+   Erase;
+   End_Windows;
+end ncurses2.color_test;
diff --git a/Ada95/samples/ncurses2-color_test.ads b/Ada95/samples/ncurses2-color_test.ads
new file mode 100644 (file)
index 0000000..6e66318
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.color_test;
diff --git a/Ada95/samples/ncurses2-demo_forms.adb b/Ada95/samples/ncurses2-demo_forms.adb
new file mode 100644 (file)
index 0000000..7f4cefc
--- /dev/null
@@ -0,0 +1,496 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+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 Ada.Characters.Handling;
+with Ada.Strings;
+with Ada.Strings.Bounded;
+
+procedure ncurses2.demo_forms is
+   package BS is new Ada.Strings.Bounded.Generic_Bounded_Length (80);
+
+   type myptr is access Integer;
+
+   --  The C version stores a pointer in the userptr and
+   --  converts it into a long integer.
+   --  The correct, but inconvenient  way to do it is to use a
+   --  pointer to long and keep the pointer constant.
+   --  It just adds one memory piece to allocate and deallocate (not done here)
+
+   package StringData is new
+     Terminal_Interface.Curses.Forms.Field_User_Data (Integer, myptr);
+
+   function edit_secure (me : Field; c_in : Key_Code) return Key_Code;
+   function form_virtualize (f : Form; w : Window) return Key_Code;
+   function my_form_driver (f : Form; c : Key_Code) return Boolean;
+   function make_label (frow  : Line_Position;
+                        fcol  : Column_Position;
+                        label : String) return Field;
+   function make_field (frow   : Line_Position;
+                        fcol   : Column_Position;
+                        rows   : Line_Count;
+                        cols   : Column_Count;
+                        secure : Boolean) return Field;
+   procedure display_form (f : Form);
+   procedure erase_form (f : Form);
+
+   --  prints '*' instead of characters.
+   --  Not that this keeps a bug from the C version:
+   --  type in the psasword field then move off and back.
+   --  the cursor is at position one, but
+   --  this assumes it as at the end so text gets appended instead
+   --  of overwtitting.
+   function edit_secure (me : Field; c_in : Key_Code) return Key_Code is
+      rows, frow : Line_Position;
+      nrow : Natural;
+      cols, fcol : Column_Position;
+      nbuf : Buffer_Number;
+      c : Key_Code := c_in;
+      c2 :  Character;
+
+      use StringData;
+   begin
+      Info (me, rows, cols, frow, fcol, nrow, nbuf);
+      --  TODO         if result = Form_Ok and nbuf > 0 then
+      --  C version checked the return value
+      --  of Info, the Ada binding throws an exception I think.
+      if nbuf > 0 then
+         declare
+            temp : BS.Bounded_String;
+            temps : String (1 .. 10);
+            --  TODO Get_Buffer povides no information on the field length?
+            len : myptr;
+         begin
+            Get_Buffer (me, 1, Str => temps);
+            --  strcpy(temp, field_buffer(me, 1));
+            Get_User_Data (me, len);
+            temp := BS.To_Bounded_String (temps (1 .. len.all));
+            if c <= Key_Max then
+               c2 := Code_To_Char (c);
+               if Ada.Characters.Handling.Is_Graphic (c2) then
+                  BS.Append (temp, c2);
+                  len.all := len.all + 1;
+                  Set_Buffer (me, 1, BS.To_String (temp));
+                  c := Character'Pos ('*');
+               else
+                  c := 0;
+               end if;
+            else
+               case c is
+                  when  REQ_BEG_FIELD |
+                    REQ_CLR_EOF |
+                    REQ_CLR_EOL |
+                    REQ_DEL_LINE |
+                    REQ_DEL_WORD |
+                    REQ_DOWN_CHAR |
+                    REQ_END_FIELD |
+                    REQ_INS_CHAR |
+                    REQ_INS_LINE |
+                    REQ_LEFT_CHAR |
+                    REQ_NEW_LINE |
+                    REQ_NEXT_WORD |
+                    REQ_PREV_WORD |
+                    REQ_RIGHT_CHAR |
+                    REQ_UP_CHAR =>
+                     c := 0;         -- we don't want to do inline editing
+                  when REQ_CLR_FIELD =>
+                     if len.all /= 0 then
+                        temp := BS.To_Bounded_String ("");
+                        Set_Buffer (me, 1, BS.To_String (temp));
+                        len.all := 0;
+                     end if;
+
+                  when REQ_DEL_CHAR |
+                    REQ_DEL_PREV =>
+                     if len.all /= 0 then
+                        BS.Delete (temp, BS.Length (temp), BS.Length (temp));
+                        Set_Buffer (me, 1, BS.To_String (temp));
+                        len.all := len.all - 1;
+                     end if;
+                  when others => null;
+               end case;
+            end if;
+         end;
+      end if;
+      return c;
+   end edit_secure;
+
+   mode : Key_Code := REQ_INS_MODE;
+
+   function form_virtualize (f : Form; w : Window) return Key_Code is
+      type lookup_t is record
+         code : Key_Code;
+         result : Key_Code;
+         --  should be Form_Request_Code, but we need MAX_COMMAND + 1
+      end record;
+
+      lookup : constant array (Positive range <>) of lookup_t :=
+        (
+         (
+          Character'Pos ('A') mod 16#20#, REQ_NEXT_CHOICE
+          ),
+         (
+          Character'Pos ('B') mod 16#20#, REQ_PREV_WORD
+          ),
+         (
+          Character'Pos ('C') mod 16#20#, REQ_CLR_EOL
+          ),
+         (
+          Character'Pos ('D') mod 16#20#, REQ_DOWN_FIELD
+          ),
+         (
+          Character'Pos ('E') mod 16#20#, REQ_END_FIELD
+          ),
+         (
+          Character'Pos ('F') mod 16#20#, REQ_NEXT_PAGE
+          ),
+         (
+          Character'Pos ('G') mod 16#20#, REQ_DEL_WORD
+          ),
+         (
+          Character'Pos ('H') mod 16#20#, REQ_DEL_PREV
+          ),
+         (
+          Character'Pos ('I') mod 16#20#, REQ_INS_CHAR
+          ),
+         (
+          Character'Pos ('K') mod 16#20#, REQ_CLR_EOF
+          ),
+         (
+          Character'Pos ('L') mod 16#20#, REQ_LEFT_FIELD
+          ),
+         (
+          Character'Pos ('M') mod 16#20#, REQ_NEW_LINE
+          ),
+         (
+          Character'Pos ('N') mod 16#20#, REQ_NEXT_FIELD
+          ),
+         (
+          Character'Pos ('O') mod 16#20#, REQ_INS_LINE
+          ),
+         (
+          Character'Pos ('P') mod 16#20#, REQ_PREV_FIELD
+          ),
+         (
+          Character'Pos ('R') mod 16#20#, REQ_RIGHT_FIELD
+          ),
+         (
+          Character'Pos ('S') mod 16#20#, REQ_BEG_FIELD
+          ),
+         (
+          Character'Pos ('U') mod 16#20#, REQ_UP_FIELD
+          ),
+         (
+          Character'Pos ('V') mod 16#20#, REQ_DEL_CHAR
+          ),
+         (
+          Character'Pos ('W') mod 16#20#, REQ_NEXT_WORD
+          ),
+         (
+          Character'Pos ('X') mod 16#20#, REQ_CLR_FIELD
+          ),
+         (
+          Character'Pos ('Y') mod 16#20#, REQ_DEL_LINE
+          ),
+         (
+          Character'Pos ('Z') mod 16#20#, REQ_PREV_CHOICE
+          ),
+         (
+          Character'Pos ('[') mod 16#20#, --  ESCAPE
+          Form_Request_Code'Last + 1
+          ),
+         (
+          Key_Backspace, REQ_DEL_PREV
+          ),
+         (
+          KEY_DOWN, REQ_DOWN_CHAR
+          ),
+         (
+          Key_End, REQ_LAST_FIELD
+          ),
+         (
+          Key_Home, REQ_FIRST_FIELD
+          ),
+         (
+          KEY_LEFT, REQ_LEFT_CHAR
+          ),
+         (
+          KEY_LL, REQ_LAST_FIELD
+          ),
+         (
+          Key_Next, REQ_NEXT_FIELD
+          ),
+         (
+          KEY_NPAGE, REQ_NEXT_PAGE
+          ),
+         (
+          KEY_PPAGE, REQ_PREV_PAGE
+          ),
+         (
+          Key_Previous, REQ_PREV_FIELD
+          ),
+         (
+          KEY_RIGHT, REQ_RIGHT_CHAR
+          ),
+         (
+          KEY_UP, REQ_UP_CHAR
+          ),
+         (
+          Character'Pos ('Q') mod 16#20#, --  QUIT
+          Form_Request_Code'Last + 1      --  TODO MAX_FORM_COMMAND + 1
+          )
+         );
+
+      c : Key_Code := Getchar (w);
+      me : Field := Current (f);
+
+   begin
+      if c = Character'Pos (']') mod 16#20# then
+         if mode = REQ_INS_MODE then
+            mode := REQ_OVL_MODE;
+         else
+            mode := REQ_INS_MODE;
+         end if;
+         c := mode;
+      else
+         for n in lookup'Range loop
+            if lookup (n).code = c then
+               c := lookup (n).result;
+               exit;
+            end if;
+         end loop;
+      end if;
+
+      --  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 then
+         c := edit_secure (me, c);
+         Set_Background (me, (Reverse_Video => True, others => False));
+      elsif c <= Form_Request_Code'Last then
+         c := edit_secure (me, c);
+         Set_Background (me, (Under_Line => True, others => False));
+      end if;
+      return c;
+   end form_virtualize;
+
+   function my_form_driver (f : Form; c : Key_Code) return Boolean is
+      flag : Driver_Result := Driver (f, F_Validate_Field);
+   begin
+      if c = Form_Request_Code'Last + 1
+        and flag = Form_Ok then
+         return True;
+      else
+         Beep;
+         return False;
+      end if;
+   end my_form_driver;
+
+   function make_label (frow  : Line_Position;
+                        fcol  : Column_Position;
+                        label : String) return Field is
+      f : Field := Create (1, label'Length, frow, fcol, 0, 0);
+      o : Field_Option_Set := Get_Options (f);
+   begin
+      if f /= Null_Field then
+         Set_Buffer (f, 0, label);
+         o.Active := False;
+         Set_Options (f, o);
+      end if;
+      return f;
+   end make_label;
+
+   function make_field (frow   : Line_Position;
+                        fcol   : Column_Position;
+                        rows   : Line_Count;
+                        cols   : Column_Count;
+                        secure : Boolean) return Field is
+      f : Field;
+      use StringData;
+      len : myptr;
+   begin
+      if secure then
+         f := Create (rows, cols, frow, fcol, 0, 1);
+      else
+         f := Create (rows, cols, frow, fcol, 0, 0);
+      end if;
+
+      if f /= Null_Field then
+         Set_Background (f, (Under_Line => True, others => False));
+         len := new Integer;
+         len.all := 0;
+         Set_User_Data (f, len);
+      end if;
+      return f;
+   end make_field;
+
+   procedure display_form (f : Form) is
+      w : Window;
+      rows : Line_Count;
+      cols : Column_Count;
+   begin
+      Scale (f, rows, cols);
+
+      w := New_Window (rows + 2, cols + 4, 0, 0);
+      if w /= Null_Window then
+         Set_Window (f, w);
+         Set_Sub_Window (f, Derived_Window (w, rows, cols, 1, 2));
+         Box (w); -- 0,0
+         Set_KeyPad_Mode (w, True);
+      end if;
+
+      --  TODO if Post(f) /= Form_Ok then it's a procedure
+      declare
+      begin
+         Post (f);
+      exception
+         when
+           Eti_System_Error    |
+           Eti_Bad_Argument    |
+           Eti_Posted          |
+           Eti_Connected       |
+           Eti_Bad_State       |
+           Eti_No_Room         |
+           Eti_Not_Posted      |
+           Eti_Unknown_Command |
+           Eti_No_Match        |
+           Eti_Not_Selectable  |
+           Eti_Not_Connected   |
+           Eti_Request_Denied  |
+           Eti_Invalid_Field   |
+           Eti_Current         =>
+            Refresh (w);
+      end;
+      --  end if;
+   end display_form;
+
+   procedure erase_form (f : Form) is
+      w : Window := Get_Window (f);
+      s : Window := Get_Sub_Window (f);
+   begin
+      Post (f, False);
+      Erase (w);
+      Refresh (w);
+      Delete (s);
+      Delete (w);
+   end erase_form;
+
+   finished : Boolean := False;
+   f : Field_Array_Access := new Field_Array (1 .. 12);
+   secure : Field;
+   myform : Form;
+   w : Window;
+   c : Key_Code;
+   result : Driver_Result;
+begin
+   Move_Cursor (Line => 18, Column => 0);
+   Add (Str => "Defined form-traversal keys:   ^Q/ESC- exit form");
+   Add (Ch => newl);
+   Add (Str => "^N   -- go to next field       ^P  -- go to previous field");
+   Add (Ch => newl);
+   Add (Str => "Home -- go to first field      End -- go to last field");
+   Add (Ch => newl);
+   Add (Str => "^L   -- go to field to left    ^R  -- go to field to right");
+   Add (Ch => newl);
+   Add (Str => "^U   -- move upward to field   ^D  -- move downward to field");
+   Add (Ch => newl);
+   Add (Str => "^W   -- go to next word        ^B  -- go to previous word");
+   Add (Ch => newl);
+   Add (Str => "^S   -- go to start of field   ^E  -- go to end of field");
+   Add (Ch => newl);
+   Add (Str => "^H   -- delete previous char   ^Y  -- delete line");
+   Add (Ch => newl);
+   Add (Str => "^G   -- delete current word    ^C  -- clear to end of line");
+   Add (Ch => newl);
+   Add (Str => "^K   -- clear to end of field  ^X  -- clear field");
+   Add (Ch => newl);
+   Add (Str => "Arrow keys move within a field as you would expect.");
+
+   Add (Line => 4, Column => 57, Str => "Forms Entry Test");
+
+   Refresh;
+
+   --  describe the form
+   f (1) := make_label (0, 15, "Sample Form");
+   f (2) := make_label (2, 0, "Last Name");
+   f (3) := make_field (3, 0, 1, 18, False);
+   f (4) := make_label (2, 20, "First Name");
+   f (5) := make_field (3, 20, 1, 12, False);
+   f (6) := make_label (2, 34, "Middle Name");
+   f (7) := make_field (3, 34, 1, 12, False);
+   f (8) := make_label (5, 0, "Comments");
+   f (9) := make_field (6, 0, 4, 46, False);
+   f (10) := make_label (5, 20, "Password:");
+   f (11) := make_field (5, 30, 1, 9, True);
+   secure := f (11);
+   f (12) := Null_Field;
+
+   myform := New_Form (f);
+
+   display_form (myform);
+
+   w := Get_Window (myform);
+   Set_Raw_Mode (SwitchOn => True);
+   Set_NL_Mode (SwitchOn => True);     --  lets us read ^M's
+   while not finished loop
+      c := form_virtualize (myform, w);
+      result := Driver (myform, c);
+      case result is
+         when Form_Ok =>
+            Add (Line => 5, Column => 57, Str => Get_Buffer (secure, 1));
+            Clear_To_End_Of_Line;
+            Refresh;
+         when Unknown_Request =>
+            finished := my_form_driver (myform, c);
+         when others =>
+            Beep;
+      end case;
+   end loop;
+
+   erase_form (myform);
+
+   --  TODO Free_Form(myform);
+   --     for (c = 0; f[c] != 0; c++) free_field(f[c]);
+   Set_Raw_Mode (SwitchOn => False);
+   Set_NL_Mode (SwitchOn => True);
+
+end ncurses2.demo_forms;
diff --git a/Ada95/samples/ncurses2-demo_forms.ads b/Ada95/samples/ncurses2-demo_forms.ads
new file mode 100644 (file)
index 0000000..eabaa01
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.demo_forms;
diff --git a/Ada95/samples/ncurses2-demo_pad.adb b/Ada95/samples/ncurses2-demo_pad.adb
new file mode 100644 (file)
index 0000000..1b17cbd
--- /dev/null
@@ -0,0 +1,671 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Interfaces.C;
+with System.Storage_Elements;
+with System.Address_To_Access_Conversions;
+
+with Ada.Text_IO;
+--  with Ada.Real_Time; use Ada.Real_Time;
+--  TODO is there a way to use Real_Time or Ada.Calendar in place of
+--  gettimeofday?
+
+--  Demonstrate pads.
+procedure ncurses2.demo_pad is
+
+   type timestruct is record
+      seconds : Integer;
+      microseconds : Integer;
+   end record;
+
+   type myfunc is access function (w : Window) return Key_Code;
+
+   function  gettime return timestruct;
+   procedure do_h_line (y  : Line_Position;
+                        x  : Column_Position;
+                        c  : Attributed_Character;
+                        to : Column_Position);
+   procedure do_v_line (y  : Line_Position;
+                        x  : Column_Position;
+                        c  : Attributed_Character;
+                        to : Line_Position);
+   function  padgetch (win : Window) return Key_Code;
+   function  panner_legend (line : Line_Position) return Boolean;
+   procedure panner_legend (line : Line_Position);
+   procedure panner_h_cleanup (from_y : Line_Position;
+                               from_x : Column_Position;
+                               to_x   : Column_Position);
+   procedure panner_v_cleanup (from_y : Line_Position;
+                               from_x : Column_Position;
+                               to_y   : Line_Position);
+   procedure panner (pad    : Window;
+                     top_xp : Column_Position;
+                     top_yp : Line_Position;
+                     portyp : Line_Position;
+                     portxp : Column_Position;
+                     pgetc  : myfunc);
+
+   function gettime return timestruct is
+
+      retval : timestruct;
+
+      use Interfaces.C;
+      type timeval is record
+         tv_sec : long;
+         tv_usec : long;
+      end record;
+      pragma Convention (C, timeval);
+
+      --      TODO    function from_timeval is new Ada.Unchecked_Conversion(
+      --                  timeval_a, System.Storage_Elements.Integer_Address);
+      --  should Interfaces.C.Pointers be used here?
+
+      package myP is new System.Address_To_Access_Conversions (timeval);
+      use myP;
+
+      t : Object_Pointer := new timeval;
+
+      function gettimeofday
+        (TP : System.Storage_Elements.Integer_Address;
+         TZP : System.Storage_Elements.Integer_Address) return int;
+      pragma Import (C, gettimeofday, "gettimeofday");
+      tmp : int;
+   begin
+      tmp := gettimeofday (System.Storage_Elements.To_Integer
+                           (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);
+      return retval;
+   end gettime;
+
+
+   --  in C, The behavior of mvhline, mvvline for negative/zero length is
+   --  unspecified, though we can rely on negative x/y values to stop the
+   --  macro. Except Ada makes Line_Position(-1) = Natural - 1 so forget it.
+   procedure do_h_line (y  : Line_Position;
+                        x  : Column_Position;
+                        c  : Attributed_Character;
+                        to : Column_Position) is
+   begin
+      if to > x then
+         Move_Cursor (Line => y, Column => x);
+         Horizontal_Line (Line_Size => Natural (to - x), Line_Symbol => c);
+      end if;
+   end do_h_line;
+
+   procedure do_v_line (y  : Line_Position;
+                        x  : Column_Position;
+                        c  : Attributed_Character;
+                        to : Line_Position) is
+   begin
+      if to > y then
+         Move_Cursor (Line => y, Column => x);
+         Vertical_Line (Line_Size => Natural (to - y), Line_Symbol => c);
+      end if;
+   end do_v_line;
+
+
+
+
+   function padgetch (win : Window) return Key_Code is
+      c : Key_Code;
+      c2 : Character;
+   begin
+      c := Getchar (win);
+      c2 := Code_To_Char (c);
+
+      case c2 is
+         when '!' =>
+            ShellOut (False);
+            return Key_Refresh;
+         when Character'Val (Character'Pos ('r') mod 16#20#) => --  CTRL('r')
+            End_Windows;
+            Refresh;
+            return Key_Refresh;
+         when Character'Val (Character'Pos ('l') mod 16#20#) => --  CTRL('l')
+            return Key_Refresh;
+         when 'U' =>
+            return Key_Cursor_Up;
+         when 'D' =>
+            return Key_Cursor_Down;
+         when 'R' =>
+            return Key_Cursor_Right;
+         when 'L' =>
+            return Key_Cursor_Left;
+         when '+' =>
+            return Key_Insert_Line;
+         when '-' =>
+            return Key_Delete_Line;
+         when '>' =>
+            return Key_Insert_Char;
+         when '<' =>
+            return Key_Delete_Char;
+            --  when ERR=>                   /* FALLTHRU */
+         when 'q' =>
+            return (Key_Exit);
+         when others =>
+            return (c);
+      end case;
+   end padgetch;
+
+   show_panner_legend : Boolean := True;
+
+   function panner_legend (line : Line_Position) return Boolean is
+      legend : constant array (0 .. 3) of String (1 .. 61) :=
+        (
+         "Use arrow keys (or U,D,L,R) to pan, q to quit (?,t,s flags)  ",
+         "Use ! to shell-out.  Toggle legend:?, timer:t, scroll mark:s.",
+         "Use +,- (or j,k) to grow/shrink the panner vertically.       ",
+         "Use <,> (or h,l) to grow/shrink the panner horizontally.     ");
+      legendsize : constant := 4;
+
+      n : Integer := legendsize - Integer (Lines - line);
+   begin
+      if line < Lines and n >= 0 then
+         Move_Cursor (Line => line, Column => 0);
+         if show_panner_legend then
+            Add (Str => legend (n));
+         end if;
+         Clear_To_End_Of_Line;
+         return show_panner_legend;
+      end if;
+      return False;
+   end panner_legend;
+
+   procedure panner_legend (line : Line_Position) is
+      tmp : Boolean;
+   begin
+      tmp := panner_legend (line);
+   end panner_legend;
+
+   procedure panner_h_cleanup (from_y : Line_Position;
+                               from_x : Column_Position;
+                               to_x   : Column_Position) is
+   begin
+      if not panner_legend (from_y) then
+         do_h_line (from_y, from_x, Blank2, to_x);
+      end if;
+   end panner_h_cleanup;
+
+   procedure panner_v_cleanup (from_y : Line_Position;
+                               from_x : Column_Position;
+                               to_y   : Line_Position) is
+   begin
+      if not panner_legend (from_y) then
+         do_v_line (from_y, from_x, Blank2, to_y);
+      end if;
+   end panner_v_cleanup;
+
+
+   procedure panner (pad    : Window;
+                     top_xp : Column_Position;
+                     top_yp : Line_Position;
+                     portyp : Line_Position;
+                     portxp : Column_Position;
+                     pgetc  : myfunc) is
+
+      function f (y : Line_Position) return Line_Position;
+      function f (x : Column_Position) return Column_Position;
+      function greater (y1, y2 : Line_Position) return Integer;
+      function greater (x1, x2 : Column_Position) return Integer;
+
+      top_x : Column_Position := top_xp;
+      top_y : Line_Position := top_yp;
+      porty : Line_Position := portyp;
+      portx : Column_Position := portxp;
+
+      --  f[x] returns max[x - 1, 0]
+      function f (y : Line_Position) return Line_Position is
+      begin
+         if y > 0 then
+            return y - 1;
+         else
+            return y; -- 0
+         end if;
+      end f;
+
+      function f (x : Column_Position) return Column_Position is
+      begin
+         if x > 0 then
+            return x - 1;
+         else
+            return x; -- 0
+         end if;
+      end f;
+
+      function greater (y1, y2 : Line_Position) return Integer is
+      begin
+         if y1 > y2 then
+            return 1;
+         else
+            return 0;
+         end if;
+      end greater;
+
+      function greater (x1, x2 : Column_Position) return Integer is
+      begin
+         if x1 > x2 then
+            return 1;
+         else
+            return 0;
+         end if;
+      end greater;
+
+
+      pymax : Line_Position;
+      basey : Line_Position := 0;
+      pxmax : Column_Position;
+      basex : Column_Position := 0;
+      c : Key_Code;
+      scrollers : Boolean := True;
+      before, after : timestruct;
+      timing : Boolean := True;
+
+      package floatio is new Ada.Text_IO.Float_IO (Long_Float);
+   begin
+      Get_Size (pad, pymax, pxmax);
+      Allow_Scrolling (Mode => False); -- we don't want stdscr to scroll!
+
+      c := Key_Refresh;
+      loop
+         --  During shell-out, the user may have resized the window.  Adjust
+         --  the port size of the pad to accommodate this.  Ncurses
+         --  automatically resizes all of the normal windows to fit on the
+         --  new screen.
+         if top_x > Columns then
+            top_x := Columns;
+         end if;
+         if portx > Columns then
+            portx := Columns;
+         end if;
+         if top_y > Lines then
+            top_y := Lines;
+         end if;
+         if porty > Lines then
+            porty := Lines;
+         end if;
+
+         case c is
+            when Key_Refresh | Character'Pos ('?') =>
+               if c = Key_Refresh then
+                  Erase;
+               else -- '?'
+                  show_panner_legend := not show_panner_legend;
+               end if;
+               panner_legend (Lines - 4);
+               panner_legend (Lines - 3);
+               panner_legend (Lines - 2);
+               panner_legend (Lines - 1);
+            when Character'Pos ('t') =>
+               timing := not timing;
+               if not timing then
+                  panner_legend (Lines - 1);
+               end if;
+            when Character'Pos ('s') =>
+               scrollers := not scrollers;
+
+               --  Move the top-left corner of the pad, keeping the
+               --  bottom-right corner fixed.
+            when Character'Pos ('h') =>
+               --  increase-columns: move left edge to left
+               if top_x <= 0 then
+                  Beep;
+               else
+                  panner_v_cleanup (top_y, top_x, porty);
+                  top_x := top_x - 1;
+               end if;
+
+            when Character'Pos ('j') =>
+               --  decrease-lines: move top-edge down
+               if top_y >= porty then
+                  Beep;
+               else
+                  if top_y /= 0 then
+                     panner_h_cleanup (top_y - 1, f (top_x), portx);
+                  end if;
+                  top_y := top_y + 1;
+               end if;
+            when Character'Pos ('k') =>
+               --  increase-lines: move top-edge up
+               if top_y <= 0 then
+                  Beep;
+               else
+                  top_y := top_y - 1;
+                  panner_h_cleanup (top_y, top_x, portx);
+               end if;
+
+            when Character'Pos ('l') =>
+               --  decrease-columns: move left-edge to right
+               if top_x >= portx then
+                  Beep;
+               else
+                  if top_x /= 0 then
+                     panner_v_cleanup (f (top_y), top_x - 1, porty);
+                  end if;
+                  top_x := top_x + 1;
+               end if;
+
+               --  Move the bottom-right corner of the pad, keeping the
+               --  top-left corner fixed.
+            when Key_Insert_Char =>
+               --  increase-columns: move right-edge to right
+               if portx >= pxmax or portx >= Columns then
+                  Beep;
+               else
+                  panner_v_cleanup (f (top_y), portx - 1, porty);
+                  portx := portx + 1;
+                  --  C had ++portx instead of portx++, weird.
+               end if;
+            when Key_Insert_Line =>
+               --  increase-lines: move bottom-edge down
+               if porty >= pymax or porty >= Lines then
+                  Beep;
+               else
+                  panner_h_cleanup (porty - 1, f (top_x), portx);
+                  porty := porty + 1;
+               end if;
+
+            when Key_Delete_Char =>
+               --  decrease-columns: move bottom edge up
+               if portx <= top_x then
+                  Beep;
+               else
+                  portx := portx - 1;
+                  panner_v_cleanup (f (top_y), portx, porty);
+               end if;
+
+            when Key_Delete_Line =>
+               --  decrease-lines
+               if porty <= top_y then
+                  Beep;
+               else
+                  porty := porty - 1;
+                  panner_h_cleanup (porty, f (top_x), portx);
+               end if;
+            when Key_Cursor_Left =>
+               --  pan leftwards
+               if basex > 0 then
+                  basex := basex - 1;
+               else
+                  Beep;
+               end if;
+            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  < pxmax or
+                  --      (pymax > porty and basex + portx - 1 < pxmax) then
+                  basex := basex + 1;
+               else
+                  Beep;
+               end if;
+
+            when Key_Cursor_Up =>
+               --  pan upwards
+               if basey > 0 then
+                  basey := basey - 1;
+               else
+                  Beep;
+               end if;
+
+            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  < pymax) or
+                  --      (pxmax > portx and basey + porty - 1 < pymax) then
+                  basey := basey + 1;
+               else
+                  Beep;
+               end if;
+
+            when  Character'Pos ('H') |
+              Key_Home |
+              Key_Find =>
+               basey := 0;
+
+            when   Character'Pos ('E') |
+              Key_End |
+              Key_Select =>
+               basey := pymax - porty;
+               if basey < 0 then --  basey := max(basey, 0);
+                  basey := 0;
+               end if;
+
+            when others =>
+               Beep;
+         end case;
+
+         --  more writing off the screen.
+         --  Interestingly, the exception is not handled if
+         --  we put a block around this.
+         --  delcare --begin
+         if top_y /= 0 and top_x /= 0 then
+            Add (Line => top_y - 1, Column => top_x - 1,
+                 Ch => ACS_Map (ACS_Upper_Left_Corner));
+         end if;
+         if top_x /= 0 then
+            do_v_line (top_y, top_x - 1, ACS_Map (ACS_Vertical_Line), porty);
+         end if;
+         if top_y /= 0 then
+            do_h_line (top_y - 1, top_x, ACS_Map (ACS_Horizontal_Line), portx);
+         end if;
+         --  exception when Curses_Exception => null; end;
+
+         --  in C was ... pxmax > portx - 1
+         if scrollers and pxmax >= portx then
+            declare
+               length : Column_Position := portx - top_x - 1;
+               lowend, highend : Column_Position;
+            begin
+               --  Instead of using floats, I'll use integers only.
+               lowend := top_x + (basex * length) / pxmax;
+               highend := top_x + ((basex + length) * length) / pxmax;
+
+               do_h_line (porty - 1, top_x, ACS_Map (ACS_Horizontal_Line),
+                          lowend);
+               if highend < portx then
+                  Switch_Character_Attribute
+                    (Attr => (Reverse_Video => True, others => False),
+                     On => True);
+                  do_h_line (porty - 1, lowend, Blank2, highend + 1);
+                  Switch_Character_Attribute
+                    (Attr => (Reverse_Video => True, others => False),
+                     On => False);
+                  do_h_line (porty - 1, highend + 1,
+                             ACS_Map (ACS_Horizontal_Line), portx);
+               end if;
+            end;
+         else
+            do_h_line (porty - 1, top_x, ACS_Map (ACS_Horizontal_Line), portx);
+         end if;
+
+         if scrollers and pymax >= porty then
+            declare
+               length : Line_Position := porty - top_y - 1;
+               lowend, highend : Line_Position;
+            begin
+               lowend := top_y + (basey * length) / pymax;
+               highend := top_y + ((basey + length) * length) / pymax;
+
+               do_v_line (top_y, portx - 1, ACS_Map (ACS_Vertical_Line),
+                          lowend);
+               if highend < porty then
+                  Switch_Character_Attribute
+                    (Attr => (Reverse_Video => True, others => False),
+                     On => True);
+                  do_v_line (lowend, portx - 1, Blank2, highend + 1);
+                  Switch_Character_Attribute
+                    (Attr => (Reverse_Video => True, others => False),
+                     On => False);
+                  do_v_line (highend + 1, portx - 1,
+                             ACS_Map (ACS_Vertical_Line), porty);
+               end if;
+            end;
+         else
+            do_v_line (top_y, portx - 1, ACS_Map (ACS_Vertical_Line), porty);
+         end if;
+
+         if top_y /= 0 then
+            Add (Line => top_y - 1, Column => portx - 1,
+                 Ch => ACS_Map (ACS_Upper_Right_Corner));
+         end if;
+         if top_x /= 0 then
+            Add (Line => porty - 1, Column => top_x - 1,
+                 Ch => ACS_Map (ACS_Lower_Left_Corner));
+         end if;
+         declare
+         begin
+            --  Here is another place where it is possible
+            --  to write to the corner of the screen.
+            Add (Line => porty - 1, Column => portx - 1,
+                 Ch => ACS_Map (ACS_Lower_Right_Corner));
+            exception
+            when Curses_Exception => null;
+         end;
+
+         before := gettime;
+
+         Refresh_Without_Update;
+
+         declare
+            --  the C version allows the panel to have a zero height
+            --  wich raise the exception
+         begin
+            Refresh_Without_Update
+              (
+               pad,
+               basey, basex,
+               top_y, top_x,
+               porty - Line_Position (greater (pxmax, portx)) - 1,
+               portx - Column_Position (greater (pymax, porty)) - 1);
+            exception
+            when Curses_Exception => null;
+         end;
+
+         Update_Screen;
+
+         if timing then declare
+            s : String (1 .. 7);
+            elapsed : Long_Float;
+         begin
+            after := gettime;
+            elapsed := (Long_Float (after.seconds - before.seconds) +
+                        Long_Float (after.microseconds - before.microseconds)
+                        / 1.0e6);
+            Move_Cursor (Line => Lines - 1, Column => Columns - 20);
+            floatio.Put (s, elapsed, Aft => 3, Exp => 0);
+            Add (Str => s);
+            Refresh;
+         end;
+         end if;
+
+         c := pgetc (pad);
+         exit when c = Key_Exit;
+
+      end loop;
+
+      Allow_Scrolling (Mode => True);
+
+   end panner;
+
+   Gridsize : constant := 3;
+   Gridcount : Integer := 0;
+
+   Pad_High : constant Line_Count :=  200;
+   Pad_Wide : constant Column_Count := 200;
+   panpad : Window := New_Pad (Pad_High, Pad_Wide);
+begin
+   if panpad = Null_Window then
+      Cannot ("cannot create requested pad");
+      return;
+   end if;
+
+   for i in 0 .. Pad_High - 1 loop
+      for j in 0 .. Pad_Wide - 1  loop
+         if i mod Gridsize = 0 and j mod Gridsize = 0 then
+            if i = 0 or j = 0 then
+               Add (panpad, '+');
+            else
+               --  depends on ASCII?
+               Add (panpad,
+                    Ch => Character'Val (Character'Pos ('A') +
+                                         Gridcount mod 26));
+               Gridcount := Gridcount + 1;
+            end if;
+         elsif i mod Gridsize = 0 then
+            Add (panpad, '-');
+         elsif j mod Gridsize = 0 then
+            Add (panpad, '|');
+         else
+            declare
+               --  handle the write to the lower right corner error
+            begin
+               Add (panpad, ' ');
+               exception
+               when Curses_Exception => null;
+            end;
+         end if;
+      end loop;
+   end loop;
+   panner_legend (Lines - 4);
+   panner_legend (Lines - 3);
+   panner_legend (Lines - 2);
+   panner_legend (Lines - 1);
+
+   Set_KeyPad_Mode (panpad, True);
+   --  Make the pad (initially) narrow enough that a trace file won't wrap.
+   --  We'll still be able to widen it during a test, since that's required
+   --  for testing boundaries.
+
+   panner (panpad, 2, 2, Lines - 5, Columns - 15, padgetch'Access);
+
+   Delete (panpad);
+   End_Windows; --  Hmm, Erase after End_Windows
+   Erase;
+end ncurses2.demo_pad;
diff --git a/Ada95/samples/ncurses2-demo_pad.ads b/Ada95/samples/ncurses2-demo_pad.ads
new file mode 100644 (file)
index 0000000..b996263
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.demo_pad;
diff --git a/Ada95/samples/ncurses2-demo_panels.adb b/Ada95/samples/ncurses2-demo_panels.adb
new file mode 100644 (file)
index 0000000..9988a9f
--- /dev/null
@@ -0,0 +1,379 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Panels.User_Data;
+
+with ncurses2.genericPuts;
+
+procedure ncurses2.demo_panels (nap_mseci : Integer) is
+   use Int_IO;
+
+   function  mkpanel (color : Color_Number;
+                      rows  : Line_Count;
+                      cols  : Column_Count;
+                      tly   : Line_Position;
+                      tlx   : Column_Position) return Panel;
+   procedure rmpanel (pan : in out Panel);
+   procedure pflush;
+   procedure wait_a_while (msec : Integer);
+   procedure saywhat (text : String);
+   procedure fill_panel (pan : Panel);
+
+   nap_msec : Integer := nap_mseci;
+
+   function mkpanel (color : Color_Number;
+                     rows  : Line_Count;
+                     cols  : Column_Count;
+                     tly   : Line_Position;
+                     tlx   : Column_Position) return Panel is
+      win : Window;
+      pan : Panel := Null_Panel;
+   begin
+      win := New_Window (rows, cols, tly, tlx);
+      if Null_Window /= win then
+         pan := New_Panel (win);
+         if pan = Null_Panel then
+            Delete (win);
+         elsif Has_Colors then
+            declare
+               fg, bg : Color_Number;
+            begin
+               if color = Blue then
+                  fg := White;
+               else
+                  fg := Black;
+               end if;
+               bg := color;
+               Init_Pair (Color_Pair (color), fg, bg);
+               Set_Background (win, (Ch => ' ',
+                                     Attr => Normal_Video,
+                                     Color => Color_Pair (color)));
+            end;
+         else
+            Set_Background (win, (Ch => ' ',
+                                  Attr => (Bold_Character => True,
+                                           others => False),
+                                  Color => Color_Pair (color)));
+         end if;
+      end if;
+      return pan;
+   end mkpanel;
+
+   procedure rmpanel (pan : in out Panel) is
+      win : Window := Panel_Window (pan);
+   begin
+      Delete (pan);
+      Delete (win);
+   end rmpanel;
+
+   procedure pflush is
+   begin
+      Update_Panels;
+      Update_Screen;
+   end pflush;
+
+   procedure wait_a_while (msec : Integer) is
+   begin
+      --  The C version had some #ifdef blocks here
+      if nap_msec = 1 then
+         Getchar;
+      else
+         Nap_Milli_Seconds (nap_msec);
+      end if;
+   end wait_a_while;
+
+   procedure saywhat (text : String) is
+   begin
+      Move_Cursor (Line => Lines - 1, Column => 0);
+      Clear_To_End_Of_Line;
+      Add (Str => text);
+   end saywhat;
+
+   --  from sample-curses_demo.adb
+   type User_Data is new String (1 .. 2);
+   type User_Data_Access is access all User_Data;
+   package PUD is new Panels.User_Data (User_Data, User_Data_Access);
+
+   use PUD;
+
+   procedure fill_panel (pan : Panel) is
+      win : Window := Panel_Window (pan);
+      num : Character := Get_User_Data (pan) (2);
+      tmp6 : String (1 .. 6) := "-panx-";
+      maxy : Line_Count;
+      maxx : Column_Count;
+
+   begin
+      Move_Cursor (win, 1, 1);
+      tmp6 (5) := num;
+      Add (win, Str => tmp6);
+      Clear_To_End_Of_Line (win);
+      Box (win);
+      Get_Size (win, maxy, maxx);
+      for y in 2 .. maxy - 2 loop
+         for x in 1 .. maxx - 2 loop
+            Move_Cursor (win, y, x);
+            Add (win, num);
+         end loop;
+      end loop;
+   end fill_panel;
+
+   modstr : array (0 .. 5) of String (1 .. 5) :=
+     ("test ",
+      "TEST ",
+      "(**) ",
+      "*()* ",
+      "<--> ",
+      "LAST "
+      );
+
+   package p is new ncurses2.genericPuts (1024);
+   use p;
+   use p.BS;
+   --  the C version said register int y, x;
+   tmpb : BS.Bounded_String;
+
+begin
+   Refresh;
+
+   for y in 0 .. Integer (Lines - 2) loop
+      for x in 0 .. Integer (Columns - 1) loop
+         myPut (tmpb, (y + x) mod 10);
+         myAdd (Str => tmpb);
+      end loop;
+   end loop;
+   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");
+
+      begin
+         p1 := mkpanel (Red, Lines / 2 - 2, Columns / 8 + 1, 0, 0);
+         Set_User_Data (p1, U1);
+         p2 := mkpanel (Green, Lines / 2 + 1, Columns / 7, Lines / 4,
+                        Columns / 10);
+         Set_User_Data (p2, U2);
+         p3 := mkpanel (Yellow, Lines / 4, Columns / 10, Lines / 2,
+                        Columns / 9);
+         Set_User_Data (p3, U3);
+         p4 := mkpanel (Blue, Lines / 2 - 2, Columns / 8,  Lines / 2 - 2,
+                        Columns / 3);
+         Set_User_Data (p4, U4);
+         p5 := mkpanel (Magenta, Lines / 2 - 2, Columns / 8,  Lines / 2,
+                        Columns / 2 - 2);
+         Set_User_Data (p5, U5);
+
+         fill_panel (p1);
+         fill_panel (p2);
+         fill_panel (p3);
+         fill_panel (p4);
+         fill_panel (p5);
+         Hide (p4);
+         Hide (p5);
+         pflush;
+         saywhat ("press any key to continue");
+         wait_a_while (nap_msec);
+
+         saywhat ("h3 s1 s2 s4 s5; press any key to continue");
+         Move (p1, 0, 0);
+         Hide (p3);
+         Show (p1);
+         Show (p2);
+         Show (p4);
+         Show (p5);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("s1; press any key to continue");
+         Show (p1);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("s2; press any key to continue");
+         Show (p2);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("m2; press any key to continue");
+         Move (p2, Lines / 3 + 1, Columns / 8);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("s3;");
+         Show (p3);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("m3; press any key to continue");
+         Move (p3, Lines / 4 + 1, Columns / 15);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("b3; press any key to continue");
+         Bottom (p3);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("s4; press any key to continue");
+         Show (p4);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("s5; press any key to continue");
+         Show (p5);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t3; press any key to continue");
+         Top (p3);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t1; press any key to continue");
+         Top (p1);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t2; press any key to continue");
+         Top (p2);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t3; press any key to continue");
+         Top (p3);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t4; press any key to continue");
+         Top (p4);
+         pflush;
+         wait_a_while (nap_msec);
+
+         for itmp in  0 ..  5 loop
+            declare
+               w4 : Window := Panel_Window (p4);
+               w5 : Window := Panel_Window (p5);
+            begin
+
+               saywhat ("m4; press any key to continue");
+               Move_Cursor (w4, Lines / 8, 1);
+               Add (w4, modstr (itmp));
+               Move (p4, Lines / 6, Column_Position (itmp) * (Columns / 8));
+               Move_Cursor (w5, Lines / 6, 1);
+               Add (w5, modstr (itmp));
+               pflush;
+               wait_a_while (nap_msec);
+
+               saywhat ("m5; press any key to continue");
+               Move_Cursor (w4, Lines / 6, 1);
+               Add (w4, modstr (itmp));
+               Move (p5, Lines / 3 - 1, (Column_Position (itmp) * 10) + 6);
+               Move_Cursor (w5, Lines / 8, 1);
+               Add (w5, modstr (itmp));
+               pflush;
+               wait_a_while (nap_msec);
+            end;
+         end loop;
+
+         saywhat ("m4; press any key to continue");
+         Move (p4, Lines / 6, 6 * (Columns / 8));
+         --  Move(p4, Lines / 6, itmp * (Columns / 8));
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t5; press any key to continue");
+         Top (p5);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t2; press any key to continue");
+         Top (p2);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("t1; press any key to continue");
+         Top (p1);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("d2; press any key to continue");
+         rmpanel (p2);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("h3; press any key to continue");
+         Hide (p3);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("d1; press any key to continue");
+         rmpanel (p1);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("d4; press any key to continue");
+         rmpanel (p4);
+         pflush;
+         wait_a_while (nap_msec);
+
+         saywhat ("d5; press any key to continue");
+         rmpanel (p5);
+         pflush;
+         wait_a_while (nap_msec);
+         if (nap_msec = 1) then
+            exit;
+         else
+            nap_msec := 100;
+         end if;
+
+      end;
+   end loop;
+
+   Erase;
+   End_Windows;
+
+end ncurses2.demo_panels;
diff --git a/Ada95/samples/ncurses2-demo_panels.ads b/Ada95/samples/ncurses2-demo_panels.ads
new file mode 100644 (file)
index 0000000..eb2878c
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.demo_panels (nap_mseci : Integer);
diff --git a/Ada95/samples/ncurses2-flushinp_test.adb b/Ada95/samples/ncurses2-flushinp_test.adb
new file mode 100644 (file)
index 0000000..9ea98e1
--- /dev/null
@@ -0,0 +1,135 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with ncurses2.util; use ncurses2.util;
+
+procedure ncurses2.flushinp_test (win : Window) is
+
+   procedure Continue (win : Window);
+
+   procedure Continue (win : Window) is
+   begin
+      Set_Echo_Mode (False);
+      Move_Cursor (win, 10, 1);
+      Add (win, 10, 1, " Press any key to continue");
+      Refresh (win);
+      Getchar (win);
+   end Continue;
+
+   h, by, sh : Line_Position;
+   w, bx, sw : Column_Position;
+
+   subWin : Window;
+
+begin
+   Clear (win);
+   Get_Size (win, h, w);
+   Get_Window_Position (win, by, bx);
+   sw := w / 3;
+   sh := h / 3;
+   subWin := Sub_Window (win, sh, sw, by + h - sh - 2, bx + w - sw - 2);
+
+   if Has_Colors then
+      Init_Pair (2, Cyan, Blue);
+      Change_Background (subWin,
+                         Attributed_Character'(Ch => ' ', Color => 2,
+                                               Attr => Normal_Video));
+   end if;
+
+   Set_Character_Attributes (subWin,
+                             (Bold_Character => True, others => False));
+   Box (subWin);
+   Add (subWin, 2, 1, "This is a subwindow");
+   Refresh (win);
+
+   Set_Cbreak_Mode (True);
+   Add (win, 0, 1, "This is a test of the flushinp() call.");
+
+   Add (win, 2, 1, "Type random keys for 5 seconds.");
+   Add (win, 3, 1,
+        "These should be discarded (not echoed) after the subwindow " &
+        "goes away.");
+   Refresh (win);
+
+   for i in 0 .. 4 loop
+      Move_Cursor (subWin, 1, 1);
+      Add (subWin, Str => "Time = ");
+      Add (subWin, Str => Integer'Image (i));
+      Refresh (subWin);
+      Nap_Milli_Seconds (1000);
+      Flush_Input;
+   end loop;
+
+   Delete (subWin);
+   Erase (win);
+   Flash_Screen;
+   Refresh (win);
+   Nap_Milli_Seconds (1000);
+
+   Add (win, 2, 1,
+        Str => "If you were still typing when the window timer expired,");
+   Add (win, 3, 1,
+        "or else you typed nothing at all while it was running,");
+   Add (win, 4, 1,
+        "test was invalid.  You'll see garbage or nothing at all. ");
+   Add (win, 6, 1, "Press a key");
+   Move_Cursor (win, 9, 10);
+   Refresh (win);
+   Set_Echo_Mode (True);
+   Getchar (win);
+   Flush_Input;
+   Add (win, 12, 0,
+        "If you see any key other than what you typed, flushinp() is broken.");
+   Continue (win);
+
+   Move_Cursor (win, 9, 10);
+   Delete_Character (win);
+   Refresh (win);
+   Move_Cursor (win, 12, 0);
+   Clear_To_End_Of_Line;
+   Add (win,
+        "What you typed should now have been deleted; if not, wdelch() " &
+        "failed.");
+   Continue (win);
+
+   Set_Cbreak_Mode (True);
+
+end ncurses2.flushinp_test;
diff --git a/Ada95/samples/ncurses2-flushinp_test.ads b/Ada95/samples/ncurses2-flushinp_test.ads
new file mode 100644 (file)
index 0000000..5376c94
--- /dev/null
@@ -0,0 +1,43 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses;
+
+procedure ncurses2.flushinp_test (win : Terminal_Interface.Curses.Window);
diff --git a/Ada95/samples/ncurses2-genericputs.adb b/Ada95/samples/ncurses2-genericputs.adb
new file mode 100644 (file)
index 0000000..f17b209
--- /dev/null
@@ -0,0 +1,126 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO; use Ada.Text_IO;
+with Ada.Strings.Bounded; use Ada.Strings.Bounded;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+
+
+package body ncurses2.genericPuts is
+
+   procedure myGet (Win : in  Window := Standard_Window;
+                    Str : out BS.Bounded_String;
+                    Len : in  Integer := -1)
+   is
+      use BS;
+      function Wgetnstr (Win : Window;
+                         Str : char_array;
+                         Len : int) return int;
+      pragma Import (C, Wgetnstr, "wgetnstr");
+
+      N        : Integer := Len;
+      Txt : char_array (0 .. size_t (Max_Length));
+      xStr : String (1 .. Max_Length);
+      Cnt : Natural;
+   begin
+      if N < 0 then
+         N := Max_Length;
+      end if;
+      if N > Max_Length then
+         raise Constraint_Error;
+      end if;
+      Txt (0) := Interfaces.C.char'First;
+      if Wgetnstr (Win, Txt, C_Int (N)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+      To_Ada (Txt, xStr, Cnt, True);
+      Str := To_Bounded_String (xStr (1 .. Cnt));
+   end myGet;
+
+
+
+   procedure myPut (Str  : out BS.Bounded_String;
+                    i    : Integer;
+                    Base : in     Number_Base := 10) is
+      package Int_IO is new Integer_IO (Integer); use Int_IO;
+      tmp : String (1 .. BS.Max_Length);
+   begin
+      Put (tmp, i, Base);
+      Str := To_Bounded_String (tmp);
+      Trim (Str, Ada.Strings.Trim_End'(Ada.Strings.Left));
+   end myPut;
+
+   procedure myAdd (Str : BS.Bounded_String) is
+   begin
+      Add (Str => To_String (Str));
+   end myAdd;
+
+   --  from ncurses-aux
+   procedure Fill_String (Cp  : in  chars_ptr;
+                          Str : out BS.Bounded_String)
+   is
+      --  Fill the string with the characters referenced by the
+      --  chars_ptr.
+      --
+      Len : Natural;
+   begin
+      if Cp /= Null_Ptr then
+         Len := Natural (Strlen (Cp));
+         if Max_Length < Len then
+            raise Constraint_Error;
+         end if;
+         declare
+            S : String (1 .. Len);
+         begin
+            S := Value (Cp);
+            Str := To_Bounded_String (S);
+         end;
+      else
+         Str := Null_Bounded_String;
+      end if;
+
+   end Fill_String;
+
+end ncurses2.genericPuts;
diff --git a/Ada95/samples/ncurses2-genericputs.ads b/Ada95/samples/ncurses2-genericputs.ads
new file mode 100644 (file)
index 0000000..eec7eba
--- /dev/null
@@ -0,0 +1,73 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+with Ada.Text_IO; use Ada.Text_IO;
+with Ada.Strings.Bounded;
+use Ada.Strings.Bounded;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Terminal_Interface.Curses;
+
+
+generic
+   Max : Natural;
+   --   type mystring is private;
+   --   type myint is
+package ncurses2.genericPuts is
+   package BS is new
+     Ada.Strings.Bounded.Generic_Bounded_Length (Max);
+   use BS;
+
+
+   procedure myGet (Win : in  Terminal_Interface.Curses.Window
+                      := Terminal_Interface.Curses.Standard_Window;
+                    Str : out BS.Bounded_String;
+                    Len : in  Integer := -1);
+
+   procedure myPut (Str : out BS.Bounded_String;
+                    i : Integer;
+                    Base : in Number_Base := 10);
+   --  the default should be Ada.Text_IO.Integer_IO.Default_Base
+   --  but Default_Base is hidden in the generic so doesn't exist!
+   procedure myAdd (Str : BS.Bounded_String);
+
+   procedure Fill_String (Cp  : in  chars_ptr; Str : out BS.Bounded_String);
+end ncurses2.genericPuts;
diff --git a/Ada95/samples/ncurses2-getch.ads b/Ada95/samples/ncurses2-getch.ads
new file mode 100644 (file)
index 0000000..21a09f3
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure getch_test;
diff --git a/Ada95/samples/ncurses2-getch_test.adb b/Ada95/samples/ncurses2-getch_test.adb
new file mode 100644 (file)
index 0000000..d786d49
--- /dev/null
@@ -0,0 +1,251 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+--  Character input test
+--  test the keypad feature
+
+with ncurses2.util; use ncurses2.util;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+with Ada.Characters.Handling;
+with Ada.Strings.Bounded;
+
+with ncurses2.genericPuts;
+
+procedure ncurses2.getch_test is
+   use Int_IO;
+
+   function mouse_decode (ep : Mouse_Event) return String;
+
+   function mouse_decode (ep : Mouse_Event) return String is
+      Y      : Line_Position;
+      X      : Column_Position;
+      Button : Mouse_Button;
+      State  : Button_State;
+      package BS is new Ada.Strings.Bounded.Generic_Bounded_Length (200);
+      use BS;
+      buf : Bounded_String := To_Bounded_String ("");
+   begin
+      --  Note that these bindings do not allow
+      --  two button states,
+      --  The C version can print {click-1, click-3} for example.
+      --  They also don't have the 'id' or z coordinate.
+      Get_Event (ep, Y, X, Button, State);
+
+      --  TODO Append (buf, "id "); from C version
+      Append (buf, "at (");
+      Append (buf, Column_Position'Image (X));
+      Append (buf, ", ");
+      Append (buf, Line_Position'Image (Y));
+      Append (buf, ") state");
+      Append (buf, Mouse_Button'Image (Button));
+
+      Append (buf, " = ");
+      Append (buf, Button_State'Image (State));
+      return To_String (buf);
+   end mouse_decode;
+
+
+   buf : String (1 .. 1024); --  TODO was BUFSIZE
+   n : Integer;
+   c : Key_Code;
+   blockflag : Timeout_Mode := Blocking;
+   firsttime : Boolean := True;
+   tmp2  : Event_Mask;
+   tmp6 : String (1 .. 6);
+   tmp20 : String (1 .. 20);
+   x : Column_Position;
+   y : Line_Position;
+   tmpx : Integer;
+   incount : Integer := 0;
+begin
+   Refresh;
+   tmp2 := Start_Mouse (All_Events);
+   Add (Str => "Delay in 10ths of a second (<CR> for blocking input)? ");
+   Set_Echo_Mode (SwitchOn => True);
+   Get (Str => buf);
+
+   Set_Echo_Mode (SwitchOn => False);
+   Set_NL_Mode (SwitchOn => False);
+
+   if Ada.Characters.Handling.Is_Digit (buf (1)) then
+      Get (Item => n, From => buf, Last => tmpx);
+      Set_Timeout_Mode (Mode => Delayed, Amount => n * 100);
+      blockflag := Delayed;
+   end if;
+
+   c := Character'Pos ('?');
+   Set_Raw_Mode (SwitchOn => True);
+   loop
+      if not firsttime then
+         Add (Str => "Key pressed: ");
+         Put (tmp6, Integer (c), 8);
+         Add (Str => tmp6);
+         Add (Ch => ' ');
+         if c = Key_Mouse then declare
+            event : Mouse_Event;
+         begin
+            event := Get_Mouse;
+            Add (Str => "KEY_MOUSE, ");
+            Add (Str => mouse_decode (event));
+            Add (Ch => newl);
+         end;
+         elsif c >= Key_Min then
+            Key_Name (c, tmp20);
+            Add (Str => tmp20);
+            --  I used tmp and got bitten by the length problem:->
+            Add (Ch => newl);
+         elsif c > 16#80# then --  TODO fix, use constant if possible
+            declare
+               c2 : Character := Character'Val (c mod 16#80#);
+            begin
+               if Ada.Characters.Handling.Is_Graphic (c2) then
+                  Add (Str => "M-");
+                  Add (Ch => c2);
+               else
+                  Add (Str => "M-");
+                  Add (Str => Un_Control ((Ch => c2,
+                                           Color => Color_Pair'First,
+                                           Attr => Normal_Video)));
+               end if;
+               Add (Str => " (high-half character)");
+               Add (Ch => newl);
+            end;
+         else declare
+            c2 : Character := Character'Val (c mod 16#80#);
+         begin
+            if Ada.Characters.Handling.Is_Graphic (c2) then
+               Add (Ch => c2);
+               Add (Str => " (ASCII printable character)");
+               Add (Ch => newl);
+            else
+               Add (Str => Un_Control ((Ch => c2,
+                                       Color => Color_Pair'First,
+                                       Attr => Normal_Video)));
+               Add (Str => " (ASCII control character)");
+               Add (Ch => newl);
+            end if;
+         end;
+         end if;
+         --  TODO I am not sure why this was in the C version
+         --  the delay statement scroll anyway.
+         Get_Cursor_Position (Line => y, Column => x);
+         if y >= Lines - 1 then
+            Move_Cursor (Line => 0, Column => 0);
+         end if;
+         Clear_To_End_Of_Line;
+      end if;
+
+      firsttime := False;
+      if c = Character'Pos ('g') then
+         declare
+            package p is new ncurses2.genericPuts (1024);
+            use p;
+            use p.BS;
+            timedout : Boolean := False;
+            boundedbuf : Bounded_String;
+         begin
+            Add (Str => "getstr test: ");
+            Set_Echo_Mode (SwitchOn => True);
+            --  Note that if delay mode is set
+            --  Get can raise an exception.
+            --  The C version would print the string it had so far
+            --  also TODO get longer length string, like the C version
+            declare begin
+               myGet (Str => boundedbuf);
+            exception when Curses_Exception =>
+               Add (Str => "Timed out.");
+               Add (Ch => newl);
+               timedout := True;
+            end;
+            --  note that the Ada Get will stop reading at 1024.
+            if not timedout then
+               Set_Echo_Mode (SwitchOn => False);
+               Add (Str => " I saw '");
+               myAdd (Str => boundedbuf);
+               Add (Str => "'.");
+               Add (ch => newl);
+            end if;
+         end;
+      elsif c = Character'Pos ('s') then
+         ShellOut (True);
+      elsif c = Character'Pos ('x') or c = Character'Pos ('q') or
+        (c = Key_None and blockflag = Blocking) then
+         exit;
+      elsif c = Character'Pos ('?') then
+         Add (Str => "Type any key to see its keypad value.  Also:");
+         Add (Ch => newl);
+         Add (Str => "g -- triggers a getstr test");
+         Add (Ch => newl);
+         Add (Str => "s -- shell out");
+         Add (Ch => newl);
+         Add (Str => "q -- quit");
+         Add (Ch => newl);
+         Add (Str => "? -- repeats this help message");
+         Add (Ch => newl);
+      end if;
+
+      loop
+         c := Getchar;
+         exit when c /= Key_None;
+         if blockflag /= Blocking then
+            Put (tmp6, incount); --  argh string length!
+            Add (Str => tmp6);
+            Add (Str => ": input timed out");
+            Add (Ch => newl);
+         else
+            Put (tmp6, incount);
+            Add (Str => tmp6);
+            Add (Str => ": input error");
+            Add (Ch => newl);
+            exit;
+         end if;
+         incount := incount + 1;
+      end loop;
+   end loop;
+
+   tmp2 := Start_Mouse (No_Events);
+   Set_Timeout_Mode (Mode => Blocking, Amount => 0); --  amount is ignored
+   Set_Raw_Mode (SwitchOn => False);
+   Set_NL_Mode (SwitchOn => True);
+   Erase;
+   End_Windows;
+end ncurses2.getch_test;
diff --git a/Ada95/samples/ncurses2-getch_test.ads b/Ada95/samples/ncurses2-getch_test.ads
new file mode 100644 (file)
index 0000000..78a0a48
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.getch_test;
diff --git a/Ada95/samples/ncurses2-getopt.adb b/Ada95/samples/ncurses2-getopt.adb
new file mode 100644 (file)
index 0000000..93f1713
--- /dev/null
@@ -0,0 +1,168 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+--  A simplified version of the  GNU getopt function
+--  copyright Free Software Foundtion
+
+with Ada.Strings.Fixed;
+with Ada.Strings.Bounded;
+with Ada.Text_IO; use Ada.Text_IO;
+
+package body ncurses2.getopt is
+
+   opterr : Character := Character'Val (1);
+   optopt : Character := '?';
+   initialized : Boolean := False;
+
+   nextchar : Natural := 0;
+
+   --  Ncurses doesn't use the non option elements so we are spared
+   --  the job of computing those.
+
+   --  also the user is not allowed to modify argv or argc
+   --  Doing so is Erroneous execution.
+
+   --  longoptions are not handled.
+
+   procedure Qgetopt (retval : out Integer;
+                      argc : Integer;
+                      argv : stringfunc;
+                        --  argv will be the Argument function.
+                      optstring : String;
+                      optind : in out Integer;
+                        --  ignored for ncurses, must be initialized to 1 by
+                        --  the caller
+                      Optarg : out stringa
+                        --  a garbage colector would be useful here.
+                     ) is
+
+      package BS is new Ada.Strings.Bounded.Generic_Bounded_Length (200);
+      use BS;
+      optargx : Bounded_String;
+   begin
+
+      if argc < optind then
+         retval := -1;
+         return;
+      end if;
+
+      optargx := To_Bounded_String ("");
+
+      if nextchar = 0 then
+
+         if argv (optind) = "--" then
+                           --  the rest are non-options, we ignore them
+            retval := -1;
+            return;
+         end if;
+
+         if argv (optind)(1) /= '-' or argv (optind)'Length = 1 then
+            optind := optind + 1;
+            Optarg := new String'(argv (optind));
+            retval := 1;
+            return;
+         end if;
+
+         nextchar := 2; -- skip the one hyphen.
+      end if;
+
+      --  Look at and handle the next short option-character.
+      declare
+         c : Character := argv (optind) (nextchar);
+         temp : 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;
+
+         if optstring (temp + 1) = ':' then
+            if optstring (temp + 2) = ':' then
+               --  This is an option that accepts an argument optionally.
+               if nextchar /= argv (optind)'Length then
+                  optargx := To_Bounded_String
+                    (argv (optind) (nextchar .. argv (optind)'Length));
+               else
+                  Optarg := null;
+               end if;
+            else
+               --  This is an option that requires an argument.
+               if nextchar /= argv (optind)'Length then
+                  optargx := To_Bounded_String
+                    (argv (optind) (nextchar .. argv (optind)'Length));
+                  optind := optind + 1;
+               elsif optind = argc then
+                  Put_Line (Standard_Error,
+                            argv (optind) &
+                            ": option requires an argument -- " & c);
+                  optopt := c;
+                  if optstring (1) = ':'  then
+                     c := ':';
+                  else
+                     c := '?';
+                  end if;
+               else
+                  --  increment it again when taking next ARGV-elt as argument.
+                  optind := optind + 1;
+                  optargx := To_Bounded_String (argv (optind));
+                  optind := optind + 1;
+               end if;
+            end if;
+            nextchar := 0;
+         else -- no argument for the option
+            if nextchar = argv (optind)'Length then
+               optind := optind + 1;
+               nextchar := 0;
+            else
+               nextchar := nextchar + 1;
+            end if;
+         end if;
+
+         retval := Character'Pos (c);
+         Optarg := new String'(To_String (optargx));
+         return;
+      end;
+   end Qgetopt;
+
+end ncurses2.getopt;
diff --git a/Ada95/samples/ncurses2-getopt.ads b/Ada95/samples/ncurses2-getopt.ads
new file mode 100644 (file)
index 0000000..0bd6952
--- /dev/null
@@ -0,0 +1,59 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package ncurses2.getopt is
+
+   type stringa is access String;
+
+   type stringfunc is access
+     function (n : Positive) return String;
+
+
+   procedure Qgetopt (retval    : out Integer;
+                      argc      : Integer;
+                      argv      : stringfunc;
+                      optstring : String;
+                      optind    : in out Integer;
+                        --  ignored for ncurses, must be initialized to 0
+                        --  by the caller
+                      Optarg    : out stringa
+                        --  a garbage collector would be useful here.
+                     );
+end ncurses2.getopt;
diff --git a/Ada95/samples/ncurses2-m.adb b/Ada95/samples/ncurses2-m.adb
new file mode 100644 (file)
index 0000000..d4f2b8a
--- /dev/null
@@ -0,0 +1,460 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+--  TODO use Default_Character where appropriate
+
+--  This is an Ada version of ncurses
+--  I translated this because it tests the most features.
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Trace; use Terminal_Interface.Curses.Trace;
+
+with Ada.Text_IO; use Ada.Text_IO;
+
+with Ada.Characters.Latin_1;
+--  with Ada.Characters.Handling;
+
+with Ada.Command_Line; use Ada.Command_Line;
+
+with Ada.Strings.Unbounded;
+
+
+with ncurses2.util; use ncurses2.util;
+with ncurses2.getch_test;
+with ncurses2.attr_test;
+with ncurses2.color_test;
+with ncurses2.demo_panels;
+with ncurses2.color_edit;
+with ncurses2.slk_test;
+with ncurses2.acs_display;
+with ncurses2.color_edit;
+with ncurses2.acs_and_scroll;
+with ncurses2.flushinp_test;
+with ncurses2.test_sgr_attributes;
+with ncurses2.menu_test;
+with ncurses2.demo_pad;
+with ncurses2.demo_forms;
+with ncurses2.overlap_test;
+with ncurses2.trace_set;
+
+with ncurses2.getopt; use ncurses2.getopt;
+
+package body ncurses2.m is
+   use Int_IO;
+
+   function To_trace (n : Integer) return Trace_Attribute_Set;
+   procedure usage;
+   procedure Set_Terminal_Modes;
+   function Do_Single_Test (c : Character) return Boolean;
+
+   function To_trace (n : Integer) return Trace_Attribute_Set is
+      a : Trace_Attribute_Set := (others => False);
+      m : Integer;
+      rest : Integer;
+   begin
+      m := n  mod 2;
+      if 1 = m then
+         a.Times := True;
+      end if;
+      rest := n / 2;
+
+      m := rest mod 2;
+      if 1 = m then
+         a.Tputs := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Update := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Cursor_Move := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Character_Output := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Calls := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Virtual_Puts := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Input_Events := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.TTY_State := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Internal_Calls := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Character_Calls := True;
+      end if;
+      rest := rest / 2;
+      m := rest mod 2;
+      if 1 = m then
+         a.Termcap_TermInfo := True;
+      end if;
+
+      return a;
+   end To_trace;
+
+   --   these are type Stdscr_Init_Proc;
+
+   function rip_footer (
+                        Win : Window;
+                        Columns : Column_Count) return Integer;
+   pragma Convention (C, rip_footer);
+
+   function rip_footer (
+                        Win : Window;
+                        Columns : Column_Count) return Integer is
+   begin
+      Set_Background (Win, (Ch => ' ',
+                            Attr => (Reverse_Video => True, others => False),
+                            Color => 0));
+      Erase (Win);
+      Move_Cursor (Win, 0, 0);
+      Add (Win, "footer:"  & Columns'Img & " columns");
+      Refresh_Without_Update (Win);
+      return 0; -- Curses_OK;
+   end rip_footer;
+
+
+   function rip_header (
+                        Win : Window;
+                        Columns : Column_Count) return Integer;
+   pragma Convention (C, rip_header);
+
+   function rip_header (
+                        Win : Window;
+                        Columns : Column_Count) return Integer is
+   begin
+      Set_Background (Win, (Ch => ' ',
+                            Attr => (Reverse_Video => True, others => False),
+                            Color => 0));
+      Erase (Win);
+      Move_Cursor (Win, 0, 0);
+      Add (Win, "header:"  & Columns'Img & " columns");
+      --  'Img is a GNAT extention
+      Refresh_Without_Update (Win);
+      return 0; -- Curses_OK;
+   end rip_header;
+
+   procedure usage is
+      --  type Stringa is access String;
+      use Ada.Strings.Unbounded;
+      --  tbl : constant array (Positive range <>) of Stringa := (
+      tbl : constant array (Positive range <>) of Unbounded_String
+        := (
+            To_Unbounded_String ("Usage: ncurses [options]"),
+            To_Unbounded_String (""),
+            To_Unbounded_String ("Options:"),
+            To_Unbounded_String ("  -a f,b   set default-colors " &
+                                 "(assumed white-on-black)"),
+            To_Unbounded_String ("  -d       use default-colors if terminal " &
+                                 "supports them"),
+            To_Unbounded_String ("  -e fmt   specify format for soft-keys " &
+                                 "test (e)"),
+            To_Unbounded_String ("  -f       rip-off footer line " &
+                                 "(can repeat)"),
+            To_Unbounded_String ("  -h       rip-off header line " &
+                                 "(can repeat)"),
+            To_Unbounded_String ("  -s msec  specify nominal time for " &
+                                 "panel-demo (default: 1, to hold)"),
+            To_Unbounded_String ("  -t mask  specify default trace-level " &
+                                 "(may toggle with ^T)")
+            );
+   begin
+      for n in tbl'Range loop
+         Put_Line (Standard_Error, To_String (tbl (n)));
+      end loop;
+      --     exit(EXIT_FAILURE);
+      --  TODO should we use Set_Exit_Status and throw and exception?
+   end usage;
+
+   procedure Set_Terminal_Modes is begin
+      Set_Raw_Mode (SwitchOn => False);
+      Set_Cbreak_Mode (SwitchOn => True);
+      Set_Echo_Mode (SwitchOn => False);
+      Allow_Scrolling (Mode => True);
+      Use_Insert_Delete_Line (Do_Idl => True);
+      Set_KeyPad_Mode (SwitchOn => True);
+   end Set_Terminal_Modes;
+
+
+   nap_msec : Integer := 1;
+
+   function Do_Single_Test (c : Character) return Boolean is
+   begin
+      case c is
+         when 'a' =>
+            getch_test;
+         when 'b' =>
+            attr_test;
+         when 'c' =>
+            if not Has_Colors then
+               Cannot ("does not support color.");
+            else
+               color_test;
+            end if;
+         when 'd' =>
+            if not Has_Colors then
+               Cannot ("does not support color.");
+            elsif not Can_Change_Color then
+               Cannot ("has hardwired color values.");
+            else
+               color_edit;
+            end if;
+         when 'e' =>
+            slk_test;
+         when 'f' =>
+            acs_display;
+         when 'o' =>
+            demo_panels (nap_msec);
+         when 'g' =>
+            acs_and_scroll;
+         when 'i' =>
+            flushinp_test (Standard_Window);
+         when 'k' =>
+            test_sgr_attributes;
+         when 'm' =>
+            menu_test;
+         when 'p' =>
+            demo_pad;
+         when 'r' =>
+            demo_forms;
+         when 's' =>
+            overlap_test;
+         when 't' =>
+            trace_set;
+         when '?' =>
+            null;
+         when others => return False;
+      end case;
+      return True;
+   end Do_Single_Test;
+
+
+   command : Character;
+   my_e_param : Soft_Label_Key_Format := Four_Four;
+   assumed_colors : Boolean := False;
+   default_colors : Boolean := False;
+   default_fg : Color_Number := White;
+   default_bg : Color_Number := Black;
+   --  nap_msec was an unsigned long integer in the C version,
+   --  yet napms only takes an int!
+
+   c : Integer;
+   c2 : Character;
+   optind : Integer := 1; -- must be initialized to one.
+   type stringa is access String;
+   optarg : getopt.stringa;
+
+   length : Integer;
+   tmpi : Integer;
+
+   package myio is new Ada.Text_IO.Integer_IO (Integer);
+   use myio;
+
+   save_trace : Integer := 0;
+   save_trace_set : Trace_Attribute_Set;
+
+   function main return Integer is
+   begin
+      loop
+         Qgetopt (c, Argument_Count, Argument'Access,
+                  "a:de:fhs:t:", optind, optarg);
+         exit when c = -1;
+         c2 := Character'Val (c);
+         case c2 is
+            when 'a' =>
+               --  Ada doesn't have scanf, it doesn't even have a
+               --  regular expression library.
+               assumed_colors := True;
+               myio.Get (optarg.all, Integer (default_fg), length);
+               myio.Get (optarg.all (length + 2 .. optarg.all'Length),
+                         Integer (default_bg), length);
+            when 'd' =>
+               default_colors := True;
+            when 'e' =>
+               myio.Get (optarg.all, tmpi, length);
+               if Integer (tmpi) > 3 then
+                  usage;
+                  return 1;
+               end if;
+               my_e_param := Soft_Label_Key_Format'Val (tmpi);
+            when 'f' =>
+               Rip_Off_Lines (-1, rip_footer'Access);
+            when 'h' =>
+               Rip_Off_Lines (1, rip_header'Access);
+            when 's' =>
+               myio.Get (optarg.all, nap_msec, length);
+            when 't' =>
+               myio.Get (optarg.all, save_trace, length);
+            when others =>
+               usage;
+               return 1;
+         end case;
+      end loop;
+
+      --  the C version had a bunch of macros here.
+
+      --   if (!isatty(fileno(stdin)))
+      --   isatty is not available in the standard Ada so skip it.
+      save_trace_set := To_trace (save_trace);
+      Trace_On (save_trace_set);
+
+
+      Init_Soft_Label_Keys (my_e_param);
+
+      Init_Screen;
+      Set_Background (Ch => (Ch    => Blank,
+                             Attr  => Normal_Video,
+                             Color => Color_Pair'First));
+
+      if Has_Colors then
+         Start_Color;
+         if default_colors then
+            Use_Default_Colors;
+         elsif assumed_colors then
+            Assume_Default_Colors (default_fg, default_bg);
+         end if;
+      end if;
+
+      Set_Terminal_Modes;
+      Save_Curses_Mode (Curses);
+
+      End_Windows;
+
+      --  TODO add macro #if blocks.
+      Put_Line ("Welcome to " & Curses_Version & ".  Press ? for help.");
+
+      loop
+         Put_Line ("This is the ncurses main menu");
+         Put_Line ("a = keyboard and mouse input test");
+         Put_Line ("b = character attribute test");
+         Put_Line ("c = color test pattern");
+         Put_Line ("d = edit RGB color values");
+         Put_Line ("e = exercise soft keys");
+         Put_Line ("f = display ACS characters");
+         Put_Line ("g = display windows and scrolling");
+         Put_Line ("i = test of flushinp()");
+         Put_Line ("k = display character attributes");
+         Put_Line ("m = menu code test");
+         Put_Line ("o = exercise panels library");
+         Put_Line ("p = exercise pad features");
+         Put_Line ("q = quit");
+         Put_Line ("r = exercise forms code");
+         Put_Line ("s = overlapping-refresh test");
+         Put_Line ("t = set trace level");
+         Put_Line ("? = repeat this command summary");
+
+         Put ("> ");
+         Flush;
+
+         command := Ada.Characters.Latin_1.NUL;
+         --              get_input:
+         --              loop
+         declare
+            Ch : Character;
+         begin
+            Get (Ch);
+            --  TODO if read(ch) <= 0
+            --  TODO ada doesn't have an Is_Space function
+            command := Ch;
+            --  TODO if ch = '\n' or '\r' are these in Ada?
+         end;
+         --              end loop get_input;
+
+         declare
+         begin
+            if Do_Single_Test (command) then
+               Flush_Input;
+               Set_Terminal_Modes;
+               Reset_Curses_Mode (Curses);
+               Clear;
+               Refresh;
+               End_Windows;
+               if command = '?' then
+                  Put_Line ("This is the ncurses capability tester.");
+                  Put_Line ("You may select a test from the main menu by " &
+                            "typing the");
+                  Put_Line ("key letter of the choice (the letter to left " &
+                            "of the =)");
+                  Put_Line ("at the > prompt.  The commands `x' or `q' will " &
+                            "exit.");
+               end if;
+               --  continue; --why continue in the C version?
+            end if;
+         exception
+            when Curses_Exception => End_Windows;
+         end;
+
+         exit when command = 'q';
+      end loop;
+      return 0; -- TODO ExitProgram(EXIT_SUCCESS);
+   end main;
+
+end ncurses2.m;
+
+
+
+
+
+
+
diff --git a/Ada95/samples/ncurses2-m.ads b/Ada95/samples/ncurses2-m.ads
new file mode 100644 (file)
index 0000000..c32d895
--- /dev/null
@@ -0,0 +1,43 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package ncurses2.m is
+   function main return Integer;
+end ncurses2.m;
diff --git a/Ada95/samples/ncurses2-menu_test.adb b/Ada95/samples/ncurses2-menu_test.adb
new file mode 100644 (file)
index 0000000..0b96315
--- /dev/null
@@ -0,0 +1,165 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+
+procedure ncurses2.menu_test is
+   function menu_virtualize (c : Key_Code) return Menu_Request_Code;
+   procedure xAdd (l : Line_Position; c : Column_Position; s : String);
+
+   function menu_virtualize (c : Key_Code) return Menu_Request_Code is
+   begin
+      case c is
+         when Character'Pos (newl) | Key_Exit =>
+            return Menu_Request_Code'Last + 1; --  MAX_COMMAND? TODO
+         when  Character'Pos ('u')  =>
+            return M_ScrollUp_Line;
+         when  Character'Pos ('d') =>
+            return M_ScrollDown_Line;
+         when  Character'Pos ('b') |  Key_Next_Page =>
+            return M_ScrollUp_Page;
+         when  Character'Pos ('f') |  Key_Previous_Page =>
+            return M_ScrollDown_Page;
+         when  Character'Pos ('n') |  Key_Cursor_Down =>
+            return M_Next_Item;
+         when  Character'Pos ('p') |  Key_Cursor_Up =>
+            return M_Previous_Item;
+         when  Character'Pos (' ') =>
+            return M_Toggle_Item;
+         when  Key_Mouse =>
+            return c;
+         when others =>
+            Beep;
+            return c;
+      end case;
+   end menu_virtualize;
+
+   MENU_Y : constant Line_Count := 8;
+   MENU_X : constant Column_Count := 8;
+
+   type String_Access is access String;
+
+   animals : constant array (Positive range <>) of String_Access :=
+     (new String'("Lions"),
+      new String'("Tigers"),
+      new String'("Bears"),
+      new String'("(Oh my!)"),
+      new String'("Newts"),
+      new String'("Platypi"),
+      new String'("Lemurs"));
+
+   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);
+   end xAdd;
+
+   mrows : Line_Count;
+   mcols : Column_Count;
+
+   menuwin : Window;
+
+   m : Menu;
+
+   c1 : Key_Code;
+
+   c : Driver_Result;
+   r : Menu_Request_Code;
+begin
+   tmp := Start_Mouse;
+   xAdd (0, 0, "This is the menu test:");
+   xAdd (2, 0, "  Use up and down arrow to move the select bar.");
+   xAdd (3, 0, "  'n' and 'p' act like arrows.");
+   xAdd (4, 0, "  'b' and 'f' scroll up/down (page), 'u' and 'd' (line).");
+   xAdd (5, 0, "  Press return to exit.");
+   Refresh;
+
+   for i in animals'Range loop
+      items_a (i) := New_Item (animals (i).all);
+   end loop;
+   items_a (animals'Last + 1) := Null_Item;
+
+   m := New_Menu (items_a);
+
+   Set_Format (m, Line_Position (animals'Last + 1) / 2, 1);
+   Scale (m, mrows, mcols);
+
+   menuwin := Create (mrows + 2, mcols + 2, MENU_Y, MENU_X);
+   Set_Window (m, menuwin);
+   Set_KeyPad_Mode (menuwin, True);
+   Box (menuwin); -- 0,0?
+
+   Set_Sub_Window (m, Derived_Window (menuwin, mrows, mcols, 1, 1));
+
+   Post (m);
+
+   loop
+      c1 := Getchar (menuwin);
+      r := menu_virtualize (c1);
+      c := Driver (m, r);
+      exit when c = Unknown_Request; -- E_UNKNOWN_COMMAND?
+      if c = Request_Denied then
+         Beep;
+      end if;
+      --  continue ?
+   end loop;
+
+   Move_Cursor (Line => Lines - 2, Column => 0);
+   Add (Str => "You chose: ");
+   Add (Str => Name (Current (m)));
+   Add (Ch => newl);
+   Pause; -- the C version didn't use Pause, it spelled it out
+
+   Post (m, False); --  unpost, not clear :-(
+   declare begin
+      Delete (menuwin);
+   exception when Curses_Exception => null; end;
+   --  menuwin has children so will raise the exception.
+
+   Delete (m);
+
+   tmp := Start_Mouse (No_Events);
+end ncurses2.menu_test;
diff --git a/Ada95/samples/ncurses2-menu_test.ads b/Ada95/samples/ncurses2-menu_test.ads
new file mode 100644 (file)
index 0000000..17e5b16
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.menu_test;
diff --git a/Ada95/samples/ncurses2-overlap_test.adb b/Ada95/samples/ncurses2-overlap_test.adb
new file mode 100644 (file)
index 0000000..5d3fc6d
--- /dev/null
@@ -0,0 +1,156 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+--  test effects of overlapping windows
+
+procedure ncurses2.overlap_test is
+
+   procedure fillwin (win : Window; ch : Character);
+   procedure crosswin (win : Window; ch : Character);
+
+   procedure fillwin (win : Window; ch : Character) is
+      y1 : Line_Position;
+      x1 : Column_Position;
+   begin
+      Get_Size (win, y1, x1);
+      for y in 0 .. y1 - 1 loop
+         Move_Cursor (win, y, 0);
+         for x in 0 .. x1 - 1 loop
+            Add (win, Ch => ch);
+         end loop;
+      end loop;
+   exception
+      when Curses_Exception => null;
+         --  write to lower right corner
+   end fillwin;
+
+   procedure crosswin (win : Window; ch : Character) is
+      y1 : Line_Position;
+      x1 : Column_Position;
+   begin
+      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
+               Move_Cursor (win, y, x);
+               Add (win, Ch => ch);
+            end if;
+         end loop;
+      end loop;
+   end crosswin;
+
+   --  In a 24x80 screen like some xterms are, the instructions will
+   --  be overwritten.
+   ch : Character;
+   win1 : Window := New_Window (9, 20, 3, 3);
+   win2 : Window := New_Window (9, 20, 9, 16);
+begin
+   Set_Raw_Mode (SwitchOn => True);
+   Refresh;
+   Move_Cursor (Line => 0, Column => 0);
+   Add (Str => "This test shows the behavior of wnoutrefresh() with " &
+        "respect to");
+   Add (Ch => newl);
+   Add (Str => "the shared region of two overlapping windows A and B. "&
+        "The cross");
+   Add (Ch => newl);
+   Add (Str => "pattern in each window does not overlap the other.");
+   Add (Ch => newl);
+
+   Move_Cursor (Line => 18, Column => 0);
+   Add (Str => "a = refresh A, then B, then doupdate. b = refresh B, " &
+        "then A, then doupdaute");
+   Add (Ch => newl);
+   Add (Str => "c = fill window A with letter A.      d = fill window B " &
+        "with letter B.");
+   Add (Ch => newl);
+   Add (Str => "e = cross pattern in window A.        f = cross pattern " &
+        "in window B.");
+   Add (Ch => newl);
+   Add (Str => "g = clear window A.                   h = clear window B.");
+   Add (Ch => newl);
+   Add (Str => "i = overwrite A onto B.               j = overwrite " &
+        "B onto A.");
+   Add (Ch => newl);
+   Add (Str => "^Q/ESC = terminate test.");
+
+   loop
+      ch := Code_To_Char (Getchar);
+      exit when ch = CTRL ('Q') or ch = CTRL ('['); --  QUIT or ESCAPE
+      case ch is
+         when 'a' => --  refresh window A first, then B
+            Refresh_Without_Update (win1);
+            Refresh_Without_Update (win2);
+            Update_Screen;
+         when 'b' => --  refresh window B first, then A
+            Refresh_Without_Update (win2);
+            Refresh_Without_Update (win1);
+            Update_Screen;
+         when 'c' => --  fill window A so it's visible
+            fillwin (win1, 'A');
+         when 'd' => --  fill window B so it's visible
+            fillwin (win2, 'B');
+         when 'e' => --  cross test pattern in window A
+            crosswin (win1, 'A');
+         when 'f' => --  cross test pattern in window B
+            crosswin (win2, 'B');
+         when 'g' => --  clear window A
+            Clear (win1);
+            Move_Cursor (win1, 0, 0);
+         when 'h' => --  clear window B
+            Clear (win2);
+            Move_Cursor (win2, 0, 0);
+         when 'i' => --  overwrite A onto B
+            Overwrite (win1, win2);
+         when 'j' => --  overwrite B onto A
+            Overwrite (win2, win1);
+         when others => null;
+      end case;
+   end loop;
+
+   Delete (win2);
+   Delete (win1);
+   Erase;
+   End_Windows;
+end ncurses2.overlap_test;
diff --git a/Ada95/samples/ncurses2-overlap_test.ads b/Ada95/samples/ncurses2-overlap_test.ads
new file mode 100644 (file)
index 0000000..ce6e3e6
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.overlap_test;
diff --git a/Ada95/samples/ncurses2-slk_test.adb b/Ada95/samples/ncurses2-slk_test.adb
new file mode 100644 (file)
index 0000000..77ca284
--- /dev/null
@@ -0,0 +1,171 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Ada.Strings.Unbounded;
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux;
+
+procedure ncurses2.slk_test is
+   procedure myGet (Win : in  Window := Standard_Window;
+                    Str : out Ada.Strings.Unbounded.Unbounded_String;
+                    Len : in  Integer := -1);
+
+   procedure myGet (Win : in  Window := Standard_Window;
+                    Str : out Ada.Strings.Unbounded.Unbounded_String;
+                    Len : in  Integer := -1)
+   is
+      use Ada.Strings.Unbounded;
+      use Interfaces.C;
+      use Terminal_Interface.Curses.Aux;
+
+      function Wgetnstr (Win : Window;
+                         Str : char_array;
+                         Len : int) return int;
+      pragma Import (C, Wgetnstr, "wgetnstr");
+
+      Txt : char_array (0 .. 10);
+   begin
+      Txt (0) := Interfaces.C.char'First;
+      if Wgetnstr (Win, Txt, 8) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+      Str := To_Unbounded_String (To_Ada (Txt, True));
+   end myGet;
+
+
+   use Int_IO;
+
+   use Ada.Strings.Unbounded;
+
+   c : Key_Code;
+   buf : Unbounded_String;
+   c2 : Character;
+   fmt : Label_Justification := Centered;
+   tmp : Integer;
+
+begin
+   c := CTRL ('l');
+   loop
+      Move_Cursor (Line => 0, Column => 0);
+      c2 := Code_To_Char (c);
+      case c2 is
+         when Character'Val (Character'Pos ('l') mod 16#20#) => --  CTRL('l')
+            Erase;
+            Switch_Character_Attribute (Attr => (Bold_Character => True,
+                                                 others => False));
+            Add (Line => 0, Column => 20,
+                 Str => "Soft Key Exerciser");
+            Switch_Character_Attribute (On => False,
+                                        Attr => (Bold_Character => True,
+                                                 others => False));
+
+            Move_Cursor (Line => 2, Column => 0);
+            P ("Available commands are:");
+            P ("");
+            P ("^L         -- refresh screen");
+            P ("a          -- activate or restore soft keys");
+            P ("d          -- disable soft keys");
+            P ("c          -- set centered format for labels");
+            P ("l          -- set left-justified format for labels");
+            P ("r          -- set right-justified format for labels");
+            P ("[12345678] -- set label; labels are numbered 1 through 8");
+            P ("e          -- erase stdscr (should not erase labels)");
+            P ("s          -- test scrolling of shortened screen");
+            P ("x, q       -- return to main menu");
+            P ("");
+            P ("Note: if activating the soft keys causes your terminal to");
+            P ("scroll up one line, your terminal auto-scrolls when anything");
+            P ("is written to the last screen position.  The ncurses code");
+            P ("does not yet handle this gracefully.");
+            Refresh;
+            Restore_Soft_Label_Keys;
+
+         when 'a' =>
+            Restore_Soft_Label_Keys;
+         when 'e' =>
+            Clear;
+         when 's' =>
+            Add (Line => 20, Column => 0,
+                Str => "Press Q to stop the scrolling-test: ");
+            loop
+               c := Getchar;
+               c2 := Code_To_Char (c);
+               exit when c2 = 'Q';
+               --  c = ERR?
+               --  TODO when c is not a character (arrow key)
+               --  the behavior is different from the C version.
+               Add (Ch => c2);
+            end loop;
+         when 'd' =>
+            Clear_Soft_Label_Keys;
+         when 'l' =>
+            fmt := Left;
+         when 'c' =>
+            fmt := Centered;
+         when 'r' =>
+            fmt := Right;
+         when '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8'  =>
+            Add (Line => 20, Column => 0,
+                 Str => "Please enter the label value: ");
+            Set_Echo_Mode (SwitchOn => True);
+            myGet (Str => buf);
+            Set_Echo_Mode (SwitchOn => False);
+            tmp := ctoi (c2);
+            Set_Soft_Label_Key (Label_Number (tmp), To_String (buf), fmt);
+            Refresh_Soft_Label_Keys;
+            Move_Cursor (Line => 20, Column => 0);
+            Clear_To_End_Of_Line;
+         when 'x' | 'q' =>
+            exit;
+            --  the C version needed a goto, ha ha
+            --  breaks exit the case not the loop because fall-throuh
+            --  happens in C!
+         when others =>
+            Beep;
+      end case;
+      c := Getchar;
+      --  TODO exit when c = EOF
+   end loop;
+   Erase;
+   End_Windows;
+end ncurses2.slk_test;
diff --git a/Ada95/samples/ncurses2-slk_test.ads b/Ada95/samples/ncurses2-slk_test.ads
new file mode 100644 (file)
index 0000000..51e9587
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.slk_test;
diff --git a/Ada95/samples/ncurses2-test_sgr_attributes.adb b/Ada95/samples/ncurses2-test_sgr_attributes.adb
new file mode 100644 (file)
index 0000000..9948dc5
--- /dev/null
@@ -0,0 +1,186 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with ncurses2.util; use ncurses2.util;
+
+
+--  Graphic-rendition test (adapted from vttest)
+
+procedure ncurses2.test_sgr_attributes is
+
+   procedure xAdd (l : Line_Position; c : Column_Position; s : String);
+
+   procedure xAdd (l : Line_Position; c : Column_Position; s : String) is
+   begin
+      Add (Line => l, Column => c, Str => s);
+   end xAdd;
+
+   normal, current : Attributed_Character;
+begin
+   for pass in reverse Boolean loop
+      if pass then
+         normal := (Ch => ' ', Attr => Normal_Video, Color => 0);
+      else
+         normal := (Ch => ' ', Attr =>
+                      (Reverse_Video => True, others => False), Color => 0);
+      end if;
+
+      --  Use non-default colors if possible to exercise bce a little
+      if Has_Colors then
+         Init_Pair (1, White, Blue);
+         normal.Color := 1;
+      end if;
+      Set_Background (Ch => normal);
+      Erase;
+      xAdd (1, 20, "Graphic rendition test pattern:");
+
+      xAdd (4, 1, "vanilla");
+
+
+      current := normal;
+      current.Attr.Bold_Character := not current.Attr.Bold_Character;
+      Set_Background (Ch => current);
+      xAdd (4, 40, "bold");
+
+      current := normal;
+      current.Attr.Under_Line := not current.Attr.Under_Line;
+      Set_Background (Ch => current);
+      xAdd (6, 6, "underline");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Under_Line := not current.Attr.Under_Line;
+      Set_Background (Ch => current);
+      xAdd (6, 45, "bold underline");
+
+      current := normal;
+      current.Attr.Blink := not current.Attr.Blink;
+      Set_Background (Ch => current);
+      xAdd (8, 1, "blink");
+
+      current := normal;
+      current.Attr.Blink  := not current.Attr.Blink;
+      current.Attr.Bold_Character := not current.Attr.Bold_Character;
+      Set_Background (Ch => current);
+      xAdd (8, 40, "bold blink");
+
+      current := normal;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Blink := not current.Attr.Blink;
+      Set_Background (Ch => current);
+      xAdd (10, 6, "underline blink");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Blink := not current.Attr.Blink;
+      Set_Background (Ch => current);
+      xAdd (10, 45, "bold underline blink");
+
+      current := normal;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (12, 1, "negative");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (12, 40, "bold negative");
+
+      current := normal;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (14, 6, "underline negative");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (14, 45, "bold underline negative");
+
+      current := normal;
+      current.Attr.Blink  := not current.Attr.Blink;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (16, 1, "blink negative");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Blink  := not current.Attr.Blink;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (16, 40, "bold blink negative");
+
+      current := normal;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Blink  := not current.Attr.Blink;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (18, 6, "underline blink negative");
+
+      current := normal;
+      current.Attr.Bold_Character  := not current.Attr.Bold_Character;
+      current.Attr.Under_Line  := not current.Attr.Under_Line;
+      current.Attr.Blink  := not current.Attr.Blink;
+      current.Attr.Reverse_Video := not current.Attr.Reverse_Video;
+      Set_Background (Ch => current);
+      xAdd (18, 45, "bold underline blink negative");
+
+      Set_Background (Ch => normal);
+      Move_Cursor (Line => Lines - 2, Column => 1);
+      if pass then
+         Add (Str => "Dark");
+      else
+         Add (Str => "Light");
+      end if;
+      Add (Str => " background. ");
+      Clear_To_End_Of_Line;
+      Pause;
+   end loop;
+
+   Set_Background (Ch => Blank2);
+   Erase;
+   End_Windows;
+
+end ncurses2.test_sgr_attributes;
diff --git a/Ada95/samples/ncurses2-test_sgr_attributes.ads b/Ada95/samples/ncurses2-test_sgr_attributes.ads
new file mode 100644 (file)
index 0000000..2411180
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.test_sgr_attributes;
diff --git a/Ada95/samples/ncurses2-trace_set.adb b/Ada95/samples/ncurses2-trace_set.adb
new file mode 100644 (file)
index 0000000..10b605a
--- /dev/null
@@ -0,0 +1,481 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                            ncurses2.trace_set                            --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with ncurses2.util; use ncurses2.util;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Trace; use Terminal_Interface.Curses.Trace;
+with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
+
+with Ada.Strings.Bounded;
+
+--  interactively set the trace level
+
+procedure ncurses2.trace_set is
+
+   function menu_virtualize (c : Key_Code) return Menu_Request_Code;
+   function subset (super, sub : Trace_Attribute_Set) return Boolean;
+   function trace_or (a, b : Trace_Attribute_Set) return Trace_Attribute_Set;
+   function trace_num (tlevel : Trace_Attribute_Set) return String;
+   function tracetrace (tlevel : Trace_Attribute_Set) return String;
+   function run_trace_menu (m : Menu) return Boolean;
+
+   function menu_virtualize (c : Key_Code) return Menu_Request_Code is
+   begin
+      case c is
+         when Character'Pos (newl) | Key_Exit =>
+            return Menu_Request_Code'Last + 1; --  MAX_COMMAND? TODO
+         when Character'Pos ('u') =>
+            return M_ScrollUp_Line;
+         when Character'Pos ('d') =>
+            return M_ScrollDown_Line;
+         when Character'Pos ('b') | Key_Next_Page =>
+            return M_ScrollUp_Page;
+         when Character'Pos ('f') | Key_Previous_Page =>
+            return M_ScrollDown_Page;
+         when Character'Pos ('n') | Key_Cursor_Down =>
+            return M_Next_Item;
+         when Character'Pos ('p') | Key_Cursor_Up =>
+            return M_Previous_Item;
+         when Character'Pos (' ') =>
+            return M_Toggle_Item;
+         when Key_Mouse =>
+            return c;
+         when others =>
+            Beep;
+            return c;
+      end case;
+   end menu_virtualize;
+
+
+   type string_a is access String;
+   type tbl_entry is record
+      name : string_a;
+      mask : Trace_Attribute_Set;
+   end record;
+
+   t_tbl : constant array (Positive range <>) of tbl_entry :=
+     (
+      (new String'("Disable"),
+       Trace_Disable),
+      (new String'("Times"),
+       Trace_Attribute_Set'(Times => True, others => False)),
+      (new String'("Tputs"),
+       Trace_Attribute_Set'(Tputs => True, others => False)),
+      (new String'("Update"),
+       Trace_Attribute_Set'(Update => True, others => False)),
+      (new String'("Cursor_Move"),
+       Trace_Attribute_Set'(Cursor_Move => True, others => False)),
+      (new String'("Character_Output"),
+       Trace_Attribute_Set'(Character_Output => True, others => False)),
+      (new String'("Ordinary"),
+       Trace_Ordinary),
+      (new String'("Calls"),
+       Trace_Attribute_Set'(Calls => True, others => False)),
+      (new String'("Virtual_Puts"),
+       Trace_Attribute_Set'(Virtual_Puts => True, others => False)),
+      (new String'("Input_Events"),
+       Trace_Attribute_Set'(Input_Events => True, others => False)),
+      (new String'("TTY_State"),
+       Trace_Attribute_Set'(TTY_State => True, others => False)),
+      (new String'("Internal_Calls"),
+       Trace_Attribute_Set'(Internal_Calls => True, others => False)),
+      (new String'("Character_Calls"),
+       Trace_Attribute_Set'(Character_Calls => True, others => False)),
+      (new String'("Termcap_TermInfo"),
+       Trace_Attribute_Set'(Termcap_TermInfo => True, others => False)),
+      (new String'("Maximium"),
+       Trace_Maximum)
+      );
+
+   package BS is new Ada.Strings.Bounded.Generic_Bounded_Length (300);
+
+
+   function subset (super, sub : Trace_Attribute_Set) return Boolean is
+   begin
+      if
+        (super.Times or not sub.Times) and
+        (super.Tputs or not sub.Tputs) and
+        (super.Update or not sub.Update) and
+        (super.Cursor_Move or not sub.Cursor_Move) and
+        (super.Character_Output or not sub.Character_Output) and
+        (super.Calls or not sub.Calls) and
+        (super.Virtual_Puts or not sub.Virtual_Puts) and
+        (super.Input_Events or not sub.Input_Events) and
+        (super.TTY_State or not sub.TTY_State) and
+        (super.Internal_Calls or not sub.Internal_Calls) and
+        (super.Character_Calls or not sub.Character_Calls) and
+        (super.Termcap_TermInfo or not sub.Termcap_TermInfo) and
+        True then
+         return True;
+      else
+         return False;
+      end if;
+   end subset;
+
+   function trace_or (a, b : Trace_Attribute_Set) return Trace_Attribute_Set is
+      retval : Trace_Attribute_Set := Trace_Disable;
+   begin
+      retval.Times := (a.Times or b.Times);
+      retval.Tputs := (a.Tputs or b.Tputs);
+      retval.Update := (a.Update or b.Update);
+      retval.Cursor_Move := (a.Cursor_Move or b.Cursor_Move);
+      retval.Character_Output := (a.Character_Output or b.Character_Output);
+      retval.Calls := (a.Calls or b.Calls);
+      retval.Virtual_Puts := (a.Virtual_Puts or b.Virtual_Puts);
+      retval.Input_Events := (a.Input_Events or b.Input_Events);
+      retval.TTY_State := (a.TTY_State or b.TTY_State);
+      retval.Internal_Calls := (a.Internal_Calls or b.Internal_Calls);
+      retval.Character_Calls := (a.Character_Calls or b.Character_Calls);
+      retval.Termcap_TermInfo := (a.Termcap_TermInfo or b.Termcap_TermInfo);
+
+      return retval;
+   end trace_or;
+
+   --  Print the hexadecimal value of the mask so
+   --  users can set it from the command line.
+
+   function trace_num (tlevel : Trace_Attribute_Set) return String is
+      result : Integer := 0;
+      m : Integer := 1;
+   begin
+
+      if tlevel.Times then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Tputs then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Update then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Cursor_Move then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Character_Output then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Calls then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Virtual_Puts then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Input_Events then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.TTY_State then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Internal_Calls then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Character_Calls then
+         result := result + m;
+      end if;
+      m := m * 2;
+
+      if tlevel.Termcap_TermInfo then
+         result := result + m;
+      end if;
+      m := m * 2;
+      return result'Img;
+   end trace_num;
+
+
+   function tracetrace (tlevel : Trace_Attribute_Set) return String is
+
+      use BS;
+      buf : Bounded_String := To_Bounded_String ("");
+   begin
+      --  The C version prints the hexadecimal value of the mask, we
+      --  won't do that here because this is Ada.
+
+      if tlevel = Trace_Disable then
+         Append (buf, "Trace_Disable");
+      else
+
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Times => True, others => False)) then
+            Append (buf, "Times");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Tputs => True, others => False)) then
+            Append (buf, "Tputs");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Update => True, others => False)) then
+            Append (buf, "Update");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Cursor_Move => True,
+                                         others => False)) then
+            Append (buf, "Cursor_Move");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Character_Output => True,
+                                         others => False)) then
+            Append (buf, "Character_Output");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Ordinary) then
+            Append (buf, "Ordinary");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Calls => True, others => False)) then
+            Append (buf, "Calls");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Virtual_Puts => True,
+                                         others => False)) then
+            Append (buf, "Virtual_Puts");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Input_Events => True,
+                                         others => False)) then
+            Append (buf, "Input_Events");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(TTY_State => True,
+                                         others => False)) then
+            Append (buf, "TTY_State");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Internal_Calls => True,
+                                         others => False)) then
+            Append (buf, "Internal_Calls");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Character_Calls => True,
+                                         others => False)) then
+            Append (buf, "Character_Calls");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Attribute_Set'(Termcap_TermInfo => True,
+                                         others => False)) then
+            Append (buf, "Termcap_TermInfo");
+            Append (buf, ", ");
+         end if;
+
+         if subset (tlevel,
+                    Trace_Maximum) then
+            Append (buf, "Maximium");
+            Append (buf, ", ");
+         end if;
+      end if;
+
+      if To_String (buf) (Length (buf) - 1) = ',' then
+         Delete (buf, Length (buf) - 1, Length (buf));
+      end if;
+
+      return To_String (buf);
+   end tracetrace;
+
+   function run_trace_menu (m : Menu) return Boolean is
+      i, p : Item;
+      changed : Boolean;
+      c, v : Key_Code;
+   begin
+      loop
+         changed := False;
+         c := Getchar (Get_Window (m));
+         v := menu_virtualize (c);
+         case Driver (m, v) is
+            when Unknown_Request =>
+               return False;
+            when others =>
+               i := Current (m);
+               if i = Menus.Items (m, 1) then -- the first item
+                  for n in t_tbl'First + 1 .. t_tbl'Last loop
+                     if Value (i) then
+                        Set_Value (i, False);
+                        changed := True;
+                     end if;
+                  end loop;
+               else
+                  for n in t_tbl'First + 1 .. t_tbl'Last loop
+                     p := Menus.Items (m, n);
+                     if Value (p) then
+                        Set_Value (Menus.Items (m, 1), False);
+                        changed := True;
+                        exit;
+                     end if;
+                  end loop;
+               end if;
+               if not changed then
+                  return True;
+               end if;
+         end case;
+      end loop;
+   end run_trace_menu;
+
+   nc_tracing, mask : Trace_Attribute_Set;
+   pragma Import (C, nc_tracing, "_nc_tracing");
+   items_a : Item_Array_Access :=
+     new Item_Array (t_tbl'First .. t_tbl'Last + 1);
+   mrows : Line_Count;
+   mcols : Column_Count;
+   menuwin : Window;
+   menu_y : constant Line_Position := 8;
+   menu_x : constant Column_Position := 8;
+   ip : Item;
+   m : Menu;
+   newtrace : Trace_Attribute_Set;
+begin
+   Add (Line => 0, Column => 0, Str => "Interactively set trace level:");
+   Add (Line => 2, Column => 0,
+        Str => "  Press space bar to toggle a selection.");
+   Add (Line => 3, Column => 0,
+        Str => "  Use up and down arrow to move the select bar.");
+   Add (Line => 4, Column => 0,
+        Str => "  Press return to set the trace level.");
+   Add (Line => 6, Column => 0, Str => "(Current trace level is ");
+   Add (Str => tracetrace (nc_tracing) & " numerically: " &
+        trace_num (nc_tracing));
+   Add (Ch => ')');
+
+   Refresh;
+
+   for n in t_tbl'Range loop
+      items_a (n) := New_Item (t_tbl (n).name.all);
+   end loop;
+   items_a (t_tbl'Last + 1) := Null_Item;
+
+   m := New_Menu (items_a);
+
+   Set_Format (m, 16, 2);
+   Scale (m, mrows, mcols);
+
+   Switch_Options (m, (One_Valued => True, others => False), On => False);
+   menuwin := New_Window (mrows + 2, mcols + 2, menu_y, menu_x);
+   Set_Window (m, menuwin);
+   Set_KeyPad_Mode (menuwin, SwitchOn => True);
+   Box (menuwin);
+
+   Set_Sub_Window (m, Derived_Window (menuwin, mrows, mcols, 1, 1));
+
+   Post (m);
+
+   for n in t_tbl'Range loop
+      ip := Items (m, n);
+      mask := t_tbl (n).mask;
+      if mask = Trace_Disable then
+         Set_Value (ip, nc_tracing = Trace_Disable);
+      elsif subset (sub => mask, super => nc_tracing) then
+         Set_Value (ip, True);
+      end if;
+   end loop;
+
+   while run_trace_menu (m) loop
+      null;
+   end loop;
+
+   newtrace := Trace_Disable;
+   for n in t_tbl'Range loop
+      ip := Items (m, n);
+      if Value (ip) then
+         mask := t_tbl (n).mask;
+         newtrace := trace_or (newtrace, mask);
+      end if;
+   end loop;
+
+   Trace_On (newtrace);
+   Trace_Put ("trace level interactively set to " &
+              tracetrace (nc_tracing));
+
+   Move_Cursor (Line => Lines - 4, Column => 0);
+   Add (Str => "Trace level is ");
+   Add (Str => tracetrace (nc_tracing));
+   Add (Ch => newl);
+   Pause; -- was just Add(); Getchar
+
+   Post (m, False);
+   --  menuwin has subwindows I think, which makes an error.
+   declare begin
+      Delete (menuwin);
+   exception when Curses_Exception => null; end;
+
+   --  free_menu(m);
+   --  free_item()
+end ncurses2.trace_set;
diff --git a/Ada95/samples/ncurses2-trace_set.ads b/Ada95/samples/ncurses2-trace_set.ads
new file mode 100644 (file)
index 0000000..7bbf8ca
--- /dev/null
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                            ncurses2.trace_set                            --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+procedure ncurses2.trace_set;
diff --git a/Ada95/samples/ncurses2-util.adb b/Ada95/samples/ncurses2-util.adb
new file mode 100644 (file)
index 0000000..907dcef
--- /dev/null
@@ -0,0 +1,199 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                               ncurses2.util                              --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Ada.Text_IO;
+
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+pragma Warnings (Off);
+with Terminal_Interface.Curses.Aux;
+pragma Warnings (On);
+
+with Terminal_Interface.Curses.Trace; use Terminal_Interface.Curses.Trace;
+
+with Ada.Text_IO; use Ada.Text_IO;
+
+with Interfaces.C;
+with Interfaces.C.Strings;
+
+with Ada.Characters.Handling;
+
+with ncurses2.genericPuts;
+
+
+package body ncurses2.util is
+
+   --  #defines from C
+   --  #define CTRL(x)         ((x) & 0x1f)
+   function CTRL (c : Character) return Key_Code is
+   begin
+      return Character'Pos (c) mod 16#20#;
+      --  uses a property of ASCII
+      --  A = 16#41#; a = 16#61#; ^A = 1 or 16#1#
+   end CTRL;
+
+   function CTRL (c : Character) return Character is
+   begin
+      return Character'Val (Character'Pos (c) mod 16#20#);
+      --  uses a property of ASCII
+      --  A = 16#41#; a = 16#61#; ^A = 1 or 16#1#
+   end CTRL;
+
+   save_trace : Trace_Attribute_Set;
+   --  Common function to allow ^T to toggle trace-mode in the middle of a test
+   --  so that trace-files can be made smaller.
+   function Getchar (win : Window := Standard_Window) return Key_Code is
+      c : Key_Code;
+   begin
+      --  #ifdef TRACE
+      c := Get_Keystroke (win);
+      while c = CTRL ('T') loop
+         --  if _nc_tracing  in C
+         if Current_Trace_Setting /= Trace_Disable then
+            save_trace := Current_Trace_Setting;
+            Trace_Put ("TOGGLE-TRACING OFF");
+            Current_Trace_Setting := Trace_Disable;
+         else
+            Current_Trace_Setting := save_trace;
+         end if;
+         Trace_On (Current_Trace_Setting);
+         if Current_Trace_Setting /= Trace_Disable then
+            Trace_Put ("TOGGLE-TRACING ON");
+         end if;
+      end loop;
+      --  #else c := Get_Keystroke;
+      return c;
+   end Getchar;
+
+   procedure Getchar (win : Window := Standard_Window) is
+      x : Key_Code;
+   begin
+      x := Getchar (win);
+   end Getchar;
+
+
+   procedure Pause is
+   begin
+      Move_Cursor (Line => Lines - 1, Column => 0);
+      Add (Str => "Press any key to continue... ");
+      Getchar;
+   end Pause;
+
+
+   procedure Cannot (s : String) is
+      use Interfaces.C;
+      use Interfaces.C.Strings;
+      use Terminal_Interface.Curses.Aux;
+      function getenv (x : char_array)  return chars_ptr;
+      pragma Import (C, getenv, "getenv");
+      tmp1 : char_array (0 .. 10);
+      package p is new ncurses2.genericPuts (1024);
+      use p;
+      use p.BS;
+
+      tmpb : BS.Bounded_String;
+
+      Length : size_t;
+   begin
+      To_C ("TERM", tmp1, Length);
+      Fill_String (getenv (tmp1), tmpb);
+      Add (Ch => newl);
+      myAdd (Str => "This " & tmpb & " terminal " & s);
+      Pause;
+   end Cannot;
+
+   procedure ShellOut (message : Boolean) is
+      use Interfaces.C;
+      Txt : char_array (0 .. 10);
+      Length : size_t;
+      procedure system (x : char_array);
+      pragma Import (C, system, "system");
+   begin
+      To_C ("sh", Txt,  Length);
+      if message then
+         Add (Str => "Shelling out...");
+      end if;
+      Save_Curses_Mode (Mode => Curses);
+      End_Windows;
+      system (Txt);
+      if message then
+         Add (Str => "returned from shellout.");
+         Add (Ch => newl);
+      end if;
+      Refresh;
+   end ShellOut;
+
+
+
+   function Is_Digit (c : Key_Code) return Boolean is
+   begin
+      if c >= 16#100# then
+         return False;
+      else
+         return Ada.Characters.Handling.Is_Digit (Character'Val (c));
+      end if;
+   end Is_Digit;
+
+   procedure P (s : String) is
+   begin
+      Add (Str => s);
+      Add (Ch => newl);
+   end P;
+
+
+   function Code_To_Char (c : Key_Code) return Character is
+   begin
+      if c > Character'Pos (Character'Last) then
+         return Character'Val (0);
+         --  maybe raise exception?
+      else
+         return Character'Val (c);
+      end if;
+   end Code_To_Char;
+
+   --  This was untestable due to a bug in GNAT (3.12p)
+   --  Hmm, what bug? I don't remember.
+   function ctoi (c : Character) return Integer is
+   begin
+      return Character'Pos (c) - Character'Pos ('0');
+   end ctoi;
+
+end ncurses2.util;
diff --git a/Ada95/samples/ncurses2-util.ads b/Ada95/samples/ncurses2-util.ads
new file mode 100644 (file)
index 0000000..6c81e83
--- /dev/null
@@ -0,0 +1,79 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                              ncurses2.util                               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Ada.Text_IO;
+package ncurses2.util is
+
+   Blank : constant Character := ' ';
+   Blank2 : constant Attributed_Character :=
+     (Ch => Blank, Attr => Normal_Video, Color => Color_Pair'First);
+
+
+   newl : constant Character :=  Character'Val (10);
+
+   function CTRL (c : Character) return Key_Code;
+
+   function CTRL (c : Character) return Character;
+
+   function Getchar (win : Window := Standard_Window) return Key_Code;
+
+   procedure Getchar (win : Window := Standard_Window);
+
+   procedure Pause;
+
+
+   procedure Cannot (s : String);
+
+   procedure ShellOut (message : Boolean);
+
+
+   package Int_IO is new Ada.Text_IO.Integer_IO (Integer);
+
+
+   function Is_Digit (c : Key_Code) return Boolean;
+
+   procedure P (s : String);
+
+   function Code_To_Char (c : Key_Code) return Character;
+   function ctoi (c : Character) return Integer;
+end ncurses2.util;
+
diff --git a/Ada95/samples/ncurses2.ads b/Ada95/samples/ncurses2.ads
new file mode 100644 (file)
index 0000000..2fe0197
--- /dev/null
@@ -0,0 +1,44 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                       GNAT ncurses Binding Samples                       --
+--                                                                          --
+--                                 ncurses                                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control
+--  $Revision: 1.1 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+package ncurses2 is
+   pragma Pure (ncurses2);
+end ncurses2;
index f2814049e3b091a97d78d22e1d9fc518df7267ff..f769733cd4a2a8ce99f3f00269e806c4ad58169b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
+--  Author:  Laurent Pautet <pautet@gnat.com>
+--  Modified by:  Juergen Pfeifer, 1997
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.4 $
+--  $Revision: 1.5 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --                                                                          --
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --                                                                          --
index 5180a598d5912b34b66784104ea46abd811389d7..7eccb485f56e1a6914d0cdfaaf82d6ffbd7addfd 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
+--  Author:  Laurent Pautet <pautet@gnat.com>
+--  Modified by:  Juergen Pfeifer, 1997
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.4 $
+--  $Revision: 1.5 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --                                                                          --
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --                                                                          --
index 1a329e7b1f72734f0890cb62d24d6d367b5bcf6b..03b6e74120b02d542b01433f177f9bf5c229274f 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index ec0fb8cd557f6683c2103db5d123a3f241ff2da4..dc70abb9f41945890fe91dda1ad8f40a83012227 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo.Attributes is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo.Attributes is
index e526f59844aa569184e70559b2f38eafd5f3a741..7d80bfd8dfbd09cfd995ee96362a51a53dc9cc62 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.11 $
+--  $Revision: 1.12 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 93781709105bb08ee066c1640a7194d4301a8dcd..e7774f2b09407685afe33d9cc20f8bcce12e4eca 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo.Mouse is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo.Mouse is
index 0c7085516df597d94666dd17d252ab7ca7b11693..60965f964c99625cd99f92a0a3d9ad27833193ec 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 32d2bb0b8c3bd0c5b633495d33141611dbd38a49..d90da47526fc6a8802250bfe303e031d107e472f 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Curses_Demo is
index 8701925dedf3e2066e936e97239c2beab1e0d4b1..9697818313658c0cc98587c0e8b7d82e28c1a386 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.12 $
+--  $Revision: 1.14 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
@@ -317,7 +318,7 @@ package body Sample.Explanation is
       Reset (F);
       Outer :
       loop
       Reset (F);
       Outer :
       loop
-         exit when not Next_Line;
+         exit Outer when not Next_Line;
          if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
            and then Buffer (1) = '#' then
             loop
          if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
            and then Buffer (1) = '#' then
             loop
index 24a0e177d44a1dee68701237aa3d53881b19871d..50ec3fb0c7ea950b7b378b750e3e5d48e1f5e435 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
index 06a03b885f1968273c2996f80b3925395c8b1da2..c7874df35ba8e86c842f700556421c875fcd886b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.11 $
+--  $Revision: 1.12 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
index 69ff2c1534576caf42292a9f0f3e3011885b3b0b..99334eaabe19e8f5c09ce23cd398f56d81f6aa0c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use  Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use  Terminal_Interface.Curses;
index a3a17d4a30c4e48a2cfba2942c3ca9393994aad6..4cf1fab32dc270c4b0d9f8819e017422538dcc78 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Form_Demo.Aux;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Form_Demo.Aux;
index 07c2940e520876d45df1cdc917a169c6752dbd92..912a6bf21c6f4bc9deda896a0808a9594f278c4a 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses;
index b8548bfc0687d8ef17d67836fa6601ed139f1144..ff779c6d049240c3c9625731badcf86e278f9975 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 1ef3796404be2e59740bafadabc2f697d7c1faf4..b9ebed6cc869774fd68264dc74b7db2b0aec24fa 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Form_Demo is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Form_Demo is
index 94d22a6df49a951aa87b2db0b3e9542a9b41b220..8009ab622992335f5e98e47e118aeffc0e18eef9 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
index e9db6cd017d8d07c3b8618cba6a8295ab6c8a27e..fb56b21d29560879bf9d555eb1726ca1a20db54f 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index c299c79f9122c4a1e1071706b5afa9326622e53c..78bb76d04cae4a49cd454ff8660287c339ae262f 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Calendar; use Ada.Calendar;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Calendar; use Ada.Calendar;
index 7a7c0b9835cd8cd8175bf42ee68fcf3812c130f9..f3a3314e458a589935925082f6d1fdf58c90355d 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 9cbc7c12d1c058d79c7174123ff2d8ece00eea91..8942921cf11e36d1821e8b389f1a96c7e356d865 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 36ca407594ab055669f550d6e7fc5dc58efd3ad5..c8ee9cb613ce8600c5cbc63d3d90460db9ed810c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 062a676ba0eef1bb23a511a7b254df6990a3e862..92b9ccd4635d3d951bba9643dfa3debb0866f558 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Strings; use Ada.Strings;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Strings; use Ada.Strings;
index 454c934bbdb86f8e3afa5cf64253629f804f7c9f..be9f8f8cd9d56362bc313b90b32801da5a983e19 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index 6ac180cfad3e2678b8be96c110e73b6acdafd73a..5422ef91efbc1bb65820383862eb4301aa3a347d 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index f1363d80d1b21763329ae048d092cf06c797f203..9b428813dbbd094d135eaa86c5af49e0500ad4a7 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
index d12119850e2cfd56d592b8020212a225a322484a..5171aebb6b1023c4d85984a4e60631e04a528e7c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use  Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use  Terminal_Interface.Curses;
index e7b1bf8a0ac5105c7da51b27028279beb2faeebd..b203cc24e975ceebbf95528a8cc7db5fd382008c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Menu_Demo.Aux;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Menu_Demo.Aux;
index bb31639da063e9fa4bfb6286cc01974022d045a9..d1b7cde4b76123a3bfcfe434aac37c23e27835aa 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses;
index 640c25cb359a0736032df8f57ed50915ba655c74..8793db24d4427b316531b385d49e177c5c267267 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.11 $
+--  $Revision: 1.12 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
index dda0180f29638eddaedadd73cec737f728575644..40b1e92273389aeb020dfc069e523803b17c4f86 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Menu_Demo is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Menu_Demo is
index 11e422684e6afcbf1836df452a6726725a8daf79..15c55e953bc2ef0ac1bb6b9d7542e4b4e804bd95 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
index 0fac5e394ca135c2ebeb449f6db39c2dfe6bbce0..78665039632c331f4fe1f97353f7db5f82c750d3 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
index 158b93586d5fc8555ab837d5b034aa2ffcded1b4..0cd370eb2423d00ef65b260d6329051b1639224c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Elementary_Functions;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Elementary_Functions;
index 5c31c7bbc163078f8e83b56141765d2b40af1705..e35ce1026e4164dc66d7e0b4d21ccde4bac494f6 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Text_IO_Demo is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample.Text_IO_Demo is
index 3544b0976b8d03eb0269bd864f6272df2320240c..0e4455687ab6bea50aaab690c43c333863d9fca4 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Text_IO;
index d438f74a74a2a1edf90eecc8943e15cf9f769048..588c211423788bfff07de48f5db6b2b6c8cd0ff4 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Sample is
index 8e4cd423795ca0da516e9602015c5d4e6c52cba1..e81355eac3ad301c6671cf53a1893f86eb7cbf2d 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Laurent Pautet <pautet@gnat.com>
+--  Modified by:  Juergen Pfeifer, 1997
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.5 $
+--  $Revision: 1.6 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  This package has been contributed by Laurent Pautet <pautet@gnat.com>   --
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  This package has been contributed by Laurent Pautet <pautet@gnat.com>   --
index 600b21234bfaa63750083827ffb2da7422b9c1c6..e34c95c436ac50270e6c695d389a6bd7af15a661 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Laurent Pautet <pautet@gnat.com>
+--  Modified by:  Juergen Pfeifer, 1997
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  This package has been contributed by Laurent Pautet <pautet@gnat.com>   --
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  This package has been contributed by Laurent Pautet <pautet@gnat.com>   --
index 60a3d0aeb267d495eaaf0ed425ef9cf1fc576bf7..b2cc6cfeff8e4ff55c92fce2451111c15989a541 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample; use Sample;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample; use Sample;
index 2675e30d630e7025db1a6d0ff87e79e7233f3d7f..b0a81c8e27dc29d09eae5a3a23facc59727aad25 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control
 --  Version Control
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 procedure Tour;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 procedure Tour;
index d0069973ed7b1d0ea1ba6dfc2dd9d1623b36bc5b..a9c7081782a83129952b146f8a1637c8a95c4fa0 100644 (file)
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-#  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+#  Author:  Juergen Pfeifer, 1996
+#  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 #
 #  Version Control
 #
 #  Version Control
-#  $Revision: 1.22 $
+#  $Revision: 1.26 $
 #
 .SUFFIXES:
 
 #
 .SUFFIXES:
 
@@ -72,6 +73,7 @@ LDFLAGS               = @LDFLAGS@ @LD_MODEL@ @LIBS@
 RANLIB         = @RANLIB@
 ################################################################################
 ADA             = @cf_ada_compiler@
 RANLIB         = @RANLIB@
 ################################################################################
 ADA             = @cf_ada_compiler@
+ADAPREP                = gnatprep
 ADAFLAGS        = @ADAFLAGS@ -I. -I$(srcdir)
 
 ADAMAKE         = @cf_ada_make@
 ADAFLAGS        = @ADAFLAGS@ -I. -I$(srcdir)
 
 ADAMAKE         = @cf_ada_make@
@@ -86,6 +88,10 @@ ABASE           = $(ALIB)-curses
 LIBALIS=$(ALIB).ali                                    \
        $(ABASE)-aux.ali                                \
        $(ABASE).ali                                    \
 LIBALIS=$(ALIB).ali                                    \
        $(ABASE)-aux.ali                                \
        $(ABASE).ali                                    \
+       $(ABASE)-terminfo.ali                           \
+       $(ABASE)-termcap.ali                            \
+       $(ABASE)-putwin.ali                             \
+       $(ABASE)-trace.ali                              \
        $(ABASE)-mouse.ali                              \
        $(ABASE)-panels.ali                             \
        $(ABASE)-menus.ali                              \
        $(ABASE)-mouse.ali                              \
        $(ABASE)-panels.ali                             \
        $(ABASE)-menus.ali                              \
@@ -122,6 +128,10 @@ GENALIS=$(ABASE)-menus-menu_user_data.ali          \
 LIBOBJS=$(ALIB).o                                      \
        $(ABASE)-aux.o                                  \
        $(ABASE).o                                      \
 LIBOBJS=$(ALIB).o                                      \
        $(ABASE)-aux.o                                  \
        $(ABASE).o                                      \
+       $(ABASE)-terminfo.o                             \
+       $(ABASE)-termcap.o                              \
+       $(ABASE)-putwin.o                               \
+       $(ABASE)-trace.o                                \
        $(ABASE)-mouse.o                                \
        $(ABASE)-panels.o                               \
        $(ABASE)-menus.o                                \
        $(ABASE)-mouse.o                                \
        $(ABASE)-panels.o                               \
        $(ABASE)-menus.o                                \
@@ -182,7 +192,7 @@ mostlyclean ::
        rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
 
 clean :: mostlyclean
        rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
 
 clean :: mostlyclean
-       rm -f $(LIBALIS) $(GENALIS) $(LIBOBJS) $(GENOBJS)
+       rm -f $(LIBALIS) $(GENALIS) $(LIBOBJS) $(GENOBJS) $(ABASE)-trace.adb
 
 distclean :: clean
        rm -f Makefile
 
 distclean :: clean
        rm -f Makefile
@@ -203,6 +213,34 @@ $(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
        $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
 
 
        $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
 
 
+$(ABASE)-terminfo.o: \
+               $(ABASE)-terminfo.ads \
+               $(srcdir)/$(ABASE)-terminfo.adb $(BASEDEPS)
+       $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-terminfo.adb
+
+
+$(ABASE)-termcap.o: \
+               $(ABASE)-termcap.ads \
+               $(srcdir)/$(ABASE)-termcap.adb $(BASEDEPS)
+       $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-termcap.adb
+
+
+$(ABASE)-putwin.o: \
+               $(ABASE)-putwin.ads \
+               $(srcdir)/$(ABASE)-putwin.adb $(BASEDEPS)
+       $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-putwin.adb
+
+
+$(ABASE)-trace.adb : $(srcdir)/$(ABASE)-trace.adb_p
+       rm -f $@
+       $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ $(srcdir)/$(ABASE)-trace.adb_p $@
+
+$(ABASE)-trace.o: \
+               $(ABASE)-trace.ads \
+               $(ABASE)-trace.adb $(BASEDEPS)
+       $(ADA) $(ADAFLAGS) -c -o $@ $(ABASE)-trace.adb
+
+
 $(ABASE)-mouse.o: \
                $(ABASE)-mouse.ads \
                $(srcdir)/$(ABASE)-mouse.adb $(BASEDEPS)
 $(ABASE)-mouse.o: \
                $(ABASE)-mouse.ads \
                $(srcdir)/$(ABASE)-mouse.adb $(BASEDEPS)
index 2e974c4a51937b12beb106123889d922ddc57670..bcf838752d5abcdd11971c4b46f60e59ec4aea11 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Aux is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Aux is
index 1cbf178259c4f54cded3e00fd0093df77a95279b..bd42d3f9863ea3346bb55b07e3fdd21951dbc74b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index d5281e6d67edcfcf83f53d06e65fa7bf52cf00de..f4eadf9e8e3951074c91777c19a9490616bd772b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
index 2e82305e1fcfa8792f6167fedf4098fffd823de7..2f2d44d481dc780d51915f60984c74809e7c5caa 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index 209117b3581fd55c15abcb0e10deb99668184bdf..4e165fea265dea4a1e83519c755ecb790fef1367 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
index d4f376ddbf97d7d7a272b27efe0a11b3f6a84b94..89972d4f79b5373a6c918f0b9475cbf1d976e383 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.5 $
+--  $Revision: 1.6 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Handling; use Ada.Characters.Handling;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Handling; use Ada.Characters.Handling;
index 870a3a4684dc509aa7efb8870481bd2806e8458a..7bff22f4cbd46452ddcecb288dfd66b263a9a3ec 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index c4286af06517ff78fa228333b498a2d23e77cadc..d0273294e04dc31d3472b2c7a8cd89dcd8ae72d0 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.5 $
+--  $Revision: 1.6 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
index 04b0bfe828592afda5b9982716e7003bc223b272..b9c1b00dcfe99a23b5ef794e78817a5b8c1dba2a 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C.Strings;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C.Strings;
index 077ba3217ed23de18a9805c7bd016d07f7b0ea99..621f4c7c34d3f84717a1c834f68a55aa870455c3 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index edef251c4b3828a85598b5e6cf1c6f0f5d94a515..75652cc4d2a8904a03471c6945c717a246560237 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.IntField is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.IntField is
index 263e50e2c26072e7f2325043fee66227ad3881d2..60a403bc3b8f2270656a1231c7ae566ddeb3cec7 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index 63a1bbfb7227dd4a9e66756758e5d5a90f637102..11398c06feb220919d53d3ddfb56f846b0c5fbae 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
index 0e2d5c2f74caf6bb67c8b249fae353ada756d049..bd3daf26f3d1de1e05ac96450bb18ef483945f6d 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.7 $
+--  $Revision: 1.8 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index d5f126b6c432b682d4480008954e97e07a3734f1..cbb6b00c26ed9d12822ae30659ceccbf654aa42e 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
index a9b4984a1a66c9fa7193ea55a310562888972334..a699f0afd3b4434ce4a2d5503dc65bff098ee270 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C; use Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C; use Interfaces.C;
index af192938c95ef2459052fafc8cda0ca6e674fed7..635f37baa7fc0247a54470ef72c819582f7f7828 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
index cd9cd3dbe185cb7257c385db38d0fcfdc2a7a50a..2d8f60c012986c2d794515b3efdc01ced2810f7b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
index f8523071bd9ffb9f84398948b77168c2575783eb..c9a2abd5526b7f5953c88f9c200d2096623b19c4 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index aa923c4d27aaa2ed28bcea47285b29c103168a81..5f82b09811767a5094b58cada9de55680c4f7aec 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
index f93a904fad2fb2bb410a9234b3a3b5bd3e3bef64..4cca2a4dd42b0a0e8a5bc25a4114163d3daccdb6 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index dccaf9d21479bbb8dfcae08e878f29e12aa209a5..7b83be65b14a8ec99385571165d9d77bc4fd0ead 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index 711cfbba3374c4a30e12133692f9b6428a811632..04b09660d0b0104eb5051df17626e37c49544784 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use  Terminal_Interface.Curses.Aux;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use  Terminal_Interface.Curses.Aux;
index b6fff13c6e2403f430ecc4f08455b434b60d486f..3b897faa14f94378e550f3a8f5202dce6902bf31 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  |
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  |
index 669ac5f3415b73347b2d8bc94df4896dcb5000a2..b9be41a889f2b585cfebbc741e4ec187d4e65f97 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.20 $
+--  $Revision: 1.21 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
index 98a22a5f29f9740f96a8c8e9d6c74d4c67c514b8..56199d10eabc8d6b487f346ac9f3595d8c97a6f5 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index 00670dd34ac75782a40241bdb5b4d4d42782e6de..83a3f95e946ba499488dc2757b77fcd75286c454 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
index 92ae0f9c2d1b1dc06849375e2deda7c8231d6ef4..87097ce12ad3da10b06f238cdc7c93a253cf73b0 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.20 $
+--  $Revision: 1.21 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
index 8a7499ac31658eb64f5a6f036c200f4ac7dd1995..c2b52a05903dece1d9a302ce9cb953e149dbd56a 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.16 $
+--  $Revision: 1.17 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
index c5658c5013d209485edc8f80cbd81ceafec48367..fb2c95460066a9459d1206a84529997c7d8729f5 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
index 5d42226a5a9dcecf6625e1909c969e9579dd1379..f0d246ad65a0a0e57b6b5c61365584fc97e6b151 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
diff --git a/Ada95/src/terminal_interface-curses-putwin.adb b/Ada95/src/terminal_interface-curses-putwin.adb
new file mode 100644 (file)
index 0000000..545ccaa
--- /dev/null
@@ -0,0 +1,78 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.PutWin                      --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+
+with Ada.Streams.Stream_IO.C_Streams;
+with Interfaces.C_Streams;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.PutWin is
+
+   package ICS renames Interfaces.C_Streams;
+   package ACS renames Ada.Streams.Stream_IO.C_Streams;
+   use type C_Int;
+
+   procedure Put_Window (Win  : Window;
+                         File : Ada.Streams.Stream_IO.File_Type) is
+      function putwin (Win : Window; f : ICS.FILEs) return C_Int;
+      pragma Import (C, putwin, "putwin");
+
+      R : constant C_Int := putwin (Win, ACS.C_Stream (File));
+   begin
+      if R /= Curses_Ok then
+         raise Curses_Exception;
+      end if;
+   end Put_Window;
+
+   function Get_Window (File : Ada.Streams.Stream_IO.File_Type)
+                        return Window is
+      function getwin (f : ICS.FILEs) return Window;
+      pragma Import (C, getwin, "getwin");
+
+      W : constant Window := getwin (ACS.C_Stream (File));
+   begin
+      if W = Null_Window then
+         raise Curses_Exception;
+      else
+         return W;
+      end if;
+   end Get_Window;
+
+end Terminal_Interface.Curses.PutWin;
diff --git a/Ada95/src/terminal_interface-curses-putwin.ads b/Ada95/src/terminal_interface-curses-putwin.ads
new file mode 100644 (file)
index 0000000..9422078
--- /dev/null
@@ -0,0 +1,51 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.PutWin                      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+
+with Ada.Streams.Stream_IO;
+
+package Terminal_Interface.Curses.PutWin is
+
+   procedure Put_Window (Win  : Window;
+                         File : Ada.Streams.Stream_IO.File_Type);
+
+   function Get_Window (File  : Ada.Streams.Stream_IO.File_Type) return Window;
+
+end Terminal_Interface.Curses.PutWin;
diff --git a/Ada95/src/terminal_interface-curses-termcap.adb b/Ada95/src/terminal_interface-curses-termcap.adb
new file mode 100644 (file)
index 0000000..732a3fd
--- /dev/null
@@ -0,0 +1,164 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.Termcap                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.4 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+
+package body Terminal_Interface.Curses.Termcap is
+
+   function Get_Entry (Name : String) return Boolean
+   is
+      function tgetent (name : char_array; val : char_array)
+                        return C_Int;
+      pragma Import (C, tgetent, "tgetent");
+      NameTxt : char_array (0 .. Name'Length);
+      Length  : size_t;
+      ignored : char_array (0 .. 0) := (0 => nul);
+      result  : C_Int;
+   begin
+      To_C (Name, NameTxt, Length);
+      result := tgetent (char_array (ignored), NameTxt);
+      if result = -1 then
+         raise Curses_Exception;
+      else
+         return Boolean'Val (result);
+      end if;
+   end Get_Entry;
+
+------------------------------------------------------------------------------
+   function Get_Flag (Name : String) return Boolean
+   is
+      function tgetflag (id : char_array) return C_Int;
+      pragma Import (C, tgetflag, "tgetflag");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+   begin
+      To_C (Name, Txt, Length);
+      if tgetflag (Txt) = 0 then
+         return False;
+      else
+         return True;
+      end if;
+   end Get_Flag;
+
+------------------------------------------------------------------------------
+   procedure Get_Number (Name   : in  String;
+                         Value  : out Integer;
+                         Result : out Boolean)
+   is
+      function tgetnum (id : char_array) return C_Int;
+      pragma Import (C, tgetnum, "tgetnum");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+   begin
+      To_C (Name, Txt, Length);
+      Value := Integer (tgetnum (Txt));
+      if Value = -1 then
+         Result := False;
+      else
+         Result :=  True;
+      end if;
+   end Get_Number;
+
+------------------------------------------------------------------------------
+   procedure Get_String (Name   : String;
+                         Value  : out String;
+                         Result : out Boolean)
+   is
+      function tgetstr (id  : char_array;
+                        buf : char_array) return chars_ptr;
+      pragma Import (C, tgetstr, "tgetstr");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2   : chars_ptr;
+      type t is new char_array (0 .. 1024); --  does it need to be 1024?
+      Return_Buffer : t := (0 => nul);
+   begin
+      To_C (Name, Txt, Length);
+      Txt2 := tgetstr (Txt, char_array (Return_Buffer));
+      if Txt2 = Null_Ptr then
+         Result := False;
+      else
+         Value := Fill_String (Txt2);
+         Result := True;
+      end if;
+   end Get_String;
+
+   function Get_String (Name : String) return Boolean
+   is
+      function tgetstr (Id  : char_array;
+                        buf : char_array) return chars_ptr;
+      pragma Import (C, tgetstr, "tgetstr");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2   : chars_ptr;
+      type t is new char_array (0 .. 1024); --  does it need to be 1024?
+      Phony_Txt : t := (0 => nul);
+   begin
+      To_C (Name, Txt, Length);
+      Txt2 := tgetstr (Txt, char_array (Phony_Txt));
+      if Txt2 = Null_Ptr then
+         return False;
+      else
+         return True;
+      end if;
+   end Get_String;
+
+------------------------------------------------------------------------------
+   function TGoto (Cap : String;
+                   Col : Column_Position;
+                   Row : Line_Position) return Termcap_String is
+      function tgoto (cap : char_array;
+                      col : C_Int;
+                      row : C_Int) return chars_ptr;
+      pragma Import (C, tgoto);
+      Txt    : char_array (0 .. Cap'Length);
+      Length : size_t;
+   begin
+      To_C (Cap, Txt, Length);
+      return Termcap_String (Fill_String
+                             (tgoto (Txt, C_Int (Col), C_Int (Row))));
+   end TGoto;
+
+
+end Terminal_Interface.Curses.Termcap;
diff --git a/Ada95/src/terminal_interface-curses-termcap.ads b/Ada95/src/terminal_interface-curses-termcap.ads
new file mode 100644 (file)
index 0000000..189891f
--- /dev/null
@@ -0,0 +1,81 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Termcap                    --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+package Terminal_Interface.Curses.Termcap is
+   pragma Preelaborate (Terminal_Interface.Curses.Termcap);
+
+   --  |=====================================================================
+   --  | Man page curs_termcap.3x
+   --  |=====================================================================
+   --  Not implemented:  tputs (see curs_terminfo)
+
+   type Termcap_String is new String;
+
+   --  |
+   function TGoto (Cap : String;
+                   Col : Column_Position;
+                   Row : Line_Position) return Termcap_String;
+   --  AKA: tgoto()
+
+   --  |
+   function Get_Entry (Name : String) return Boolean;
+   --  AKA: tgetent()
+
+   --  |
+   function Get_Flag (Name : String) return Boolean;
+   --  AKA: tgetflag()
+
+   --  |
+   procedure Get_Number (Name   : String;
+                         Value  : out Integer;
+                         Result : out Boolean);
+   --  AKA: tgetnum()
+
+   --  |
+   procedure Get_String (Name   : String;
+                         Value  : out String;
+                         Result : out Boolean);
+   function Get_String (Name : String) return Boolean;
+   --  Returns True if the string is found.
+   --  AKA: tgetstr()
+
+end Terminal_Interface.Curses.Termcap;
diff --git a/Ada95/src/terminal_interface-curses-terminfo.adb b/Ada95/src/terminal_interface-curses-terminfo.adb
new file mode 100644 (file)
index 0000000..25a8eb0
--- /dev/null
@@ -0,0 +1,162 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.Terminfo                    --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Ada.Unchecked_Conversion;
+
+package body Terminal_Interface.Curses.Terminfo is
+
+
+   function Is_MinusOne_Pointer (P : in chars_ptr) return Boolean;
+
+   function Is_MinusOne_Pointer (P : in chars_ptr) return Boolean is
+      type Weird_Address is new System.Storage_Elements.Integer_Address;
+      Invalid_Pointer : constant Weird_Address := -1;
+      function To_Weird is new Ada.Unchecked_Conversion
+        (Source => chars_ptr, Target => Weird_Address);
+   begin
+      if To_Weird (P) = Invalid_Pointer then
+         return True;
+      else
+         return False;
+      end if;
+   end Is_MinusOne_Pointer;
+   pragma Inline (Is_MinusOne_Pointer);
+
+------------------------------------------------------------------------------
+   function Get_Flag (Name : String) return Boolean
+   is
+      function tigetflag (id : char_array) return Curses_Bool;
+      pragma Import (C, tigetflag);
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+   begin
+      To_C (Name, Txt, Length);
+      if tigetflag (Txt) = Curses_Bool (Curses_True) then
+         return True;
+      else
+         return False;
+      end if;
+   end Get_Flag;
+
+------------------------------------------------------------------------------
+   procedure Get_String (Name   : String;
+                         Value  : out Terminfo_String;
+                         Result : out Boolean)
+   is
+      function tigetstr (id : char_array) return chars_ptr;
+      pragma Import (C, tigetstr, "tigetstr");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2 : chars_ptr;
+   begin
+      To_C (Name, Txt, Length);
+      Txt2 := tigetstr (Txt);
+      if Txt2 = Null_Ptr then
+         Result := False;
+      elsif Is_MinusOne_Pointer (Txt2) then
+         raise Curses_Exception;
+      else
+         Value  := Terminfo_String (Fill_String (Txt2));
+         Result := True;
+      end if;
+   end Get_String;
+
+------------------------------------------------------------------------------
+   function Has_String (Name : String) return Boolean
+   is
+      function tigetstr (id : char_array) return chars_ptr;
+      pragma Import (C, tigetstr, "tigetstr");
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2 : chars_ptr;
+   begin
+      To_C (Name, Txt, Length);
+      Txt2 := tigetstr (Txt);
+      if Txt2 = Null_Ptr then
+         return False;
+      elsif Is_MinusOne_Pointer (Txt2) then
+         raise Curses_Exception;
+      else
+         return True;
+      end if;
+   end Has_String;
+
+------------------------------------------------------------------------------
+   function Get_Number (Name : String) return Integer is
+      function tigetstr (s : char_array) return C_Int;
+      pragma Import (C, tigetstr);
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+   begin
+      To_C (Name, Txt, Length);
+      return Integer (tigetstr (Txt));
+   end Get_Number;
+
+------------------------------------------------------------------------------
+   procedure Put_String (Str    : Terminfo_String;
+                         affcnt : Natural := 1;
+                         putc   : putctype := null) is
+      function tputs (str    : char_array;
+                      affcnt : C_Int;
+                      putc   : putctype) return C_Int;
+      function putp (str : char_array) return C_Int;
+      pragma Import (C, tputs);
+      pragma Import (C, putp);
+      Txt    : char_array (0 .. Str'Length);
+      Length : size_t;
+      Err : C_Int;
+   begin
+      To_C (String (Str), Txt, Length);
+      if putc = null then
+         Err := putp (Txt);
+      else
+         Err := tputs (Txt, C_Int (affcnt), putc);
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Put_String;
+
+end Terminal_Interface.Curses.Terminfo;
diff --git a/Ada95/src/terminal_interface-curses-terminfo.ads b/Ada95/src/terminal_interface-curses-terminfo.ads
new file mode 100644 (file)
index 0000000..ced5d4e
--- /dev/null
@@ -0,0 +1,82 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Terminfo                   --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.2 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+
+with Interfaces.C;
+
+package Terminal_Interface.Curses.Terminfo is
+   pragma Preelaborate (Terminal_Interface.Curses.Terminfo);
+
+   --  |=====================================================================
+   --  | Man page curs_terminfo.3x
+   --  |=====================================================================
+   --  Not implemented:  setupterm, setterm, set_curterm, del_curterm,
+   --                    restartterm, tparm, putp, vidputs,  vidattr,
+   --                    mvcur
+
+   type Terminfo_String is new String;
+
+   --  |
+   procedure Get_String (Name   : String;
+                         Value  : out Terminfo_String;
+                         Result : out Boolean);
+   function Has_String (Name : String) return Boolean;
+   --  AKA: tigetstr()
+
+   --  |
+   function Get_Flag (Name : String) return Boolean;
+   --  AKA: tigetflag()
+
+   --  |
+   function Get_Number (Name : String) return Integer;
+   --  AKA: tigetnum()
+
+   type putctype is access function (c : Interfaces.C.int)
+                                    return Interfaces.C.int;
+   pragma Convention (C, putctype);
+
+   --  |
+   procedure Put_String (Str    : Terminfo_String;
+                         affcnt : Natural := 1;
+                         putc   : putctype := null);
+   --  AKA: tputs()
+
+end Terminal_Interface.Curses.Terminfo;
index 812f6622bf8140437e9768ff6c4bee11d02b7b6c..d7fff5bb75bf72b4994b893d4f21f156988a915d 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Text_IO.Aux is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Text_IO.Aux is
index 63a741fd70c1dbb8ba77ee5f3c547866a27611ad..eaa68cb2e1ed7b66f183e77b2705db493d14627c 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 private package Terminal_Interface.Curses.Text_IO.Aux is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 private package Terminal_Interface.Curses.Text_IO.Aux is
index a804ec6561c3f25fa43c6bfd2fb6d3d11f279bab..4eb6a6d7d3f7ccbd210dcfae75c91874e6ffd2a2 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Text_IO.Float_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Text_IO.Float_IO;
index 47146266d078ffc955d449cf19d46680e50061d2..64a849080880a48c38bcf085e91fc84dacbf9ef6 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Complex_Types;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Complex_Types;
index d70a73f11af95c34b76da2cd404317c57961b659..d3a70ddaa6c442de817614d86b9f1ba9e02350ba 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index 60ac66b7852501b08df43191194ed6dcc6a0ba72..2b76feed98b98c4f1040921b55090beb539eaeea 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index 7abeffe70c7731ccbc980a3a293cc038f15d43ce..4ad470433f93adde70dcde713e40fb9fc7886369 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index 3c13424c1b80cbcc06b697dc7cfc1a9e04fd94c8..2bcee123ddb8e07f80a4f06754d5765c7cdc8656 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index 760acb2b5ee0beda990302baf7ec06a28dfa01c6..493450a72dafdd13a8813ace39a3e062c4355aa9 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index 77f5743f47c61f2ec0d2d9219dbed9eefc4bc20d..6ca314dcc24a3d21cfc63284c57456da46b8a3ff 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index 47fe94a1573efedd181eb560faf926cf142275bd..ee3cb224ae7ff06b4ebabb7c7db44cec96be4739 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index e46170e6f8a271bad22102efc54c94d4f0d9142e..35d47b80978555846f51104b69f0fe51ee1c6ce1 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index 43d03a9fa0393f6dcfa17bed22206da8a49db901..fee7e0eb953dbe9fee054edba35a2cab54746dda 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index cd3b01b5cc66f2c138523a88405d8b5a70d2cc54..ba6cb14507c9737aaa620bf8893aadcda86bc979 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index 75bd624ade1686109d41e2e3071dc3e49b9d71af..0d107aa166a353e5e7e0d5a12863c345d0c3988e 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.9 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
index 329207751c38365bf940a526031e19f15e123300..a539ac6139ce4f86f0e38052c5273875866c0372 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.9 $
+--  $Revision: 1.10 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 generic
index cf7614b400fbabf9997da8ce03f3ef170c82dc1f..01076921c6170f0f110a31418a83de58fc53d18b 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.12 $
+--  $Revision: 1.13 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Text_IO is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Text_IO is
index 02c3b7d54fc0f88c9f1925a374f85cd77bd0be2c..d51922489c112046d931461365a829782fb5c307 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.11 $
+--  $Revision: 1.12 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Text_IO;
diff --git a/Ada95/src/terminal_interface-curses-trace.adb_p b/Ada95/src/terminal_interface-curses-trace.adb_p
new file mode 100644 (file)
index 0000000..a61ef4d
--- /dev/null
@@ -0,0 +1,92 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Trace                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+--  Version Control:
+--  $Revision: 1.3 $
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+#if ADA_TRACE then
+with Interfaces.C; use Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Ada.Unchecked_Conversion;
+#end if;
+
+package body Terminal_Interface.Curses.Trace is
+
+#if ADA_TRACE then
+   type C_TraceType is new C_UInt;
+
+   function TraceAda_To_TraceC is new
+     Ada.Unchecked_Conversion (Source => Trace_Attribute_Set,
+                               Target => C_TraceType);
+
+   procedure Trace_On (x : Trace_Attribute_Set) is
+      procedure traceC (y : C_TraceType);
+      pragma Import (C, traceC, "trace");
+   begin
+      traceC (TraceAda_To_TraceC (x));
+   end Trace_On;
+
+   --  75. (12) A C function that takes a variable number of arguments can
+   --      correspond to several Ada subprograms, taking various specific
+   --      numbers and types of parameters.
+
+   procedure Trace_Put (str : String) is
+      procedure tracef (format : char_array; s : char_array);
+      pragma Import (C, tracef, "_tracef");
+      Txt    : char_array (0 .. str'Length);
+      Length : size_t;
+      formatstr : constant String := "%s" &  ASCII.Nul;
+      formattxt : char_array (0 .. formatstr'Length);
+   begin
+      To_C (formatstr, formattxt, Length);
+      To_C (str, Txt, Length);
+      tracef (formattxt, Txt);
+   end Trace_Put;
+#else
+   procedure Trace_On (x : Trace_Attribute_Set) is
+   begin
+      null;
+   end Trace_On;
+
+   procedure Trace_Put (str : String) is
+   begin
+      null;
+   end Trace_Put;
+#end if;
+
+end Terminal_Interface.Curses.Trace;
index 698f1c650e925da82540e9e8db0b318e003e8172..f196f3b5e1d3b70037b4e8485305184a1e0f4aeb 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author: Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.26 $
+--  $Revision: 1.28 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
@@ -89,6 +90,27 @@ package body Terminal_Interface.Curses is
    function W_Get_Short is new W_Get_Element (C_Short);
    function W_Get_Byte  is new W_Get_Element (Interfaces.C.unsigned_char);
 
    function W_Get_Short is new W_Get_Element (C_Short);
    function W_Get_Byte  is new W_Get_Element (Interfaces.C.unsigned_char);
 
+   function Get_Flag (Win    : Window;
+                      Offset : Natural) return Boolean;
+
+   function Get_Flag (Win    : Window;
+                      Offset : Natural) return Boolean
+   is
+      Res : C_Int;
+   begin
+      case Sizeof_bool is
+         when 1 => Res := C_Int (W_Get_Byte  (Win, Offset));
+         when 2 => Res := C_Int (W_Get_Short (Win, Offset));
+         when 4 => Res := C_Int (W_Get_Int   (Win, Offset));
+         when others => raise Curses_Exception;
+      end case;
+
+      case Res is
+         when 0       => return False;
+         when others  => return True;
+      end case;
+   end Get_Flag;
+
 ------------------------------------------------------------------------------
    function Key_Name (Key : in Real_Key_Code) return String
    is
 ------------------------------------------------------------------------------
    function Key_Name (Key : in Real_Key_Code) return String
    is
@@ -404,9 +426,8 @@ package body Terminal_Interface.Curses is
                   Str : in String;
                   Len : in Integer := -1)
    is
                   Str : in String;
                   Len : in Integer := -1)
    is
-      type Char_Ptr is access all Interfaces.C.char;
       function Waddnstr (Win : Window;
       function Waddnstr (Win : Window;
-                         Str : Char_Ptr;
+                         Str : char_array;
                          Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddnstr, "waddnstr");
 
                          Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddnstr, "waddnstr");
 
@@ -414,7 +435,7 @@ package body Terminal_Interface.Curses is
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
-      if Waddnstr (Win, Txt (Txt'First)'Access, C_Int (Len)) = Curses_Err then
+      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
          raise Curses_Exception;
       end if;
    end Add;
          raise Curses_Exception;
       end if;
    end Add;
@@ -436,9 +457,8 @@ package body Terminal_Interface.Curses is
       Str : in Attributed_String;
       Len : in Integer := -1)
    is
       Str : in Attributed_String;
       Len : in Integer := -1)
    is
-      type Chtype_Ptr is access all Attributed_Character;
       function Waddchnstr (Win : Window;
       function Waddchnstr (Win : Window;
-                           Str : Chtype_Ptr;
+                           Str : chtype_array;
                            Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddchnstr, "waddchnstr");
 
                            Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddchnstr, "waddchnstr");
 
@@ -449,7 +469,7 @@ package body Terminal_Interface.Curses is
       end loop;
       Txt (Str'Length) := Default_Character;
       if Waddchnstr (Win,
       end loop;
       Txt (Str'Length) := Default_Character;
       if Waddchnstr (Win,
-                     Txt (Txt'First)'Access,
+                     Txt,
                      C_Int (Len)) = Curses_Err then
          raise Curses_Exception;
       end if;
                      C_Int (Len)) = Curses_Err then
          raise Curses_Exception;
       end if;
@@ -616,6 +636,26 @@ package body Terminal_Interface.Curses is
       return Real_Key_Code (Natural (Key_F0) + Natural (Key));
    end Function_Key_Code;
 ------------------------------------------------------------------------------
       return Real_Key_Code (Natural (Key_F0) + Natural (Key));
    end Function_Key_Code;
 ------------------------------------------------------------------------------
+   procedure Standout (Win : Window  := Standard_Window;
+                       On  : Boolean := True)
+   is
+      function wstandout (Win : Window) return C_Int;
+      pragma Import (C, wstandout, "wstandout");
+      function wstandend (Win : Window) return C_Int;
+      pragma Import (C, wstandend, "wstandend");
+
+      Err : C_Int;
+   begin
+      if On then
+         Err := wstandout (Win);
+      else
+         Err := wstandend (Win);
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Standout;
+
    procedure Switch_Character_Attribute
      (Win  : in Window := Standard_Window;
       Attr : in Character_Attribute_Set := Normal_Video;
    procedure Switch_Character_Attribute
      (Win  : in Window := Standard_Window;
       Attr : in Character_Attribute_Set := Normal_Video;
@@ -858,6 +898,13 @@ package body Terminal_Interface.Curses is
       end if;
    end Set_KeyPad_Mode;
 
       end if;
    end Set_KeyPad_Mode;
 
+   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
+                             return Boolean
+   is
+   begin
+      return Get_Flag (Win, Offset_use_keypad);
+   end Get_KeyPad_Mode;
+
    procedure Half_Delay (Amount : in Half_Delay_Amount)
    is
       function Halfdelay (Amount : C_Int) return C_Int;
    procedure Half_Delay (Amount : in Half_Delay_Amount)
    is
       function Halfdelay (Amount : C_Int) return C_Int;
@@ -1036,21 +1083,11 @@ package body Terminal_Interface.Curses is
       end if;
    end Allow_Scrolling;
 
       end if;
    end Allow_Scrolling;
 
-   function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean
+   function Scrolling_Allowed (Win : Window := Standard_Window)
+                               return Boolean
    is
    is
-      Res : C_Int;
    begin
    begin
-      case Sizeof_bool is
-         when 1 => Res := C_Int (W_Get_Byte  (Win, Offset_scroll));
-         when 2 => Res := C_Int (W_Get_Short (Win, Offset_scroll));
-         when 4 => Res := C_Int (W_Get_Int   (Win, Offset_scroll));
-         when others => raise Curses_Exception;
-      end case;
-
-      case Res is
-         when 0       => return False;
-         when others  => return True;
-      end case;
+      return Get_Flag (Win, Offset_scroll);
    end Scrolling_Allowed;
 
    procedure Set_Scroll_Region
    end Scrolling_Allowed;
 
    procedure Set_Scroll_Region
@@ -1636,9 +1673,8 @@ package body Terminal_Interface.Curses is
                      Str : in String;
                      Len : in Integer := -1)
    is
                      Str : in String;
                      Len : in Integer := -1)
    is
-      type Char_Ptr is access all Interfaces.C.char;
       function Winsnstr (Win : Window;
       function Winsnstr (Win : Window;
-                         Str : Char_Ptr;
+                         Str : char_array;
                          Len : Integer := -1) return C_Int;
       pragma Import (C, Winsnstr, "winsnstr");
 
                          Len : Integer := -1) return C_Int;
       pragma Import (C, Winsnstr, "winsnstr");
 
@@ -1646,7 +1682,7 @@ package body Terminal_Interface.Curses is
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
-      if Winsnstr (Win, Txt (Txt'First)'Access, Len) = Curses_Err then
+      if Winsnstr (Win, Txt, Len) = Curses_Err then
          raise Curses_Exception;
       end if;
    end Insert;
          raise Curses_Exception;
       end if;
    end Insert;
@@ -1658,11 +1694,10 @@ package body Terminal_Interface.Curses is
       Str    : in String;
       Len    : in Integer := -1)
    is
       Str    : in String;
       Len    : in Integer := -1)
    is
-      type Char_Ptr is access all Interfaces.C.char;
       function Mvwinsnstr (Win    : Window;
                            Line   : C_Int;
                            Column : C_Int;
       function Mvwinsnstr (Win    : Window;
                            Line   : C_Int;
                            Column : C_Int;
-                           Str    : Char_Ptr;
+                           Str    : char_array;
                            Len    : C_Int) return C_Int;
       pragma Import (C, Mvwinsnstr, "mvwinsnstr");
 
                            Len    : C_Int) return C_Int;
       pragma Import (C, Mvwinsnstr, "mvwinsnstr");
 
@@ -1670,8 +1705,7 @@ package body Terminal_Interface.Curses is
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
       Length : size_t;
    begin
       To_C (Str, Txt, Length);
-      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column),
-                     Txt (Txt'First)'Access, C_Int (Len))
+      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
         = Curses_Err then
          raise Curses_Exception;
       end if;
         = Curses_Err then
          raise Curses_Exception;
       end if;
@@ -1723,14 +1757,13 @@ package body Terminal_Interface.Curses is
       Str : out Attributed_String;
       Len : in  Integer := -1)
    is
       Str : out Attributed_String;
       Len : in  Integer := -1)
    is
-      type Chtype_Ptr is access all Attributed_Character;
       function Winchnstr (Win : Window;
       function Winchnstr (Win : Window;
-                          Str : Chtype_Ptr;
+                          Str : chtype_array;             -- out
                           Len : C_Int) return C_Int;
       pragma Import (C, Winchnstr, "winchnstr");
 
       N   : Integer := Len;
                           Len : C_Int) return C_Int;
       pragma Import (C, Winchnstr, "winchnstr");
 
       N   : Integer := Len;
-      Txt : chtype_array (0 .. Str'Length);
+      Txt : chtype_array (0 .. Str'Length) := (0 => Default_Character);
       Cnt : Natural := 0;
    begin
       if N < 0 then
       Cnt : Natural := 0;
    begin
       if N < 0 then
@@ -1739,7 +1772,7 @@ package body Terminal_Interface.Curses is
       if N > Str'Length then
          raise Constraint_Error;
       end if;
       if N > Str'Length then
          raise Constraint_Error;
       end if;
-      if Winchnstr (Win, Txt (Txt'First)'Access, C_Int (N)) = Curses_Err then
+      if Winchnstr (Win, Txt, C_Int (N)) = Curses_Err then
          raise Curses_Exception;
       end if;
       for To in Str'Range loop
          raise Curses_Exception;
       end if;
       for To in Str'Range loop
@@ -1823,9 +1856,8 @@ package body Terminal_Interface.Curses is
                                  Text  : in String;
                                  Fmt   : in Label_Justification := Left)
    is
                                  Text  : in String;
                                  Fmt   : in Label_Justification := Left)
    is
-      type Char_Ptr is access all Interfaces.C.char;
       function Slk_Set (Label : C_Int;
       function Slk_Set (Label : C_Int;
-                        Txt   : Char_Ptr;
+                        Txt   : char_array;
                         Fmt   : C_Int) return C_Int;
       pragma Import (C, Slk_Set, "slk_set");
 
                         Fmt   : C_Int) return C_Int;
       pragma Import (C, Slk_Set, "slk_set");
 
@@ -1833,10 +1865,8 @@ package body Terminal_Interface.Curses is
       Len : size_t;
    begin
       To_C (Text, Txt, Len);
       Len : size_t;
    begin
       To_C (Text, Txt, Len);
-      if Slk_Set (C_Int (Label),
-                  Txt (Txt'First)'Access,
-                  C_Int (Label_Justification'Pos (Fmt)))
-        = Curses_Err then
+      if Slk_Set (C_Int (Label), Txt,
+                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err then
          raise Curses_Exception;
       end if;
    end Set_Soft_Label_Key;
          raise Curses_Exception;
       end if;
    end Set_Soft_Label_Key;
@@ -1995,8 +2025,7 @@ package body Terminal_Interface.Curses is
    procedure Define_Key (Definition : in String;
                          Key        : in Special_Key_Code)
    is
    procedure Define_Key (Definition : in String;
                          Key        : in Special_Key_Code)
    is
-      type Char_Ptr is access all Interfaces.C.char;
-      function Defkey (Def : Char_Ptr;
+      function Defkey (Def : char_array;
                        Key : C_Int) return C_Int;
       pragma Import (C, Defkey, "define_key");
 
                        Key : C_Int) return C_Int;
       pragma Import (C, Defkey, "define_key");
 
@@ -2004,7 +2033,7 @@ package body Terminal_Interface.Curses is
       Length : size_t;
    begin
       To_C (Definition, Txt, Length);
       Length : size_t;
    begin
       To_C (Definition, Txt, Length);
-      if Defkey (Txt (Txt'First)'Access, C_Int (Key)) = Curses_Err then
+      if Defkey (Txt, C_Int (Key)) = Curses_Err then
          raise Curses_Exception;
       end if;
    end Define_Key;
          raise Curses_Exception;
       end if;
    end Define_Key;
@@ -2410,5 +2439,123 @@ package body Terminal_Interface.Curses is
          Column := Column_Position (X);
       end if;
    end Transform_Coordinates;
          Column := Column_Position (X);
       end if;
    end Transform_Coordinates;
+------------------------------------------------------------------------------
+   procedure Use_Default_Colors is
+      function C_Use_Default_Colors return C_Int;
+      pragma Import (C, C_Use_Default_Colors, "use_default_colors");
+      Err : constant C_Int := C_Use_Default_Colors;
+   begin
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Use_Default_Colors;
+
+   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
+                                    Back : Color_Number := Default_Color)
+   is
+      function C_Assume_Default_Colors (Fore : C_Int;
+                                        Back : C_Int) return C_Int;
+      pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
+
+      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
+                                                       C_Int (Black));
+   begin
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Assume_Default_Colors;
+------------------------------------------------------------------------------
+   function Curses_Version return String
+   is
+      function curses_versionC return chars_ptr;
+      pragma Import (C, curses_versionC, "curses_version");
+      Result : constant chars_ptr := curses_versionC;
+   begin
+      return Fill_String (Result);
+   end Curses_Version;
+------------------------------------------------------------------------------
+   function Use_Extended_Names (Enable : Boolean) return Boolean
+   is
+      function use_extended_namesC (e : Curses_Bool) return C_Int;
+      pragma Import (C, use_extended_namesC, "use_extended_names");
+
+      Res : constant C_Int :=
+         use_extended_namesC (Curses_Bool (Boolean'Pos (Enable)));
+   begin
+      if Res = C_Int (Curses_Bool_False) then
+         return False;
+      else
+         return True;
+      end if;
+   end Use_Extended_Names;
+------------------------------------------------------------------------------
+   procedure Screen_Dump_To_File (Filename : in String)
+   is
+      function scr_dump (f : char_array) return C_Int;
+      pragma Import (C, scr_dump, "scr_dump");
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_dump (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Dump_To_File;
+
+   procedure Screen_Restore_From_File (Filename : in String)
+   is
+      function scr_restore (f : char_array) return C_Int;
+      pragma Import (C, scr_restore, "scr_restore");
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_restore (Txt)  then
+         raise Curses_Exception;
+      end if;
+   end Screen_Restore_From_File;
+
+   procedure Screen_Init_From_File (Filename : in String)
+   is
+      function scr_init (f : char_array) return C_Int;
+      pragma Import (C, scr_init, "scr_init");
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_init (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Init_From_File;
+
+   procedure Screen_Set_File (Filename : in String)
+   is
+      function scr_set (f : char_array) return C_Int;
+      pragma Import (C, scr_set, "scr_set");
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_set (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Set_File;
+------------------------------------------------------------------------------
+   procedure Resize (Win               : Window := Standard_Window;
+                     Number_Of_Lines   : Line_Count;
+                     Number_Of_Columns : Column_Count) is
+      function wresize (win     : Window;
+                        lines   : C_Int;
+                        columns : C_Int) return C_Int;
+      pragma Import (C, wresize);
+   begin
+      if wresize (Win,
+                  C_Int (Number_Of_Lines),
+                  C_Int (Number_Of_Columns)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Resize;
+------------------------------------------------------------------------------
 
 end Terminal_Interface.Curses;
 
 end Terminal_Interface.Curses;
+
index 89544bb0a69e5d3d52a06245de143d2e50cbdeff..c7c0984d3314f685bf852262cd17a5f629809a5f 100644 (file)
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written       --
 -- authorization.                                                           --
 ------------------------------------------------------------------------------
---  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+--  Author:  Juergen Pfeifer, 1996
+--  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 --  Version Control:
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.11 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface is
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package Terminal_Interface is
diff --git a/INSTALL b/INSTALL
index 26d57374f47e23509e7c1ccda8e55ceb606f283e..a1c56ebbe0dbea634de9716b18d153bbedeccdc4 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,4 +1,4 @@
--- $Id: INSTALL,v 1.46 2000/10/14 17:57:02 Johnny.C.Lam Exp $
+-- $Id: INSTALL,v 1.56 2002/09/01 22:42:11 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -47,7 +47,7 @@ REQUIREMENTS:
 
 You will need the following in order to build and install ncurses under UNIX:
 
 
 You will need the following in order to build and install ncurses under UNIX:
 
-       * ANSI C compiler  (gcc is recommended)
+       * ANSI C compiler  (gcc, for instance)
        * sh               (bash will do)
        * awk              (mawk or gawk will do)
        * sed
        * sh               (bash will do)
        * awk              (mawk or gawk will do)
        * sed
@@ -106,6 +106,16 @@ INSTALLATION PROCEDURE:
 
        libncurses.la (libtool)
 
 
        libncurses.la (libtool)
 
+    If you configure using the --enable-widec option, a "w" is appended to the
+    library names (e.g., libncursesw.a), and the resulting libraries support
+    wide-characters, e.g., via a UTF-8 locale.  The corresponding header files
+    are compatible with the non-wide-character configuration; wide-character
+    features are provided by ifdef's in the header files.  The wide-character
+    library interfaces are not binary-compatible with the non-wide-character
+    version.  Building and running the wide-character code relies on a fairly
+    recent implementation of libiconv.  We have built this configuration on
+    Linux using libiconv, sometimes requiring libutf8.
+
     If you do not specify any models, the normal and debug libraries will be
     configured.  Typing `configure' with no arguments is equivalent to:
 
     If you do not specify any models, the normal and debug libraries will be
     configured.  Typing `configure' with no arguments is equivalent to:
 
@@ -158,6 +168,9 @@ INSTALLATION PROCEDURE:
     databases are SVr4-compatible, but most seem to be.  Exceptions include
     DEC's Digital Unix (formerly known as OSF/1).
 
     databases are SVr4-compatible, but most seem to be.  Exceptions include
     DEC's Digital Unix (formerly known as OSF/1).
 
+    It is possible to configure ncurses to use other terminfo database formats.
+    A few are provided as examples in the include-directory (see --with-caps).
+
     The ncurses program is designed specifically to test the ncurses library.
     You can use it to verify that the screen highlights work correctly, that
     cursor addressing and window scrolling works OK, etc.
     The ncurses program is designed specifically to test the ncurses library.
     You can use it to verify that the screen highlights work correctly, that
     cursor addressing and window scrolling works OK, etc.
@@ -189,14 +202,14 @@ INSTALLATION PROCEDURE:
     with tbl(1) by specifying the configure option --with-manpage-tbl.
 
     If the system already has a curses library that you need to keep using
     with tbl(1) by specifying the configure option --with-manpage-tbl.
 
     If the system already has a curses library that you need to keep using
-    for some bizarre binary-compatibility reason, you'll need to distinguish
-    between it and ncurses. If ncurses is installed outside the standard
-    directories (/usr/include and /usr/lib) then all your users will need
-    to use the -I option to compile programs and -L to link them.
+    you'll need to distinguish between it and ncurses.  See the discussion of
+    --disable-overwrite.  If ncurses is installed outside the standard
+    directories (/usr/include and /usr/lib) then all your users will need to
+    use the -I option to compile programs and -L to link them.
 
 
-    If you have BSD curses installed in your system and you accidentally
+    If you have another curses installed in your system and you accidentally
     compile using its curses.h you'll end up with a large number of
     compile using its curses.h you'll end up with a large number of
-    undefined symbols at link time. _waddbytes is one of them.
+    undefined symbols at link time.
 
     IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory
     and run the `capconvert' script.  This script will deduce various things
 
     IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory
     and run the `capconvert' script.  This script will deduce various things
@@ -221,26 +234,6 @@ INSTALLATION PROCEDURE:
     which may be supported by C++.  IF YOU USE THIS OPTION, BE ADVISED THAT
     YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
 
     which may be supported by C++.  IF YOU USE THIS OPTION, BE ADVISED THAT
     YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
 
-7.  If you're running an older Linux, you must either (a) tell Linux that the
-    console terminal type is `linux' or (b) make a link to or copy of the
-    linux entry in the appropriate place under your terminfo directory, named
-    `console'.  All 1.3 and many 1.2 distributions (including Yggdrasil and
-    Red Hat) already have the console type set to `linux'.
-
-    The way to change the wired-in console type depends on the configuration
-    of your system. This may involve editing /etc/inittab, /etc/ttytype,
-    /etc/profile and other such files.
-
-    Warning: this is not for the fainthearted, if you mess up your console
-    getty entries you can make your system unusable!  However, if you are
-    a distribution maker, this is the right thing to do (see the note for
-    integrators near the end of this file).
-
-    The easier way is to link or copy l/linux to c/console under your terminfo
-    directory.  Note: this will go away next time you do `make install.data'
-    and you'll have to redo it. There is no need to have entries for all
-    possible screen sizes, ncurses will figure out the size automatically.
-
 
 SUMMARY OF CONFIGURE OPTIONS:
 ----------------------------
 
 SUMMARY OF CONFIGURE OPTIONS:
 ----------------------------
@@ -277,7 +270,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        Use only built-in data.  The ncurses libraries normally read terminfo
        and termcap data from disk.  You can configure ncurses to have a
        built-in database, aka "fallback" entries.  Embedded applications may
        Use only built-in data.  The ncurses libraries normally read terminfo
        and termcap data from disk.  You can configure ncurses to have a
        built-in database, aka "fallback" entries.  Embedded applications may
-       have no need for an external database.
+       have no need for an external database.  Some, but not all of the
+       programs are useful in this configuration, e.g., reset and tput versus
+       infocmp and tic.
 
     --disable-ext-funcs
        Disable function-extensions.  Configure ncurses without the functions
 
     --disable-ext-funcs
        Disable function-extensions.  Configure ncurses without the functions
@@ -444,13 +439,18 @@ SUMMARY OF CONFIGURE OPTIONS:
     --enable-widec
        Compile with experimental wide-character code.  This makes a different
        version of the libraries (e.g., libncursesw.so), which stores
     --enable-widec
        Compile with experimental wide-character code.  This makes a different
        version of the libraries (e.g., libncursesw.so), which stores
-       characters in 16-bits.  We provide a simple UTF-8 driver and test
-       program to use this feature with terminals that can display UTF-8.
+       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
        symbolic link to equate libncurses.so with libncursesw.so
 
 
        NOTE: applications compiled with this configuration are not compatible
        with those built for 8-bit characters.  You cannot simply make a
        symbolic link to equate libncurses.so with libncursesw.so
 
+       NOTE: the Ada95 binding may be built against either version of the the
+       ncurses library, but you must decide which:  the binding installs the
+       same set of files for either version.  Currently (2002/6/22) it does
+       not use the extended features from the wide-character code, so it is
+       probably better to not install the binding for that configuration.
+
     --enable-xmc-glitch
        Compile-in support experimental xmc (magic cookie) code.
 
     --enable-xmc-glitch
        Compile-in support experimental xmc (magic cookie) code.
 
@@ -464,6 +464,46 @@ SUMMARY OF CONFIGURE OPTIONS:
     --with-ada-objects=DIR
        Tell where to install the Ada objects (default:  PREFIX/lib/ada/adalib)
 
     --with-ada-objects=DIR
        Tell where to install the Ada objects (default:  PREFIX/lib/ada/adalib)
 
+    --with-bool=TYPE
+       If --without-cxx is specified, override the type used for the "bool"
+       declared in curses.h (normally the type is automatically chosen to
+       correspond with that in <stdbool.h>, or defaults to platform-specific
+       sizes).
+
+    --with-build-cc=XXX
+       If cross-compiling, specify a host C compiler, which is needed to
+       compile a few utilties which generate source modules for ncurses.
+       If you do not give this option, the configure script checks if the
+       $BUILD_CC variable is set, and otherwise defaults to gcc or cc.
+
+    --with-build-cflags=XXX
+       If cross-compiling, specify the host C compiler-flags.  You might need
+       to do this if the target compiler has unusual flags which confuse the
+       host compiler.
+
+    --with-build-cppflags=XXX
+       If cross-compiling, specify the host C preprocesor-flags.  You might
+       need to do this if the target compiler has unusual flags which confuse
+       the host compiler.
+
+    --with-build-ldflags=XXX
+       If cross-compiling, specify the host linker-flags.  You might need to
+       do this if the target linker has unusual flags which confuse the host
+       compiler.
+
+    --with-build-libs=XXX
+       If cross-compiling, the host libraries.  You might need to do this if
+       the target environment requires unusual libraries.
+
+    --with-caps=XXX
+       Specify an alternate terminfo capabilities file, which makes the
+       configure script look for "include/Caps.XXX".  A few systems, e.g.,
+       AIX 4.x use the same overall file-format as ncurses for terminfo
+       data, but use different alignments within the tables to support
+       legacy applications.  For those systems, you can configure ncurses
+       to use a terminfo database which is compatible with the native
+       applications.
+
     --with-database=XXX
        Specify the terminfo source file to install.  Usually you will wish
        to install ncurses' default (misc/terminfo.src).  Certain systems
     --with-database=XXX
        Specify the terminfo source file to install.  Usually you will wish
        to install ncurses' default (misc/terminfo.src).  Certain systems
@@ -532,6 +572,19 @@ SUMMARY OF CONFIGURE OPTIONS:
        by running them through tbl to generate tables understandable by
        nroff.
 
        by running them through tbl to generate tables understandable by
        nroff.
 
+    --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. 
+       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
+       cfgetospeed(), which returns a speed_t for this reason).  In practice,
+       applications that required knowledge of the ospeed variable, i.e.,
+       those using termcap, do not use the higher speeds.  Your application
+       (or system, in general) may or may not.
+
     --with-normal
        Generate normal (i.e., static) libraries (default).
 
     --with-normal
        Generate normal (i.e., static) libraries (default).
 
@@ -573,6 +626,10 @@ SUMMARY OF CONFIGURE OPTIONS:
        (libtinfo).  This is done to accommodate applications that use only
        the latter.  The terminfo library is about half the size of the total.
 
        (libtinfo).  This is done to accommodate applications that use only
        the latter.  The terminfo library is about half the size of the total.
 
+    --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)
+
     --without-ada
        Suppress the configure script's check for Ada95, do not build the
        Ada95 binding and related demo.
     --without-ada
        Suppress the configure script's check for Ada95, do not build the
        Ada95 binding and related demo.
@@ -616,6 +673,41 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
     you may encounter when building a system with different versions of
     ncurses:
 
     you may encounter when building a system with different versions of
     ncurses:
 
+    5.3 (pre-release)
+       Interface changes:
+
+       + change type for bool used in headers to NCURSES_BOOL, which usually
+         is the same as the compiler's definition for 'bool'.
+
+       + add all but two functions for X/Open curses wide-character support.
+         These are only available if the library is configured using the
+         --enable-widec option.  Missing functions are
+               pecho_wchar()
+               slk_wset()
+
+       + add environment variable $NCURSES_ASSUMED_COLORS to modify the
+         assume_default_colors() extension.
+
+       Added extensions:
+               is_term_resized()
+               resize_term()
+       Added internal functions:
+               _nc_altcharset_name()   debug
+               _nc_rootname()
+               _nc_trace_ttymode()     debug
+               _nc_varargs()           debug
+               _nc_wgetch()
+       Removed internal functions:
+               _nc_background()
+       Modified internal functions:
+               _nc_freeall()           debug
+
+    5.2 (October 21, 2000)
+       Interface changes:
+
+       + revert termcap ospeed variable to 'short' (see discussion of the
+         --with-ospeed configure option).
+
     5.1 (July 8, 2000)
        Interface changes:
 
     5.1 (July 8, 2000)
        Interface changes:
 
index 24368e571cfc343aa456b2d764e9ed3987ecd3bc..869e3bdb8a255a37cefec484864ab2bc7ab3509b 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
 ./Ada95/gen/terminal_interface-curses-mouse.ads.m4
 ./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
 ./Ada95/gen/terminal_interface-curses-panels.ads.m4
 ./Ada95/gen/terminal_interface-curses-mouse.ads.m4
 ./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
 ./Ada95/gen/terminal_interface-curses-panels.ads.m4
+./Ada95/gen/terminal_interface-curses-trace.ads.m4
 ./Ada95/gen/terminal_interface-curses.ads.m4
 ./Ada95/samples/Makefile.in
 ./Ada95/samples/README
 ./Ada95/samples/explain.txt
 ./Ada95/gen/terminal_interface-curses.ads.m4
 ./Ada95/samples/Makefile.in
 ./Ada95/samples/README
 ./Ada95/samples/explain.txt
+./Ada95/samples/ncurses.adb
+./Ada95/samples/ncurses2-acs_and_scroll.adb
+./Ada95/samples/ncurses2-acs_and_scroll.ads
+./Ada95/samples/ncurses2-acs_display.adb
+./Ada95/samples/ncurses2-acs_display.ads
+./Ada95/samples/ncurses2-attr_test.adb
+./Ada95/samples/ncurses2-attr_test.ads
+./Ada95/samples/ncurses2-color_edit.adb
+./Ada95/samples/ncurses2-color_edit.ads
+./Ada95/samples/ncurses2-color_test.adb
+./Ada95/samples/ncurses2-color_test.ads
+./Ada95/samples/ncurses2-demo_forms.adb
+./Ada95/samples/ncurses2-demo_forms.ads
+./Ada95/samples/ncurses2-demo_pad.adb
+./Ada95/samples/ncurses2-demo_pad.ads
+./Ada95/samples/ncurses2-demo_panels.adb
+./Ada95/samples/ncurses2-demo_panels.ads
+./Ada95/samples/ncurses2-flushinp_test.adb
+./Ada95/samples/ncurses2-flushinp_test.ads
+./Ada95/samples/ncurses2-genericputs.adb
+./Ada95/samples/ncurses2-genericputs.ads
+./Ada95/samples/ncurses2-getch.ads
+./Ada95/samples/ncurses2-getch_test.adb
+./Ada95/samples/ncurses2-getch_test.ads
+./Ada95/samples/ncurses2-getopt.adb
+./Ada95/samples/ncurses2-getopt.ads
+./Ada95/samples/ncurses2-m.adb
+./Ada95/samples/ncurses2-m.ads
+./Ada95/samples/ncurses2-menu_test.adb
+./Ada95/samples/ncurses2-menu_test.ads
+./Ada95/samples/ncurses2-overlap_test.adb
+./Ada95/samples/ncurses2-overlap_test.ads
+./Ada95/samples/ncurses2-slk_test.adb
+./Ada95/samples/ncurses2-slk_test.ads
+./Ada95/samples/ncurses2-test_sgr_attributes.adb
+./Ada95/samples/ncurses2-test_sgr_attributes.ads
+./Ada95/samples/ncurses2-trace_set.adb
+./Ada95/samples/ncurses2-trace_set.ads
+./Ada95/samples/ncurses2-util.adb
+./Ada95/samples/ncurses2-util.ads
+./Ada95/samples/ncurses2.ads
 ./Ada95/samples/rain.adb
 ./Ada95/samples/rain.ads
 ./Ada95/samples/sample-curses_demo-attributes.adb
 ./Ada95/samples/rain.adb
 ./Ada95/samples/rain.ads
 ./Ada95/samples/sample-curses_demo-attributes.adb
 ./Ada95/src/terminal_interface-curses-mouse.adb
 ./Ada95/src/terminal_interface-curses-panels-user_data.adb
 ./Ada95/src/terminal_interface-curses-panels.adb
 ./Ada95/src/terminal_interface-curses-mouse.adb
 ./Ada95/src/terminal_interface-curses-panels-user_data.adb
 ./Ada95/src/terminal_interface-curses-panels.adb
+./Ada95/src/terminal_interface-curses-putwin.adb
+./Ada95/src/terminal_interface-curses-putwin.ads
+./Ada95/src/terminal_interface-curses-termcap.adb
+./Ada95/src/terminal_interface-curses-termcap.ads
+./Ada95/src/terminal_interface-curses-terminfo.adb
+./Ada95/src/terminal_interface-curses-terminfo.ads
 ./Ada95/src/terminal_interface-curses-text_io-aux.adb
 ./Ada95/src/terminal_interface-curses-text_io-aux.ads
 ./Ada95/src/terminal_interface-curses-text_io-complex_io.adb
 ./Ada95/src/terminal_interface-curses-text_io-aux.adb
 ./Ada95/src/terminal_interface-curses-text_io-aux.ads
 ./Ada95/src/terminal_interface-curses-text_io-complex_io.adb
 ./Ada95/src/terminal_interface-curses-text_io-modular_io.ads
 ./Ada95/src/terminal_interface-curses-text_io.adb
 ./Ada95/src/terminal_interface-curses-text_io.ads
 ./Ada95/src/terminal_interface-curses-text_io-modular_io.ads
 ./Ada95/src/terminal_interface-curses-text_io.adb
 ./Ada95/src/terminal_interface-curses-text_io.ads
+./Ada95/src/terminal_interface-curses-trace.adb_p
 ./Ada95/src/terminal_interface-curses.adb
 ./Ada95/src/terminal_interface.ads
 ./INSTALL
 ./Ada95/src/terminal_interface-curses.adb
 ./Ada95/src/terminal_interface.ads
 ./INSTALL
 ./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-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-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-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-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/ada/terminal_interface-curses__adb.htm
 ./doc/html/ada/terminal_interface-curses__ads.htm
 ./doc/html/ada/terminal_interface__ads.htm
 ./doc/html/index.html
 ./doc/html/man/captoinfo.1m.html
 ./doc/html/man/clear.1.html
 ./doc/html/index.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_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_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.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_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_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_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_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_kernel.3x.html
 ./doc/html/man/curs_mouse.3x.html
 ./doc/html/man/curs_move.3x.html
 ./form/fty_regex.c
 ./form/headers
 ./form/llib-lform
 ./form/fty_regex.c
 ./form/headers
 ./form/llib-lform
+./form/llib-lformw
 ./form/modules
 ./include/Caps
 ./form/modules
 ./include/Caps
+./include/Caps.aix4
+./include/Caps.hpux11
+./include/Caps.keys
+./include/Caps.osf1r5
+./include/Caps.uwin
 ./include/MKhashsize.sh
 ./include/MKhashsize.sh
+./include/MKkey_defs.sh
 ./include/MKncurses_def.sh
 ./include/MKparametrized.sh
 ./include/MKterm.h.awk.in
 ./include/Makefile.in
 ./include/capdefaults.c
 ./include/curses.h.in
 ./include/MKncurses_def.sh
 ./include/MKparametrized.sh
 ./include/MKterm.h.awk.in
 ./include/Makefile.in
 ./include/capdefaults.c
 ./include/curses.h.in
+./include/curses.tail
+./include/curses.wide
 ./include/edit_cfg.sh
 ./include/headers
 ./include/nc_alloc.h
 ./include/nc_panel.h
 ./include/ncurses_cfg.hin
 ./include/ncurses_defs
 ./include/edit_cfg.sh
 ./include/headers
 ./include/nc_alloc.h
 ./include/nc_panel.h
 ./include/ncurses_cfg.hin
 ./include/ncurses_defs
+./include/ncurses_dll.h
 ./include/term_entry.h
 ./include/termcap.h.in
 ./include/tic.h
 ./include/term_entry.h
 ./include/termcap.h.in
 ./include/tic.h
 ./man/Makefile.in
 ./man/captoinfo.1m
 ./man/clear.1
 ./man/Makefile.in
 ./man/captoinfo.1m
 ./man/clear.1
+./man/curs_add_wch.3x
+./man/curs_add_wchstr.3x
 ./man/curs_addch.3x
 ./man/curs_addchstr.3x
 ./man/curs_addstr.3x
 ./man/curs_addch.3x
 ./man/curs_addchstr.3x
 ./man/curs_addstr.3x
+./man/curs_addwstr.3x
 ./man/curs_attr.3x
 ./man/curs_beep.3x
 ./man/curs_bkgd.3x
 ./man/curs_attr.3x
 ./man/curs_beep.3x
 ./man/curs_bkgd.3x
+./man/curs_bkgrnd.3x
 ./man/curs_border.3x
 ./man/curs_border.3x
+./man/curs_border_set.3x
 ./man/curs_clear.3x
 ./man/curs_color.3x
 ./man/curs_delch.3x
 ./man/curs_deleteln.3x
 ./man/curs_extend.3x
 ./man/curs_clear.3x
 ./man/curs_color.3x
 ./man/curs_delch.3x
 ./man/curs_deleteln.3x
 ./man/curs_extend.3x
+./man/curs_get_wch.3x
+./man/curs_get_wstr.3x
+./man/curs_getcchar.3x
 ./man/curs_getch.3x
 ./man/curs_getstr.3x
 ./man/curs_getyx.3x
 ./man/curs_getch.3x
 ./man/curs_getstr.3x
 ./man/curs_getyx.3x
+./man/curs_in_wch.3x
+./man/curs_in_wchstr.3x
 ./man/curs_inch.3x
 ./man/curs_inchstr.3x
 ./man/curs_initscr.3x
 ./man/curs_inopts.3x
 ./man/curs_inch.3x
 ./man/curs_inchstr.3x
 ./man/curs_initscr.3x
 ./man/curs_inopts.3x
+./man/curs_ins_wch.3x
+./man/curs_ins_wstr.3x
 ./man/curs_insch.3x
 ./man/curs_insstr.3x
 ./man/curs_instr.3x
 ./man/curs_insch.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_kernel.3x
 ./man/curs_mouse.3x
 ./man/curs_move.3x
 ./menu/eti.h
 ./menu/headers
 ./menu/llib-lmenu
 ./menu/eti.h
 ./menu/headers
 ./menu/llib-lmenu
+./menu/llib-lmenuw
 ./menu/m_attribs.c
 ./menu/m_cursor.c
 ./menu/m_driver.c
 ./menu/m_attribs.c
 ./menu/m_cursor.c
 ./menu/m_driver.c
 ./mkinstalldirs
 ./ncurses/Makefile.in
 ./ncurses/README
 ./mkinstalldirs
 ./ncurses/Makefile.in
 ./ncurses/README
+./ncurses/README.IZ
 ./ncurses/SigAction.h
 ./ncurses/base/MKkeyname.awk
 ./ncurses/base/MKlib_gen.sh
 ./ncurses/SigAction.h
 ./ncurses/base/MKkeyname.awk
 ./ncurses/base/MKlib_gen.sh
 ./ncurses/curses.priv.h
 ./ncurses/fifo_defs.h
 ./ncurses/llib-lncurses
 ./ncurses/curses.priv.h
 ./ncurses/fifo_defs.h
 ./ncurses/llib-lncurses
+./ncurses/llib-lncursesw
 ./ncurses/modules
 ./ncurses/tinfo/MKcaptab.awk
 ./ncurses/tinfo/MKfallback.sh
 ./ncurses/modules
 ./ncurses/tinfo/MKcaptab.awk
 ./ncurses/tinfo/MKfallback.sh
+./ncurses/tinfo/MKkeys_list.sh
 ./ncurses/tinfo/MKnames.awk
 ./ncurses/tinfo/README
 ./ncurses/tinfo/access.c
 ./ncurses/tinfo/MKnames.awk
 ./ncurses/tinfo/README
 ./ncurses/tinfo/access.c
 ./ncurses/tinfo/getenv_num.c
 ./ncurses/tinfo/home_terminfo.c
 ./ncurses/tinfo/init_keytry.c
 ./ncurses/tinfo/getenv_num.c
 ./ncurses/tinfo/home_terminfo.c
 ./ncurses/tinfo/init_keytry.c
-./ncurses/tinfo/keys.list
 ./ncurses/tinfo/lib_acs.c
 ./ncurses/tinfo/lib_baudrate.c
 ./ncurses/tinfo/lib_cur_term.c
 ./ncurses/tinfo/lib_acs.c
 ./ncurses/tinfo/lib_baudrate.c
 ./ncurses/tinfo/lib_cur_term.c
 ./ncurses/trace/trace_buf.c
 ./ncurses/trace/trace_tries.c
 ./ncurses/trace/trace_xnames.c
 ./ncurses/trace/trace_buf.c
 ./ncurses/trace/trace_tries.c
 ./ncurses/trace/trace_xnames.c
+./ncurses/trace/varargs.c
+./ncurses/trace/visbuf.c
 ./ncurses/tty/MKexpanded.sh
 ./ncurses/tty/hardscroll.c
 ./ncurses/tty/hashmap.c
 ./ncurses/tty/MKexpanded.sh
 ./ncurses/tty/hardscroll.c
 ./ncurses/tty/hashmap.c
 ./ncurses/tty/tty_display.h
 ./ncurses/tty/tty_input.h
 ./ncurses/tty/tty_update.c
 ./ncurses/tty/tty_display.h
 ./ncurses/tty/tty_input.h
 ./ncurses/tty/tty_update.c
+./ncurses/widechar/lib_box_set.c
+./ncurses/widechar/lib_cchar.c
+./ncurses/widechar/lib_erasewchar.c
+./ncurses/widechar/lib_get_wch.c
+./ncurses/widechar/lib_get_wstr.c
+./ncurses/widechar/lib_hline_set.c
+./ncurses/widechar/lib_in_wch.c
+./ncurses/widechar/lib_in_wchnstr.c
+./ncurses/widechar/lib_ins_nwstr.c
+./ncurses/widechar/lib_ins_wch.c
+./ncurses/widechar/lib_inwstr.c
+./ncurses/widechar/lib_unget_wch.c
+./ncurses/widechar/lib_vid_attr.c
+./ncurses/widechar/lib_vline_set.c
+./ncurses/widechar/lib_wacs.c
+./ncurses/widechar/lib_wunctrl.c
 ./panel/Makefile.in
 ./panel/headers
 ./panel/llib-lpanel
 ./panel/Makefile.in
 ./panel/headers
 ./panel/llib-lpanel
+./panel/llib-lpanelw
 ./panel/modules
 ./panel/p_above.c
 ./panel/p_below.c
 ./panel/modules
 ./panel/p_above.c
 ./panel/p_below.c
index 780650a0a8bd4110f8fff939727055923ea2be25..2535e9f3b8e7160a8b7856beda9aebf815945a34 100644 (file)
@@ -219,12 +219,14 @@ libncurses-routines       = \
                        trace/trace_buf \
                        trace/trace_tries \
                        trace/trace_xnames \
                        trace/trace_buf \
                        trace/trace_tries \
                        trace/trace_xnames \
+                       trace/varargs \
+                       trace/visbuf \
                        tty/hardscroll \
                        tty/hashmap \
                        tty/lib_mvcur \
                        tty/lib_tstp \
                        tty/hardscroll \
                        tty/hashmap \
                        tty/lib_mvcur \
                        tty/lib_tstp \
-                       tty/lib_vidattr \
                        tty/lib_twait \
                        tty/lib_twait \
+                       tty/lib_vidattr \
                        tty/tty_update \
                        unctrl
 
                        tty/tty_update \
                        unctrl
 
index 9489e9fe45ec53f167b2932638778f646934959c..7a30d3227016d100cb38e57623a1f9453d10b8f1 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.20 2000/08/19 19:11:56 tom Exp $
+# $Id: Makefile.in,v 1.22 2001/10/27 18:17:22 tom Exp $
 ##############################################################################
 # Copyright (c) 1998 Free Software Foundation, Inc.                          #
 #                                                                            #
 ##############################################################################
 # Copyright (c) 1998 Free Software Foundation, Inc.                          #
 #                                                                            #
@@ -69,7 +69,7 @@ preinstall :
        @ echo '      lib directory: '$(libdir)
        @ echo '  include directory: '$(includedir)
        @ echo '      man directory: '$(mandir)
        @ echo '      lib directory: '$(libdir)
        @ echo '  include directory: '$(includedir)
        @ echo '      man directory: '$(mandir)
-       @ echo ' terminfo directory: '$(ticdir)
+@MAKE_TERMINFO@        @ echo ' terminfo directory: '$(ticdir)
        @ echo ''
        @ test "$(includedir)" = "$(prefix)/include" || \
                echo '** Include-directory is not in a standard location'
        @ echo ''
        @ test "$(includedir)" = "$(prefix)/include" || \
                echo '** Include-directory is not in a standard location'
@@ -87,6 +87,7 @@ clean \
 distclean \
 mostlyclean \
 realclean \
 distclean \
 mostlyclean \
 realclean \
+depend \
 sources \
 uninstall \
 install ::
 sources \
 uninstall \
 install ::
diff --git a/NEWS b/NEWS
index 796c894d977553b1d9de80e08ce275fac1db103c..8ce31076cad23f0f6cc656b34508f4edb9af9579 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
--- $Id: NEWS,v 1.602 2000/10/21 00:42:11 tom Exp $
+-- $Id: NEWS,v 1.714 2002/10/12 22:35:42 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.
 
 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,1205 @@ 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.
 
 Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim.
 Changes since 1.9.9e are recorded by Thomas Dickey.
 
+20021012 5.3 release for upload to ftp.gnu.org
+       + modify ifdef's in etip.h.in to allow the etip.h header to compile
+         with gcc 3.2 (patch by Dimitar Zhekov <jimmy@is-vn.bg>).
+       + add logic to setupterm() to make it like initscr() and newterm(),
+         by checking for $NCURSES_TRACE environment variable and enabling
+         the debug trace in that case.
+       + modify setupterm() to ensure that it initializes the baudrate, for
+         applications such as tput (report by Frank Henigman).
+       + modify definition of bits used for command-line and library debug
+         traces to avoid overlap, using new definition TRACE_SHIFT to relate
+         the two.
+       + document tput's interpretation of parameterized strings according to
+         whether parameters are given, etc. (discussion with Robert De Bath).
+
+20021005 pre-release
+       + correct winnwstr() to account for non-character cells generated when
+         a double-width character is added (report by Michael Bienia
+         <michael@vorlon.ping.de>).
+       + modify _nc_viswbuf2n() to provide better results using wctomb().
+       + correct logic in _nc_varargs() which broke tracing of parameters for
+         formats such as "%.*s".
+       + correct scale factor in linux-c and linux-c-nc terminfo entries
+         (report Floyd Davidson).
+       + change tic -A option to -t, add the same option to infocmp for
+         consistency.
+       + correct "%c" implementation in lib_tparm.c, which did not map a null
+         character to a 128 (cf: 980620) (patch by Frank Henigman
+         <fjhenigman@mud.cgl.uwaterloo.ca>).
+
+20020928 pre-release
+       + modify MKkey_defs.sh to check for POSIX sort -k option, use that if
+         it is found, to accommodate newer utility which dropped the
+         compatibility support for +number options (reported by Andrey A
+         Chernov).
+       + modify linux terminfo entry to use color palette feature from
+         linux-c-nc entry (comments by Tomasz Wasiak and Floyd Davidson).
+       + restore original color definitions in endwin() if init_color() was
+         used, and resume those colors on the next doupdate() or refresh()
+         (report by Tomasz Wasiak <tjwasiak@komputom.com.pl>).
+       + improve debug-traces by modifying MKlib_gen.sh to generate calls
+         to returnBool() and returnAttr().
+       + add/use _nc_visbufn() and _nc_viswbufn() to limit the debug trace
+         of waddnstr() and similar functions to match the parameters as used.
+       + add/use _nc_retrace_bool() and _nc_retrace_unsigned().
+       + correct type used by _nc_retrace_chtype().
+       + add debug traces to some functions in lib_mouse.c
+       + modify lib_addch.c to handle non-spacing characters.
+       + correct parameter of RemAttr() in lib_bkgd.c, which caused the c++
+         demo's boxes to lose the A_ALTCHARSET flag (broken in 20020629).
+       + correct width computed in _tracedump(), which did not account for
+         the attributes (broken in 20010602).
+       + modify test/tracemunch to replace addresses for windows other than
+         curscr, newscr and stdscr with window0, window1, etc.
+
+20020921 pre-release
+       + redid fix for edit_man.sed path.
+       + workaround for Cygwin bug which makes subprocess writes to stdout
+         result in core dump.
+       + documented getbegx(), etc.
+       + minor fixes to configure script to use '%' consistently as a sed
+         delimiter rather than '@'.
+       > Philippe Blain:
+       + add check in lib_overlay.c to ensure that the windows to be merged
+         actually overlap, and in copywin(), limit the area to be touched
+         to the lines given for the destination window.
+
+20020914 pre-release
+       + modified curses.h so that if the wide-character version is installed
+         overwriting /usr/include/curses.h, and if it relied on libutf8.h,
+         then applications that use that header for wide-character support
+         must define HAVE_LIBUTF8_H.
+       + modify putwin(), getwin() and dupwin() to allow them to operate on
+         pads (request by Philippe Blain).
+       + correct attribute-merging in wborder(), broken in 20020216 (report
+         by Tomasz Wasiak <tjwasiak@grubasek.komputom.com.pl>).
+       > Philippe Blain:
+       + corrected pop-counts in tparam_internal() to '!' and '~' cases.
+       + use sizeof(NCURSES_CH_T) in one place that used sizeof(chtype).
+       + remove some unused variables from mvcur test-driver.
+
+20020907 pre-release
+       + change configure script to allow install of widec-character
+         (ncursesw) headers to overwrite normal (ncurses) headers, since the
+         latter is a compatible subset of the former.
+       + fix path of edit_man.sed in configure script, needed to regenerate
+         html manpages on Debian.
+       + fix mismatched enums in vsscanf.c, which caused warning on Solaris.
+       + update README.emx to reflect current patch used for autoconf.
+       + change web- and ftp-site to invisible-island.net
+       > Philippe Blain:
+       + change case for 'P' in tparam_internal() to indicate that it pops
+         a variable from the stack.
+       + correct sense of precision and width in parse_format(), to avoid
+         confusion.
+       + modify lib_tparm.c, absorb really_get_space() into get_space().
+       + modify getwin() and dupwin() to copy the _notimeout, _idlok and
+         _idcok window fields.
+       + better fix for _nc_set_type(), using typeMalloc().
+
+20020901 pre-release
+       + change minor version to 3, i.e., ncurses 5.3
+       + update config.guess, config.sub
+       + retest build with each configure option; minor ifdef fixes.
+       + make keyname() return a null pointer rather than "UNKNOWN STRING" to
+         match XSI.
+       + modify handling of wide line-drawing character functions to use the
+         normal line-drawing characters when not in UTF-8 locale.
+       + add check/fix to comp_parse.c to suppress warning about missing acsc
+         string.  This happens in configurations where raw termcap information
+         is processed; tic already does this and other checks.
+       + modify tic's check for ich/ich1 versus rmir/smir to only warn about
+         ich1, to match xterm patch #70 notes.
+       + moved information for ripped-off lines into SCREEN struct to allow
+         use in resizeterm().
+       + add experimental wgetch_events(), ifdef'd with NCURSES_WGETCH_EVENTS
+         (adapted from patch by Ilya Zakharevich - see ncurses/README.IZ).
+       + amend check in kgetch() from 20020824 to look only for function-keys,
+         otherwise escape sequences are not resolved properly.
+       > Philippe Blain:
+       + removed redundant assignment to SP->_checkfd from newterm().
+       + check return-value of setupterm() in restartterm().
+       + use sizeof(NCURSES_CH_T) in a few places that used sizeof(chtype).
+       + prevent dupwin() from duplicating a pad.
+       + prevent putwin() from writing a pad.
+       + use typeRealloc() or typeMalloc() in preference to direct calls on
+         _nc_doalloc().
+
+20020824
+       + add a check in kgetch() for cooked characters in the fifo to avoid
+         calling fifo_push() when a KEY_RESIZE is available (report/analysis
+         by Sam Varshavchik <mrsam@courier-mta.com>).
+       + fix an overlooked case for bugzilla #68199 (Philippe Blain).
+       + ensure clearerr() is called before using ferror() e.g., in
+         lib_screen.c (report by Philippe Blain).
+
+20020817
+       + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific
+         pointers for curscr/stdscr/newscr when scr_save() and scr_restore()
+         modify the global curscr/stdscr/newscr variables.  Fixes Redhat
+         bugzilla #68199 dated 2002-07-07.
+       + add checks for null pointer in calls to tparm() and tgoto() based on
+         FreeBSD bug report.  If ncurses were built with termcap support, and
+         the first call to tgoto() were a zero-length string, the result would
+         be a null pointer, which was not handled properly.
+       + correct a typo in terminfo.head, which gave the octal code for colon
+         rather than comma.
+       + remove the "tic -u" option from 20020810, since it did not account
+         for nested "tc=" clauses, and when that was addressed, was still
+         unsatisfactory.
+
+20020810
+       + add tic -A option to suppress capabilities which are commented out
+         when translating to termcap.
+       + add tic -u option to provide older behavior of "tc=" clauses.
+       + modified tic to expand all but the final "tc=" clause in a termcap
+         entry, to accommodate termcap libraries which do not handle multiple
+         tc clauses.
+       + correct typo in curs_inopts.3x regarding CS8/CS7 usage (report by
+         Philippe Blain).
+       + remove a couple of redundant uses of A_ATTRIBUTES in expressions
+         using AttrOf(), which already incorporates that mask (report by
+         Philippe Blain).
+       + document TABSIZE variable.
+       + add NCURSES_ASSUMED_COLORS environment variable, to allow users to
+         override compiled-in default black-on-white assumption used in
+         assume_default_colors().
+       + correct an off-by-one comparison against max_colors in COLORFGBG
+         logic.
+       + correct a use of uninitialized memory found by valgrind (reported by
+         Olaf Buddenhagen <olafBuddenhagen@web.de>).
+       + modified wresize() to ensure that a failed realloc will not corrupt
+         the window structure, and to make subwindows fit within the resized
+         window (completes Debian #87678, #101699)
+
+20020803
+       + fix an off-by-one in lib_pad.c check for limits of pad (patch by
+         Philippe Blain).
+       + revise logic for BeOS in lib_twait.c altered in 20011013 to restore
+         logic used by lib_getch.c's support for GPM or EMX mouse (report by
+         Philippe Blain)
+       + remove NCURSES_CONST from several prototypes in curses.wide, to make
+         the --enable-const --enable-widec configure options to work together
+         (report by George Goffe <grgoffe@yahoo.com>).
+
+20020727
+       + finish no-leak checking in cardfile.c, using this for testing changes
+         to resizeterm(). 
+       + simplify _nc_freeall() using delscreen().
+
+20020720
+       + check error-return from _nc_set_tty_mode() in _nc_initscr() and
+         reset_prog_mode() (report/patch by Philippe Blain).
+       + regenerate configure using patch for autoconf 2.52, to address
+         problem with identifying C++ bool type.
+       + correct/improve logic to produce an exit status for errors in tput,
+         which did not exit with an error when told to put a string not in the
+         current terminfo entry (report by David Gomez <david@pleyades.net>).
+       + modify configure script AC_OUTPUT() call to work around defect in
+         autoconf 2.52 which adds an ifdef'd include to the generated
+         configure definitions.
+       + remove fstat() check from scr_init(), which also fixes a missing
+         include for <sys/stat.h> from 20020713 (reported by David Ellement,
+         fix suggested by Philippe Blain).
+       + update curs_scanw.3x manpage to note that XSI curses differs from
+         SVr4 curses: return-values are incompatible.
+       + correct several prototypes in manpages which used const
+         inconsistently with the curses.h file, and removed spurious const's
+         in a few places from curses.h, e.g., for wbkgd() (report by Glenn
+         Maynard <glenn@zewt.org>).
+       + change internal type used by tparm() to long, to work with LP64 model.
+       + modify nc_alloc.h to allow building with g++, for testing.
+
+20020713
+       + add resize-handling to cardfile.c test program.
+       + altered resizeterm() to avoid having it fail when a child window
+         cannot be resized because it would be larger than its parent.  (More
+         work must be done on this, but it works well enough to integrate).
+       + improve a limit-check in lib_refresh.c
+       + remove check in lib_screen.c relating dumptime to file's modification
+         times, since that would not necessarily work for remotely mounted
+         filesystems.
+       + modify lrtest to simplify debugging changes to resizeterm, e.g.,
+         t/T commands to enable/disable tracing.
+       + updated status of multibyte support in TO-DO.
+       + update contact info in source-files (patch by Juergen Pfeifer).
+
+20020706
+       + add Caps.hpux11, as an example.
+       + modify version_filter(), used to implement -R option for tic and
+         infocmp, to use computed array offsets based on the Caps.* file which
+         is actually configured, rather than constants which correspond to
+         the Caps file.
+       + reorganized lib_raw.c to avoid updating SP and cur_term state if the
+         functions fail (reported by Philippe Blain).
+       + add -Wundef to gcc warnings, adjust a few ifdef's to accommodate gcc.
+
+20020629
+       + correct parameters to setcchar() in ncurses.c (cf: 20020406).
+       + set locale in most test programs (view.c and ncurses.c were the
+         only ones).
+       + add configure option --with-build-cppflags (report by Maksim A
+         Nikulin <M.A.Nikulin@inp.nsk.su>).
+       + correct a typo in wide-character logic for lib_bkgnd.c (Philippe
+         Blain).
+       + modify lib_wacs.c to not cancel the acsc, smacs, rmacs strings when
+         in UTF-8 locale.  Wide-character functions use Unicode values, while
+         narrow-character functions use the terminfo data.
+       + fix a couple of places in Ada95/samples which did not compile with
+         gnat 3.14
+       + modify mkinstalldirs so the DOS-pathname case is locale-independent.
+       + fix locale problem in MKlib_gen.sh by forcing related variables to
+         POSIX (C), using same approach as autoconf (set variables only if
+         they were set before).  Update MKterminfo.sh and MKtermsort.sh to
+         match.
+
+20020622
+       + add charset to generated html.
+       + add mvterm entry, adapted from a FreeBSD bug-report by Daniel Rudy
+         <dcrudy@pacbell.net> -TD
+       + add rxvt-16color, ibm+16color entries -TD
+       + modify check in --disable-overwrite option so that it is used by
+         default unless the --prefix/$prefix value is not /usr, in attempt to
+         work around packagers, e.g., for Sun's freeware, who do not read the
+         INSTALL notes.
+
+20020615
+       + modify wgetch() to allow returning ungetch'd KEY_RESIZE as a function
+         key code in get_wch().
+       + extended resize-handling in test/ncurses 'a' menu to the entire
+         stack of windows created with 'w' commands.
+       + improve $COLORFGBG feature by interpreting an out-of-range color
+         value as an SGR 39 or 49, for foreground/background respectively.
+       + correct a typo in configure --enable-colorfgbg option, and move it
+         to the experimental section (cf: 20011208).
+
+20020601
+       + add logic to dump_entry.c to remove function-key definitions that do
+         not fit into the 1023-byte limit for generated termcaps.  This makes
+         hds200 fit.
+       + more improvements to tic's warnings, including logic to ignore
+         differences between delay values in sgr strings.
+       + move definition of KEY_RESIZE into MKkeydefs.sh script, to
+         accommodate Caps.osf1r5 which introduced a conflicting definition.
+
+20020525
+       + add simple resize-handling in test/ncurses.c 'a' menu.
+       + fixes in keyname() and _tracechar() to handle negative values.
+       + make tic's warnings about mismatches in sgr strings easier to follow.
+       + correct tic checks for number of parameters in smgbp and smglp.
+       + improve scoansi terminfo entry, and add scoansi-new entry -TD
+       + add pcvt25-color terminfo entry -TD
+       + add kf13-kf48 strings to cons25w terminfo entry (reported by Stephen
+         Hurd <deuce@lordlegacy.org> in newsgroup lucky.freebsd.bugs) -TD
+       + add entrypoint _nc_trace_ttymode(), use this to distinguish the
+         Ottyb and Nttyb members of terminal (aka cur_term), for tracing.
+
+20020523
+       + correct and simplify logic for lib_pad.c change in 20020518 (reported
+         by Mike Castle).
+
+20020518
+       + fix lib_pad.c for case of drawing a double-width character which
+         falls off the left margin of the pad (patch by Kriang Lerdsuwanakij
+         <lerdsuwa@users.sourceforge.net>)
+       + modify configure script to work around broken gcc 3.1 "--version"
+         option, which adds unnecessary trash to the requested information.
+       + adjust ifdef's in case SIGWINCH is not defined, e.g., with DJGPP
+         (reported by Ben Decker <deckerben@freenet.de>).
+
+20020511
+       + implement vid_puts(), vid_attr(), term_attrs() based on the narrow-
+         character versions as well.
+       + implement erasewchar(), killwchar() based on erasechar() and
+         killchar().
+       + modify erasechar() and killchar() to return ERR if the value was
+         VDISABLE.
+       + correct a bug in wresize() in handling subwindows (based on patch by
+         Roger Gammans <rgammans@computer-surgery.co.uk>, report by Scott Beck
+         <scott@gossamer-threads.com>).
+       + improve test/tclock.c by making the second-hand update more often
+         if gettimeofday() is available.
+
+20020429
+       + workaround for Solaris sed with MKlib_gen.sh (reported by Andy
+         Tsouladze <andyt@mypoints.com>).
+
+20020427
+       + correct return-value from getcchar(), making it consistent with
+         Solaris and Tru64.
+       + reorder loops that generate makefile rules for different models vs
+         subsets so configure --with-termlib works again.  This was broken by
+         logic added to avoid duplicate rules in changes to accommodate cygwin
+         dll's (reported by George.R.Goffe@seagate.com).
+       + update config.guess, config.sub
+
+20020421
+       + modify ifdef's in write_entry.c to allow use of symbolic links on
+         platforms with no hard links, e.g., BeOS.
+       + modify a few includes to allow compile with BeOS, which has stdbool.h
+         with a conflicting definition for 'bool' versus its OS.h definition.
+       + amend MKlib_gen.sh to work with gawk, which defines 'func' as an
+         alias for 'function'.
+
+20020420
+       + correct form of prototype for ripoffline().
+       + modify MKlib_gen.sh to test that all functions marked as implemented
+         can be linked.
+
+20020413
+       + add manpages: curs_get_wstr.3x, curs_in_wchstr.3x    
+       + implement wgetn_wstr().
+       + implement win_wchnstr().
+       + remove redefinition of unget_wch() in lib_gen.c (reported by
+         Jungshik Shin <jshin@jtan.com>).
+
+20020406
+       + modified several of the test programs to allow them to compile with
+         vendor curses implementations (Solaris, AIX).
+
+20020323
+       + modified test/configure to allow configuring against ncursesw.
+       + change WACS_xxx definition to use address, to work like Tru64 curses.
+
+20020317
+       + add 'e' and 'm' toggles to 'a', 'A' tests in ncurses.c to demonstrate
+         effect of echo/noecho and meta modes.
+       + add 'A' test to ncurses.c to demonstrate wget_wch() and related
+         functions.
+       + add manpage: curs_get_wch.3x
+       + implement unget_wch().
+       + implement wget_wch().
+
+20020310
+       + regenerated html manpages.
+       + add manpages: curs_in_wch.3x, curs_ins_wch.3x, curs_ins_wstr.3x
+       + implement wins_wch().
+       + implement win_wch().
+       + implement wins_nwstr(), wins_wstr().
+
+20020309
+       + add manpages: curs_addwstr.3x, curs_winwstr.3x
+       + implement winnwstr(), winwstr().
+
+20020223
+       + add manpages: curs_add_wchstr.3x, curs_bkgrnd.3x
+       + document wunctrl, key_name.
+       + implement key_name().
+       + remove const's in lib_box.c incorrectly leftover after splitting off
+         lib_box_set.c
+       + update llib-lncurses, llib-ncursesw, fix configure script related to these.
+
+20020218
+       + remove quotes on "SYNOPSIS" in man/curs_box_set.3x, which resulted
+         in spurious symlinks on install.
+
+20020216
+       + implement whline_set(), wvline_set(), add manpage curs_border_set.
+       + add subtest 'b' to 'F' and 'f' in ncurses.c to demonstrate use of
+         box() and box_set() functions.
+       + add subtest 'u' to 'F' in ncurses.c, to demonstrate use of addstr()
+         given UTF-8 string equivalents of WACS_xxx symbols.
+       + minor fixes to several manpages based on groff -ww output.
+       + add descriptions of external variables of termcap interface to
+         the manpage (report by Bruce Evans <bde@zeta.org.au>).
+       > patches by Bernhard Rosenkraenzer:
+       + correct configure option --with-bool, which was executed as
+         --with-ospeed.
+       + add quotes for parameters of --with-bool and --with-ospeed configure
+         options.
+       > patch by Sven Verdoolaege (report by Gerhard Haering
+         <haering_linux@gmx.de>):
+       + correct typos in definitions of several wide-character macros: 
+         waddwstr, wgetbkgrnd, mvaddwstr, mvwadd_wchnstr, mvwadd_wchnstr,
+         mvwaddwstr.
+       + pass $(CPPFLAGS) to MKlib_gen.sh, thereby fixing a missing definition
+         of _XOPEN_SOURCE_EXTENDED, e.g., on Solaris
+
+20020209
+       + implement wide-acs characters for UTF-8 locales.  When in UTF-8
+         locale, ignore narrow version of acs.  Add 'F' test to test/ncurses.c
+         to demonstrate.
+       + correct prototype in keybound manpage (noted from a Debian mailing
+         list item).
+
+20020202
+       + add several cases to the wscanw() example in testcurs.c, showing the
+         format.
+       + implement a simple vsscanf() fallback function which uses the %n
+         conversion to help parse the input data (prompted by discussion with
+         Albert Chin-A-Young).
+       + modify mk-1st.awk and test/Makefile.in to add $(LDFLAGS) when making
+         shared libraries, and to use $(CFLAGS) when linking test programs
+         (patch by Albert Chin-A-Young).
+       + add a call to _nc_keypad() in keypad() to accommodate applications
+         such as nvi, which use curses for output but not for input (fixes
+         Debian #131263, cf: 20011215).
+       + add entrypoints to resizeterm.c which provide better control over the
+         process:  is_term_resized() and resize_term().  The latter restores
+         the original design of resizeterm() before KEY_RESIZE was added in
+         970906.  Do this to accommodate 20010922 changes to view.c, but allow
+         for programs with their own sigwinch handler, such as lynx (reported
+         by Russell Ruby <russ@math.orst.edu>).
+
+20020127
+       + fix a typo in change to mk-1st.awk, which broke the shared-library
+         makefile rules (reported by Martin Mokrejs).
+
+20020126
+       + update config.guess, config.sub
+       + finish changes needed to build dll's on cygwin.
+       + fix a typo in mvwchat() macro (reported by Cy <yam@homerow.net).
+
+20020119
+       + add case in lib_baudrate.c for B921600 (patch by Andrey A Chernov).
+       + correct missing sed-editing stage in manpage installs which is used
+         to rename manpages, broken in 20010324 fix for Debian #89939 (Debian
+         #78866).
+       + remove -L$(libdir) from linker flags, probably not needed any more
+         since HPUX is handled properly (reported by NIIBE Yutaka
+         <gniibe@m17n.org>).
+       + add configure check for mbstate_t, needed for wide-character
+         configuration.  On some platforms we must include <wchar.h> to
+         define this (reported by Daniel Jacobowitz).
+       + incorporate some of the changes needed to build dll's on cygwin.
+
+20020112a
+       + workaround for awk did not work with mawk, adjusted shell script.
+
+20020112
+       + add Caps.osf1r5, as an example.
+       + modify behavior of can_clear_with() so that if an application is
+         running in a non-bce terminals with default colors enabled, it
+         returns true, allowing the user to select/paste text without picking
+         up extraneous trailing blanks (adapted from patch by Daniel
+         Jacobowitz <dmj+@andrew.cmu.edu>).
+       + modify generated curses.h to ifdef-out prototypes for extensions if
+         they are disabled, and to define curses_version() as a string in that
+         case.  This is needed to make the programs such as tic build in that
+         configuration.
+       + modified generated headers.sh to remove a gzip'd version of the
+         target file if it exists, in case non-gzip'd manpages are installed
+         into a directory where gzip'd ones exist.  In that case, the latter
+         would be found.
+       + corrected a redundant initialization of signal handlers from 20010922
+         changes.
+       + clarified bug-reporting address in terminfo.src (report by John H
+         DuBois III <spcecdt@armory.com>).
+       > several fixes from Robert Joop:
+       + do not use "-v" option of awk in MKkey_defs.sh because it does not
+         work with SunOS nawk.
+       + modify definitions for libutf8 in curses.h to avoid redefinition
+         warnings for mblen
+       + quoted references to compiler in shell command in misc/Makefile, in
+         case it uses multiple tokens.
+
+20011229
+       + restore special case from 20010922 changes to omit SA_RESTART when
+         setting up SIGWINCH handler, which is needed to allow wgetch() to be
+         interrupted by that signal.
+       + update configure macro CF_WITH_PATHLIST, to omit some double quotes
+         not needed with autoconf 2.52
+       + revert configure script to autoconf 2.13 patched with
+               autoconf-2.13-19990117.patch.gz (or later)
+         from
+               ftp://invisible-island.net/autoconf/
+         because autoconf 2.52 macro AC_PROG_AWK does not work on HPUX 11.0
+         (report by David Ellement <ellement@sdd.hp.com>).  This also fixes a
+         different problem configuring with Mac OS X (reported by Marc Smith
+         <marc.a.smith@home.com>).
+
+20011222
+       + modify include/edit_cfg.h to eliminate BROKEN_LINKER symbol from
+         term.h
+       + move prototype for _nc_vsscanf() into curses.h.in to omit
+         HAVE_VSSCANF symbol from curses.h, which was dependent upon the
+         ncurses_cfg.h file which is not installed.
+       + use ACS_LEN rather than SIZEOF(acs_map) in trace code of lib_acs.c,
+         to work with broken linker configuration, e.g., cygwin (report by
+         Robert Joop <rj@rainbow.in-berlin.de>).
+       + make napms() call _nc_timed_wait() rather than poll() or select(),
+         to work around broken implementations of these on cygwin.
+
+20011218
+       + drop configure macro CF_WIDEC_SHIFT, since that was rendered obsolete
+         by Sven Verdoolaege's rewrite of wide-character support.  This makes
+         libncursesw incompatible again, but makes the header files almost the
+         same as in the narrow-character configuration.
+       + simplify definitions that combine wide/narrow versions of bkgd, etc.,
+         to eliminate differences between the wide/narrow versions of curses.h
+       + correct typo in configure macro CF_FUNC_VSSCANF
+       + correct location of call to _nc_keypad() from 20011215 changes which
+         prevented keypad() from being disabled (reported by Lars Hecking).
+
+20011215
+       + rewrote ncurses 'a' test to exercise wgetch() and keypad() functions
+         better, e.g., by adding a 'w' command to create new windows which
+         may have different keypad() settings.
+       + corrected logic of keypad() by adding internal screen state to track
+         whether the terminal's keypad-mode has been set.  Use this in
+         wgetch() to update the keypad-mode according to whether the
+         associated window's keypad-mode has been set with keypad().  This
+         corrects a related problem restoring terminal state after handling
+         SIGTSTP (reported by Mike Castle).
+       + regenerate configure using patch for autoconf 2.52
+               autoconf-2.52-patch.gz
+         at
+               ftp://invisible-island.net/autoconf/
+       + update config.guess, config.sub from
+               http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
+       + minor changes to quoting in configure script to allow it to work
+         with autoconf 2.52
+
+20011208
+       + modify final checks in lib_setup.c for line and col values, making
+         them independent.
+       + modify acs_map[] if configure --broken-linker is specified, to make
+         it use a function rather than an array (prompted by an incorrect
+         implementation in cygwin package).
+       + correct spelling of configure option --enable-colorfgbg, which
+         happened to work if --with-develop was set (noted in cygwin package
+         for ncurses).
+       + modify ifdef for genericerror() to compile with SUNWspro Sun WorkShop
+         6 update 1 C++ 5.2 (patch by Sullivan N Beck <sbeck@cise.ufl.edu>).
+       + add configure checks to see if ncurses' fallback vsscanf() will
+         compile either of the special cases for FILE structs, and if not,
+         force it to the case which simply returns an error (report by
+         Sullivan N Beck <sbeck@cise.ufl.edu> indicates that Solaris 8 with
+         64-bits does not allow access to FILE's fields).
+       + modify ifdef's for c++/cursesw.cc to use the fallback vsscanf() in
+         the ncurses library if no better substitute for this can be found
+         in the C++ runtime.
+       + modify the build to name dynamic libraries according to the
+         convention used on OS X and Darwin.  Rather than something like
+         libncurses.dylib.5.2, Darwin would name it libncurses.  5.dylib. 
+         There are a few additional minor fixes, such as setting the library
+         version and compatibility version numbers (patch by Jason Evans
+         <jevans@apple.com>).
+       + use 'sh' to run mkinstalldirs, to work around problems with buggy
+         versions of 'make' on OS/2 (report by John Polterak <jp@eyup.org>).
+       + correct typo in manpage description of curs_set() (Debian #121548).
+       + replace the configure script existence-check for mkstemp() by one
+         that checks if the function works, needed for older glibc and
+         AmigaOS.
+
+20011201
+       + modify script that generates fallbacks.c to compile a temporary
+         copy of the terminfo source in case the host does not contain all of
+         the entries requested for fallbacks (request by Greg Roelofs).
+       + modify configure script to accommodate systems such as Mac OS X whose
+         <stdbool.h> header defines a 'bool' type inconsistent with ncurses,
+         which normally makes 'bool' consistent with C++.  Include <stdbool.h>
+         from curses.h to force consistent usage, define a new type
+         NCURSES_BOOL and related that to the exported 'bool' as either a
+         typedef or definition, according to whether <stdbool.h> is present
+         (based on a bug report for tin 1.5.9 by Aaron Adams <adamsa@mac.com>).
+
+20011124
+       + added/updated terminfo entries for M$ telnet and KDE konsole -TD
+
+20011117
+       + updated/expanded Apple_Terminal and Darwin PowerPC terminfo entries
+         (Benjamin C W Sittler).
+       + add putty terminfo entry -TD
+       + if configuring for wide-curses, define _XOPEN_SOURCE_EXTENDED, since
+         this may not otherwise be defined to make test/view.c compile.
+
+20011110
+       + review/correct several missing/generated items in curses.wide, sorted
+         the lists to make subsequent diff's easier to track.
+
+20011103
+       + add manual pages for add_wch(), echo_wchar(), getcchar(),
+         mvadd_wch(), mvwadd_wch(), setcchar(), wadd_wch() and wecho_wchar().
+       + implement wecho_wchar()
+       + modify _tracedump() to handle wide-characters by mapping them to '?'
+         and control-characters to '.', to make the trace file readable.  Also
+         dynamically allocate the buffer used by _tracedump() for formatting
+         the results.
+       + modify T_CALLED/T_RETURN macros to ease balancing call/return lines
+         in a trace by using curly braces.
+       + implement _nc_viscbuf(), for tracing cchar_t arrays.
+       + correct trace-calls in setcchar() and getcchar() functions, which
+         traced the return values but not the entry to each function.
+       + correct usage message in test/view.c, which still mentioned -u flag.
+
+20011027
+       + modify configure script to allow building with termcap only, or with
+         fallbacks only.  In this case, we do not build tic and toe.
+       + add configure --with-termpath option, to override default TERMPATH
+         value of /etc/termcap:/usr/share/misc/termcap.
+       + cosmetic change to tack: make menu descriptions agree with menu
+         titles.
+
+20011020
+       + rewrote limit-checks in wscrl() and associated _nc_scroll_window(),
+         to ensure that if the parameter of wscrl() is larger than the size of
+         the scrolling region, then the scrolling region will be cleared
+         (report by Ben Kohlen <bckohlen@yahoo.com>).
+       + add trace/varargs.c, using this to trace parameters in lib_printw.c
+       + implement _tracecchar_t2() and _tracecchar_t().
+       + split-out trace/visbuf.c
+       + correct typo in lib_printw.c changes from 20010922 (report by Mike
+         Castle).
+
+20011013
+       + modify run_tic.sh to check if the build is a cross-compile.  In that
+         case, do not use the build's tic to install the terminfo database
+         (report by Rafael Rodriguez Velilla <rrv@tid.es>).
+       + modify mouse click resolution so that mouseinterval(-1) will disable
+         it, e.g., to handle touchscreens via a slow connection (request by
+         Byron Stanoszek <gandalf@winds.org>).
+       + correct mouseinterval() default value shown in curs_mouse.3x
+       + remove conflicting definition of mouse_trafo() (reported by Lars
+         Hecking, using gcc 2.95.3).
+
+20011001
+       + simpler fix for signal_name(), to replace the one overlooked in
+         20010929 (reported by Larry Virden).
+         
+20010929
+       + add -i option to view.c, to test ncurses' check for non-default
+         signal handler for SIGINT, etc.
+       + add cases for shared-libraries on Darwin/OS X (patch by Rob Braun
+         <bbraun@synack.net>).
+       + modify tset to restore original I/O modes if an error is encountered.
+         Also modify to use buffered stderr consistently rather than mixing
+         with write().
+       + change signal_name() function to use if-then-else rather than case
+         statement, since signal-values aren't really integers (reported by
+         Larry Virden).
+       + add limit checks in wredrawln(), fixing a problem where lynx was
+         repainting a pad which was much larger than the screen.
+
+20010922
+       + fix:  PutRange() was counting the second part of a wide character as
+         part of a run, resulting in a cursor position that was one too far
+         (patch by Sven Verdoolaege).
+       + modify resizeterm() to not queue a KEY_RESIZE if there was no
+         SIGWINCH, thereby separating the two styles of SIGWINCH handling
+         in test/view.c
+       + simplified lib_tstp.c, modify it to use SA_RESTART flag for SIGWINCH.
+       + eliminate several static buffers in the terminfo compiler, using
+         allocated buffers.
+       + modify MKkeyname.awk so that keyname() does not store its result into
+         a static buffer that is overwritten by the next call.
+       + reorganize the output of infocmp -E and -e options to compile cleanly
+         with gcc -Wwrite-strings warnings.
+       + remove redefinition of chgat/wchgat/mvwchgat from curses.wide
+
+20010915
+       + add label to test/view.c, showing the name of the last key or signal
+         that made the screen repaint, to make it clearer when a sigwinch
+         does this.
+       + use ExitProgram() consistently in the test-programs to make it
+         simpler to test leaks with dmalloc, etc.
+       + move hashtab static data out of hashmap.c into SCREEN struct.
+       + make NO_LEAK code compile with revised WINDOWLIST structs.
+
+20010908
+       + modify tgetent() to check if exit_attribute_mode resets the alternate
+         character set, and if so, attempt to adjust the copy of the termcap
+         "me" string which it will return to eliminate that part.  In
+         particular, 'screen' would lose track of line-drawing characters
+         (report by Frederic L W Meunier <0@pervalidus.net>, analysis by
+         Michael Schroeder).
+
+20010901
+       + specify DOCTYPE in html manpages.
+       + add missing macros for several "generated" functions:  attr_get(),
+         attr_off(), attr_on(), attr_set(), chgat(), mvchgat(), mvwchgat() and
+         mouse_trafo().
+       + modify view.c to agree with non-experimental status of ncurses'
+         sigwinch handler:
+         + change the sense of the -r option, making it default to ncurses'
+           sigwinch handler.
+         + add a note explaining what functions are unsafe in a signal
+           handler.
+         + add a -c option, to set color display, for testing.
+       + unset $data variable in MKterminfo.sh script, to address potential
+         infinite loop if shell malfunction (report by Samuel Mikes
+         <smikes@cubane.com>, for bash 2.05.0 on a Linux 2.0.36 system).
+       + change kbs in mach terminfo entries to ^?  (Marcus Brinkmann
+         <Marcus.Brinkmann@ruhr-uni-bochum.de>).
+       + correct logic for COLORFGBG environment variable: if rxvt is compiled
+         with xpm support, the variable has three fields, making it slightly
+         incompatible with itself.  In either case, the background color is
+         the last field.
+
+20010825
+       + move calls to def_shell_mode() and def_prog_mode() before loop with
+         callbacks in lib_set_term.c, since the c++ demo otherwise initialized
+         the tty modes before saving them (patch by John David Anglin
+         <dave@hiauly1.hia.nrc.ca>).
+       + duplicate logic used to initialize trace in newterm(), in initscr()
+         to avoid confusing trace of initscr().
+       + simplify allocation of WINDOW and WINDOWLIST structs by making the
+         first a part of the second rather than storing a pointer.  This saves
+         a call to malloc for each window (discussion with Philippe Blain).
+       + remove unused variable 'used_ncv' from lib_vidattr.c (Philippe
+         Blain).
+       + modify c++/Makefile.in to accommodate archive programs that are
+         different for C++ than for C, and add cases for vendor's C++
+         compilers on Solaris and IRIX (report by Albert Chin-A-Young).
+       + correct manpage description of criteria for deciding if the terminal
+         supports xterm mouse controls.
+       + add several configure script options to aid with cross-compiling:
+         --with-build-cc, --with-build-cflags, --with-build-ldflags, and
+         --with-build-libs (request by Greg Roelofs).
+       + change criteria for deciding if configure is cross-compiling from
+         host/build mismatch to host/target mismatch (request by Greg Roelofs
+         <greg.roelofs@philips.com>).
+       + correct logic for infocmp -e and -E options which writes the data for
+         the ext_Names[] array.  This is needed if one constructs a fallback
+         table for a terminfo entry which uses extended termcap names, e.g.,
+         AX in a color xterm.
+       + fix undefined NCURSES_PATHSEP when configure --disable-database
+         option is given.
+
+20010811
+       + fix for VALID_BOOLEAN() macro when char is not signed.
+       + modify 'clean' rule for C++ binding to work with Sun compiler, which
+         caches additional information in a subdirectory of the objects.
+       + added llib-ncursesw.
+
+20010804
+       + add Caps.keys example for experimental extended function keys
+         (adapted from a patch by Ilya Zakharevich).
+       + correct parameter types of vidputs() and vidattr() to agree with
+         header files (report by William P Setzer).
+       + fix typos in several man-pages (patch by William P Setzer).
+       + remove unneeded ifdef for __GNUG__ in CF_CPP_VSCAN_FUNC configure
+         macro, which made ncurses C++ binding fail to build with other
+         C++ compilers such as HPUX 11.x (report by Albert Chin-A-Young).
+       + workaround for bug in HPUX 11.x C compiler: add a blank after
+         NCURSES_EXPORT macro in form.h (report by Albert Chin-A-Young)
+       + ignore blank lines in Caps* files in MKkey_defs.sh script (report by
+         Albert Chin-A-Young).
+       + correct definition of key_end in Caps.aix4, which left KEY_END
+         undefined (report by Albert Chin-A-Young).
+       + remove a QNX-specific fallback prototype for vsscanf(), which is
+         obsolete with QNX RTP.
+       + review/fix some of the T() and TR() macro calls, having noticed that
+         there was no data for delwin() in a trace of dialog because there was
+         no returnVoid call for wtimeout().  Also, traces in lib_twait.c are
+         now selected under TRACE_IEVENT rather than TRACE_CALLS.
+
+20010728
+       + add a _nc_access() check before opening files listed via $TERMPATH.
+       + using modified man2html, regenerate some of the html manpages to fix
+         broken HREF's where the link was hyphenated.
+
+20010721
+       + add some limit/pointer checks to -S option of tputs.
+       + updated/expanded Apple_Terminal and Darwin PowerPC terminfo entries
+         (Benjamin C W Sittler).
+       + add a note in curs_termcap.3x regarding a defect in the XSI
+         description of tgetent (based on a discussion with Urs Jansen
+         regarding the HPUX 11.x implementation, whose termcap interface is
+         not compatible with existing termcap programs).
+       + modify manhtml rule in dist.mk to preserve copyright notice on the
+         generated files, as well as to address HTML style issues reported by
+         tidy and weblint.  Regenerated/updated corresponding html files.
+       + comment out use of Protected_Character and related rarely used
+         attributes in ncurses Ada95 test/demo to compile with wide-character
+         configuration.
+
+20010714
+       + implement a simple example in C++ demo to test scanw().
+       + corrected stdio function used to implement scanw() in cursesw.cc
+       + correct definition of RemAttr() macro from 20010602 changes, which
+         caused C++ SillyDemo to not show line-drawing characters.
+       + modify C++ binding, adding getKey() which can be overridden by user
+         to substitute functions other than getch() for keyboard processing
+         of forms and menus (patch by Juergen Pfeifer).
+
+20010707
+       + fix some of the trace calls which needed modification to work with
+         new wide-character structures.
+       + modify magic-cookie code in tty_update.c to compile with new
+         wide-character structures (report by <George.R.Goffe@seagate.com>).
+       + ensure that _XOPEN_SOURCE_EXTENDED is defined in curses.priv.h if
+         compiling for wide-character configuration.
+       + make addwnstr() handle non-spacing characters (patch by Sven
+         Verdoolaege).
+
+20010630
+       + add configure check to define _GNU_SOURCE, needed to prop up glibc
+         header files.
+       + split-out include/curses.wide to solve spurious redefinitions caused
+         by defining _GNU_SOURCE, and move includes for <signal.h> before
+         <curses.h> to work around misdefinition of ERR in glibc 2.1.3 header
+         file.
+       + extended ospeed change to NetBSD and OpenBSD -TD
+       + modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it
+         work properly for termcap applications (patch by Andrey A Chernov).
+
+20010623
+       + correct an overlooked CharOf/UChar instance (reports by Eugene Lee
+         <eugene@anime.net>, Sven Verdoolaege).
+       + correct unneeded ifdef for wunctrl() (reported by Sven Verdoolaege)
+
+20010618
+       + change overlooked several CharOf/UChar instances.
+       > several patches from Sven Verdoolaege:
+       + correct a typo in wunctrl(), which made it appear that botwc() was
+         needed (no such function: use btowc()).
+       + reimplement wide-character demo in test/view.c, using new functions.
+       + implement getcchar(), setcchar(), wadd_wchnstr() and related macros.
+       + fix a syntax problem with do/if/while in PUTC macro (curses.priv.h).
+
+20010616
+       + add parentheses in macros for malloc in test.priv.h, fixes an
+         expression in view.c (report by Wolfgang Gutjahr <gutw@knapp.co.at>).
+       + add Caps.uwin, as an example.
+       + change the way curses.h is generated, making the list of function
+         key definitions extracted from the Caps file.
+       + add #undef's before possible redefinition of ERR and OK in curses.h
+       + modify logic in tic, toe, tput and tset which checks for basename of
+         argv[0] to work properly on systems such as OS/2 which have
+         case-independent filenames and/or program suffixes, e.g., ".ext".
+
+20010609
+       + add a configure check, if --enable-widec is specified, for putwc(),
+         which may be in libutf8.
+       + remove some unnecessary text from curs_extend.3x and
+         default_colors.3x which caused man-db to make incorrect symbolic
+         links (Debian bug report #99550).
+       + add configure check if cast for _IO_va_list is needed to compile
+         C++ vscan code (Debian bug report #97945).
+       > several patches from Sven Verdoolaege:
+       + correct code that used non-standard auto-initialization of a struct,
+         which gcc allows (report by Larry Virden).
+       + use putwc() in PUTC() macro.
+       + make addstr() work for the special case where the codeset is
+         non-stateful (eg. UTF-8), as well as stateful codesets.
+
+20010603
+       + correct loop expression in NEXT_CHAR macro for lib_addstr.c changes
+         from 20010602 (report by Mike Castle).
+
+20010602
+       + modify mvcur() to avoid emitting newline characters when nonl() mode
+         is set.  Normally this is not a problem since the actual terminal
+         mode is set to suppress nl/crlf translations, however it is useful to
+         allow the caller to manipulate the terminal mode to avoid staircasing
+         effects after spawning a process which writes messages (for lynx
+         2.8.4) -TD
+       > several patches from Sven Verdoolaege <skimo@kotnet.org>:
+       + remove redundant type-conversion in fifo_push()
+       + correct definition of addwstr() macro in curses.h.in
+       + remove _nc_utf8_outch()
+       + rename most existing uses of CharOf() to UChar(), e.g., where it is
+         used to prevent sign-extension in ctype macros.
+       + change some chtype's to attr_t's where the corresponding variables
+         are used to manipulate attributes.
+       + UpdateAttr() was applied to both attributes (attr_t) and characters
+         (chtype).  Modify macro and calls to it to make these distinct.
+       + add CharEq() macro, use in places where wide-character configuration
+         implementation uses a struct for cchar_t.
+       + moved struct ldat into curses.priv.h, to hide implementation details.
+       + change CharOf() macro to use it for masking A_CHARTEXT data from
+         chtype's.
+       + add L() macro to curses.priv.h, for long-character literals.
+       + replace several assignments from struct ldat entries to chtype or
+         char values with combinations of CharOf() and AttrOf() macros.
+       + add/use intermediate ChAttrOf() and ChCharOf() macros where we know
+         we are using chtype data.
+       + add/use lowlevel attribute manipulation macros AddAttr(), RemAttr()
+         and SetAttr().
+       + add/use SetChar() macro, to change a cchar_t based on a character and
+         attributes.
+       + convert most internal use of chtype to NCURSES_CH_T, to simplify use
+         of cchar_t for wide-character configuration.  Similarly, use ARG_CH_T
+         where a pointer would be more useful.
+       + add stubs for tracing cchar_t values.
+       + add/use macro ISBLANK()
+       + add/use constructors for cchar_t's: NewChar(), NewChar2().
+       + add/use macros CHREF(), CHDEREF(), AttrOfD(), CharOfD() to facilitate
+         passing cchar_t's by address.
+       + add/use PUTC_DATA, PUTC() macros.
+       + for wide-character configuration, move the window background data to
+         the end of the WINDOW struct so that whether _XOPEN_SOURCE_EXTENDED
+         is defined or not, the offsets in the struct will not change.
+       + modify addch() to work with wide-characters.
+       + mark several wide-character functions as generated in curses.h.in
+       + implement wunctrl(), wadd_wch(), wbkgrndset(), wbkgrnd(),
+         wborder_set() and waddnwstr().
+
+20010526
+       + add experimental --with-caps=XXX option to customize to similar
+         terminfo database formats such as AIX 4.x
+       + add Caps.aix4 as an example.
+       + modify Caps to add columns for the the KEY_xxx symbols.
+       + modify configure --with-widec to suppress overwrite of libcurses.so
+         and curses.h
+       + add checks to toe.c to avoid being confused by files and directories
+         where we would expect the reverse, e.g., source-files in the
+         top-level terminfo levels as is the case for AIX.
+
+20010519
+       + add top-level 'depend' rule for the C sources, assuming that the
+         makedepend program is available.  As a side-effect, this makes
+         the generated sources, as in "make sources" (prompted by a report
+         by Mike Castle that "make -j" fails because the resulting parallel
+         processes race to generate ncurses/names.c).
+       + modify configure script so that --disable-overwrite option's action
+         to add a symbolic link for libcurses applies to the static library as
+         well as the shared library when both are configured (report by Felix
+         Natter <f.natter@ndh.net>).
+       + add ELKS terminfo entries (Federico Bianchi
+         <bianchi@www.arte.unipi.it>)
+       + add u6 (CSR) to Eterm (Michael Jennings).
+
+20010512
+       + modify test/ncurses.c to work with xterm-256color, which has fewer
+         color pairs than colors*colors (report by David Ellement
+         <ellement@sdd.hp.com>).
+
+20010505
+       + corrected screen.xterm-xfree86 entry.
+       + update comment in Caps regarding IBM (AIX) function-key definitions.
+
+20010421
+       + modify c++/Makefile.in to link with libncurses++w.a when configured
+         for wide-characters (patch by Sven Verdoolaege).
+       + add check in _nc_trace_buf() to refrain from freeing a null pointer.
+       + improve CF_PROG_INSTALL macro using CF_DIRNAME.
+       + update config.guess, config.sub from autoconf 2.49e (alpha).
+
+20010414
+       + add secondary check in tic.c, similar_sgr() to see if the reason
+         for mismatch was that the individual capabilities used a time-delay
+         while sgr did not.  Used this to cleanup mismatches, e.g., in vt100,
+         and remove time-delay from Apple_Terminal entries.
+       + add Apple_Terminal terminfo entries (Benjamin C W Sittler
+         <bsittler@iname.com>).
+       + correct definitions of shifted editing keys for xterm-xfree86 -TD
+       + fix a bug in test/bs.c from 20010407 (patch by Erik Sigra).
+       + prevent relative_move() from doing an overwrite if it detects 8-bit
+         characters when configured for UTF-8 (reported by Sven Verdoolaege
+         <skimo@kotnet.org>).
+
+20010407
+       + add configure checks for strstream.h vscan function, and similar
+         stdio-based function which may be used in C++ binding for gcc 3.0
+         (reports by George Goffe, Lars Hecking, Mike Castle).
+       + rewrite parts of configure.in which used changequote().  That feature
+         is broken in the latest autoconf alphas (e.g., 2.49d).
+       + add a missing pathname for ncurses_dll.h, needed when building in
+         a directory outside the source tree (patch by Sven Verdoolaege
+         <skimo@kotnet.org>).
+       > fix 2 bugs in test/bs.c (patch by Erik Sigra <sigra@home.se>):
+       + no ships were ever placed in the last row or in the last column.
+         This made the game very easy to win, because you never had to waste
+         any shots there, but the computer did.
+       + the squares around a sunken ship that belonged to the player were not
+         displayed as already hit by the computer, like it does for the
+         player.
+
+20010331
+       + add some examples of customizing screen's terminfo:
+         screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD
+       + modify screen's terminfo entry to match the khome/kend in screen
+         3.09.08 (Debian bug report #92215).
+       + correct a memory leak in forms library (report by Stefan Vogtner
+         <stefan@vogtner.de>, patch by Juergen Pfeifer).
+
+20010324
+       + change symbols used to guard against repeated includes to begin
+         consistently with "NCURSES_" rather than a leading underscore.  There
+         are other symbols defined in the header files which begin with a
+         leading underscore, but they are part of the legacy interface.
+       + reorder includes in c++ binding so that rcs identifiers can be
+         compiled-in.
+       + add .cc.ii rule to c++ makefile, to get preprocessor output for
+         debugging.
+       + correct configure script handling of @keyword@ substitutions when the
+         --with-manpage-renames option is given (cf:  20000715, fixes Debian
+         bug #89939).
+       + report stack underflow/overflow in tparm() when tic -cv option is
+         given.
+       + remove spurious "%|" operator from xterm-xfree86 terminfo entry,
+         (reported by Adam Costello <amc@cs.berkeley.edu>, Debian bug #89222).
+
+20010310
+       + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc
+         2.95.2, and correcting some conflicting color pair initializations.
+       + add missing copyright notice for cursesw.h
+       + review, make minor fixes for use of '::' for referring to C-language
+         interface from C++ binding.
+       + modify configure check for g++ library slightly to accommodate
+         nonstandard version number, e.g., <vendor>-2.7 (report by Ronald Ho
+         <rho@mipos2.intel.com>).
+       + add configure check for c++ <sstream> header, replace hardcoded
+         ifdef.
+       + workaround for pre-release of gcc 3.0 libstdc++, which has dropped
+         vscan from strstreambuf to follow standard, use wrapper for C vscanf
+         instead (report by George Goffe <grgoffe@excite.com> and Matt Taggart
+         <taggart@carmen.fc.hp.com>, fixes Debian .
+
+20010303
+       + modify interface of _nc_get_token() to pass 'silent' parameter to it,
+         to make quieter loading of /etc/termcap (patch by Todd C Miller).
+       + correct a few typos in curs_slk.3x and curs_outopts.3x manpages
+         (patch by Todd C Miller).
+
+20010224
+       + compiler-warning fixes (reported by Nelson Beebe).
+
+20010210
+       + modify screen terminfo entry to use new 3.9.8 feature allowing xterm
+         mouse controls -TD
+
+20010203
+       + broaden patterns used to match OS/2 EMX in configure script to cover
+         variant used in newer config.guess/config.sub
+       + remove changequote() calls from configure script, since this feature
+         is broken in the autoconf 2.49c alpha, maintainers decline to fix.
+       + remove macro callPutChar() from tty_update.c, since this is no longer
+         needed (reported by Philippe Blain).
+       + add a null-pointer check in tic.c to handle the case when the input
+         file is really empty.  Modify the next_char() function in comp_scan.c
+         to allow arbitrarily long lines, and incidentally supply a newline to
+         files that do not end in a newline.  These changes improve tic's
+         recovery from attempts to read binary files, e.g., its output from
+         the terminfo database (reported by Bernhard Rosenkraenzer).
+
+20010127
+       + revert change to c++/demo.cc from 20001209, which changed definition
+         of main() apparently to accommodate cygwin linker, but broke the demo
+         program.
+       + workaround for broken egcs 2.91.66 which calls member functions
+         (i.e., lines() and colors() of NCursesWindow before calling its
+         constructor.  Add calls to initialize() in a few constructors which
+         did not do this already.
+       + use the GNAT preprocessor to make the necessary switch between TRACE
+         and NO_TRACE configurations (patch by Juergen Pfeifer).
+       > patches by Bernhard Rosenkraenzer:
+       + modify kterm terminfo entry to use SCS sequence to support alternate
+         character set (it does not work with SI/SO).
+       + --with-ospeed=something didn't work.  configure.in checked for a
+         $enableval where it should check for $withval.  Also,
+         ncurses/llib-lncurses still had a hardcoded short.
+
+20010114
+       + correction to my merge of Tom Riddle's patch that broke tic in some
+         conditions (reported by Enoch Wexler <enoch@wexler.co.il>) -TD
+
+20010113
+       + modify view.c to test halfdelay().  Like other tests, this recognizes
+         the 's' and space commands for stopping/starting polled input, shows
+         a freerunning clock in the header.  If given a parameter to 's', that
+         makes view.c use halfdelay() with that parameter rather than
+         nodelay().
+       + fix to allow compile with the experimental configure option
+         --disable-hashmap.
+       + modify postprocess_termcap() to avoid overwriting key_backspace,
+         key_left, key_down when processing a non-base entry (report/patch by
+         Tom Riddle).
+       + modify _nc_wrap_entry(), adding option to reallocate the string
+         table, needed in _nc_merge_entry() when merging termcap entries.
+         (adapted from report/patch by Tom Riddle <ftr@oracom.com>).
+       + modify a few configure script macros to keep $CFLAGS used only for
+         compiler options, preprocessor options in $CPPFLAGS.
+
+20001230
+       + correct marker positions in lrtest.c after receiving a sigwinch.
+       + fix ifdef's in ncurses.c to build against pre-5.2 for testing.
+       + fixes to tclock for resizing behavior, redundant computation (report
+         and patch by A M Kuchling <akuchlin@mems-exchange.org>).
+
+20001216
+       + improved scoansi terminfo entry -TD
+       + modify configure script and makefile in Ada95/src to compile a stub
+         for the trace functions when ncurses does not provide those.
+
+20001209
+       + add ncurses_dll.h and related definitions to support generating DLL's
+         with cygwin (adapted from a patch by Charles Wilson
+         <cwilson@ece.gatech.edu>, changed NCURSES_EXPORT macro to make it
+         work with 'indent').
+
+20001202
+       + correct prototypes for some functions in curs_termcap.3x, matching
+         termcap.h, which matches X/Open.
+       > patch by Juergen Pfeifer:
+       + a revised version of the Ada enhancements sent in by "H.
+         Nanosecond", aka Eugene V Melaragno <aldomel@ix.netcom.com>.  This
+         patch includes
+         - small fixes to the existing ncurses binding
+         - addition of some more low-level functions to the binding, including
+           termcap and terminfo functions
+         - An Ada implementation of the "ncurses" test application originally
+           written in C.
+
+20001125
+       + modify logic in lib_setup.c to allow either lines or columns value
+         from terminfo to be used if the screen size cannot be determined
+         dynamically rather than requiring both (patch by Ehud Karni
+         <ehud@unix.simonwiesel.co.il>).
+       + add check in lib_tgoto.c's is_termcap() function to reject null or
+         empty strings (reported by Valentin Nechayev <netch@netch.kiev.ua> to
+         freebsd-bugs).
+       + add definition from configure script that denotes the path-separator,
+         which is normally a colon.  The path-separator is a semicolon on
+         OS/2 EMX and similar systems which may use a colon within pathnames.
+       + alter logic to set default for --disable-overwrite option to set it
+         to 'yes' if the --prefix/$prefix value is not /usr/local, thereby
+         accommodating the most common cause of problems: gcc's nonstandard
+         search rules.  Other locations such as /usr/local/ncurses will
+         default to overwriting (report by Lars Hecking <lhecking@nmrc.ie>).
+
+20001118
+       + modify default for --disable-overwrite configure option to disable
+         if the --prefix or $prefix value is not /usr.
+       + add cygwin to systems for which ncurses is installed by default into
+         /usr rather than /usr/local.
+
+20001111
+       + minor optimization in comp_error.c and lib_termname.c, using
+         strncat() to replace strncpy() (patch by Solar Designer).
+       + add a use_terminfo_vars() check for $HOME/.termcap, and check for
+         geteuid() to use_terminfo_vars() (patch by Solar Designer
+         <solar@false.com>).
+       + improved cygwin terminfo entry, based on patch by
+         <ernie_boyd@yahoo.com>.
+       + modify _nc_write_entry() to allow for the possibility that linking
+         aliases on a filesystem that ignores case would not succeed because
+         the source and destination differ only by case, e.g., NCR260VT300WPP0
+         on cygwin (report by Neil Zanella).
+       + fix a typo in the curs_deleteln.3x man page (patch by Bernhard
+         Rosenkraenzer <bero@redhat.de>).
+
+20001104
+       + add configure option --with-ospeed to assist packagers in transition
+         to 5.3 change to ospeed type.
+       + add/use CharOf() macro to suppress sign-extension of char type on
+         platforms where this is a problem in ctype macros, e.g., Solaris.
+       + change trace output to binary format.
+       + correct a missing quote adjustment in CF_PATH_SYNTAX autoconf
+         macro, for OS/2 EMX configuration.
+       + rearrange a few configure macros, moving preprocessor options to
+         $CPPFLAGS (a now-obsolete version of autoconf did not consistently
+         use $CPPFLAGS in both the compile and preprocessor checks).
+       + add a check in relative_move() to guard against buffer overflow in
+         the overwrite logic.
+
+20001028
+       + add message to configure script showing g++ version.
+       + resync config.guess, config.sub
+       + modify lib_delwin.c, making it return ERR if the window did not exist
+         (suggested by Neil Zanella).
+       + add cases for FreeBSD 3.1 to tdlint and makellib scripts, used this
+         to test/review ncurses library.  (Would use lclint, but it doesn't
+         work).
+       + reorganized knight.c to avoid forward references.  Correct screen
+         updates when backtracking, especially to the first cell.  Add F/B/a
+         commands.
+
 20001021 5.2 release for upload to ftp.gnu.org
        + update generated html files from manpages.
        + modify dist.mk to use edit_man.sh to substitute autoconf'd variables
 20001021 5.2 release for upload to ftp.gnu.org
        + update generated html files from manpages.
        + modify dist.mk to use edit_man.sh to substitute autoconf'd variables
@@ -82,7 +1281,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          (see assume_default_colors()).
        + rename configure option --enable-hashmap --disable-hashmap, and
          reorder the configure options, splitting the experimental and
          (see assume_default_colors()).
        + rename configure option --enable-hashmap --disable-hashmap, and
          reorder the configure options, splitting the experimental and
-         development 
+         development
        + add configure option --disable-root-environ, which tells ncurses to
          disregard $TERMINFO and similar environment variables if the current
          user is root, or running setuid/setgid (based on discussion with
        + add configure option --disable-root-environ, which tells ncurses to
          disregard $TERMINFO and similar environment variables if the current
          user is root, or running setuid/setgid (based on discussion with
@@ -95,7 +1294,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          longer than 10000 (report by Jouko Pynnonen).
        + rewrote limit checks in lib_mvcur.c using new functions
          _nc_safe_strcat(), etc.  Made other related changes to check lengths
          longer than 10000 (report by Jouko Pynnonen).
        + rewrote limit checks in lib_mvcur.c using new functions
          _nc_safe_strcat(), etc.  Made other related changes to check lengths
-         used for strcat/strcpy (report by Jouko Pynnonen <jouko@solutions.fi>).
+         used for strcat/strcpy (report by Jouko Pynnonen
+         <jouko@solutions.fi>).
 
 20000930
        + modify several descriptions, including those for setaf, setab, in
 
 20000930
        + modify several descriptions, including those for setaf, setab, in
@@ -118,7 +1318,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
 
 20000923
        + modify rs2 capability in xterm-r6 and similar where cursor
 
 20000923
        + modify rs2 capability in xterm-r6 and similar where cursor
-         save/restore bracketed the sequence for resetting video attributes. 
+         save/restore bracketed the sequence for resetting video attributes.
          The cursor restore would undo that (from a NetBSD bug report by John
          Hawkinson <jhawk@MIT.EDU>).
        + using parameter check added to tic, corrected 27 typos in
          The cursor restore would undo that (from a NetBSD bug report by John
          Hawkinson <jhawk@MIT.EDU>).
        + using parameter check added to tic, corrected 27 typos in
@@ -138,6 +1338,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          the expected number of parameters.
        + add error checking to infocmp's -v and -m options to ensure that
          the option value is indeed a number.
          the expected number of parameters.
        + add error checking to infocmp's -v and -m options to ensure that
          the option value is indeed a number.
+       + some cleanup of logic in _nc_signal_handler() to verify if SIGWINCH
+         handler is setup.  Separated the old/new sigaction data for SIGTSTP
+         from the other signals.
 
 20000917
        + add S0, E0 extensions to screen's terminfo entry, which is another
 
 20000917
        + add S0, E0 extensions to screen's terminfo entry, which is another
@@ -161,7 +1364,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          which had the effect of ignoring p9 in set_attributes (sgr), breaking
          alternate character set (reported by Piotr Majka <charvel@link.pl>).
        + correct ifdef'ing for GCC_PRINTF, GCC_SCANF which would not compile
          which had the effect of ignoring p9 in set_attributes (sgr), breaking
          alternate character set (reported by Piotr Majka <charvel@link.pl>).
        + correct ifdef'ing for GCC_PRINTF, GCC_SCANF which would not compile
-         with Sun WorkShop compilers since these tokens were empty (cf: 
+         with Sun WorkShop compilers since these tokens were empty (cf:
          20000902, reported by Albert Chin-A-Young).
 
 20000909
          20000902, reported by Albert Chin-A-Young).
 
 20000909
@@ -182,8 +1385,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + add private entrypoint _nc_basename(), use to consolidate related
          code in progs, as well as accommodating OS/2 EMX pathnames.
        + remove NCURSES_CONST line from edit_cfg.sh to compensate for its
        + add private entrypoint _nc_basename(), use to consolidate related
          code in progs, as well as accommodating OS/2 EMX pathnames.
        + remove NCURSES_CONST line from edit_cfg.sh to compensate for its
-         removal (except via AC_SUBST) from configure.in, making --enable-const
-         work again (reported by Juergen Pfeifer).
+         removal (except via AC_SUBST) from configure.in, making
+         --enable-const work again (reported by Juergen Pfeifer).
        + regen'd configure to pick up "hpux*" change from 20000902.
 
 20000902
        + regen'd configure to pick up "hpux*" change from 20000902.
 
 20000902
@@ -461,7 +1664,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
 20000513
        + the tack program knows how to use smcup and rmcup but the "show caps
          that can be tested" feature did not reflect this knowledge.  Correct
 20000513
        + the tack program knows how to use smcup and rmcup but the "show caps
          that can be tested" feature did not reflect this knowledge.  Correct
-         the display in the menu tack/test/edit/c (patch by Daniel Weaver). 
+         the display in the menu tack/test/edit/c (patch by Daniel Weaver).
        + xterm-16color does allow bold+colors, removed ncv#32 from that
          terminfo entry.
 
        + xterm-16color does allow bold+colors, removed ncv#32 from that
          terminfo entry.
 
@@ -469,8 +1672,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + correct assignment to SP->_has_sgr_39_49 in lib_dft_fgbg.c, which
          broke check for screen's AX capability (reported by Valeriy E Ushakov
          <uwe@ptc.spbu.ru>).
        + correct assignment to SP->_has_sgr_39_49 in lib_dft_fgbg.c, which
          broke check for screen's AX capability (reported by Valeriy E Ushakov
          <uwe@ptc.spbu.ru>).
-       + change man2html rule in dist.mk to workaround bug in some man-programs
-         that ignores locale when rendering hyphenation.
+       + change man2html rule in dist.mk to workaround bug in some
+         man-programs that ignores locale when rendering hyphenation.
        + change web- and ftp-site to dickey.his.com
 
 20000429
        + change web- and ftp-site to dickey.his.com
 
 20000429
@@ -1021,7 +2224,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
 990821 pre-release
        + updated configure macros CF_MAKEFLAGS, CF_CHECK_ERRNO
        + minor corrections to beterm terminfo entry.
 990821 pre-release
        + updated configure macros CF_MAKEFLAGS, CF_CHECK_ERRNO
        + minor corrections to beterm terminfo entry.
-       + modify lib_setup.c to reject values of $TERM which have a '/' in them.
+       + modify lib_setup.c to reject values of $TERM which have a '/' in
+         them.
        + add ifdef's to guard against CS5, CS6, CS7, CS8 being zero, as more
          than one is on BeOS.  That would break a switch statement.
        + add configure macro CF_LINK_FUNCS to detect and work around BeOS's
        + add ifdef's to guard against CS5, CS6, CS7, CS8 being zero, as more
          than one is on BeOS.  That would break a switch statement.
        + add configure macro CF_LINK_FUNCS to detect and work around BeOS's
@@ -1047,11 +2251,11 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          wrefresh().  Whenever a window changes its background attribute to
          something different than newscr's background attribute, the whole
          window is touched to force a copy to newscr.  This is an unwanted
          wrefresh().  Whenever a window changes its background attribute to
          something different than newscr's background attribute, the whole
          window is touched to force a copy to newscr.  This is an unwanted
-         side-effect of wrefresh() and it is actually not necessary.  A changed
-         background attribute affects only further outputs of background it
-         doesn't mean anything to the current content of the window.  So there
-         is no need to force a copy.  (reported by Frank Heckenbach
-         <frank@g-n-u.de>).
+         side-effect of wrefresh() and it is actually not necessary.  A
+         changed background attribute affects only further outputs of
+         background it doesn't mean anything to the current content of the
+         window.  So there is no need to force a copy.  (reported by Frank
+         Heckenbach <frank@g-n-u.de>).
        + an upward compatible enhancement of the NCursesPad class in the C++
          binding.  It allows one to add a "viewport" window to a pad and then
          to use panning to view the pad through the viewport window.
        + an upward compatible enhancement of the NCursesPad class in the C++
          binding.  It allows one to add a "viewport" window to a pad and then
          to use panning to view the pad through the viewport window.
@@ -1098,7 +2302,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          settings in cur_term, which happens when curses and termcap calls are
          mixed (from report by Bjorn Helgaas <helgaas@dhc.net>).
        + suppress initialization of key-tries in _nc_keypad() if we are only
          settings in cur_term, which happens when curses and termcap calls are
          mixed (from report by Bjorn Helgaas <helgaas@dhc.net>).
        + suppress initialization of key-tries in _nc_keypad() if we are only
-         disabling keypad mode, e.g., in endwin() called when keypad() was not.
+         disabling keypad mode, e.g., in endwin() called when keypad() was
+         not.
        + modify the Ada95 makefile to ensure that always the Ada files from
          the development tree are used for building and not the eventually
          installed ones (patch by Juergen Pfeifer).
        + modify the Ada95 makefile to ensure that always the Ada files from
          the development tree are used for building and not the eventually
          installed ones (patch by Juergen Pfeifer).
@@ -1156,8 +2361,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + add a null-pointer check for SP in lib_vidattr.c to logic that checks
          for magic cookies.
        + improve fallback declaration of 'bool' when the --without-cxx option
        + add a null-pointer check for SP in lib_vidattr.c to logic that checks
          for magic cookies.
        + improve fallback declaration of 'bool' when the --without-cxx option
-         is given, by using a 'char' on i386 and related hosts (from discussion
-         with Alexander Lukyanov).
+         is given, by using a 'char' on i386 and related hosts (from
+         discussion with Alexander Lukyanov).
 
 990605 pre-release
        + include time.h in lib_napms.c if nanosleep is used (patch by
 
 990605 pre-release
        + include time.h in lib_napms.c if nanosleep is used (patch by
@@ -1208,7 +2413,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        > patch by Juergen Pfeifer:
        + modify menu creation to not inherit status flag from the default menu
          which says that the associated marker string has been allocated and
        > patch by Juergen Pfeifer:
        + modify menu creation to not inherit status flag from the default menu
          which says that the associated marker string has been allocated and
-         should be freed (bug reported by Marek Paliwoda" <paliwoda@kki.net.pl>)
+         should be freed (bug reported by Marek Paliwoda"
+         <paliwoda@kki.net.pl>)
 
 990327 pre-release (alpha.gnu.org:/gnu/ncurses-5.0-beta1.tar.gz)
        + minor fixes to xterm-xfree86 terminfo entry - TD.
 
 990327 pre-release (alpha.gnu.org:/gnu/ncurses-5.0-beta1.tar.gz)
        + minor fixes to xterm-xfree86 terminfo entry - TD.
@@ -1468,7 +2674,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          Otherwise, a relative path in $TERMINFO would confuse tic (from a
          Debian bug report).
        + correct/update ncsa terminfo entry (report by Larry Virden).
          Otherwise, a relative path in $TERMINFO would confuse tic (from a
          Debian bug report).
        + correct/update ncsa terminfo entry (report by Larry Virden).
-       + update xterm-xfree86 terminfo to current (patch 90), smcur/rmcur changes
+       + update xterm-xfree86 terminfo to current (patch 90), smcur/rmcur
+         changes
        + add Mathew Vernon's mach console entries to terminfo.src
        + more changes, moving functions, as part of Alexander's restructuring.
        + modify configure script for GNU/Hurd share-library support, introduce
        + add Mathew Vernon's mach console entries to terminfo.src
        + more changes, moving functions, as part of Alexander's restructuring.
        + modify configure script for GNU/Hurd share-library support, introduce
@@ -1592,8 +2799,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          with --srcdir option.
        + modify infocmp "-r" option to remove limit on formatted termcap
          output, which makes it more like Solaris' version.
          with --srcdir option.
        + modify infocmp "-r" option to remove limit on formatted termcap
          output, which makes it more like Solaris' version.
-       + modify captoinfo to treat no-argument case more like Solaris' version,
-         which uses the contents of $TERMCAP as the entry to format.
+       + modify captoinfo to treat no-argument case more like Solaris'
+         version, which uses the contents of $TERMCAP as the entry to format.
        + modify mk-2nd.awk to handle subdirectories, e.g., ncurses/tty
          (patch by Alexander V Lukyanov).
 
        + modify mk-2nd.awk to handle subdirectories, e.g., ncurses/tty
          (patch by Alexander V Lukyanov).
 
@@ -1664,8 +2871,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + improve integration of hashmap scrolling code, by adding oldhash and
          newhash data to SP struct.
        + invoke del_curterm from delscreen.
        + improve integration of hashmap scrolling code, by adding oldhash and
          newhash data to SP struct.
        + invoke del_curterm from delscreen.
-       + modify del_curterm to set cur_term to null if it matches the function's
-         parameter which is deleted.
+       + modify del_curterm to set cur_term to null if it matches the
+         function's parameter which is deleted.
        + modify lib_doupdate to prefer parm_ich to the enter_insert_mode and
          exit_insert_mode combination, adjusting InsCharCost to check
          enter_insert_mode, exit_insert_mode and insert_padding.  Add
        + modify lib_doupdate to prefer parm_ich to the enter_insert_mode and
          exit_insert_mode combination, adjusting InsCharCost to check
          enter_insert_mode, exit_insert_mode and insert_padding.  Add
@@ -1673,8 +2880,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          to the SP struct.
 
 980912
          to the SP struct.
 
 980912
-       + modify test-driver in lib_mvcur.s to use _nc_setbuffer, for consistent
-         treatment.
+       + modify test-driver in lib_mvcur.s to use _nc_setbuffer, for
+         consistent treatment.
        + modify ncurses to restore output to unbuffered on endwin, and resume
          buffering in refresh (see lib_set_term.c and NC_BUFFERED macro).
        + corrected HTML version numbers (according to the W3C validator, they
        + modify ncurses to restore output to unbuffered on endwin, and resume
          buffering in refresh (see lib_set_term.c and NC_BUFFERED macro).
        + corrected HTML version numbers (according to the W3C validator, they
@@ -1714,8 +2921,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          Jaeger).
 
 980815
          Jaeger).
 
 980815
-       + modify lib_setup.c to eliminate unneeded include of <sys/ioctl.h> when
-         termios is not used (patch by Todd C Miller).
+       + modify lib_setup.c to eliminate unneeded include of <sys/ioctl.h>
+         when termios is not used (patch by Todd C Miller).
        + add function _nc_doalloc, to ensure that failed realloc calls do not
          leak memory (reported by Todd C Miller).
        + improved ncsa-telnet terminfo entry.
        + add function _nc_doalloc, to ensure that failed realloc calls do not
          leak memory (reported by Todd C Miller).
        + improved ncsa-telnet terminfo entry.
@@ -1764,8 +2971,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          the search path to /usr/lib (reported by Dan Nelson).
        + add -soname option when building shared libraries on OpenBSD 2.x
          (request by QingLong).
          the search path to /usr/lib (reported by Dan Nelson).
        + add -soname option when building shared libraries on OpenBSD 2.x
          (request by QingLong).
-       + add configure options --with-manpage-format and --with-manpage-renames
-         (request by QingLong).
+       + add configure options --with-manpage-format and
+         --with-manpage-renames (request by QingLong).
        + correct conversion of CANCELLED_NUMERIC in write_object(), which was
          omitting the high-order byte, producing a 254 in the compiled
          terminfo.
        + correct conversion of CANCELLED_NUMERIC in write_object(), which was
          omitting the high-order byte, producing a 254 in the compiled
          terminfo.
@@ -2087,7 +3294,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + workaround a quoting problem on SunOS with tar-copy.sh
        + correct init_pair() calls in worm.c to work when use_default_colors()
          is not available.
        + workaround a quoting problem on SunOS with tar-copy.sh
        + correct init_pair() calls in worm.c to work when use_default_colors()
          is not available.
-       + include <sys/types.h> in CF_SYS_TIME_SELECT to work with FreeBSD 2.1.5
+       + include <sys/types.h> in CF_SYS_TIME_SELECT to work with FreeBSD
+         2.1.5
        + add ncv capability to FreeBSD console (cons25w), making reverse
          work with color.
        + correct sense of configure-test for sys/time.h inclusion with
        + add ncv capability to FreeBSD console (cons25w), making reverse
          work with color.
        + correct sense of configure-test for sys/time.h inclusion with
@@ -2098,8 +3306,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + remove shared-library loader flags from test/Makefile.in, etc.
        + simplify test/configure.in using new version of autoconf to create
          test/ncurses_cfg.h
        + remove shared-library loader flags from test/Makefile.in, etc.
        + simplify test/configure.in using new version of autoconf to create
          test/ncurses_cfg.h
-       + suppress suffix rules in test/Makefile.in, provide explicit dependency
-         to work with --srcdir option and less capable 'make' programs.
+       + suppress suffix rules in test/Makefile.in, provide explicit
+         dependency to work with --srcdir option and less capable 'make'
+         programs.
        > adapted from patch for QNX by Xiaodan Tang:
        + initialize %P and %g variables set/used in tparm, and also ensure
          that empty strings don't return a null result from tparam_internal
        > adapted from patch for QNX by Xiaodan Tang:
        + initialize %P and %g variables set/used in tparm, and also ensure
          that empty strings don't return a null result from tparam_internal
@@ -2352,7 +3561,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          NeXT (reported by Francisco A. Tomei Torres).
 
 971101
          NeXT (reported by Francisco A. Tomei Torres).
 
 971101
-       + force mandatory padding in bell and flash_screen, as specified in XSI.
+       + force mandatory padding in bell and flash_screen, as specified in
+         XSI.
        + don't allow padding_baud_rate to override mandatory delays (reported
          by Daniel Weaver).
        + modify delay_output() to use _nc_timed_wait() if no baudrate has been
        + don't allow padding_baud_rate to override mandatory delays (reported
          by Daniel Weaver).
        + modify delay_output() to use _nc_timed_wait() if no baudrate has been
@@ -2486,8 +3696,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + add configure script to generate c++/etip.h
        + add configure --with-develop option, to enable by default most of the
          experimental options (requested by Alexander V. Lukyanov).
        + add configure script to generate c++/etip.h
        + add configure --with-develop option, to enable by default most of the
          experimental options (requested by Alexander V. Lukyanov).
-       + rename 'deinstall' to 'uninstall', following GNU convention (suggested
-         by Alexander V. Lukyanov).
+       + rename 'deinstall' to 'uninstall', following GNU convention
+         (suggested by Alexander V. Lukyanov).
        > patches by Alexander V. Lukyanov:
        + modify tactics 2 and 5 in onscreen_mvcur(), to allow them on the last
          line of the screen, since carriage return will not cause a newline.
        > patches by Alexander V. Lukyanov:
        + modify tactics 2 and 5 in onscreen_mvcur(), to allow them on the last
          line of the screen, since carriage return will not cause a newline.
@@ -2580,7 +3790,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + #undef unctrl to avoid symbol conflict in port to RTEMS (reported by
          Chris Johns <cjohns@plessey.com.au>)
        > patches by Juergen Pfeifer:
        + #undef unctrl to avoid symbol conflict in port to RTEMS (reported by
          Chris Johns <cjohns@plessey.com.au>)
        > patches by Juergen Pfeifer:
-       + simplified, made minor corrections to Ada95 binding to form fieldtype.
+       + simplified, made minor corrections to Ada95 binding to form
+         fieldtype.
        + The C++ binding has been enhanced:
          + Improve NCursesWindow class:  added additional methods to cover
            more ncurses functionality.  Make refresh() and noutrefresh()
        + The C++ binding has been enhanced:
          + Improve NCursesWindow class:  added additional methods to cover
            more ncurses functionality.  Make refresh() and noutrefresh()
@@ -2985,7 +4196,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + restore original behavior in ncurses 'g' test, i.e., explicitly
          set the keypad mode rather than use the default, since it confuses
          people.
        + restore original behavior in ncurses 'g' test, i.e., explicitly
          set the keypad mode rather than use the default, since it confuses
          people.
-       + rewrote the newdemo banner so it's readable (reported by Hugh Daniel).
+       + rewrote the newdemo banner so it's readable (reported by Hugh
+         Daniel).
        + tidy up exit from hashtest (reported by Hugh Daniel).
        + restore check for ^Q in ncurses 'g' test broken in 970510 (reported
          by Hugh Daniel)
        + tidy up exit from hashtest (reported by Hugh Daniel).
        + restore check for ^Q in ncurses 'g' test broken in 970510 (reported
          by Hugh Daniel)
@@ -3049,8 +4261,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
 970517
        + suppress check for pre-existing ncurses header if the --prefix
          option is specified.
 970517
        + suppress check for pre-existing ncurses header if the --prefix
          option is specified.
-       + add configure options "--with-system-type" and "--with-system-release"
-         to assist in checking the generated makefiles.
+       + add configure options "--with-system-type" and
+         "--with-system-release" to assist in checking the generated
+         makefiles.
        + add configure option "--enable-rpath" to allow installers to specify
          that programs linked against shared libraries will have their library
          path embedded, allowing installs into nonstandard locations.
        + add configure option "--enable-rpath" to allow installers to specify
          that programs linked against shared libraries will have their library
          path embedded, allowing installs into nonstandard locations.
@@ -3089,12 +4302,13 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + modify ncurses 'g' test to allow mouse input
        + modify default xterm description to include mouse.
        + modify configure script to add -Wwrite-strings if gcc warnings are
        + modify ncurses 'g' test to allow mouse input
        + modify default xterm description to include mouse.
        + modify configure script to add -Wwrite-strings if gcc warnings are
-         enabled while configuring --enable-const (and fixed related warnings).
+         enabled while configuring --enable-const (and fixed related
+         warnings).
        + add toggle, status display for keypad mode to ncurses 'g' test to
          verify that keypad and scrollok are not inherited from parent window
          during a call to newwin.
        + add toggle, status display for keypad mode to ncurses 'g' test to
          verify that keypad and scrollok are not inherited from parent window
          during a call to newwin.
-       + correction to MKexpanded.sh to make it work when configure --srcdir is
-         used (reported by H.J.Lu).
+       + correction to MKexpanded.sh to make it work when configure --srcdir
+         is used (reported by H.J.Lu).
        + revise test for bool-type, ensuring that it checks if builtin.h is
          available before including it, adding test for sizeof(bool) equal
          to sizeof(short), and warning user if the size cannot be determined
        + revise test for bool-type, ensuring that it checks if builtin.h is
          available before including it, adding test for sizeof(bool) equal
          to sizeof(short), and warning user if the size cannot be determined
@@ -3114,8 +4328,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
 970505 4.1 pre-release
        + regenerate the misc directory html dumps without the link list, which
          is not useful.
 970505 4.1 pre-release
        + regenerate the misc directory html dumps without the link list, which
          is not useful.
-       + correct dependency in form directory makefile which caused unnecessary
-         recompiles.
+       + correct dependency in form directory makefile which caused
+         unnecessary recompiles.
        + correct substitution for ABI_VERSION in test-makefile
        + modify install rules for shared-library targets to remove the target
          before installing, since some install programs do not properly handle
        + correct substitution for ABI_VERSION in test-makefile
        + modify install rules for shared-library targets to remove the target
          before installing, since some install programs do not properly handle
@@ -3223,8 +4437,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + check for C++ builtin.h header
        + correct computation of absolute-path for $INSTALL that dropped "-c"
          parameter from the expression.
        + check for C++ builtin.h header
        + correct computation of absolute-path for $INSTALL that dropped "-c"
          parameter from the expression.
-       + rename config.h to ncurses_cfg.h to avoid naming-conflict when ncurses
-         is integrated into larger systems (from diffs by H.J.Lu for libc).
+       + rename config.h to ncurses_cfg.h to avoid naming-conflict when
+         ncurses is integrated into larger systems (from diffs by H.J.Lu for
+         libc).
        + correct inequality in lib_doupdate.c that caused a single-char to not
          be updated when the char on the right-margin was not blank, idcok()
          was true (patch by Alexander V.  Lukyanov 970124, also reported by
        + correct inequality in lib_doupdate.c that caused a single-char to not
          be updated when the char on the right-margin was not blank, idcok()
          was true (patch by Alexander V.  Lukyanov 970124, also reported by
@@ -3595,7 +4810,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          handle displays wider than 128 chars (Juergen Pfeifer).
        + correct typo curs_outopts.3x (Juergen Pfeifer).
        + correct limit-checking in wenclose() (Juergen Pfeifer).
          handle displays wider than 128 chars (Juergen Pfeifer).
        + correct typo curs_outopts.3x (Juergen Pfeifer).
        + correct limit-checking in wenclose() (Juergen Pfeifer).
-       + correction to Peter Wemm's newwin change (Thomas Fehr <fehr@suse.de>).
+       + correction to Peter Wemm's newwin change (Thomas Fehr
+         <fehr@suse.de>).
        + corrections to logic that combines colors and attributes; they must
          not be OR'd (Juergen Pfeifer, extending from report/patch by Rick
          Marshall).
        + corrections to logic that combines colors and attributes; they must
          not be OR'd (Juergen Pfeifer, extending from report/patch by Rick
          Marshall).
@@ -3820,8 +5036,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          Ju"rgen Fluk <louis@dachau.marco.de>)
        + corrected calls on _nc_render so that background character is set
          as per XSI.
          Ju"rgen Fluk <louis@dachau.marco.de>)
        + corrected calls on _nc_render so that background character is set
          as per XSI.
-       + corrected wbkgdset macro (XSI allows background character to be null),
-         and tests that use it.
+       + corrected wbkgdset macro (XSI allows background character to be
+         null), and tests that use it.
        + more corrections to terminfo (xterm & rxvt)
        + undid change to mcprint prototype (cannot use size_t in curses.h
          because not all systems declare it in the headers that we can safely
        + more corrections to terminfo (xterm & rxvt)
        + undid change to mcprint prototype (cannot use size_t in curses.h
          because not all systems declare it in the headers that we can safely
@@ -3889,8 +5105,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
          msgwin needed scrollok set.
        + corrected last change to IDcTransformLine logic to avoid conflict
          between PutRange and InsStr
          msgwin needed scrollok set.
        + corrected last change to IDcTransformLine logic to avoid conflict
          between PutRange and InsStr
-       + modified run_tic.sh to not use /usr/tmp (reported by David MacKenzie),
-         and further revised it and aclocal.m4 to use $TMPDIR if set.
+       + modified run_tic.sh to not use /usr/tmp (reported by David
+         MacKenzie), and further revised it and aclocal.m4 to use $TMPDIR if
+         set.
        + corrected off-by-one in RoomFor call in read_entry.c
 
 960622 - snapshot
        + corrected off-by-one in RoomFor call in read_entry.c
 
 960622 - snapshot
@@ -3958,8 +5175,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + corrected ifdef for BROKEN_LINKER in MKnames.awk.in
        + corrected missing INSTALL_DATA in misc/Makefile.in
        + flush output when changing cursor-visibility (Rick Marshall)
        + corrected ifdef for BROKEN_LINKER in MKnames.awk.in
        + corrected missing INSTALL_DATA in misc/Makefile.in
        + flush output when changing cursor-visibility (Rick Marshall)
-       + fix a minor bug in the _nc_ripoff() routine and improve error checking
-         when creating the label window (Juergen Pfeifer).
+       + fix a minor bug in the _nc_ripoff() routine and improve error
+         checking when creating the label window (Juergen Pfeifer).
        + enhancement to the control over the new PC-style soft key format.
          allow caller now to select whether or not one wants to have
          the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
        + enhancement to the control over the new PC-style soft key format.
          allow caller now to select whether or not one wants to have
          the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
@@ -4062,7 +5279,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + autogenerate development header-dependencies (config.h, *.priv.h)
        + corrected single-column formatting of "use=" (e.g., in tic)
        + modify tic to read full terminfo-names
        + autogenerate development header-dependencies (config.h, *.priv.h)
        + corrected single-column formatting of "use=" (e.g., in tic)
        + modify tic to read full terminfo-names
-       + corrected divide-by-zero that caused hang (or worse) when redirecting output
+       + corrected divide-by-zero that caused hang (or worse) when redirecting
+         output
        + modify tic to generate directories only as-needed (and corrected
          instance of use of data from function that had already returned).
 
        + modify tic to generate directories only as-needed (and corrected
          instance of use of data from function that had already returned).
 
@@ -4271,10 +5489,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
   takes a trace mask argument.  The trace masks, defined in curses.h, are
   as follows:
 
   takes a trace mask argument.  The trace masks, defined in curses.h, are
   as follows:
 
-       #define TRACE_DISABLE   0x00    /* turn off tracing */
-       #define TRACE_ORDINARY  0x01    /* ordinary trace mode */
-       #define TRACE_CHARPUT   0x02    /* also trace all character outputs */
-       #define TRACE_MAXIMUM   0x0f    /* maximum trace level */
+       #define TRACE_DISABLE   0x00    /* turn off tracing */
+       #define TRACE_ORDINARY  0x01    /* ordinary trace mode */
+       #define TRACE_CHARPUT   0x02    /* also trace all character outputs */
+       #define TRACE_MAXIMUM   0x0f    /* maximum trace level */
 
   More trace masks may be added, or these may be changed, in future releases.
 * The pad code has been improved and the pad test code in test/ncurses.c has
 
   More trace masks may be added, or these may be changed, in future releases.
 * The pad code has been improved and the pad test code in test/ncurses.c has
@@ -4562,7 +5780,7 @@ available separately from netcom.com:pub/zmbenhal/
 * New scrolling code.
 * fixed bug that reversed the sense of nl() and nonl().
 
 * New scrolling code.
 * fixed bug that reversed the sense of nl() and nonl().
 
-#### ncurses 0.2 -> ncurses 0.3  #### Jan 20, 1993 ####
+#### ncurses 0.2 -> ncurses 0.3 #### Jan 20, 1993 ####
 * more support for color and graphics see test/ for examples.
 * fixed various files to allow correct update after shelling out.
 * more fixes for updates.
 * more support for color and graphics see test/ for examples.
 * fixed various files to allow correct update after shelling out.
 * more fixes for updates.
index 3f3d526a94e42d161d110574baecfda063fd2792..0605e67bd444d4ab1dd542689c3fb538624edfc7 100644 (file)
@@ -1,4 +1,4 @@
--- $Id: README.emx,v 1.4 2000/09/16 19:28:28 tom Exp $
+-- $Id: README.emx,v 1.6 2002/09/07 17:03:19 tom Exp $
 -- Author: Thomas Dickey
 -------------------------------------------------------------------------------
 
 -- Author: Thomas Dickey
 -------------------------------------------------------------------------------
 
@@ -16,13 +16,13 @@ the EMX development tools, of course.  Get these programs to start:
 
 Apply the autoconf patches from
 
 
 Apply the autoconf patches from
 
-       http://dickey.his.com/autoconf
-       ftp://dickey.his.com/autoconf
+       http://invisible-island.net/autoconf
+       ftp://invisible-island.net/autoconf
 
 These are ordered by date:
 
 
 These are ordered by date:
 
-       autoconf-2.13-20000819.patch.gz
-       autoconf-2.13-20000819-emx.patch.gz
+       autoconf-2.13-20020210.patch.gz
+       autoconf-2.13-20020210-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,
 
 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 21e8ee0ca9ebd9a719758cdfd6439a2e0be75837..e99051f5503bf5ba58ffcf7c01a82c52f02a8bdf 100644 (file)
--- a/TO-DO
+++ b/TO-DO
@@ -1,4 +1,4 @@
--- $Id: TO-DO,v 1.39 1998/07/12 00:25:39 tom Exp $
+-- $Id: TO-DO,v 1.41 2002/08/31 21:32:43 tom Exp $
 
 SHORT-TERM TO-DO ITEMS:
 
 
 SHORT-TERM TO-DO ITEMS:
 
@@ -7,12 +7,6 @@ Known Problems:
 * GNAT does not put libraries in the correct order, so a build only links
   properly if you use shared libraries since -lncurses is first.
 
 * GNAT does not put libraries in the correct order, so a build only links
   properly if you use shared libraries since -lncurses is first.
 
-* XPG4 specifies that the enhanced features are not available unless the
-  _XOPEN_SOURCE_EXTENDED test macro is defined by the application.  Ncurses uses
-  this macro (incorrectly) to address a dependency upon wchar_t.  The functions
-  which use wchar_t are not implemented, so the effect of the test macro is
-  pointless.
-
 * 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.
 * 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.
@@ -37,6 +31,9 @@ Known Problems:
 * 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.
+
 Portability (or lack thereof):
 
 * Users of older System V UNIXes (but not Solaris, and probably not SVr4)
 Portability (or lack thereof):
 
 * Users of older System V UNIXes (but not Solaris, and probably not SVr4)
@@ -86,6 +83,8 @@ Untested features:
   label_on, plab_norm, lab_f*) has not been tested.  The label_format and
   lab_f* capabilities aren't presently used.
 
   label_on, plab_norm, lab_f*) has not been tested.  The label_format and
   lab_f* capabilities aren't presently used.
 
+* The wide-character input functions need testing.
+
 LONGER-TERM TO-DO ITEMS:
 
 1. Extended COSE conformance
 LONGER-TERM TO-DO ITEMS:
 
 1. Extended COSE conformance
@@ -95,68 +94,9 @@ of the SVr4 API.  The library is BASE conformant with this standard.
 We would like to make ncurses fully conformant at the EXTENDED level
 supporting internationalization.
 
 We would like to make ncurses fully conformant at the EXTENDED level
 supporting internationalization.
 
-Here are page references to all material involving wide or multi-byte
-characters in Issue 4 of the XSI Curses standard, with notes on their
-status in this implementation:
-
-       Page 1 (1.1.2) New Features discussion of internationalization.
-       Page 12 (2.4): Definition of cchar_t, wchar_t.
-       Page 16 (3.3.2): Introduction of multi-column characters.
-       Page 17-18 (3.3.5): Description of non-spacing characters.
-       Page 19-21 (3.4.2): Basic character operations.
-       Page 34 (addnstr): These should now call underlying wide-
-character functions, and do (through waddnstr) if _XOPEN_SOURCE_EXTENDED is on).
-       Page 35 (addnwstr): wide-character add-string functions.  All macros 
-except waddnwstr() which is not yet defined.
-       Page 36 (add_wch): wide-character add-char functions.  All macros 
-except wadd_wch() which is not yet defined.
-       Page 39 (attr_get): implemented -- we've just made the current-
-attributes field of the window an attr_t.
-       Page 43 (bkgrnd):  None of these are implemented.
-       Page 45 (border_set): Neither of these is implemented.
-       Page 47 (box_set): box_set implemented as macro, but the underlying
-wborder_set() is not yet defined.
-       Page 78 (echo_wchar): echo_wchar() implemented as macro, underlying
-wecho_wchar() not yet implemented.
-       Page 81 (erasechar): Neither entry point is implemented.
-       Page 87 (getbkgrnd): Not implemented.
-       Page 88 (getcchar): Not implemented.
-       Page 93 (getn_wstr): All implemented (as macros) except the
-underlying wgetn_wstr().
-       Page 97 (get_wch):  All implemented (as macros) except the
-underlying wget_wch().
-       Page 99 (get_wstr): Xref to page 93.
-       Page 105 (hline_set): All implemented (as macros) except the
-underlying whline_set(), wvline_set().
-       Page 114 (innstr): Multi-byte character-completeness check is
-not implemented.
-       Page 115 (innwstr): All implemented (as macros) except the
-underlying winnw_str().
-       Page 119 (insnstr): Implementation may not be correct for multi-byte
-characters.
-       Page 120 (ins_nwstr): Not implemented.
-       Page 121 (insstr): Xref to page 119.
-       Page 122 (instr): Xref to page 119.
-       Page 123 (ins_wch): Not implemented.
-       Page 124 (ins_wstr): Xref to page 120.
-       Page 126 (in_wch): Not implemented.
-       Page 127 (in_wchnstr): Not implemented.
-       Page 128 (inwstr): Xref to page 115.
-       Page 133 (killwchar): killwchar not implemented.
-       Page 158 (pechochar): pecho_wchar() not implemented.
-       Page 176 (setcchar): Not implemented.
-       Page 181 (slk_attroff): slk_wset not implemented.
-       Page 200 (ungetch): unget_wch() not implemented.
-       Page 203 (vidattr): vid_attr() and vid_puts() not implemented.
-       Page 206 (vline_set): Xref to page 105.
-       Page 214 (wunctrl): Not implemented.
-       Page 216 (curses.h): cchar_t, wint_t, wchar_t references.
-       Page 220 (curses.h): KEY_CODE_YES
-
-Basically, the macro superstructure is there but the core is absent.  We
-need better multi-locale support guarantees from the OS to finish this.
-If you are working on internationalization support, please contact us so
-we can cooperate.
+Current status:
+       pecho_wchar() not implemented.
+       slk_wset not implemented.
 
 2. DOS port
 
 
 2. DOS port
 
index 6782f0fb183fdad6083f570690e1c6cab1e07af2..19f9bd58334516471def956167a15ef8183b82d1 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
 dnl***************************************************************************
-dnl Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+dnl Copyright (c) 1998-2000,2001,2002 Free Software Foundation, Inc.         *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,12 +26,12 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000
+dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000,2001
 dnl
 dnl
-dnl $Id: aclocal.m4,v 1.238 2000/10/20 22:57:49 tom Exp $
+dnl $Id: aclocal.m4,v 1.285 2002/09/21 23:59:01 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl Macros used in NCURSES auto-configuration script.
 dnl
-dnl See http://dickey.his.com/autoconf/ for additional information.
+dnl See http://invisible-island.net/autoconf/ for additional information.
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
@@ -55,16 +55,52 @@ elif test "$includedir" != "/usr/include"; then
        fi
 fi
 AC_SUBST(ACPPFLAGS)
        fi
 fi
 AC_SUBST(ACPPFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+dnl The second parameter if given makes this macro verbose.
+AC_DEFUN([CF_ADD_CFLAGS],
+[
+cf_new_cflags=
+cf_new_cppflags=
+for cf_add_cflags in $1
+do
+       case $cf_add_cflags in #(vi
+       -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+               case "$CPPFLAGS" in
+               *$cf_add_cflags) #(vi
+                       ;;
+               *) #(vi
+                       cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+                       ;;
+               esac
+               ;;
+       *)
+               cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+               ;;
+       esac
+done
+
+if test -n "$cf_new_cflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
+       CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
+       CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
+
 ])dnl
 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],
 [
 ])dnl
 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_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
-AC_CACHE_VAL(cf_cv_ansi_cc,[
+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_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
 # Don't try gcc -ansi; that turns off useful extensions and
 # breaks some systems' header files.
 # AIX                  -qlanglvl=ansi
@@ -80,7 +116,7 @@ for cf_arg in "-DCC_HAS_PROTOS" \
        "-Aa -D_HPUX_SOURCE" \
        -Xc
 do
        "-Aa -D_HPUX_SOURCE" \
        -Xc
 do
-       CFLAGS="$cf_save_CFLAGS $cf_arg"
+       CF_ADD_CFLAGS($cf_arg)
        AC_TRY_COMPILE(
 [
 #ifndef CC_HAS_PROTOS
        AC_TRY_COMPILE(
 [
 #ifndef CC_HAS_PROTOS
@@ -95,12 +131,12 @@ choke me
        [cf_cv_ansi_cc="$cf_arg"; break])
 done
 CFLAGS="$cf_save_CFLAGS"
        [cf_cv_ansi_cc="$cf_arg"; break])
 done
 CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
 ])
 ])
-AC_MSG_RESULT($cf_cv_ansi_cc)
 
 if test "$cf_cv_ansi_cc" != "no"; then
 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
 
 if test "$cf_cv_ansi_cc" != "no"; then
 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-       CFLAGS="$CFLAGS $cf_cv_ansi_cc"
+       CF_ADD_CFLAGS($cf_cv_ansi_cc)
 else
        AC_DEFINE(CC_HAS_PROTOS)
 fi
 else
        AC_DEFINE(CC_HAS_PROTOS)
 fi
@@ -131,6 +167,9 @@ dnl Treat the configuration-variable specially here, since we're directly
 dnl substituting its value (i.e., 1/0).
 AC_DEFUN([CF_BOOL_DECL],
 [
 dnl substituting its value (i.e., 1/0).
 AC_DEFUN([CF_BOOL_DECL],
 [
+AC_CHECK_HEADER(stdbool.h,
+       cf_cv_header_stdbool_h=1,
+       cf_cv_header_stdbool_h=0)
 AC_MSG_CHECKING([for builtin bool type])
 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
        AC_TRY_COMPILE([
 AC_MSG_CHECKING([for builtin bool type])
 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
        AC_TRY_COMPILE([
@@ -148,6 +187,9 @@ fi
 dnl ---------------------------------------------------------------------------
 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
 dnl Don't bother looking for bool.h, since it's been deprecated.
 dnl ---------------------------------------------------------------------------
 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
 dnl Don't bother looking for bool.h, since it's been deprecated.
+dnl
+dnl If the current compiler is C rather than C++, we get the bool definition
+dnl from <stdbool.h>.
 AC_DEFUN([CF_BOOL_SIZE],
 [
 AC_MSG_CHECKING([for size of bool])
 AC_DEFUN([CF_BOOL_SIZE],
 [
 AC_MSG_CHECKING([for size of bool])
@@ -156,6 +198,9 @@ AC_CACHE_VAL(cf_cv_type_of_bool,[
        AC_TRY_RUN([
 #include <stdlib.h>
 #include <stdio.h>
        AC_TRY_RUN([
 #include <stdlib.h>
 #include <stdio.h>
+
+#if defined(__cplusplus)
+
 #ifdef HAVE_GXX_BUILTIN_H
 #include <g++/builtin.h>
 #elif HAVE_GPP_BUILTIN_H
 #ifdef HAVE_GXX_BUILTIN_H
 #include <g++/builtin.h>
 #elif HAVE_GPP_BUILTIN_H
@@ -163,6 +208,15 @@ AC_CACHE_VAL(cf_cv_type_of_bool,[
 #elif HAVE_BUILTIN_H
 #include <builtin.h>
 #endif
 #elif HAVE_BUILTIN_H
 #include <builtin.h>
 #endif
+
+#else
+
+#if $cf_cv_header_stdbool_h
+#include <stdbool.h>
+#endif
+
+#endif
+
 main()
 {
        FILE *fp = fopen("cf_test.out", "w");
 main()
 {
        FILE *fp = fopen("cf_test.out", "w");
@@ -179,15 +233,21 @@ main()
        exit(0);
 }
                ],
        exit(0);
 }
                ],
-               [cf_cv_type_of_bool=`cat cf_test.out`],
+               [cf_cv_type_of_bool=`cat cf_test.out`
+                if test -z "$cf_cv_type_of_bool"; then
+                  cf_cv_type_of_bool=unknown
+                fi],
                [cf_cv_type_of_bool=unknown],
                [cf_cv_type_of_bool=unknown])
        ])
        rm -f cf_test.out
 AC_MSG_RESULT($cf_cv_type_of_bool)
 if test "$cf_cv_type_of_bool" = unknown ; then
                [cf_cv_type_of_bool=unknown],
                [cf_cv_type_of_bool=unknown])
        ])
        rm -f cf_test.out
 AC_MSG_RESULT($cf_cv_type_of_bool)
 if test "$cf_cv_type_of_bool" = unknown ; then
-       AC_MSG_WARN(Assuming unsigned for type of bool)
-       cf_cv_type_of_bool=unsigned
+       case .$NCURSES_BOOL in #(vi
+       .auto|.) NCURSES_BOOL=unsigned;;
+       esac
+       AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
+       cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -207,7 +267,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
 if test "x$prefix" = "xNONE" ; then
        case "$cf_cv_system_name" in
                # non-vendor systems don't have a conflict
-       openbsd*|netbsd*|freebsd*|linux*)
+       openbsd*|netbsd*|freebsd*|linux*|cygwin*)
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
@@ -286,7 +346,7 @@ test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
 
 test -z "$system_name" && system_name="$cf_cv_system_name"
 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
 
 test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && AC_MSG_RESULT("Configuring for $cf_cv_system_name")
+test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
        AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
        AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
@@ -298,14 +358,10 @@ dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
 dnl ourselves.
 dnl
 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
 dnl ourselves.
 dnl
-dnl (I would use AC_CACHE_CHECK here, but it will not work when called in a
-dnl loop from CF_SYS_ERRLIST).
-dnl
 dnl $1 = the name to check
 AC_DEFUN([CF_CHECK_ERRNO],
 [
 dnl $1 = the name to check
 AC_DEFUN([CF_CHECK_ERRNO],
 [
-AC_MSG_CHECKING(if external $1 is declared)
-AC_CACHE_VAL(cf_cv_dcl_$1,[
+AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
     AC_TRY_COMPILE([
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
     AC_TRY_COMPILE([
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -314,16 +370,12 @@ AC_CACHE_VAL(cf_cv_dcl_$1,[
 #include <sys/types.h>
 #include <errno.h> ],
     [long x = (long) $1],
 #include <sys/types.h>
 #include <errno.h> ],
     [long x = (long) $1],
-    [eval 'cf_cv_dcl_'$1'=yes'],
-    [eval 'cf_cv_dcl_'$1'=no'])
+    [cf_cv_dcl_$1=yes],
+    [cf_cv_dcl_$1=no])
 ])
 
 ])
 
-eval 'cf_result=$cf_cv_dcl_'$1
-AC_MSG_RESULT($cf_result)
-
-if test "$cf_result" = no ; then
-    eval 'cf_result=DECL_'$1
-    CF_UPPER(cf_result,$cf_result)
+if test "$cf_cv_dcl_$1" = no ; then
+    CF_UPPER(cf_result,decl_$1)
     AC_DEFINE_UNQUOTED($cf_result)
 fi
 
     AC_DEFINE_UNQUOTED($cf_result)
 fi
 
@@ -337,22 +389,18 @@ dnl $1 = the name to check
 dnl $2 = its type
 AC_DEFUN([CF_CHECK_EXTERN_DATA],
 [
 dnl $2 = its type
 AC_DEFUN([CF_CHECK_EXTERN_DATA],
 [
-AC_MSG_CHECKING(if external $1 exists)
-AC_CACHE_VAL(cf_cv_have_$1,[
+AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
     AC_TRY_LINK([
 #undef $1
 extern $2 $1;
 ],
     [$1 = 2],
     AC_TRY_LINK([
 #undef $1
 extern $2 $1;
 ],
     [$1 = 2],
-    [eval 'cf_cv_have_'$1'=yes'],
-    [eval 'cf_cv_have_'$1'=no'])])
-
-eval 'cf_result=$cf_cv_have_'$1
-AC_MSG_RESULT($cf_result)
+    [cf_cv_have_$1=yes],
+    [cf_cv_have_$1=no])
+])
 
 
-if test "$cf_result" = yes ; then
-    eval 'cf_result=HAVE_'$1
-    CF_UPPER(cf_result,$cf_result)
+if test "$cf_cv_have_$1" = yes ; then
+    CF_UPPER(cf_result,have_$1)
     AC_DEFINE_UNQUOTED($cf_result)
 fi
 
     AC_DEFINE_UNQUOTED($cf_result)
 fi
 
@@ -363,8 +411,9 @@ dnl is a late feature for the standard and is not in some recent compilers
 dnl (1999/9/11).
 AC_DEFUN([CF_CPP_PARAM_INIT],
 [
 dnl (1999/9/11).
 AC_DEFUN([CF_CPP_PARAM_INIT],
 [
-if test "$CXX" = yes ; then
+if test -n "$CXX"; then
 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
+       AC_LANG_SAVE
        AC_LANG_CPLUSPLUS
        AC_TRY_RUN([
 class TEST {
        AC_LANG_CPLUSPLUS
        AC_TRY_RUN([
 class TEST {
@@ -384,18 +433,102 @@ void main() { }
        [cf_cv_cpp_param_init=yes],
        [cf_cv_cpp_param_init=no],
        [cf_cv_cpp_param_init=unknown])
        [cf_cv_cpp_param_init=yes],
        [cf_cv_cpp_param_init=no],
        [cf_cv_cpp_param_init=unknown])
+       AC_LANG_RESTORE
 ])
 fi
 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
 ])dnl
 dnl ---------------------------------------------------------------------------
 ])
 fi
 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Check if the g++ compiler supports vscan function (not a standard feature).
+AC_DEFUN([CF_CPP_VSCAN_FUNC],
+[
+if test -n "$CXX"; then
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_CHECK_HEADERS(strstream.h)
+
+AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
+       for cf_vscan_func in strstream strstream_cast stdio
+       do
+       case $cf_vscan_func in #(vi
+       stdio)          cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
+       strstream)      cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
+       strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
+       esac
+       AC_TRY_LINK([
+#include <stdio.h>
+#include <stdarg.h>
+#define $cf_vscan_defs 1
+#if defined(USE_STDIO_VSCAN)
+#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
+#include <strstream.h>
+#endif
+
+int scanw(const char* fmt, ...)
+{
+    int result = -1;
+    char buf[BUFSIZ];
+
+    va_list args;
+    va_start(args, fmt);
+#if defined(USE_STDIO_VSCAN)
+    if (::vsscanf(buf, fmt, args) != -1)
+       result = 0;
+#elif defined(USE_STRSTREAM_VSCAN)
+    strstreambuf ss(buf, sizeof(buf));
+    if (ss.vscan(fmt, args) != -1)
+       result = 0;
+#elif defined(USE_STRSTREAM_VSCAN_CAST)
+    strstreambuf ss(buf, sizeof(buf));
+    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+       result = 0;
+#else
+#error case $cf_vscan_func failed
+#endif
+    va_end(args);
+    return result;
+}
+],[int tmp, foo = scanw("%d", &tmp)],
+       [cf_cv_cpp_vscan_func=$cf_vscan_func; break],
+       [cf_cv_cpp_vscan_func=no])
+       test "$cf_cv_cpp_vscan_func" != no && break
+       done
+])
+
+AC_LANG_RESTORE
+fi
+
+case $cf_cv_cpp_vscan_func in #(vi
+stdio) #(vi
+       AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+       AC_DEFINE(USE_STDIO_VSCAN)
+       ;;
+strstream)
+       AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+       AC_DEFINE(USE_STRSTREAM_VSCAN)
+       ;;
+strstream_cast)
+       AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+       AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
+       ;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl "dirname" is not portable, so we fake it with a shell script.
+AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's:/[[^/]]*$::'`])dnl
+dnl ---------------------------------------------------------------------------
 AC_DEFUN([CF_DIRS_TO_MAKE],
 [
 DIRS_TO_MAKE="lib"
 for cf_item in $cf_list_models
 do
        CF_OBJ_SUBDIR($cf_item,cf_subdir)
 AC_DEFUN([CF_DIRS_TO_MAKE],
 [
 DIRS_TO_MAKE="lib"
 for cf_item in $cf_list_models
 do
        CF_OBJ_SUBDIR($cf_item,cf_subdir)
-       DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
+       for cf_item2 in $DIRS_TO_MAKE
+       do
+               test $cf_item2 = $cf_subdir && break
+       done
+       test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
 done
 for cf_dir in $DIRS_TO_MAKE
 do
 done
 for cf_dir in $DIRS_TO_MAKE
 do
@@ -519,6 +652,49 @@ tcgetattr(1, &foo);],
 [cf_cv_have_tcgetattr=yes],
 [cf_cv_have_tcgetattr=no])])
 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
 [cf_cv_have_tcgetattr=yes],
 [cf_cv_have_tcgetattr=no])])
 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Check for vsscanf() function, which is in c9x but generally not in earlier
+dnl versions of C.  It is in the GNU C library, and can often be simulated by
+dnl other functions.
+AC_DEFUN([CF_FUNC_VSSCANF],
+[
+AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
+AC_TRY_LINK([
+#include <stdarg.h>
+#include <stdio.h>],[
+       va_list ap;
+       vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
+AC_TRY_LINK([
+#include <stdarg.h>
+#include <stdio.h>],[
+    FILE strbuf;
+    char *str = "from";
+
+    strbuf._flag = _IOREAD;
+    strbuf._ptr = strbuf._base = (unsigned char *) str;
+    strbuf._cnt = strlen(str);
+    strbuf._file = _NFILE;
+    return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
+AC_TRY_LINK([
+#include <stdarg.h>
+#include <stdio.h>],[
+    FILE strbuf;
+    char *str = "from";
+
+    strbuf._flag = _IOREAD;
+    strbuf._ptr = strbuf._base = (unsigned char *) str;
+    strbuf._cnt = strlen(str);
+    strbuf._file = _NFILE;
+    return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
+cf_cv_func_vsscanf=no])])])])
+
+case $cf_cv_func_vsscanf in #(vi
+vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
+vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
+_doscan) AC_DEFINE(HAVE__DOSCAN);;
+esac
+
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
@@ -545,7 +721,6 @@ EOF
 if test "$GCC" = yes
 then
        AC_CHECKING([for $CC __attribute__ directives])
 if test "$GCC" = yes
 then
        AC_CHECKING([for $CC __attribute__ directives])
-       changequote(,)dnl
 cat > conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 #include "confdefs.h"
 cat > conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 #include "confdefs.h"
@@ -564,9 +739,8 @@ cat > conftest.$ac_ext <<EOF
 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern void foo(void) GCC_NORETURN;
 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
+int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
 EOF
 EOF
-       changequote([,])dnl
        for cf_attribute in scanf printf unused noreturn
        do
                CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
        for cf_attribute in scanf printf unused noreturn
        do
                CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
@@ -611,12 +785,10 @@ AC_DEFUN([CF_GCC_WARNINGS],
 [
 if test "$GCC" = yes
 then
 [
 if test "$GCC" = yes
 then
-       changequote(,)dnl
        cat > conftest.$ac_ext <<EOF
 #line __oline__ "configure"
        cat > conftest.$ac_ext <<EOF
 #line __oline__ "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
 EOF
 EOF
-       changequote([,])dnl
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
@@ -632,7 +804,8 @@ EOF
                Wnested-externs \
                Wpointer-arith \
                Wshadow \
                Wnested-externs \
                Wpointer-arith \
                Wshadow \
-               Wstrict-prototypes $cf_warn_CONST
+               Wstrict-prototypes \
+               Wundef $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
                if AC_TRY_EVAL(ac_compile); then
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
                if AC_TRY_EVAL(ac_compile); then
@@ -673,11 +846,10 @@ dnl ---------------------------------------------------------------------------
 dnl Verify Version of GNAT.
 AC_DEFUN([CF_GNAT_VERSION],
 [
 dnl Verify Version of GNAT.
 AC_DEFUN([CF_GNAT_VERSION],
 [
-changequote(<<, >>)dnl
-cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
-  sed -e 's/[^0-9 \.]//g' | $AWK '{print $<<1>>;}'`
+cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
+  sed -e 's/[[^0-9 \.]]//g' | $AWK '{print $[1];}'`
 case $cf_cv_gnat_version in
 case $cf_cv_gnat_version in
-  3.1[1-9]*|3.[2-9]*|[4-9].*)
+  3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
     cf_cv_prog_gnat_correct=yes
     ;;
   *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
     cf_cv_prog_gnat_correct=yes
     ;;
   *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
@@ -685,7 +857,7 @@ case $cf_cv_gnat_version in
      ;;
 esac
 case $cf_cv_gnat_version in
      ;;
 esac
 case $cf_cv_gnat_version in
-  3.1*|[4-9].*)
+  3.1*|[[4-9]].*)
       cf_compile_generics=generics
       cf_generic_objects="\$(GENOBJS)"
       ;;
       cf_compile_generics=generics
       cf_generic_objects="\$(GENOBJS)"
       ;;
@@ -693,9 +865,36 @@ case $cf_cv_gnat_version in
       cf_generic_objects=
       ;;
 esac
       cf_generic_objects=
       ;;
 esac
-changequote([, ])dnl
 ])
 dnl ---------------------------------------------------------------------------
 ])
 dnl ---------------------------------------------------------------------------
+dnl Check if we must define _GNU_SOURCE to get a reasonable value for
+dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
+dnl (or misfeature) of glibc2, which breaks portability of many applications,
+dnl since it is interwoven with GNU extensions.
+dnl
+dnl Well, yes we could work around it...
+AC_DEFUN([CF_GNU_SOURCE],
+[
+AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
+AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _XOPEN_SOURCE
+make an error
+#endif],
+       [cf_cv_gnu_source=no],
+       [cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+        AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _XOPEN_SOURCE
+make an error
+#endif],
+       [cf_cv_gnu_source=no],
+       [cf_cv_gnu_source=yes])
+       CPPFLAGS="$cf_save"
+       ])
+])
+test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl If we're trying to use g++, test if libg++ is installed (a rather common
 dnl problem :-).  If we have the compiler but no library, we'll be able to
 dnl configure, but won't be able to build the c++ demo program.
 dnl If we're trying to use g++, test if libg++ is installed (a rather common
 dnl problem :-).  If we have the compiler but no library, we'll be able to
 dnl configure, but won't be able to build the c++ demo program.
@@ -780,12 +979,32 @@ AC_MSG_RESULT($cf_cv_have_isascii)
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
 ])dnl
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Check for libutf8
+AC_DEFUN([CF_LIBUTF8],
+[
+AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
+       cf_save_LIBS="$LIBS"
+       LIBS="-lutf8 $LIBS"
+AC_TRY_LINK([
+#include <libutf8.h>],[putwc(0,0);],
+       [cf_cv_libutf8=yes],
+       [cf_cv_libutf8=no])
+       LIBS="$cf_save_LIBS"
+])
+
+if test "$cf_cv_libutf8" = yes ; then
+       AC_DEFINE(HAVE_LIBUTF8_H)
+       LIBS="-lutf8 $LIBS"
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
 AC_DEFUN([CF_LIB_PREFIX],
 [
        case $cf_cv_system_name in
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
 AC_DEFUN([CF_LIB_PREFIX],
 [
        case $cf_cv_system_name in
-       os2)    LIB_PREFIX=''     ;;
+       OS/2*)  LIB_PREFIX=''     ;;
+       os2*)   LIB_PREFIX=''     ;;
        *)      LIB_PREFIX='lib'  ;;
        esac
 ifelse($1,,,[$1=$LIB_PREFIX])
        *)      LIB_PREFIX='lib'  ;;
        esac
 ifelse($1,,,[$1=$LIB_PREFIX])
@@ -811,43 +1030,70 @@ for cf_dir in $SRC_SUBDIRS
 do
        if test -f $srcdir/$cf_dir/modules; then
 
 do
        if test -f $srcdir/$cf_dir/modules; then
 
-               cf_libs_to_make=
+               IMPORT_LIB=
+               SHARED_LIB=
+               LIBS_TO_MAKE=
                for cf_item in $CF_LIST_MODELS
                do
                        CF_LIB_SUFFIX($cf_item,cf_suffix)
                        if test $cf_item = shared ; then
                        if test "$cf_cv_do_symlinks" = yes ; then
                                case "$cf_cv_shlib_version" in #(vi
                for cf_item in $CF_LIST_MODELS
                do
                        CF_LIB_SUFFIX($cf_item,cf_suffix)
                        if test $cf_item = shared ; then
                        if test "$cf_cv_do_symlinks" = yes ; then
                                case "$cf_cv_shlib_version" in #(vi
-                               rel) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; #(vi
-                               abi) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
+                               rel) #(vi
+                                       case "$cf_cv_system_name" in #(vi
+                                       darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+                                       *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
+                                       esac
+                                       ;;
+                               abi)
+                                       case "$cf_cv_system_name" in #(vi
+                                       darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+                                       *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
+                                       esac
+                                       ;;
                                esac
                        fi
                                esac
                        fi
+                       # cygwin needs import library, and has unique naming convention
+                       if test $cf_cv_shlib_version = cygdll ; then
+                               SHARED_LIB="../lib/${cf_prefix}${cf_dir}\$(ABI_VERSION).dll"
+                               IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
+                               LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
+                               continue
+                       fi
                        fi
                        fi
-                       cf_libs_to_make="$cf_libs_to_make ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
+                       LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
                done
 
                if test $cf_dir = ncurses ; then
                done
 
                if test $cf_dir = ncurses ; then
+                       cf_subsets="$LIB_SUBSETS"
                        case "$LIB_SUBSETS" in #(vi
                        termlib+*) #(vi
                                ;;
                        *) #(vi
                        case "$LIB_SUBSETS" in #(vi
                        termlib+*) #(vi
                                ;;
                        *) #(vi
-                               cf_item=`echo $cf_libs_to_make |sed -e s/$LIB_NAME/$TINFO_NAME/g`
-                               cf_libs_to_make="$cf_item $cf_libs_to_make"
+                               cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
+                               LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
                                ;;
                        esac
                                ;;
                        esac
+               else
+                       cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib //'`
                fi
 
                fi
 
-               sed -e "s@\@LIBS_TO_MAKE\@@$cf_libs_to_make@" \
+               sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
+                   -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
+                   -e "s%@SHARED_LIB@%$SHARED_LIB%" \
                        $cf_dir/Makefile >$cf_dir/Makefile.out
                mv $cf_dir/Makefile.out $cf_dir/Makefile
 
                $AWK -f $srcdir/mk-0th.awk \
                        $cf_dir/Makefile >$cf_dir/Makefile.out
                mv $cf_dir/Makefile.out $cf_dir/Makefile
 
                $AWK -f $srcdir/mk-0th.awk \
-                       name=$cf_dir \
+                       libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
                        $srcdir/$cf_dir/modules >>$cf_dir/Makefile
 
                        $srcdir/$cf_dir/modules >>$cf_dir/Makefile
 
-               for cf_item in $CF_LIST_MODELS
+               for cf_subset in $cf_subsets
                do
                do
-                       echo 'Appending rules for '$cf_item' model ('$cf_dir')'
+                       cf_subdirs=
+                       for cf_item in $CF_LIST_MODELS
+                       do
+                       echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
                        CF_UPPER(CF_ITEM,$cf_item)
                        CF_LIB_SUFFIX($cf_item,cf_suffix)
                        CF_OBJ_SUBDIR($cf_item,cf_subdir)
                        CF_UPPER(CF_ITEM,$cf_item)
                        CF_LIB_SUFFIX($cf_item,cf_suffix)
                        CF_OBJ_SUBDIR($cf_item,cf_subdir)
@@ -867,8 +1113,6 @@ do
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
-                       for cf_subset in $LIB_SUBSETS
-                       do
                        $AWK -f $srcdir/mk-1st.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
                        $AWK -f $srcdir/mk-1st.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
@@ -878,6 +1122,7 @@ do
                                suffix=$cf_suffix \
                                subset=$cf_subset \
                                ShlibVer=$cf_cv_shlib_version \
                                suffix=$cf_suffix \
                                subset=$cf_subset \
                                ShlibVer=$cf_cv_shlib_version \
+                               ShlibVerInfix=$cf_cv_shlib_version_infix \
                                DoLinks=$cf_cv_do_symlinks \
                                rmSoLocs=$cf_cv_rm_so_locs \
                                ldconfig="$LDCONFIG" \
                                DoLinks=$cf_cv_do_symlinks \
                                rmSoLocs=$cf_cv_rm_so_locs \
                                ldconfig="$LDCONFIG" \
@@ -885,7 +1130,11 @@ do
                                depend="$cf_depend" \
                                target="$target" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                                depend="$cf_depend" \
                                target="$target" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-                       test $cf_dir = ncurses && WITH_OVERWRITE=no
+                       for cf_subdir2 in $cf_subdirs lib
+                       do
+                               test $cf_subdir = $cf_subdir2 && break
+                       done
+                       test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
@@ -895,6 +1144,7 @@ do
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+                       cf_subdirs="$cf_subdirs $cf_subdir"
                        done
                done
        fi
                        done
                done
        fi
@@ -950,11 +1200,11 @@ done
 
 cat >> Makefile <<CF_EOF
 
 
 cat >> Makefile <<CF_EOF
 
-install.data \
+install.data \\
 uninstall.data ::
 uninstall.data ::
-       cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
+$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
 
 
-install.man \
+install.man \\
 uninstall.man ::
        cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
 
 uninstall.man ::
        cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
 
@@ -969,7 +1219,7 @@ if test -d tack ; then
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
 
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
 
-install.man \
+install.man \\
 uninstall.man ::
        cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
 CF_EOF
 uninstall.man ::
        cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
 CF_EOF
@@ -1053,6 +1303,9 @@ test "\$NAME" = "curses.h" && NAME=ncurses.h
 CF_EOF
 fi
 cat >>headers.sh <<CF_EOF
 CF_EOF
 fi
 cat >>headers.sh <<CF_EOF
+# Just in case someone gzip'd manpages, remove the conflicting copy.
+test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
+
 eval \$PRG \$TMPSRC \$DST/\$NAME
 rm -f \$TMPSRC \$TMPSED
 CF_EOF
 eval \$PRG \$TMPSRC \$DST/\$NAME
 rm -f \$TMPSRC \$TMPSED
 CF_EOF
@@ -1064,7 +1317,7 @@ do
        if test -f $srcdir/$cf_dir/headers; then
        cat >>$cf_dir/Makefile <<CF_EOF
 \$(DESTDIR)\$(includedir) :
        if test -f $srcdir/$cf_dir/headers; then
        cat >>$cf_dir/Makefile <<CF_EOF
 \$(DESTDIR)\$(includedir) :
-       \$(srcdir)/../mkinstalldirs \[$]@
+       sh \$(srcdir)/../mkinstalldirs \[$]@
 
 install \\
 install.libs \\
 
 install \\
 install.libs \\
@@ -1096,6 +1349,17 @@ CF_EOF
                        test $i = curses.h && echo "    -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
                done
        fi
                        test $i = curses.h && echo "    -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
                done
        fi
+
+       if test -f $srcdir/$cf_dir/modules; then
+               if test "$cf_dir" != "c++" ; then
+                       cat >>$cf_dir/Makefile <<"CF_EOF"
+depend : $(AUTO_SRC)
+       makedepend -- $(CPPFLAGS) -- $(C_SRC)
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+CF_EOF
+               fi
+       fi
 done
 
 ])dnl
 done
 
 ])dnl
@@ -1114,6 +1378,8 @@ AC_DEFUN([CF_LIB_SUFFIX],
        profile) $2='_p.a' ;;
        shared)
                case $cf_cv_system_name in
        profile) $2='_p.a' ;;
        shared)
                case $cf_cv_system_name in
+               cygwin*) $2='.dll' ;;
+               darwin*) $2='.dylib' ;;
                hpux*)  $2='.sl'  ;;
                *)      $2='.so'  ;;
                esac
                hpux*)  $2='.sl'  ;;
                *)      $2='.so'  ;;
                esac
@@ -1146,18 +1412,15 @@ AC_DEFUN([CF_LINK_DATAONLY],
 AC_MSG_CHECKING([if data-only library module links])
 AC_CACHE_VAL(cf_cv_link_dataonly,[
        rm -f conftest.a
 AC_MSG_CHECKING([if data-only library module links])
 AC_CACHE_VAL(cf_cv_link_dataonly,[
        rm -f conftest.a
-       changequote(,)dnl
        cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
        cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
-int    testdata[3] = { 123, 456, 789 };
+int    testdata[[3]] = { 123, 456, 789 };
 EOF
 EOF
-       changequote([,])dnl
        if AC_TRY_EVAL(ac_compile) ; 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
        if AC_TRY_EVAL(ac_compile) ; 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
-       changequote(,)dnl
        cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 int    testfunc()
        cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 int    testfunc()
@@ -1165,14 +1428,13 @@ int     testfunc()
 #if defined(NeXT)
        exit(1);        /* I'm told this linker is broken */
 #else
 #if defined(NeXT)
        exit(1);        /* I'm told this linker is broken */
 #else
-       extern int testdata[3];
-       return testdata[0] == 123
-          &&  testdata[1] == 456
-          &&  testdata[2] == 789;
+       extern int testdata[[3]];
+       return testdata[[0]] == 123
+          &&  testdata[[1]] == 456
+          &&  testdata[[2]] == 789;
 #endif
 }
 EOF
 #endif
 }
 EOF
-       changequote([,])dnl
        if AC_TRY_EVAL(ac_compile); then
                mv conftest.o func.o && \
                ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
        if AC_TRY_EVAL(ac_compile); then
                mv conftest.o func.o && \
                ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
@@ -1194,7 +1456,12 @@ EOF
        LIBS="$cf_saveLIBS"
        ])
 AC_MSG_RESULT($cf_cv_link_dataonly)
        LIBS="$cf_saveLIBS"
        ])
 AC_MSG_RESULT($cf_cv_link_dataonly)
-test "$cf_cv_link_dataonly" = no && AC_DEFINE(BROKEN_LINKER)
+
+if test "$cf_cv_link_dataonly" = no ; then
+       AC_DEFINE(BROKEN_LINKER)
+       BROKEN_LINKER=1
+fi
+
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Most Unix systems have both link and symlink, a few don't have symlink.
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Most Unix systems have both link and symlink, a few don't have symlink.
@@ -1258,12 +1525,12 @@ dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
 dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
 AC_DEFUN([CF_MAKEFLAGS],
 [
 dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
 AC_DEFUN([CF_MAKEFLAGS],
 [
-AC_MSG_CHECKING([for makeflags variable])
-AC_CACHE_VAL(cf_cv_makeflags,[
+AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
        cf_cv_makeflags=''
        for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
        do
                cat >cf_makeflags.tmp <<CF_EOF
        cf_cv_makeflags=''
        for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
        do
                cat >cf_makeflags.tmp <<CF_EOF
+SHELL = /bin/sh
 all :
        @ echo '.$cf_option'
 CF_EOF
 all :
        @ echo '.$cf_option'
 CF_EOF
@@ -1283,8 +1550,9 @@ CF_EOF
                        ;;
                esac
        done
                        ;;
                esac
        done
-       rm -f cf_makeflags.tmp])
-AC_MSG_RESULT($cf_cv_makeflags)
+       rm -f cf_makeflags.tmp
+])
+
 AC_SUBST(cf_cv_makeflags)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(cf_cv_makeflags)
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -1318,15 +1586,17 @@ dnl ---------------------------------------------------------------------------
 dnl Option to allow user to override automatic configuration of manpage format.
 dnl There are several special cases.
 AC_DEFUN([CF_MANPAGE_FORMAT],
 dnl Option to allow user to override automatic configuration of manpage format.
 dnl There are several special cases.
 AC_DEFUN([CF_MANPAGE_FORMAT],
-[ AC_MSG_CHECKING(format of man-pages)
+[
+AC_REQUIRE([CF_PATHSEP])
+AC_MSG_CHECKING(format of man-pages)
 
 AC_ARG_WITH(manpage-format,
        [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
                           optionally formatted, e.g., gzip,formatted],
 
 AC_ARG_WITH(manpage-format,
        [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
                           optionally formatted, e.g., gzip,formatted],
-       [cf_manpage_form=$withval],
-       [cf_manpage_form=unknown])
+       [MANPAGE_FORMAT=$withval],
+       [MANPAGE_FORMAT=unknown])
 
 
-case ".$cf_manpage_form" in
+case ".$MANPAGE_FORMAT" in
 .gzip|.compress|.BSDI|.normal|.formatted) # (vi
   ;;
 .unknown|.) # (vi
 .gzip|.compress|.BSDI|.normal|.formatted) # (vi
   ;;
 .unknown|.) # (vi
@@ -1334,26 +1604,24 @@ case ".$cf_manpage_form" in
     MANPATH="/usr/man:/usr/share/man"
   fi
   # look for the 'date' man-page (it's most likely to be installed!)
     MANPATH="/usr/man:/usr/share/man"
   fi
   # look for the 'date' man-page (it's most likely to be installed!)
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  cf_manpage_form=unknown
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  MANPAGE_FORMAT=unknown
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
-changequote({{,}})dnl
-    for cf_name in $cf_dir/*/date.[01]* $cf_dir/*/date
-changequote([,])dnl
+    for cf_name in $cf_dir/*/date.[[01]]* $cf_dir/*/date
     do
        cf_test=`echo $cf_name | sed -e 's/*//'`
        if test "x$cf_test" = "x$cf_name" ; then
          case "$cf_name" in
     do
        cf_test=`echo $cf_name | sed -e 's/*//'`
        if test "x$cf_test" = "x$cf_name" ; then
          case "$cf_name" in
-         *.gz) cf_manpage_form=gzip;;
-         *.Z)  cf_manpage_form=compress;;
-         *.0)  cf_manpage_form=BSDI,formatted;;
-         *)    cf_manpage_form=normal;;
+         *.gz) MANPAGE_FORMAT=gzip;;
+         *.Z)  MANPAGE_FORMAT=compress;;
+         *.0)  MANPAGE_FORMAT=BSDI,formatted;;
+         *)    MANPAGE_FORMAT=normal;;
          esac
          break
        fi
     done
          esac
          break
        fi
     done
-    if test "$cf_manpage_form" != "unknown" ; then
+    if test "$MANPAGE_FORMAT" != "unknown" ; then
        break
     fi
   done
        break
     fi
   done
@@ -1364,7 +1632,7 @@ changequote([,])dnl
   ;;
 esac
 
   ;;
 esac
 
-AC_MSG_RESULT($cf_manpage_form)
+AC_MSG_RESULT($MANPAGE_FORMAT)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl The Debian people have their own naming convention for manpages.  This
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl The Debian people have their own naming convention for manpages.  This
@@ -1376,37 +1644,40 @@ AC_MSG_CHECKING(for manpage renaming)
 
 AC_ARG_WITH(manpage-renames,
        [  --with-manpage-renames  specify manpage-renaming],
 
 AC_ARG_WITH(manpage-renames,
        [  --with-manpage-renames  specify manpage-renaming],
-       [cf_manpage_renames=$withval],
-       [cf_manpage_renames=yes])
+       [MANPAGE_RENAMES=$withval],
+       [MANPAGE_RENAMES=yes])
 
 
-case ".$cf_manpage_renames" in #(vi
+case ".$MANPAGE_RENAMES" in #(vi
 .no) #(vi
   ;;
 .|.yes)
   # Debian 'man' program?
   if test -f /etc/debian_version ; then
 .no) #(vi
   ;;
 .|.yes)
   # Debian 'man' program?
   if test -f /etc/debian_version ; then
-    cf_manpage_renames=`cd $srcdir && pwd`/man/man_db.renames
+    MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
   else
   else
-    cf_manpage_renames=no
+    MANPAGE_RENAMES=no
   fi
   ;;
 esac
 
   fi
   ;;
 esac
 
-if test "$cf_manpage_renames" != no ; then
-  if test ! -f $cf_manpage_renames ; then
-    AC_MSG_ERROR(not a filename: $cf_manpage_renames)
+if test "$MANPAGE_RENAMES" != no ; then
+  if test -f $srcdir/man/$MANPAGE_RENAMES ; then
+    MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
+  elif test ! -f $MANPAGE_RENAMES ; then
+    AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
   fi
 
   test ! -d man && mkdir man
 
   # Construct a sed-script to perform renaming within man-pages
   fi
 
   test ! -d man && mkdir man
 
   # Construct a sed-script to perform renaming within man-pages
-  if test -n "$cf_manpage_renames" ; then
+  if test -n "$MANPAGE_RENAMES" ; then
     test ! -d man && mkdir man
     test ! -d man && mkdir man
-    $srcdir/man/make_sed.sh $cf_manpage_renames >man/edit_man.sed
+    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
   fi
 fi
 
   fi
 fi
 
-AC_MSG_RESULT($cf_manpage_renames)
+AC_MSG_RESULT($MANPAGE_RENAMES)
+AC_SUBST(MANPAGE_RENAMES)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Some people expect each tool to make all aliases for manpages in the
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Some people expect each tool to make all aliases for manpages in the
@@ -1418,10 +1689,10 @@ AC_MSG_CHECKING(for manpage symlinks)
 
 AC_ARG_WITH(manpage-symlinks,
        [  --with-manpage-symlinks specify manpage-symlinks],
 
 AC_ARG_WITH(manpage-symlinks,
        [  --with-manpage-symlinks specify manpage-symlinks],
-       [cf_manpage_symlinks=$withval],
-       [cf_manpage_symlinks=yes])
+       [MANPAGE_SYMLINKS=$withval],
+       [MANPAGE_SYMLINKS=yes])
 
 
-AC_MSG_RESULT($cf_manpage_symlinks)
+AC_MSG_RESULT($MANPAGE_SYMLINKS)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl This option causes manpages to be run through tbl(1) to generate tables
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl This option causes manpages to be run through tbl(1) to generate tables
@@ -1432,10 +1703,10 @@ AC_MSG_CHECKING(for manpage tbl)
 
 AC_ARG_WITH(manpage-tbl,
        [  --with-manpage-tbl      specify manpage processing with tbl],
 
 AC_ARG_WITH(manpage-tbl,
        [  --with-manpage-tbl      specify manpage processing with tbl],
-       [cf_manpage_tbl=$withval],
-       [cf_manpage_tbl=no])
+       [MANPAGE_TBL=$withval],
+       [MANPAGE_TBL=no])
 
 
-AC_MSG_RESULT($cf_manpage_tbl)
+AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Try to determine if the man-pages on the system are compressed, and if
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Try to determine if the man-pages on the system are compressed, and if
@@ -1455,7 +1726,7 @@ CF_MANPAGE_TBL
      cf_prefix="$prefix"
   fi
 
      cf_prefix="$prefix"
   fi
 
-  case "$cf_manpage_form" in # (vi
+  case "$MANPAGE_FORMAT" in # (vi
   *formatted*) # (vi
     cf_subdir='$mandir/cat'
     cf_format=yes
   *formatted*) # (vi
     cf_subdir='$mandir/cat'
     cf_format=yes
@@ -1468,13 +1739,13 @@ CF_MANPAGE_TBL
 
 test ! -d man && mkdir man
 cat >man/edit_man.sh <<CF_EOF
 
 test ! -d man && mkdir man
 cat >man/edit_man.sh <<CF_EOF
-changequote({{,}})dnl
 #! /bin/sh
 # this script is generated by the configure-script
 prefix="$cf_prefix"
 datadir="$datadir"
 #! /bin/sh
 # this script is generated by the configure-script
 prefix="$cf_prefix"
 datadir="$datadir"
+NCURSES_OSPEED="$NCURSES_OSPEED"
 TERMINFO="$TERMINFO"
 TERMINFO="$TERMINFO"
-MKDIRS="`cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
 transform="$program_transform_name"
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
 transform="$program_transform_name"
@@ -1482,20 +1753,20 @@ transform="$program_transform_name"
 TMP=\${TMPDIR-/tmp}/man\$\$
 trap "rm -f \$TMP" 0 1 2 5 15
 
 TMP=\${TMPDIR-/tmp}/man\$\$
 trap "rm -f \$TMP" 0 1 2 5 15
 
-verb=\{{$}}1
+verb=\[$]1
 shift
 
 shift
 
-mandir=\{{$}}1
+mandir=\[$]1
 shift
 
 shift
 
-srcdir=\{{$}}1
+srcdir=\[$]1
 shift
 
 shift
 
-for i in \{{$}}* ; do
+for i in \[$]* ; do
 case \$i in #(vi
 *.orig|*.rej) ;; #(vi
 case \$i in #(vi
 *.orig|*.rej) ;; #(vi
-*.[0-9]*)
-       section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
+*.[[0-9]]*)
+       section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
        if test \$verb = installing ; then
        if test ! -d $cf_subdir\${section} ; then
                \$MKDIRS $cf_subdir\$section
        if test \$verb = installing ; then
        if test ! -d $cf_subdir\${section} ; then
                \$MKDIRS $cf_subdir\$section
@@ -1510,12 +1781,13 @@ case \$i in #(vi
                continue
        fi
 CF_EOF
                continue
        fi
 CF_EOF
-if test "$cf_manpage_symlinks" = yes ; then
+if test "$MANPAGE_SYMLINKS" = yes ; then
 cat >>man/edit_man.sh <<CF_EOF
        aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
 CF_EOF
 fi
 cat >>man/edit_man.sh <<CF_EOF
        aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
 CF_EOF
 fi
-if test "$cf_manpage_renames" = no ; then
+
+if test "$MANPAGE_RENAMES" = no ; then
 cat >>man/edit_man.sh <<CF_EOF
        # perform program transformations for section 1 man pages
        if test \$section = 1 ; then
 cat >>man/edit_man.sh <<CF_EOF
        # perform program transformations for section 1 man pages
        if test \$section = 1 ; then
@@ -1523,22 +1795,33 @@ cat >>man/edit_man.sh <<CF_EOF
        else
                target=$cf_subdir\${section}/\$source
        fi
        else
                target=$cf_subdir\${section}/\$source
        fi
+CF_EOF
+else
+cat >>man/edit_man.sh <<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
 
        # replace variables in man page
-CF_EOF
-       ifelse($1,,,{{
+       ifelse($1,,,[
        for cf_name in $1
        do
 cat >>man/edit_man.sh <<CF_EOF
        prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
 CF_EOF
        done
        for cf_name in $1
        do
 cat >>man/edit_man.sh <<CF_EOF
        prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
 CF_EOF
        done
-       }})
+       ])
 cat >>man/edit_man.sh <<CF_EOF
        sed     -e "s,@DATADIR@,\$datadir," \\
                -e "s,@TERMINFO@,\$TERMINFO," \\
 cat >>man/edit_man.sh <<CF_EOF
        sed     -e "s,@DATADIR@,\$datadir," \\
                -e "s,@TERMINFO@,\$TERMINFO," \\
+               -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
 CF_EOF
 CF_EOF
-       ifelse($1,,,{{
+       ifelse($1,,,[
        for cf_name in $1
        do
                cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
        for cf_name in $1
        do
                cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -1546,22 +1829,17 @@ cat >>man/edit_man.sh <<CF_EOF
                -e "s,@$cf_NAME@,\$prog_$cf_name," \\
 CF_EOF
        done
                -e "s,@$cf_NAME@,\$prog_$cf_name," \\
 CF_EOF
        done
-       }})
+       ])
+if test -f $MANPAGE_RENAMES ; then
 cat >>man/edit_man.sh <<CF_EOF
 cat >>man/edit_man.sh <<CF_EOF
-               < \$i >\$TMP
+               < \$i | sed -f edit_man.sed >\$TMP
 CF_EOF
 else
 cat >>man/edit_man.sh <<CF_EOF
 CF_EOF
 else
 cat >>man/edit_man.sh <<CF_EOF
-       target=\`grep "^\$source" $cf_manpage_renames | $AWK '{print \{{$}}2}'\`
-       if test -z "\$target" ; then
-               echo '? missing rename for '\$source
-               target="\$source"
-       fi
-       target="$cf_subdir\$section/\$target"
-       test \$verb = installing && sed -e "s,@DATADIR@,\$datadir," < \$i | sed -f edit_man.sed >\$TMP
+               < \$i >\$TMP
 CF_EOF
 fi
 CF_EOF
 fi
-if test $cf_manpage_tbl = yes ; then
+if test $MANPAGE_TBL = yes ; then
 cat >>man/edit_man.sh <<CF_EOF
        tbl \$TMP >\$TMP.out
        mv \$TMP.out \$TMP
 cat >>man/edit_man.sh <<CF_EOF
        tbl \$TMP >\$TMP.out
        mv \$TMP.out \$TMP
@@ -1579,7 +1857,7 @@ cat >>man/edit_man.sh <<CF_EOF
        mv \$TMP.out \$TMP
 CF_EOF
 fi
        mv \$TMP.out \$TMP
 CF_EOF
 fi
-case "$cf_manpage_form" in #(vi
+case "$MANPAGE_FORMAT" in #(vi
 *compress*) #(vi
 cat >>man/edit_man.sh <<CF_EOF
        if test \$verb = installing ; then
 *compress*) #(vi
 cat >>man/edit_man.sh <<CF_EOF
        if test \$verb = installing ; then
@@ -1605,12 +1883,12 @@ CF_EOF
 *BSDI*)
 cat >>man/edit_man.sh <<CF_EOF
        # BSDI installs only .0 suffixes in the cat directories
 *BSDI*)
 cat >>man/edit_man.sh <<CF_EOF
        # BSDI installs only .0 suffixes in the cat directories
-       target="\`echo \$target|sed -e 's/\.[1-9]\+.\?/.0/'\`"
+       target="\`echo \$target|sed -e 's/\.[[1-9]]\+.\?/.0/'\`"
 CF_EOF
   ;;
 esac
 cat >>man/edit_man.sh <<CF_EOF
 CF_EOF
   ;;
 esac
 cat >>man/edit_man.sh <<CF_EOF
-       suffix=\`basename \$target | sed -e 's/^[^.]*//'\`
+       suffix=\`basename \$target | sed -e 's/^[[^.]]*//'\`
        if test \$verb = installing ; then
                echo \$verb \$target
                \$INSTALL_DATA \$TMP \$target
        if test \$verb = installing ; then
                echo \$verb \$target
                \$INSTALL_DATA \$TMP \$target
@@ -1665,7 +1943,6 @@ esac
 done
 exit 0
 CF_EOF
 done
 exit 0
 CF_EOF
-changequote([,])dnl
 chmod 755 man/edit_man.sh
 
 ])dnl
 chmod 755 man/edit_man.sh
 
 ])dnl
@@ -1692,6 +1969,37 @@ ifelse($1,,[
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
+dnl Check if mbstate_t is declared, and if so, which header file.
+AC_DEFUN([CF_MBSTATE_T],
+[
+# This is needed on Tru64 5.0 to declare mbstate_t
+AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_mbstate_t,[
+AC_TRY_COMPILE([
+#include <stdlib.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif],
+       [mbstate_t state],
+       [cf_cv_mbstate_t=no],
+       [AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif],
+       [mbstate_t value],
+       [cf_cv_mbstate_t=yes],
+       [cf_cv_mbstate_t=unknown])])])
+
+if test "$cf_cv_mbstate_t" = yes ; then
+       AC_DEFINE(NEED_WCHAR_H)
+fi
+
+if test "$cf_cv_mbstate_t" != unknown ; then
+       AC_DEFINE(HAVE_MBSTATE_T)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
@@ -1709,6 +2017,54 @@ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
 ])dnl
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl Check for a working mkstemp.  This creates two files, checks that they are
+dnl successfully created and distinct (AmigaOS apparently fails on the last).
+AC_DEFUN([CF_MKSTEMP],[
+AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
+rm -f conftest*
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+int main()
+{
+       char *tmpl = "conftestXXXXXX";
+       char name[2][80];
+       int n;
+       int result = 0;
+       int fd;
+       struct stat sb;
+
+       umask(077);
+       for (n = 0; n < 2; ++n) {
+               strcpy(name[n], tmpl);
+               if ((fd = mkstemp(name[n])) >= 0) {
+                       if (!strcmp(name[n], tmpl)
+                        || stat(name[n], &sb) != 0
+                        || (sb.st_mode & S_IFMT) != S_IFREG
+                        || (sb.st_mode & 077) != 0) {
+                               result = 1;
+                       }
+                       close(fd);
+               }
+       }
+       if (result == 0
+        && !strcmp(name[0], name[1]))
+               result = 1;
+       exit(result);
+}
+],[cf_cv_func_mkstemp=yes
+],[cf_cv_func_mkstemp=no
+],[AC_CHECK_FUNC(mkstemp)
+])
+])
+if test "$cf_cv_func_mkstemp" = yes ; then
+       AC_DEFINE(HAVE_MKSTEMP)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl Compute the object-directory name from the given model name
 AC_DEFUN([CF_OBJ_SUBDIR],
 [
 dnl Compute the object-directory name from the given model name
 AC_DEFUN([CF_OBJ_SUBDIR],
 [
@@ -1717,33 +2073,52 @@ AC_DEFUN([CF_OBJ_SUBDIR],
        normal)  $2='objects' ;;
        debug)   $2='obj_g' ;;
        profile) $2='obj_p' ;;
        normal)  $2='objects' ;;
        debug)   $2='obj_g' ;;
        profile) $2='obj_p' ;;
-       shared)  $2='obj_s' ;;
+       shared)
+               case $cf_cv_system_name in #(vi
+               cygwin) #(vi
+                       $2='objects' ;;
+               *)
+                       $2='obj_s' ;;
+               esac
+       esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Provide a value for the $PATH and similar separator
+AC_DEFUN([CF_PATHSEP],
+[
+       case $cf_cv_system_name in
+       os2*)   PATHSEP=';'  ;;
+       *)      PATHSEP=':'  ;;
        esac
        esac
+ifelse($1,,,[$1=$PATHSEP])
+       AC_SUBST(PATHSEP)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
 dnl begins with one of the prefix/exec_prefix variables, and then again if the
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
 dnl begins with one of the prefix/exec_prefix variables, and then again if the
-dnl result begins with 'NONE'.  This is necessary to workaround autoconf's
+dnl result begins with 'NONE'.  This is necessary to work around autoconf's
 dnl delayed evaluation of those symbols.
 AC_DEFUN([CF_PATH_SYNTAX],[
 case ".[$]$1" in #(vi
 dnl delayed evaluation of those symbols.
 AC_DEFUN([CF_PATH_SYNTAX],[
 case ".[$]$1" in #(vi
-./*) #(vi
+.\[$]\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
   ;;
   ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
   ;;
 .\[$]{*prefix}*) #(vi
   eval $1="[$]$1"
   case ".[$]$1" in #(vi
   .NONE/*)
   ;;
 .\[$]{*prefix}*) #(vi
   eval $1="[$]$1"
   case ".[$]$1" in #(vi
   .NONE/*)
-    $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@`
+    $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
     ;;
   esac
   ;; #(vi
 .NONE/*)
     ;;
   esac
   ;; #(vi
 .NONE/*)
-  $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@`
+  $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
   ;;
 *)
-  AC_ERROR(expected a pathname)
+  ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
   ;;
 esac
 ])dnl
   ;;
 esac
 ])dnl
@@ -1756,8 +2131,9 @@ PROG_EXT=
 case $cf_cv_system_name in
 os2*)
     # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@
 case $cf_cv_system_name in
 os2*)
     # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@
-    CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
-    CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
+    CFLAGS="$CFLAGS -Zmt"
+    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+    CXXFLAGS="$CXXFLAGS -Zmt"
     LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
     PROG_EXT=".exe"
     ;;
     LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
     PROG_EXT=".exe"
     ;;
@@ -1766,6 +2142,7 @@ cygwin*)
     ;;
 esac
 AC_SUBST(PROG_EXT)
     ;;
 esac
 AC_SUBST(PROG_EXT)
+test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
@@ -1777,10 +2154,8 @@ case $INSTALL in
 /*)
   ;;
 *)
 /*)
   ;;
 *)
-changequote({{,}})dnl
-  cf_dir=`echo $INSTALL|sed -e 's%/[^/]*$%%'`
+  CF_DIRNAME(cf_dir,$INSTALL)
   test -z "$cf_dir" && cf_dir=.
   test -z "$cf_dir" && cf_dir=.
-changequote([,])dnl
   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
   ;;
 esac
   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
   ;;
 esac
@@ -1834,12 +2209,16 @@ dnl
 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
 dnl version when making symbolic links.
 dnl
 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
 dnl version when making symbolic links.
 dnl
+dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
+dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
+dnl (ex: libncurses.so.<ver>).
+dnl
 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
 AC_DEFUN([CF_SHARED_OPTS],
 [
        AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
 AC_DEFUN([CF_SHARED_OPTS],
 [
        AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
-       LOCAL_LDFLAGS=
-       LOCAL_LDFLAGS2=
+       LOCAL_LDFLAGS=
+       LOCAL_LDFLAGS2=
        LD_SHARED_OPTS=
        INSTALL_LIB="-m 644"
 
        LD_SHARED_OPTS=
        INSTALL_LIB="-m 644"
 
@@ -1880,10 +2259,25 @@ AC_DEFUN([CF_SHARED_OPTS],
                CFLAGS="$cf_save_CFLAGS"
        fi
 
                CFLAGS="$cf_save_CFLAGS"
        fi
 
+       cf_cv_shlib_version_infix=no
+
        case $cf_cv_system_name in
        beos*)
                MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
                ;;
        case $cf_cv_system_name in
        beos*)
                MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
                ;;
+       cygwin*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
+               cf_cv_shlib_version=cygdll
+               cf_cv_shlib_version_infix=cygdll
+               ;;
+       darwin*)
+               EXTRA_CFLAGS="-no-cpp-precomp"
+               CC_SHARED_OPTS="-dynamic"
+               MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $[@]` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $[@]'
+               test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+               cf_cv_shlib_version_infix=yes
+               ;;
        hpux*)
                # (tested with gcc 2.7.2 -- I don't have c89)
                if test "$GCC" = yes; then
        hpux*)
                # (tested with gcc 2.7.2 -- I don't have c89)
                if test "$GCC" = yes; then
@@ -1911,8 +2305,8 @@ AC_DEFUN([CF_SHARED_OPTS],
                ;;
        linux*|gnu*)
                if test "$DFT_LWR_MODEL" = "shared" ; then
                ;;
        linux*|gnu*)
                if test "$DFT_LWR_MODEL" = "shared" ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-Wl,-rpath,"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-Wl,-rpath,"
@@ -1934,8 +2328,8 @@ AC_DEFUN([CF_SHARED_OPTS],
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
                if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
                if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                        EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
                        MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
                        if test "$cf_cv_shlib_version" = auto; then
                        EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
                        MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
                        if test "$cf_cv_shlib_version" = auto; then
@@ -1951,16 +2345,16 @@ AC_DEFUN([CF_SHARED_OPTS],
                # tested with OSF/1 V3.2 and 'cc'
                # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
                # link with shared libs).
                # tested with OSF/1 V3.2 and 'cc'
                # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
                # link with shared libs).
-               MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
+               MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
                case $host_os in
                osf4*)
                case $host_os in
                osf4*)
-                       MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
+                       MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
                        ;;
                esac
                MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        ;;
                esac
                MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
                if test "$DFT_LWR_MODEL" = "shared" ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-rpath"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-rpath"
@@ -1998,7 +2392,7 @@ AC_DEFUN([CF_SHARED_OPTS],
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-R"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-R"
@@ -2062,13 +2456,13 @@ AC_DEFUN([CF_SIZECHANGE],
 AC_REQUIRE([CF_STRUCT_TERMIOS])
 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
     cf_cv_sizechange=unknown
 AC_REQUIRE([CF_STRUCT_TERMIOS])
 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
     cf_cv_sizechange=unknown
-    cf_save_CFLAGS="$CFLAGS"
+    cf_save_CPPFLAGS="$CPPFLAGS"
 
 for cf_opts in "" "NEED_PTEM_H"
 do
 
 
 for cf_opts in "" "NEED_PTEM_H"
 do
 
-    CFLAGS="$cf_save_CFLAGS"
-    test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts"
+    CPPFLAGS="$cf_save_CPPFLAGS"
+    test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
     AC_TRY_COMPILE([#include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
 #include <termios.h>
     AC_TRY_COMPILE([#include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
 #include <termios.h>
@@ -2105,7 +2499,7 @@ do
        [cf_cv_sizechange=yes],
        [cf_cv_sizechange=no])
 
        [cf_cv_sizechange=yes],
        [cf_cv_sizechange=no])
 
-       CFLAGS="$cf_save_CFLAGS"
+       CPPFLAGS="$cf_save_CPPFLAGS"
        if test "$cf_cv_sizechange" = yes ; then
                echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
                test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
        if test "$cf_cv_sizechange" = yes ; then
                echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
                test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
@@ -2183,11 +2577,11 @@ do
        fi
 done
 AC_MSG_RESULT($cf_cv_src_modules)
        fi
 done
 AC_MSG_RESULT($cf_cv_src_modules)
-TEST_ARGS="-L${LIB_DIR} -L\$(libdir) $TEST_ARGS"
+TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
 AC_SUBST(TEST_DEPS)
 AC_SUBST(TEST_ARGS)
 
 AC_SUBST(TEST_DEPS)
 AC_SUBST(TEST_ARGS)
 
-PROG_ARGS="-L${LIB_DIR} -L\$(libdir) $PROG_ARGS"
+PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
 AC_SUBST(PROG_ARGS)
 
 SRC_SUBDIRS="man include"
 AC_SUBST(PROG_ARGS)
 
 SRC_SUBDIRS="man include"
@@ -2195,7 +2589,8 @@ for cf_dir in $cf_cv_src_modules
 do
        SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
 done
 do
        SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
 done
-SRC_SUBDIRS="$SRC_SUBDIRS misc test"
+SRC_SUBDIRS="$SRC_SUBDIRS test"
+test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
 
 ADA_SUBDIRS=
 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
 
 ADA_SUBDIRS=
@@ -2288,7 +2683,7 @@ if test "$ISC" = yes ; then
        AC_CHECK_HEADERS( sys/termio.h )
 fi
 if test "$ac_cv_header_termios_h" = yes ; then
        AC_CHECK_HEADERS( sys/termio.h )
 fi
 if test "$ac_cv_header_termios_h" = yes ; then
-       case "$CFLAGS" in
+       case "$CFLAGS $CPPFLAGS" in
        *-D_POSIX_SOURCE*)
                termios_bad=dunno ;;
        *)      termios_bad=maybe ;;
        *-D_POSIX_SOURCE*)
                termios_bad=dunno ;;
        *)      termios_bad=maybe ;;
@@ -2329,15 +2724,14 @@ dnl ---------------------------------------------------------------------------
 dnl Get the version-number for use in shared-library naming, etc.
 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
 [
 dnl Get the version-number for use in shared-library naming, etc.
 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
 [
-changequote(,)dnl
-NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_MINOR="`egrep '^NCURSES_MINOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_PATCH="`egrep '^NCURSES_PATCH[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-changequote([,])dnl
+NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[        ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
+NCURSES_MINOR="`egrep '^NCURSES_MINOR[[        ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
+NCURSES_PATCH="`egrep '^NCURSES_PATCH[[        ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 dnl Show the computed version, for logging
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 dnl Show the computed version, for logging
-AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version (`date`))
+cf_cv_timestamp=`date`
+AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
 dnl We need these values in the generated headers
 AC_SUBST(NCURSES_MAJOR)
 AC_SUBST(NCURSES_MINOR)
 dnl We need these values in the generated headers
 AC_SUBST(NCURSES_MAJOR)
 AC_SUBST(NCURSES_MINOR)
@@ -2347,6 +2741,7 @@ AC_SUBST(cf_cv_rel_version)
 AC_SUBST(cf_cv_abi_version)
 AC_SUBST(cf_cv_cc_bool_type)
 AC_SUBST(cf_cv_builtin_bool)
 AC_SUBST(cf_cv_abi_version)
 AC_SUBST(cf_cv_cc_bool_type)
 AC_SUBST(cf_cv_builtin_bool)
+AC_SUBST(cf_cv_header_stdbool_h)
 AC_SUBST(cf_cv_type_of_bool)dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(cf_cv_type_of_bool)dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -2471,62 +2866,12 @@ dnl Make an uppercase version of a variable
 dnl $1=uppercase($2)
 AC_DEFUN([CF_UPPER],
 [
 dnl $1=uppercase($2)
 AC_DEFUN([CF_UPPER],
 [
-changequote(,)dnl
 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-changequote([,])dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl Compute the shift-mask that we'll use for wide-character indices.  We use
-dnl all but the index portion of chtype for storing attributes.
-AC_DEFUN([CF_WIDEC_SHIFT],
-[
-AC_REQUIRE([CF_TYPEOF_CHTYPE])
-AC_MSG_CHECKING([for number of bits in chtype])
-AC_CACHE_VAL(cf_cv_shift_limit,[
-       AC_TRY_RUN([
-#include <stdio.h>
-int main()
-{
-       FILE *fp = fopen("cf_test.out", "w");
-       if (fp != 0) {
-               int n;
-               unsigned TYPEOF_CHTYPE x = 1L;
-               for (n = 0; ; n++) {
-                       unsigned long y = (x >> n);
-                       if (y != 1 || x == 0)
-                               break;
-                       x <<= 1;
-               }
-               fprintf(fp, "%d", n);
-               fclose(fp);
-       }
-       exit(0);
-}
-               ],
-               [cf_cv_shift_limit=`cat cf_test.out`],
-               [cf_cv_shift_limit=32],
-               [cf_cv_shift_limit=32])
-               rm -f cf_test.out
-       ])
-AC_MSG_RESULT($cf_cv_shift_limit)
-AC_SUBST(cf_cv_shift_limit)
-
-AC_MSG_CHECKING([for width of character-index])
-AC_CACHE_VAL(cf_cv_widec_shift,[
-if test ".$with_widec" = ".yes" ; then
-       cf_attrs_width=39
-       if ( expr $cf_cv_shift_limit \> $cf_attrs_width >/dev/null )
-       then
-               cf_cv_widec_shift=`expr 16 + $cf_cv_shift_limit - $cf_attrs_width`
-       else
-               cf_cv_widec_shift=16
-       fi
-else
-       cf_cv_widec_shift=8
-fi
-])
-AC_MSG_RESULT($cf_cv_widec_shift)
-AC_SUBST(cf_cv_widec_shift)
+dnl Use AC_VERBOSE w/o the warnings
+AC_DEFUN([CF_VERBOSE],
+[test -n "$verbose" && echo "  $1" 1>&AC_FD_MSG
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
@@ -2553,12 +2898,14 @@ dnl $2 = help-text
 dnl $3 = environment variable to set
 dnl $4 = default value, shown in the help-message, must be a constant
 dnl $5 = default value, if it's an expression & cannot be in the help-message
 dnl $3 = environment variable to set
 dnl $4 = default value, shown in the help-message, must be a constant
 dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $6 = flag to tell if we want to define or substitute
 dnl
 AC_DEFUN([CF_WITH_PATHLIST],[
 dnl
 AC_DEFUN([CF_WITH_PATHLIST],[
+AC_REQUIRE([CF_PATHSEP])
 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
-ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
+ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
 
 
-IFS="${IFS=    }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+IFS="${IFS=    }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
 cf_dst_path=
 for cf_src_path in $withval
 do
 cf_dst_path=
 for cf_src_path in $withval
 do
@@ -2568,6 +2915,18 @@ do
 done
 IFS="$ac_save_ifs"
 
 done
 IFS="$ac_save_ifs"
 
-eval $3="$cf_dst_path"
+ifelse($6,define,[
+# Strip single quotes from the value, e.g., when it was supplied as a literal
+# for $4 or $5.
+case $cf_dst_path in #(vi
+\'*)
+  cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
+  ;;
+esac
+cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
+])
+
+eval '$3="$cf_dst_path"'
 AC_SUBST($3)dnl
 AC_SUBST($3)dnl
+
 ])dnl
 ])dnl
index 58be91d0d189e7d918acf377510962dbdf98a20f..403e6762489950b199d6925d525c88e98b55e1f9 100644 (file)
@@ -1,10 +1,10 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: announce.html.in,v 1.40 2000/10/20 10:38:47 tom Exp $
+  $Id: announce.html.in,v 1.44 2002/10/12 23:35:32 tom Exp $
 -->
 <HTML>
 <HEAD>
 -->
 <HTML>
 <HEAD>
-<TITLE>Announcing ncurses @VERSION@</TITLE>
+<TITLE>Announcing ncurses @VERSION@ Pre-Release</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 </HEAD>
 <BODY>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 </HEAD>
 <BODY>
@@ -22,8 +22,11 @@ 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.<P>
 
 Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
 ncurses.<P>
 
-The ncurses code was developed under GNU/Linux.  It should port easily to
-any ANSI/POSIX-conforming UNIX.  It has even been ported to OS/2 Warp!<P>
+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 and NetBSD as an external package.
+It should port easily to any ANSI/POSIX-conforming UNIX.
+It has even been ported to OS/2 Warp!<P>
 
 The distribution includes the library and support utilities, including a
 terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
 
 The distribution includes the library and support utilities, including a
 terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
@@ -34,331 +37,171 @@ The ncurses distribution is available via anonymous FTP at
 the GNU distribution site
 <A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
 <br>It is also available at
 the GNU distribution site
 <A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
 <br>It is also available at
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
+<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
 
 <H1>Release Notes</H1>
 
 
 <H1>Release Notes</H1>
 
-This release is designed to be upward compatible from ncurses 5.0 and 5.1;
+This release is designed to be upward compatible from ncurses 5.0 and 5.2;
 very few applications will require recompilation, depending on the platform.
 very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.1 release.
+These are the highlights from the change-log since ncurses 5.2 release.
 <p>
 Interface changes:
 <ul>
 <p>
 Interface changes:
 <ul>
-       <li>change type of <code>ospeed</code> variable back to
-         <code>short</code> to match its use in legacy applications.  It was
-         altered after ncurses 4.2 to <code>speed_t</code> to repair a type
-         mismatch which was introduced after 1.9.4 in 1995.  The principal
-         users of termcap continued to use <code>short</code>, which is
-         not the same size.
-         <p>
-         <em>NOTE</em>: A few applications will have to be recompiled
-         (about 1% of the programs in a typical Linux distribution,
-         10% of the programs that use ncurses).  These are easy to
-         identify with <code>nm</code> or <code>strings</code>.
-
-       <li>remove a private function <code>_nc_can_clear_with()</code>, which
-         was built with the configure --enable-expanded option but not used.
-
-       <li>add several private functions (prefixed with "_nc_") for tracing
-         <code>chtype</code> values in the debug library, and for better
-         access and buffer limit checking.
-</ul>
-New features and improvements:
-<ul>
-       <li>rewrote <code>tgoto()</code> to make it better support existing
-         termcap applications which use hardcoded strings rather than obtain
-         all of their information from the termcap file.  If the string does
-         not appear to be a terminfo string (i.e., does not refer to a "%p"
-         parameter, or terminfo-style padding), and termcap support is configured, <code>tgoto()</code>
-         will interpret it as termcap.  Otherwise, as before, it will use
-         <code>tparm()</code>.
-
-       <li>to ensure that the <code>tgoto()</code> changes work properly,
-         added checks to <code>tic</code> which report capabilities that do
-         not reference the expected number of parameters.
-
-       <li>new configure script options:
-       <ul>
-         <li>option <code>--disable-root-environ</code> adds runtime checks
-           which tell ncurses to disregard $TERMINFO and similar environment
-           variables if the current user is root, or running setuid/setgid.
-
-         <li>option <code>--disable-assumed-color</code> allows you to use the
-           pre-5.1 convention of default colors used for color-pair 0 to be
-           configured (see assume_default_colors()).
-
-         <li>implement configure script options that transform installed
-           program names, e.g., <code>--program-prefix</code>, including the
-           manpage names and cross references.
+       <li>change type for bool used in headers to <code>NCURSES_BOOL</code>,
+         which usually is the same as the compiler's definition for
+         <code>bool</code>.
 
 
-         <li>option <code>--with-database</code> allows you to specify a
-           different terminfo source-file to install.  On OS/2 EMX, the
-           default is misc/emx.src, otherwise misc/terminfo.src
+       <li>add all but two functions for X/Open curses wide-character support. 
+         These are only available if the library is configured using the
+         <kbd>--enable-widec</kbd> option.  Missing functions are
+               <ul>
+               <li>pecho_wchar()
+               <li>slk_wset()
+               </ul>
 
 
-         <li>option <code>--with-default-terminfo-dir</code> allows you to
-           specify the default terminfo database directory.
-
-         <li>option <code>--with-libtool</code> allows you to build with
-           <code>libtool</code>.  <p> <em>NOTE</em>:  <code>libtool</code>
-           uses a different notation for numbering shared library versions
-           from the existing ncurses configuration.
-
-         <li>option <code>--with-manpage-tbl</code> causes the manpages to be
-           preprocessed by tbl(1) prior to installation,
-
-         <li>option <code>--without-curses-h</code> causes the installation
-           process to install curses.h as ncurses.h and make appropriate
-           changes to headers and manpages.
-       </ul>
-
-       <li>modified configure script options:
-       <ul>
-         <li>change symbol used by the <code>--install-prefix</code> configure
-           option from <code>INSTALL_PREFIX</code> to <code>DESTDIR</code>
-           (the latter has become common usage although the name is
-           misleading).
-
-         <li>modify <code>ld -rpath</code> options (e.g., Linux, and Solaris)
-           to use an absolute pathname for the build tree's lib directory,
-           avoiding confusion with directories relative to the current one
-           with the installed programs.
-
-         <li>modified <code>misc/run_tic.in</code> to use
-           <code>tic&nbsp;-o</code>, to eliminate dependency on
-           <code>$TERMINFO</code> variable for installs.
-       </ul>
+       <li>add environment variable <code>$NCURSES_ASSUMED_COLORS</code> to
+         modify the <code>assume_default_colors()</code> extension.
 
 
-       <li>terminfo database:
+</ul>
+New features and improvements:
+<ul>
+       <li>Improved support for termcap applications:
        <ul>
        <ul>
-         <li>updated xterm terminfo entries to match XFree86 xterm patch #146.
-
-         <li>added amiga-vnc,
-           Matrix Orbital, and
-           QNX qansi to misc/terminfo.src.
+       <li>add logic to dump_entry.c to remove function-key definitions that do
+         not fit into the 1023-byte limit for generated termcaps.  This makes
+         hds200 fit.
 
 
-         <li>added os2 entry to misc/emx.src.
+       <li>modify tgetent() to check if exit_attribute_mode resets the alternate
+         character set, and if so, attempt to adjust the copy of the termcap
+         "me" string which it will return to eliminate that part.  In
+         particular, 'screen' would lose track of line-drawing characters.
 
 
-         <li>add S0 and E0 extensions to <code>screen</code>'s terminfo entry
-           since otherwise the FreeBSD port makes it pass termcap equivalents
-           to <code>tgoto</code>, which would be misinterpreted by older
-           versions of ncurses.
-       </ul>
+       <li>add check/fix to comp_parse.c to suppress warning about missing acsc
+         string.  This happens in configurations where raw termcap information
+         is processed; tic already does this and other checks.
 
 
-       <li>improvements to program usability:
-       <ul>
-         <li>modify programs to use <code>curses_version()</code> string to
-           report the version of ncurses with which they are compiled rather
-           than the NCURSES_VERSION string.  The function returns the patch
-           level in addition to the major and minor version numbers.
+       <li>add tic -A option to suppress capabilities which are commented out
+         when translating to termcap.
 
 
-         <li>modify <code>tput</code> program so it can be renamed or invoked via a link as
-           'reset' or 'init', producing the same effect as <code>tput&nbsp;reset</code> or <code>tput&nbsp;init</code>.
+       <li>modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it
+         work properly for termcap applications (patch by Andrey A Chernov).
 
 
-         <li>add error checking to infocmp's -v and -m options to ensure that
-           the option value is indeed a number.
        </ul>
 
        </ul>
 
-       <li>improved performance:
-       <ul>
-         <li>replace a lookup table in lib_vidattr.c used to decode
-           <code>no_color_video</code> with a logic expression which is faster.
-       </ul>
+       <li>add a call to _nc_keypad() in keypad() to accommodate applications
+         such as nvi, which use curses for output but not for input (fixes
+         Debian #131263, cf: 20011215).
 
 
+       <li>correct logic for COLORFGBG environment variable: if rxvt is compiled
+         with xpm support, the variable has three fields, making it slightly
+         incompatible with itself.  In either case, the background color is
+         the last field.
 </ul>
 Major bug fixes:
 <ul>
 </ul>
 Major bug fixes:
 <ul>
-       <li>correct <code>manlinks.sed</code> script introduced in ncurses 5.1
-         to avoid using ERE "\+", which is not understood by standard versions
-         of <code>sed</code>.  This happens to work with GNU <code>sed</code>,
-         but is not portable, and was the initial motivation for this release.
-
-       <li>remove "hpux10.*" case from CF_SHARED_OPTS configure script macro.
-         This differed from the "hpux*" case by using reversed symbolic
-         links, which made the 5.1 version not match the configuration of
-         5.0 shared libraries.
-
-       <li>guard against corrupt terminfo data:
-         <ul>
-         <li>modify <code>tparm()</code> to disallow arithmetic on strings,
-           analyze the varargs list to read strings as strings and numbers as
-           numbers.
-
-         <li>modify <code>tparm()</code>'s internal function
-           <code>spop()</code> to treat a null pointer as an empty string.
-
-         <li>modify <code>parse_format()</code> in lib_tparm.c to ignore
-           precision if it is longer than 10000.
-
-         <li>rewrote limit checks in lib_mvcur.c using new functions
-           <code>_nc_safe_strcat()</code>, etc.  Made other related changes to
-           check lengths used for <code>strcat()</code> and
-           <code>strcpy()</code>.
-         </ul>
-
-       <li>corrections to screen optimization:
-         <ul>
-         <li>added special case in lib_vidattr.c to reset underline and
-           standout for devices that have no sgr0 defined.
-
-         <li>change handling of <code>non_dest_scroll_region</code> in
-           tty_update.c to clear text after it is shifted in rather than before
-           shifting out.  Also correct row computation.
+       <li>rewrote limit-checks in wscrl() and associated _nc_scroll_window(),
+         to ensure that if the parameter of wscrl() is larger than the size of
+         the scrolling region, then the scrolling region will be cleared.
 
 
-         <li>modify <code>rs2</code> capability in xterm-r6 and similar entries
-           where cursor save/restore bracketed the sequence for resetting video
-           attributes.  The cursor restore would undo that.
-         </ul>
-
-       <li>UTF-8 support:
-       <ul>
-         <li>when checking LC_ALL, LC_CTYPE, and LANG environment variables
-           for UTF-8 locale, ignore those which are set to an empty value, as
-           per SUSV2.
-
-         <li>encode 0xFFFD in UTF-8 with 3 bytes, not 2.
-
-         <li>modify <code>_nc_utf8_outch()</code> to avoid sign-extension when
-           checking for out-of-range value.
-       </ul>
-
-       <li>other library fixes:
-       <ul>
-         <li>added checks for an empty <code>$HOME</code> environment
-           variable, to avoid retrieving terminfo descriptions from
-           <code>./.terminfo</code> .
-
-         <li>change functions <code>_nc_parse_entry()</code> and
-           <code>postprocess_termcap()</code> to avoid using
-           <code>strtok()</code>, because it is non-reentrant.
-
-         <li>initialize <code>fds[]</code> array to 0's in
-           <code>_nc_timed_wait()</code>; apparently <code>poll()</code> only
-           sets the <code>revents</code> members of that array when there is
-           activity corresponding to the related file.
-
-         <li>add a check for null pointer in <code>Make_Enum_Type()</code>.
-
-         <li>fix a heap problem with the c++ binding.
+       <li>modify tset to restore original I/O modes if an error is encountered.
+         Also modify to use buffered stderr consistently rather than mixing
+         with write().
 
 
-         <li>correct missing includes for &lt;string.h&gt; in several places,
-           including the C++ binding.  This is not noted by gcc unless we use
-           the <code>-fno-builtin</code> option.
-       </ul>
+       <li>move calls to def_shell_mode() and def_prog_mode() before loop with
+         callbacks in lib_set_term.c, since the c++ demo otherwise initialized
+         the tty modes before saving them.
 
 
-       <li>several fixes for tic:
-         <ul>
-         <li>add a check for empty buffers returned by <code>fgets()</code> in
-           comp_scan.c <code>next_char()</code> function, in case
-           <code>tic</code> is run on a non-text file (fixes a core dump).
+       <li>modified wresize() to ensure that a failed realloc will not corrupt
+         the window structure, and to make subwindows fit within the resized
+         window.
 
 
-         <li>modify <code>tic</code> to verify that its inputs are really files,
-           in case someone tries to read a directory (or
-           <code>/dev/zero</code>).
+       <li>altered resizeterm() to avoid having it fail when a child window
+         cannot be resized because it would be larger than its parent.
 
 
-         <li>correct an uninitialized parameter to <code>open_tempfile()</code>
-           in tic.c which made "tic -I" give an ambiguous error message about
-           <code>tmpnam</code>.
+       <li>correct/improve logic to produce an exit status for errors in tput,
+         which did not exit with an error when told to put a string not in the
+         current terminfo entry.
 
 
-         <li>correct logic in <code>adjust_cancels()</code>, which did not check
-           both alternatives when reclassifying an extended name between
-           boolean, number and string, causing an infinite loop in
-           <code>tic</code>.
-         </ul>
+       <li>modify behavior of can_clear_with() so that if an application is
+         running in a non-bce terminals with default colors enabled, it
+         returns true, allowing the user to select/paste text without picking
+         up extraneous trailing blanks.
 
 
-       <li>using new checks in <code>tic</code> for parameter counts in
-         capability strings, found/fixed several errors both in the
-         terminfo database and in the include/Caps file.
-         <ul>
-         <li>modified several terminfo capability strings, including the
-           definitions for setaf, setab, in include/Caps to indicate that the
-           entries are parameterized.  This information is used to tell which
-           strings are translated when converting to termcap.  This fixes a
-           problem where the generated termcap would contain a spurious "%p1"
-           for the terminfo "%p1%d".
-
-         <li>correct parameter counts in include/Caps for dclk as well as some
-           printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp.
-         </ul>
+       <li>add a check in relative_move() to guard against buffer overflow in
+         the overwrite logic.
 
 
-       <li>various fixes for install scripts used to support configure
-         <code>--srcdir</code> and <code>--with-install-prefix</code>.
+       <li>add some limit/pointer checks to -S option of tputs.
 
 
-       <li>correct several mismatches between manpage filename and ".TH"
-         directives, renaming dft_fgbg.3x to default_colors.3x and
-         menu_attribs.3x to menu_attributes.3x.
+       <li>modify mvcur() to avoid emitting newline characters when nonl() mode
+         is set.  Normally this is not a problem since the actual terminal
+         mode is set to suppress nl/crlf translations, however it is useful to
+         allow the caller to manipulate the terminal mode to avoid staircasing
+         effects after spawning a process which writes messages (for lynx
+         2.8.4).
 </ul>
 
 Portability:
 <ul>
        <li>configure script:
        <ul>
 </ul>
 
 Portability:
 <ul>
        <li>configure script:
        <ul>
-         <li>newer config.guess, config.sub, including changes to support OS/2
-           EMX.  The configure script for OS/2 EMX still relies on a patch
-           since there is no (working) support for that platform in the main
-           autoconf distribution.
+         <li>modify check in --disable-overwrite option so that it is used by
+           default unless the --prefix/$prefix value is not /usr, in attempt to
+           work around packagers who do not read the INSTALL notes.
 
 
-         <li>make configure script checks on variables <code>$GCC</code> and
-           <code>$GXX</code> consistently compare against 'yes' rather than
-           test if they are nonnull, since either may be set to the
-           corresponding name of the C or C++ compiler.
+         <li>correct a typo in configure --enable-colorfgbg option, and move it
+           to the experimental section (cf: 20011208).
 
 
-         <li>change configure script to use AC_CANONICAL_SYSTEM rather than
-           AC_CANONICAL_HOST, which means that <code>configure --target</code>
-           will set a default program-prefix.
+         <li>modify configure script to allow building with termcap only, or with
+           fallbacks only.  In this case, we do not build tic and toe.
 
 
-         <li>modify the check for big-core to force a couple of memory
-           accesses, which may work as needed for older/less-capable machines
-           (if not, there's still the explicit configure option).
+         <li>modify run_tic.sh to check if the build is a cross-compile.  In that
+           case, do not use the build's tic to install the terminfo database.
 
 
-         <li>modify configure test for <code>tcgetattr()</code> to allow for
-           old implementations, e.g., on BeOS, which only defined it as a
-           macro.
+         <li>modify c++/Makefile.in to accommodate archive programs that are
+           different for C++ than for C, and add cases for vendor's C++
+           compilers on Solaris and IRIX.
 
 
-         <li>add configure check for filesystems (such as OS/2 EMX) which do
-           not distinguish between upper/lowercase filenames, use this to fix
-           tags rules in makefiles.
+         <li>add several configure script options to aid with cross-compiling:
+           --with-build-cc, --with-build-cflags, --with-build-ldflags, and
+           --with-build-libs.
 
 
-         <li>add MKncurses_def.sh to generate fallback definitions for
-           ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in
-           code to consistently use "#if" rather than "#ifdef".
+         <li>add experimental --with-caps=XXX option to customize to similar
+           terminfo database formats such as AIX 4.x
 
 
-         <li>change most remaining unquoted parameters of <code>test</code> in
-           configure script to use quotes, for instance fixing a problem in the
-           <code>--disable-database</code> option.
-
-         <li>modify scripts so that "make install.data" works on OS/2 EMX.
-
-         <li>modify scripts and makefiles so the Ada95 directory builds on
-           OS/2 EMX.
-       </ul>
+         <li>add configure option --with-ospeed to assist packagers in transition
+           to 5.3 change to ospeed type.
+         </ul>
 
        <li>library:
        <ul>
 
        <li>library:
        <ul>
-       <li>replaced case-statement in <code>_nc_tracebits()</code> for CSIZE
-         with a table to simplify working around implementations that define
-         random combinations of the related macros to zero.
+         <li>implement a simple vsscanf() fallback function which uses the %n
+           conversion to help parse the input data.
 
 
-       <li>improved OS/2 mouse support by retrying as a 2-button mouse if code
-         fails to set up a 3-button mouse.
+         <li>various fixes to build/work with different implementations of
+           vsscanf().
 
 
-       <li>added private entrypoint <code>_nc_basename()</code>, used to
-         consolidate related code in progs, as well as accommodating OS/2 EMX
-         pathnames.
+         <li>add/use macro to suppress sign-extension of char type on
+           platforms where this is a problem in ctype macros, e.g., Solaris.
 
 
-       <li>alter definition of NCURSES_CONST to make it non-empty.
+         <li>finish changes needed to build dll's on cygwin.
 
 
-       <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
-         an (unspecified) symbol conflict.
+         <li>add #undef's before possible redefinition of ERR and OK in curses.h
        </ul>
 
        <li>programs:
        <ul>
        </ul>
 
        <li>programs:
        <ul>
-         <li>modified progs/tset.c and tack/sysdep.c to build with sgttyb
-           interface if neither termio or termios is available.  Tested this
-           with FreeBSD 2.1.5 (which does have termios - but the sgttyb does
-           work).
-       </ul>
+         <li>modify ifdef's in write_entry.c to allow use of symbolic links on
+           platforms with no hard links, e.g., BeOS.
+
+         <li>modify _nc_write_entry() to allow for the possibility that linking
+           aliases on a filesystem that ignores case would not succeed because
+           the source and destination differ only by case, e.g., NCR260VT300WPP0
+           on cygwin.
 
 
+         <li>modify logic in tic, toe, tput and tset which checks for basename of
+           argv[0] to work properly on systems such as OS/2 which have
+           case-independent filenames and/or program suffixes, e.g., ".ext".
+       </ul>
 </ul>
 
 <H1>Features of Ncurses</H1>
 </ul>
 
 <H1>Features of Ncurses</H1>
@@ -474,23 +317,23 @@ including (versions starting with those noted):
 <DT> cdk
 <DD> Curses Development Kit
 <br>
 <DT> cdk
 <DD> Curses Development Kit
 <br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
+<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
 <br>
 <br>
-<A HREF="http://dickey.his.com/cdk/cdk.html">http://dickey.his.com/cdk</A>.
+<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
 <DT> ded
 <DD> directory-editor
 <br>
 <DT> ded
 <DD> directory-editor
 <br>
-<A HREF="http://dickey.his.com/ded/ded.html">http://dickey.his.com/ded</A>.
+<A HREF="http://invisible-island.net/ded/ded.html">http://invisible-island.net/ded</A>.
 <DT> dialog
 <DD> the underlying application used in Slackware's setup, and the basis
 for similar applications on GNU/Linux.
 <br>
 <DT> dialog
 <DD> the underlying application used in Slackware's setup, and the basis
 for similar applications on GNU/Linux.
 <br>
-<A HREF="http://dickey.his.com/dialog/dialog.html">http://dickey.his.com/dialog</A>.
+<A HREF="http://invisible-island.net/dialog/dialog.html">http://invisible-island.net/dialog</A>.
 <DT> lynx
 <DD> the character-screen WWW browser
 <br>
 <A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
 <DT> lynx
 <DD> the character-screen WWW browser
 <br>
 <A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
-<DT> Midnight Commander 4.1
+<DT> Midnight Commander
 <DD> file manager
 <br>
 <A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
 <DD> file manager
 <br>
 <A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
@@ -528,7 +371,7 @@ as well as some that use ncurses for the terminfo support alone:
 <DT> vile
 <DD> vi-like-emacs
 <br>
 <DT> vile
 <DD> vi-like-emacs
 <br>
-<A HREF="http://dickey.his.com/vile/vile.html">http://dickey.his.com/vile</A>.
+<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
 </DL>
 <P>
 
 </DL>
 <P>
 
@@ -543,7 +386,7 @@ HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
+<A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">J&uuml;rgen Pfeifer</A>.
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
@@ -561,7 +404,7 @@ This list is open to anyone interested in helping with the development and
 testing of this package.<P>
 
 Beta versions of ncurses and patches to the current release are made available at
 testing of this package.<P>
 
 Beta versions of ncurses and patches to the current release are made available at
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
+<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
 
 <H2>Future Plans</H2>
 <UL>
 
 <H2>Future Plans</H2>
 <UL>
index 630499450afe2953b18d9a99bd0c92b27db30ed5..9555320e4c6b63e2b0a0d4d5db5f30c5fb6243d1 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.56 2000/10/15 00:43:38 tom Exp $
+# $Id: Makefile.in,v 1.64 2002/01/19 20:25:31 NIIBE.Yutaka Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,1999 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.      #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -55,9 +55,13 @@ INSTALL_DATA = @INSTALL_DATA@
 
 AR             = @AR@
 AR_OPTS                = @AR_OPTS@
 
 AR             = @AR@
 AR_OPTS                = @AR_OPTS@
+
+CXX_AR         = @CXX_AR@
+CXX_AR_OPTS    = @CXX_AR_OPTS@
 RANLIB         = @RANLIB@
 
 CXX            = @CXX@
 RANLIB         = @RANLIB@
 
 CXX            = @CXX@
+CPP            = @CPP@
 CXXFLAGS       = @CXXFLAGS@
 CXXLIBS                = @CXXLIBS@
 
 CXXFLAGS       = @CXXFLAGS@
 CXXLIBS                = @CXXLIBS@
 
@@ -87,9 +91,9 @@ LIBNAME_LIBTOOL       = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.la
 LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a
 LIBNAME                = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
 
 LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a
 LIBNAME                = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
 
-LINK_FLAGS     = @EXTRA_LDFLAGS@ -L../lib -L$(libdir) -l$(LIBROOT)
+LINK_FLAGS     = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@LIB_SUFFIX@
 
 
-LINK_LIBTOOL   = @EXTRA_LDFLAGS@ -L../lib -L$(libdir) ../lib/$(LIBNAME)
+LINK_LIBTOOL   = @EXTRA_LDFLAGS@ -L../lib ../lib/$(LIBNAME)
 LINK_NORMAL    = $(LINK_FLAGS)
 LINK_DEBUG     = $(LINK_FLAGS)
 LINK_PROFILE   = $(LINK_FLAGS)
 LINK_NORMAL    = $(LINK_FLAGS)
 LINK_DEBUG     = $(LINK_FLAGS)
 LINK_PROFILE   = $(LINK_FLAGS)
@@ -116,6 +120,8 @@ all ::              demo$x
 
 sources :      $(AUTO_SRC)
 
 
 sources :      $(AUTO_SRC)
 
+depend :
+
 # 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.
 # 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.
@@ -130,7 +136,7 @@ LIB_OBJS = \
        $(MODEL)/cursesmain.o
 
 ../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
        $(MODEL)/cursesmain.o
 
 ../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
-       $(AR) $(AR_OPTS) $@ $?
+       $(CXX_AR) $(CXX_AR_OPTS) $@ $?
        $(RANLIB) $@
 
 ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
        $(RANLIB) $@
 
 ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
@@ -153,7 +159,7 @@ etip.h:     $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
        sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
 
 $(DESTDIR)$(libdir) :
        sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
 
 $(DESTDIR)$(libdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 install \
 install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
 
 install \
 install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
@@ -164,9 +170,10 @@ uninstall.libs::
        -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
 
 mostlyclean ::
        -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace
 
 clean :: mostlyclean
 
 clean :: mostlyclean
+       -rm -rf $(MODEL)/SunWS_cache
        -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
        -rm -rf .libs
 
        -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
        -rm -rf .libs
 
index eb37ac6702476abbd81fd399c30d6df9ba47b425..747fb1e768917c187f859662e652eabc1b455a64 100644 (file)
@@ -55,4 +55,4 @@ Authors of first ncurses based release (NCursesWindow, NCursesPanel):
  and Anatoly Ivasyuk     <anatoly@nick.csh.rit.edu>
 
 Author of this release:
  and Anatoly Ivasyuk     <anatoly@nick.csh.rit.edu>
 
 Author of this release:
-     Juergen Pfeifer     <juergen.pfeifer@gmx.net>
+     Juergen Pfeifer     http://www.familiepfeifer.de/Contact.aspx?Lang=en
index eaaadc7eebdd8b4d02be6e0f67c9b5daf4384067..5b7ab5c0ab99f655537679b9fecb8ccd140e2783 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-#include "cursesapp.h"
 #include "internal.h"
 #include "internal.h"
+#include "cursesapp.h"
 
 
-MODULE_ID("$Id: cursesapp.cc,v 1.6 1999/10/30 23:59:37 tom Exp $")
+MODULE_ID("$Id: cursesapp.cc,v 1.9 2002/07/06 15:47:52 juergen Exp $")
 
 void
 NCursesApplication::init(bool bColors) {
 
 void
 NCursesApplication::init(bool bColors) {
index f13fd1bdb45795d816a059fcfd71d5b58d86cdde..3eb25d031191626d06995cf2a7ac98da313077f3 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: cursesapp.h,v 1.5 1999/05/16 17:29:59 juergen Exp $
+// $Id: cursesapp.h,v 1.8 2002/07/06 15:47:52 juergen Exp $
 
 
-#ifndef _CURSESAPP_H
-#define _CURSESAPP_H
+#ifndef NCURSES_CURSESAPP_H_incl
+#define NCURSES_CURSESAPP_H_incl
 
 #include <cursslk.h>
 
 
 #include <cursslk.h>
 
-class NCursesApplication {
+class NCURSES_IMPEXP NCursesApplication {
 public:
   typedef struct _slk_link {          // This structure is used to maintain
     struct _slk_link* prev;           // a stack of SLKs
 public:
   typedef struct _slk_link {          // This structure is used to maintain
     struct _slk_link* prev;           // a stack of SLKs
@@ -160,4 +161,4 @@ public:
 
 };
  
 
 };
  
-#endif // _CURSESAPP_H
+#endif // NCURSES_CURSESAPP_H_incl
index a3b066cb51ef601f60eb57a7c8aab5bb811315ad..aff7b4f8ca053f787b35884fb9de8004ad2e7172 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
+#include "internal.h"
 #include "cursesf.h"
 #include "cursesapp.h"
 #include "cursesf.h"
 #include "cursesapp.h"
-#include "internal.h"
 
 
-MODULE_ID("$Id: cursesf.cc,v 1.11 2000/06/09 16:15:40 juergen Exp $")
-  
+MODULE_ID("$Id: cursesf.cc,v 1.15 2002/07/06 15:47:52 juergen Exp $")
+
 NCursesFormField::~NCursesFormField () {
   if (field)
     OnError(::free_field (field));
 NCursesFormField::~NCursesFormField () {
   if (field)
     OnError(::free_field (field));
@@ -54,16 +55,16 @@ NCursesForm::mapFields(NCursesFormField* nfields[]) {
 
   for (lcv=0; nfields[lcv]->field; ++lcv)
     ++fieldCount;
 
   for (lcv=0; nfields[lcv]->field; ++lcv)
     ++fieldCount;
-  
+
   FIELD** fields = new FIELD*[fieldCount + 1];
   FIELD** fields = new FIELD*[fieldCount + 1];
-  
+
   for (lcv=0;nfields[lcv]->field;++lcv) {
     fields[lcv] = nfields[lcv]->field;
   }
   fields[lcv] = NULL;
   for (lcv=0;nfields[lcv]->field;++lcv) {
     fields[lcv] = nfields[lcv]->field;
   }
   fields[lcv] = NULL;
-  
+
   my_fields = nfields;
   my_fields = nfields;
-  
+
   if (form && (old_fields = ::form_fields(form))) {
     ::set_form_fields(form,(FIELD**)0);
     delete[] old_fields;
   if (form && (old_fields = ::form_fields(form))) {
     ::set_form_fields(form,(FIELD**)0);
     delete[] old_fields;
@@ -104,7 +105,7 @@ NCursesForm::InitForm(NCursesFormField* nfields[],
                      bool with_frame,
                      bool autoDelete_Fields) {
   int mrows, mcols;
                      bool with_frame,
                      bool autoDelete_Fields) {
   int mrows, mcols;
-  
+
   keypad(TRUE);
   meta(TRUE);
 
   keypad(TRUE);
   meta(TRUE);
 
@@ -115,24 +116,24 @@ NCursesForm::InitForm(NCursesFormField* nfields[],
   form = ::new_form(mapFields(nfields));
   if (!form)
     OnError (E_SYSTEM_ERROR);
   form = ::new_form(mapFields(nfields));
   if (!form)
     OnError (E_SYSTEM_ERROR);
-  
+
   UserHook* hook = new UserHook;
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = form;
   ::set_form_userptr(form,(void*)hook);
   UserHook* hook = new UserHook;
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = form;
   ::set_form_userptr(form,(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, NCursesForm::frm_init);
   ::set_form_term  (form, NCursesForm::frm_term);
   ::set_field_init (form, NCursesForm::fld_init);
   ::set_field_term (form, NCursesForm::fld_term);
-  
+
   scale(mrows, mcols);
   ::set_form_win(form, w);
   scale(mrows, mcols);
   ::set_form_win(form, w);
-  
+
   if (with_frame) {
     if ((mrows > height()-2) || (mcols > width()-2))
   if (with_frame) {
     if ((mrows > height()-2) || (mcols > width()-2))
-      OnError(E_NO_ROOM);  
+      OnError(E_NO_ROOM);
     sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
     ::set_form_sub(form, sub->w);
     b_sub_owner = TRUE;
     sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
     ::set_form_sub(form, sub->w);
     b_sub_owner = TRUE;
@@ -161,14 +162,14 @@ NCursesForm::~NCursesForm() {
     if (b_autoDelete) {
       if (cnt>0) {
        for (int i=0; i <= cnt; i++)
     if (b_autoDelete) {
       if (cnt>0) {
        for (int i=0; i <= cnt; i++)
-         delete my_fields[i];   
+         delete my_fields[i];
       }
       delete[] my_fields;
     }
 
     ::free_form(form);
     // It's essential to do this after free_form()
       }
       delete[] my_fields;
     }
 
     ::free_form(form);
     // It's essential to do this after free_form()
-    delete[] fields;  
+    delete[] fields;
   }
 }
 
   }
 }
 
@@ -186,7 +187,7 @@ NCursesForm::setSubWindow(NCursesWindow& nsub) {
 
 /* Internal hook functions. They will route the hook
  * calls to virtual methods of the NCursesForm class,
 
 /* Internal hook functions. They will route the hook
  * calls to virtual methods of the NCursesForm class,
- * so in C++ providing a hook is done simply by 
+ * so in C++ providing a hook is done simply by
  * implementing a virtual method in a derived class
  */
 void
  * implementing a virtual method in a derived class
  */
 void
@@ -228,7 +229,7 @@ NCursesForm::On_Field_Termination(NCursesFormField& field) {
 }
 
 // call the form driver and do basic error checking.
 }
 
 // call the form driver and do basic error checking.
-int 
+int
 NCursesForm::driver (int c) {
   int res = ::form_driver (form, c);
   switch (res) {
 NCursesForm::driver (int c) {
   int res = ::form_driver (form, c);
   switch (res) {
@@ -244,15 +245,15 @@ NCursesForm::driver (int c) {
 }
 
 void NCursesForm::On_Request_Denied(int c) const {
 }
 
 void NCursesForm::On_Request_Denied(int c) const {
-  beep();
+  ::beep();
 }
 
 void NCursesForm::On_Invalid_Field(int c) const {
 }
 
 void NCursesForm::On_Invalid_Field(int c) const {
-  beep();
+  ::beep();
 }
 
 void NCursesForm::On_Unknown_Command(int c) const {
 }
 
 void NCursesForm::On_Unknown_Command(int c) const {
-  beep();
+  ::beep();
 }
 
 static const int CMD_QUIT = MAX_COMMAND + 1;
 }
 
 static const int CMD_QUIT = MAX_COMMAND + 1;
@@ -266,8 +267,8 @@ NCursesForm::operator()(void) {
   post();
   show();
   refresh();
   post();
   show();
   refresh();
-  
-  while (((drvCmnd = virtualize((c=getch()))) != CMD_QUIT)) {
+
+  while (((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
     switch((err=driver(drvCmnd))) {
     case E_REQUEST_DENIED:
       On_Request_Denied(c);
     switch((err=driver(drvCmnd))) {
     case E_REQUEST_DENIED:
       On_Request_Denied(c);
@@ -295,7 +296,7 @@ NCursesForm::operator()(void) {
 // code c into a form request code.
 // The default implementation provides a hopefully straightforward
 // mapping for the most common keystrokes and form requests.
 // code c into a form request code.
 // The default implementation provides a hopefully straightforward
 // mapping for the most common keystrokes and form requests.
-int 
+int
 NCursesForm::virtualize(int c) {
   switch(c) {
 
 NCursesForm::virtualize(int c) {
   switch(c) {
 
@@ -318,7 +319,7 @@ NCursesForm::virtualize(int c) {
 
   case CTRL('F')     : return(REQ_NEXT_FIELD);  // Forward
   case CTRL('B')     : return(REQ_PREV_FIELD);  // Backward
 
   case CTRL('F')     : return(REQ_NEXT_FIELD);  // Forward
   case CTRL('B')     : return(REQ_PREV_FIELD);  // Backward
-  case CTRL('L')     : return(REQ_LEFT_FIELD);  // Left 
+  case CTRL('L')     : return(REQ_LEFT_FIELD);  // Left
   case CTRL('R')     : return(REQ_RIGHT_FIELD); // Right
   case CTRL('U')     : return(REQ_UP_FIELD);    // Up
   case CTRL('D')     : return(REQ_DOWN_FIELD);  // Down
   case CTRL('R')     : return(REQ_RIGHT_FIELD); // Right
   case CTRL('U')     : return(REQ_UP_FIELD);    // Up
   case CTRL('D')     : return(REQ_DOWN_FIELD);  // Down
@@ -341,7 +342,7 @@ NCursesForm::virtualize(int c) {
 
   case CTRL('N')     : return(REQ_NEXT_CHOICE);
   case CTRL('P')     : return(REQ_PREV_CHOICE);
 
   case CTRL('N')     : return(REQ_NEXT_CHOICE);
   case CTRL('P')     : return(REQ_PREV_CHOICE);
-    
+
   default:
     return(c);
   }
   default:
     return(c);
   }
@@ -362,7 +363,7 @@ bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
 bool UserDefinedFieldType::ccheck(int c, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
 bool UserDefinedFieldType::ccheck(int c, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
-  UserDefinedFieldType* udf = 
+  UserDefinedFieldType* udf =
     (UserDefinedFieldType*)(F->fieldtype());
   assert(udf != 0);
   return udf->char_check(c);
     (UserDefinedFieldType*)(F->fieldtype());
   assert(udf != 0);
   return udf->char_check(c);
@@ -383,7 +384,7 @@ FIELDTYPE* UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice =
 bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
 bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
-  UserDefinedFieldType_With_Choice* udf = 
+  UserDefinedFieldType_With_Choice* udf =
     (UserDefinedFieldType_With_Choice*)(F->fieldtype());
   assert(udf != 0);
   return udf->next(*F);
     (UserDefinedFieldType_With_Choice*)(F->fieldtype());
   assert(udf != 0);
   return udf->next(*F);
@@ -392,7 +393,7 @@ bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
 bool UserDefinedFieldType_With_Choice::prev_choice(FIELD *f, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
 bool UserDefinedFieldType_With_Choice::prev_choice(FIELD *f, const void *u) {
   NCursesFormField* F = (NCursesFormField*)u;
   assert(F != 0);
-  UserDefinedFieldType_With_Choice* udf = 
+  UserDefinedFieldType_With_Choice* udf =
     (UserDefinedFieldType_With_Choice*)(F->fieldtype());
   assert(udf != 0);
   return udf->previous(*F);
     (UserDefinedFieldType_With_Choice*)(F->fieldtype());
   assert(udf != 0);
   return udf->previous(*F);
@@ -408,7 +409,7 @@ public:
                               UserDefinedFieldType::makearg,
                               NULL,
                               NULL);
                               UserDefinedFieldType::makearg,
                               NULL,
                               NULL);
-    if (code==E_OK) 
+    if (code==E_OK)
       code = ::set_fieldtype_arg
        (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
         UserDefinedFieldType::makearg,
       code = ::set_fieldtype_arg
        (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
         UserDefinedFieldType::makearg,
index 40f4146172c355084fe274b77aa7ddbdf5c2691b..abd2a7dcc7dc2ea4667102920d51d2f0d4dcf47f 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: cursesf.h,v 1.12 2000/07/15 21:08:25 tom Exp $
+// $Id: cursesf.h,v 1.17 2002/07/06 15:47:52 juergen Exp $
 
 
-#ifndef _CURSESF_H
-#define _CURSESF_H
+#ifndef NCURSES_CURSESF_H_incl
+#define NCURSES_CURSESF_H_incl 1
 
 #include <cursesp.h>
 #include <string.h>
 
 #include <cursesp.h>
 #include <string.h>
@@ -47,11 +48,11 @@ extern "C" {
 // The abstract base class for buitin and user defined Fieldtypes.
 // -------------------------------------------------------------------------
 //
 // The abstract base class for buitin and user defined Fieldtypes.
 // -------------------------------------------------------------------------
 //
-class NCursesFormField; // forward declaration
+class NCURSES_IMPEXP NCursesFormField; // forward declaration
 
 // Class to represent builtin field types as well as C++ written new
 // fieldtypes (see classes UserDefineFieldType...
 
 // Class to represent builtin field types as well as C++ written new
 // fieldtypes (see classes UserDefineFieldType...
-class NCursesFieldType {
+class NCURSES_IMPEXP NCursesFieldType {
   friend class NCursesFormField;
 
 protected:
   friend class NCursesFormField;
 
 protected:
@@ -80,7 +81,7 @@ public:
 // The class representing a forms field, wrapping the lowlevel FIELD struct
 // -------------------------------------------------------------------------
 //
 // The class representing a forms field, wrapping the lowlevel FIELD struct
 // -------------------------------------------------------------------------
 //
-class NCursesFormField {
+class NCURSES_IMPEXP NCursesFormField {
   friend class NCursesForm;
 
 protected:
   friend class NCursesForm;
 
 protected:
@@ -265,7 +266,7 @@ public:
     OnError(::set_field_buffer(field,buffer,val));
   }
 
     OnError(::set_field_buffer(field,buffer,val));
   }
 
-  // Retrieve the value of a fields buffer. The defaukt buffer is nr. 0
+  // Retrieve the value of a fields buffer. The default buffer is nr. 0
   inline char* value(int buffer = 0) const {
     return ::field_buffer(field,buffer);
   }
   inline char* value(int buffer = 0) const {
     return ::field_buffer(field,buffer);
   }
@@ -288,7 +289,7 @@ public:
 // The class representing a form, wrapping the lowlevel FORM struct
 // -------------------------------------------------------------------------
 //
 // The class representing a form, wrapping the lowlevel FORM struct
 // -------------------------------------------------------------------------
 //
-class NCursesForm : public NCursesPanel {
+class NCURSES_IMPEXP NCursesForm : public NCursesPanel {
 protected:
   FORM* form;  // the lowlevel structure
 
 protected:
   FORM* form;  // the lowlevel structure
 
@@ -541,7 +542,7 @@ public:
 // data belongs to some class T. Use T as template argument
 // to create a UserField.
 // -------------------------------------------------------------------------
 // data belongs to some class T. Use T as template argument
 // to create a UserField.
 // -------------------------------------------------------------------------
-template<class T> class NCursesUserField : public NCursesFormField
+template<class T> class NCURSES_IMPEXP NCursesUserField : public NCursesFormField
 {
 public:
   NCursesUserField (int rows,
 {
 public:
   NCursesUserField (int rows,
@@ -574,7 +575,7 @@ public:
 // The same mechanism is used to attach user data to a form
 // -------------------------------------------------------------------------
 //
 // The same mechanism is used to attach user data to a form
 // -------------------------------------------------------------------------
 //
-template<class T> class NCursesUserForm : public NCursesForm
+template<class T> class NCURSES_IMPEXP NCursesUserForm : public NCursesForm
 {
 protected:
   // 'Internal' constructor, builds an object without association to a
 {
 protected:
   // 'Internal' constructor, builds an object without association to a
@@ -637,7 +638,7 @@ public:
 // Builtin Fieldtypes
 // -------------------------------------------------------------------------
 //
 // Builtin Fieldtypes
 // -------------------------------------------------------------------------
 //
-class Alpha_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType {
 private:
   int min_field_width;
 
 private:
   int min_field_width;
 
@@ -652,7 +653,7 @@ public:
   }
 };
 
   }
 };
 
-class Alphanumeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType {
 private:
   int min_field_width;
 
 private:
   int min_field_width;
 
@@ -667,7 +668,7 @@ public:
   }
 };
 
   }
 };
 
-class Integer_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Integer_Field : public NCursesFieldType {
 private:
   int precision;
   long lower_limit, upper_limit;
 private:
   int precision;
   long lower_limit, upper_limit;
@@ -684,7 +685,7 @@ public:
   }
 };
 
   }
 };
 
-class Numeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType {
 private:
   int precision;
   double lower_limit, upper_limit;
 private:
   int precision;
   double lower_limit, upper_limit;
@@ -701,7 +702,7 @@ public:
   }
 };
 
   }
 };
 
-class Regular_Expression_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType {
 private:
   char* regex;
 
 private:
   char* regex;
 
@@ -712,8 +713,8 @@ private:
 public:
   Regular_Expression_Field(const char *expr)
     : NCursesFieldType(TYPE_REGEXP) {
 public:
   Regular_Expression_Field(const char *expr)
     : NCursesFieldType(TYPE_REGEXP) {
-      regex = new char[1+::strlen(expr)];
-      (strcpy)(regex,expr);
+      regex = new char[1 + ::strlen(expr)];
+      (::strcpy)(regex,expr);
   }
 
   ~Regular_Expression_Field() {
   }
 
   ~Regular_Expression_Field() {
@@ -721,7 +722,7 @@ public:
   }
 };
 
   }
 };
 
-class Enumeration_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType {
 private:
   char** list;
   int case_sensitive;
 private:
   char** list;
   int case_sensitive;
@@ -742,7 +743,7 @@ public:
   }
 };
 
   }
 };
 
-class 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));
 private:
   void set(NCursesFormField& f) {
     OnError(::set_field_type(f.get_field(),fieldtype));
@@ -757,7 +758,7 @@ public:
 // Abstract base class for User-Defined Fieldtypes
 // -------------------------------------------------------------------------
 //
 // Abstract base class for User-Defined Fieldtypes
 // -------------------------------------------------------------------------
 //
-class 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
   friend class UDF_Init; // Internal helper to set up statics
 private:
   // For all C++ defined fieldtypes we need only one generic lowlevel
@@ -793,7 +794,7 @@ public:
 // Abstract base class for User-Defined Fieldtypes with Choice functions
 // -------------------------------------------------------------------------
 //
 // Abstract base class for User-Defined Fieldtypes with Choice functions
 // -------------------------------------------------------------------------
 //
-class 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
   friend class UDF_Init; // Internal helper to set up statics
 private:
   // For all C++ defined fieldtypes with choice functions we need only one
@@ -820,5 +821,5 @@ public:
   }
 };
 
   }
 };
 
-#endif // _CURSESF_H
+#endif // NCURSES_CURSESF_H_incl
 
 
index 3b4dbd58bef17425d5a83f68070898dc91156467..f1ff57662f4b06686a11575239ca185e1101e62b 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
+#include "internal.h"
 #include "cursesm.h"
 #include "cursesapp.h"
 #include "cursesm.h"
 #include "cursesapp.h"
-#include "internal.h"
 
 
-MODULE_ID("$Id: cursesm.cc,v 1.12 1999/10/30 23:59:37 tom Exp $")
-  
+MODULE_ID("$Id: cursesm.cc,v 1.17 2002/07/06 15:47:52 juergen Exp $")
+
 NCursesMenuItem::~NCursesMenuItem() {
   if (item)
     OnError(::free_item(item));
 }
 
 NCursesMenuItem::~NCursesMenuItem() {
   if (item)
     OnError(::free_item(item));
 }
 
-bool 
+bool
 NCursesMenuItem::action() {
   return FALSE;
 };
 NCursesMenuItem::action() {
   return FALSE;
 };
@@ -50,7 +51,7 @@ NCursesMenuItem::action() {
 NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
 }
 
 NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
 }
 
-bool 
+bool
 NCursesMenuCallbackItem::action() {
   if (p_fct)
     return p_fct (*this);
 NCursesMenuCallbackItem::action() {
   if (p_fct)
     return p_fct (*this);
@@ -60,7 +61,7 @@ NCursesMenuCallbackItem::action() {
 
 /* Internal hook functions. They will route the hook
  * calls to virtual methods of the NCursesMenu class,
 
 /* Internal hook functions. They will route the hook
  * calls to virtual methods of the NCursesMenu class,
- * so in C++ providing a hook is done simply by 
+ * so in C++ providing a hook is done simply by
  * implementing a virtual method in a derived class
  */
 void
  * implementing a virtual method in a derived class
  */
 void
@@ -91,21 +92,21 @@ NCursesMenu::itm_term(MENU *m) {
 ITEM**
 NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
   int itemCount = 0,lcv;
 ITEM**
 NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
   int itemCount = 0,lcv;
-  
+
   for (lcv=0; nitems[lcv]->item; ++lcv)
     ++itemCount;
   for (lcv=0; nitems[lcv]->item; ++lcv)
     ++itemCount;
-  
+
   ITEM** items = new ITEM*[itemCount + 1];
   ITEM** items = new ITEM*[itemCount + 1];
-  
+
   for (lcv=0;nitems[lcv]->item;++lcv) {
     items[lcv] = nitems[lcv]->item;
   }
   items[lcv] = NULL;
   for (lcv=0;nitems[lcv]->item;++lcv) {
     items[lcv] = nitems[lcv]->item;
   }
   items[lcv] = NULL;
-  
+
   my_items = nitems;
   my_items = nitems;
-  
+
   if (menu)
   if (menu)
-    delete[] ::menu_items(menu);  
+    delete[] ::menu_items(menu);
   return items;
 }
 
   return items;
 }
 
@@ -114,7 +115,7 @@ NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
                      bool with_frame,
                      bool autoDelete_Items) {
   int mrows, mcols;
                      bool with_frame,
                      bool autoDelete_Items) {
   int mrows, mcols;
-  
+
   keypad(TRUE);
   meta(TRUE);
 
   keypad(TRUE);
   meta(TRUE);
 
@@ -125,24 +126,24 @@ NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
   menu = ::new_menu(mapItems(nitems));
   if (!menu)
     OnError (E_SYSTEM_ERROR);
   menu = ::new_menu(mapItems(nitems));
   if (!menu)
     OnError (E_SYSTEM_ERROR);
-  
+
   UserHook* hook = new UserHook;
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = menu;
   ::set_menu_userptr(menu,(void*)hook);
   UserHook* hook = new UserHook;
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = menu;
   ::set_menu_userptr(menu,(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, NCursesMenu::mnu_init);
   ::set_menu_term (menu, NCursesMenu::mnu_term);
   ::set_item_init (menu, NCursesMenu::itm_init);
   ::set_item_term (menu, NCursesMenu::itm_term);
-  
+
   scale(mrows, mcols);
   ::set_menu_win(menu, w);
   scale(mrows, mcols);
   ::set_menu_win(menu, w);
-  
+
   if (with_frame) {
     if ((mrows > height()-2) || (mcols > width()-2))
   if (with_frame) {
     if ((mrows > height()-2) || (mcols > width()-2))
-      OnError(E_NO_ROOM);  
+      OnError(E_NO_ROOM);
     sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
     ::set_menu_sub(menu, sub->w);
     b_sub_owner = TRUE;
     sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
     ::set_menu_sub(menu, sub->w);
     b_sub_owner = TRUE;
@@ -180,14 +181,14 @@ NCursesMenu::~NCursesMenu() {
     if (b_autoDelete) {
       if (cnt>0) {
        for (int i=0; i <= cnt; i++)
     if (b_autoDelete) {
       if (cnt>0) {
        for (int i=0; i <= cnt; i++)
-         delete my_items[i];    
+         delete my_items[i];
       }
       delete[] my_items;
     }
 
     ::free_menu(menu);
     // It's essential to do this after free_menu()
       }
       delete[] my_items;
     }
 
     ::free_menu(menu);
     // It's essential to do this after free_menu()
-    delete[] itms;  
+    delete[] itms;
   }
 }
 
   }
 }
 
@@ -218,7 +219,7 @@ NCursesMenu::set_pattern (const char *pat) {
 }
 
 // call the menu driver and do basic error checking.
 }
 
 // call the menu driver and do basic error checking.
-int 
+int
 NCursesMenu::driver (int c) {
   int res = ::menu_driver (menu, c);
   switch (res) {
 NCursesMenu::driver (int c) {
   int res = ::menu_driver (menu, c);
   switch (res) {
@@ -243,7 +244,7 @@ static const int CMD_ACTION = MAX_COMMAND + 2;
 // The default implementation provides a hopefully straightforward
 // mapping for the most common keystrokes and menu requests.
 // -------------------------------------------------------------------------
 // The default implementation provides a hopefully straightforward
 // mapping for the most common keystrokes and menu requests.
 // -------------------------------------------------------------------------
-int 
+int
 NCursesMenu::virtualize(int c) {
   switch(c) {
   case CTRL('X')     : return(CMD_QUIT);              // eXit
 NCursesMenu::virtualize(int c) {
   switch(c) {
   case CTRL('X')     : return(CMD_QUIT);              // eXit
@@ -291,8 +292,8 @@ NCursesMenu::operator()(void) {
   show();
   refresh();
   
   show();
   refresh();
   
-  while (!b_action && ((drvCmnd = virtualize((c=getch()))) != CMD_QUIT)) {
-
+  while (!b_action && ((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
+    
     switch((err=driver(drvCmnd))) {
     case E_REQUEST_DENIED:
       On_Request_Denied(c);
     switch((err=driver(drvCmnd))) {
     case E_REQUEST_DENIED:
       On_Request_Denied(c);
@@ -363,21 +364,20 @@ NCursesMenu::On_Item_Termination(NCursesMenuItem& item) {
 
 void
 NCursesMenu::On_Request_Denied(int c) const {
 
 void
 NCursesMenu::On_Request_Denied(int c) const {
-  beep();
+  ::beep();
 }
 
 void
 NCursesMenu::On_Not_Selectable(int c) const {
 }
 
 void
 NCursesMenu::On_Not_Selectable(int c) const {
-  beep();
+  ::beep();
 }
 
 void
 NCursesMenu::On_No_Match(int c) const {
 }
 
 void
 NCursesMenu::On_No_Match(int c) const {
-  beep();
+  ::beep();
 }
 
 void
 NCursesMenu::On_Unknown_Command(int c) const {
 }
 
 void
 NCursesMenu::On_Unknown_Command(int c) const {
-  beep();
+  ::beep();
 }
 }
-
index 26e0b4ce2b02e677335bb388ee2826f2bf5766aa..8873eca341c5748b94aa5fcae0127e757497c012 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: cursesm.h,v 1.13 1999/10/30 23:59:37 tom Exp $
+// $Id: cursesm.h,v 1.16 2002/07/06 15:47:52 juergen Exp $
 
 
-#ifndef _CURSESM_H
-#define _CURSESM_H
+#ifndef NCURSES_CURSESM_H_incl
+#define NCURSES_CURSESM_H_incl 1
 
 #include <cursesp.h>
 
 
 #include <cursesp.h>
 
@@ -46,7 +47,7 @@ extern "C" {
 // This wraps the ITEM type of <menu.h>
 // -------------------------------------------------------------------------
 //
 // This wraps the ITEM type of <menu.h>
 // -------------------------------------------------------------------------
 //
-class NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuItem {
   friend class NCursesMenu;
   
 protected:
   friend class NCursesMenu;
   
 protected:
@@ -135,7 +136,7 @@ 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.
 // 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 NCursesMenuCallbackItem : public NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem {
 private:
   ITEMCALLBACK* p_fct;
 
 private:
   ITEMCALLBACK* p_fct;
 
@@ -156,7 +157,7 @@ public:
 // This wraps the MENU type of <menu.h>
 // -------------------------------------------------------------------------
 //
 // This wraps the MENU type of <menu.h>
 // -------------------------------------------------------------------------
 //
-class NCursesMenu : public NCursesPanel {
+class NCURSES_IMPEXP NCursesMenu : public NCursesPanel {
 protected:
   MENU *menu;
 
 protected:
   MENU *menu;
 
@@ -514,7 +515,7 @@ public:
 // to create a UserItem.
 // -------------------------------------------------------------------------
 //
 // to create a UserItem.
 // -------------------------------------------------------------------------
 //
-template<class T> class NCursesUserItem : public NCursesMenuItem
+template<class T> class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem
 {
 public:
   NCursesUserItem (const char* p_name,
 {
 public:
   NCursesUserItem (const char* p_name,
@@ -541,7 +542,7 @@ public:
 // The same mechanism is used to attach user data to a menu
 // -------------------------------------------------------------------------
 //
 // The same mechanism is used to attach user data to a menu
 // -------------------------------------------------------------------------
 //
-template<class T> class NCursesUserMenu : public NCursesMenu
+template<class T> class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
 {
 protected:
   NCursesUserMenu( int  lines, 
 {
 protected:
   NCursesUserMenu( int  lines, 
@@ -589,4 +590,4 @@ public:
   }
 };
 
   }
 };
 
-#endif // _CURSESM_H
+#endif // NCURSES_CURSESM_H_incl
index 09400b8d690a0e71128b47229be158047bb4c3f2..7a3721ddc0d1f3bcfd15bd96adba4076a0d32028 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-#include "cursesapp.h"
 #include "internal.h"
 #include "internal.h"
+#include "cursesapp.h"
 
 
-MODULE_ID("$Id: cursesmain.cc,v 1.5 1999/05/16 17:31:22 juergen Exp $")
+MODULE_ID("$Id: cursesmain.cc,v 1.9 2002/07/06 15:47:52 juergen Exp $")
 
 /* This is the default implementation of main() for a NCursesApplication.
  * You only have to instantiate a static NCursesApplication object in your
 
 /* This is the default implementation of main() for a NCursesApplication.
  * You only have to instantiate a static NCursesApplication object in your
@@ -45,7 +46,13 @@ int main(int argc, char* argv[])
   NCursesApplication* A = NCursesApplication::getApplication();
   if (!A)
     return(1);
   NCursesApplication* A = NCursesApplication::getApplication();
   if (!A)
     return(1);
-  A->handleArgs(argc,argv);
-  ::endwin();
-  return((*A)());
+  else {
+    int res;
+
+    A->handleArgs(argc,argv);
+    ::endwin();
+    res = (*A)();
+    ::endwin();
+    return(res);
+  }
 }
 }
index 50095d3d21444d1f8b5b53315537fecca4b84957..2e6931b1bbc28be1114704d3aa960449fde262ae 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1993,1997            *
+ *   Author: Juergen Pfeifer, 1993, 1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-#include "cursesp.h"
 #include "internal.h"
 #include "internal.h"
+#include "cursesp.h"
 #include <string.h>
 
 #include <string.h>
 
-MODULE_ID("$Id: cursesp.cc,v 1.16 2000/07/15 21:08:13 tom Exp $")
+MODULE_ID("$Id: cursesp.cc,v 1.20 2002/07/13 11:35:08 juergen Exp $")
 
 NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
 
 
 NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
 
@@ -75,7 +76,7 @@ NCursesPanel::redraw() {
 int
 NCursesPanel::refresh() {
   ::update_panels();
 int
 NCursesPanel::refresh() {
   ::update_panels();
-  return doupdate();
+  return ::doupdate();
 }
 
 int
 }
 
 int
@@ -116,9 +117,14 @@ NCursesPanel::label(const char *tLabel, const char *bLabel) {
 void
 NCursesPanel::centertext(int row,const char *label) {
   if (label) {
 void
 NCursesPanel::centertext(int row,const char *label) {
   if (label) {
-    int x = (maxx() - strlen(label)) / 2;
+    int x = (maxx() - ::strlen(label)) / 2;
     if (x<0)
       x=0;
     OnError(addstr(row, x, label, width()));
   }
 }
     if (x<0)
       x=0;
     OnError(addstr(row, x, label, width()));
   }
 }
+
+int
+NCursesPanel::getKey(void) {
+  return getch();
+}
index 6293dd102e872a5cccc7920a145318c6c4faba99..f5295e410c90832298a48f1a6fe74293625974f4 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-#ifndef _CURSESP_H
-#define _CURSESP_H
+#ifndef NCURSES_CURSESP_H_incl
+#define NCURSES_CURSESP_H_incl 1
 
 
-// $Id: cursesp.h,v 1.12 1999/10/31 00:00:02 tom Exp $
+// $Id: cursesp.h,v 1.17 2002/07/06 15:47:52 juergen Exp $
 
 #include <cursesw.h>
 
 
 #include <cursesw.h>
 
@@ -42,7 +43,7 @@ extern "C" {
 #  include <panel.h>
 }
 
 #  include <panel.h>
 }
 
-class NCursesPanel : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPanel : public NCursesWindow {
 protected:
   PANEL *p;
   static NCursesPanel *dummy;
 protected:
   PANEL *p;
   static NCursesPanel *dummy;
@@ -79,6 +80,9 @@ protected:
   // If err is equal to the curses error indicator ERR, an error handler
   // is called.
 
   // If err is equal to the curses error indicator ERR, an error handler
   // is called.
 
+  // Get a keystroke. Default implementation calls getch()
+  virtual int getKey(void);
+
 public:
   NCursesPanel(int lines,
               int cols,
 public:
   NCursesPanel(int lines,
               int cols,
@@ -215,4 +219,4 @@ public:
   // Associate the user panel with the user data pointed to by p_UserData.
 };
 
   // Associate the user panel with the user data pointed to by p_UserData.
 };
 
-#endif // _CURSESP_H
+#endif // NCURSES_CURSESP_H_incl
index b82d39399b459f494fb411ad67120cffe9c8ed8c..815f51ce0df7d54781f19b38f3a82394abfd1503 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1999                 *
+ *   Author: Juergen Pfeifer, 1999                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
+#include "internal.h"
 #include "etip.h"
 #include "cursesw.h"
 #include "etip.h"
 #include "cursesw.h"
-#include "internal.h"
 
 
-MODULE_ID("$Id: cursespad.cc,v 1.2 1999/09/11 23:25:54 tom Exp $")
+MODULE_ID("$Id: cursespad.cc,v 1.6 2002/09/22 19:32:55 tom Exp $")
 
 NCursesPad::NCursesPad(int lines, int cols)
   : NCursesWindow(),
 
 NCursesPad::NCursesPad(int lines, int cols)
   : NCursesWindow(),
@@ -53,7 +54,8 @@ NCursesPad::NCursesPad(int lines, int cols)
 }
 
 
 }
 
 
-int NCursesPad::driver (int key) {
+int NCursesPad::driver (int key)
+{
   // Default implementation
   switch(key) {
   case KEY_UP:
   // Default implementation
   switch(key) {
   case KEY_UP:
@@ -79,7 +81,8 @@ int NCursesPad::driver (int key) {
 }
 
 
 }
 
 
-void NCursesPad::operator()(void) {
+void NCursesPad::operator()(void)
+{
   NCursesWindow* W = Win();
 
   if ((NCursesWindow*)0 != W) {
   NCursesWindow* W = Win();
 
   if ((NCursesWindow*)0 != W) {
@@ -164,7 +167,8 @@ void NCursesPad::operator()(void) {
 }
 
 
 }
 
 
-int NCursesPad::refresh() {
+int NCursesPad::refresh()
+{
   int res = noutrefresh();
   if (res==OK && ((NCursesWindow*)0 != viewWin)) {
     res = (viewWin->refresh());
   int res = noutrefresh();
   if (res==OK && ((NCursesWindow*)0 != viewWin)) {
     res = (viewWin->refresh());
@@ -172,7 +176,8 @@ int NCursesPad::refresh() {
   return(res);
 }
 
   return(res);
 }
 
-int NCursesPad::noutrefresh() {
+int NCursesPad::noutrefresh()
+{
   int res = OK;
   NCursesWindow* W = Win();
   if ((NCursesWindow*)0 != W) {
   int res = OK;
   NCursesWindow* W = Win();
   if ((NCursesWindow*)0 != W) {
@@ -210,7 +215,8 @@ void NCursesPad::setSubWindow(NCursesWindow& sub)
   viewSub = &sub;
 }
 
   viewSub = &sub;
 }
 
-void NCursesFramedPad::OnOperation(int pad_req) {
+void NCursesFramedPad::OnOperation(int pad_req)
+{
   NCursesWindow* W = Win();
   NCursesWindow* Win = getWindow();
 
   NCursesWindow* W = Win();
   NCursesWindow* Win = getWindow();
 
index b61a7056af15a879c64ebc4089a625bf730f844b..905a7b52c20d9a5a0536af4fd9744efc0ddf3e30 100644 (file)
   modified by Ulrich Drepper  (drepper@karlsruhe.gmd.de)
           and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
 
   modified by Ulrich Drepper  (drepper@karlsruhe.gmd.de)
           and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
 
-  modified by Juergen Pfeifer (juergen.pfeifer@gmx.net)
+  modified by Juergen Pfeifer
+  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
 */
 
 */
 
-#include "cursesw.h"
 #include "internal.h"
 #include "internal.h"
+#include "cursesw.h"
 
 
-MODULE_ID("$Id: cursesw.cc,v 1.17 2000/09/02 18:55:31 tom Exp $")
+MODULE_ID("$Id: cursesw.cc,v 1.25 2002/07/06 15:47:52 juergen Exp $")
 
 #define COLORS_NEED_INITIALIZATION  -1
 #define COLORS_NOT_INITIALIZED       0
 
 #define COLORS_NEED_INITIALIZATION  -1
 #define COLORS_NOT_INITIALIZED       0
@@ -36,6 +37,14 @@ MODULE_ID("$Id: cursesw.cc,v 1.17 2000/09/02 18:55:31 tom Exp $")
 long NCursesWindow::count = 0L;
 bool NCursesWindow::b_initialized = FALSE;
 
 long NCursesWindow::count = 0L;
 bool NCursesWindow::b_initialized = FALSE;
 
+/*
+ * The ncurses library has a fallback for vsscanf(), which may work...
+ */
+#if !(USE_STRSTREAM_VSCAN || USE_STRSTREAM_VSCAN_CAST)
+#  undef  USE_STDIO_VSCAN
+#  define USE_STDIO_VSCAN 1
+#endif
+
 #if defined(__GNUG__)
 #  ifndef _IO_va_list
 #    define _IO_va_list char *
 #if defined(__GNUG__)
 #  ifndef _IO_va_list
 #    define _IO_va_list char *
@@ -45,43 +54,56 @@ bool NCursesWindow::b_initialized = FALSE;
 int
 NCursesWindow::scanw(const char* fmt, ...)
 {
 int
 NCursesWindow::scanw(const char* fmt, ...)
 {
-#if defined(__GNUG__)
-    va_list args;
-    va_start(args, fmt);
+    int result = ERR;
     char buf[BUFSIZ];
     char buf[BUFSIZ];
-    int result = wgetstr(w, buf);
-    if (result == OK) {
+
+    if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
+       va_list args;
+       va_start(args, fmt);
+#if USE_STDIO_VSCAN
+       if (::vsscanf(buf, fmt, args) != -1)
+           result = OK;
+#elif USE_STRSTREAM_VSCAN      /* powerpc, os390 */
+       strstreambuf ss(buf, sizeof(buf));
+       if (ss.vscan(fmt, args) != -1)
+           result = OK;
+#elif USE_STRSTREAM_VSCAN_CAST /* pre-gcc 3.0 */
        strstreambuf ss(buf, sizeof(buf));
        strstreambuf ss(buf, sizeof(buf));
-       result = ss.vscan(fmt, (_IO_va_list)args);
+       if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+           result = OK;
+#endif
+       va_end(args);
     }
     }
-    va_end(args);
     return result;
     return result;
-#else
-    return ERR;
-#endif
 }
 
 
 int
 NCursesWindow::scanw(int y, int x, const char* fmt, ...)
 {
 }
 
 
 int
 NCursesWindow::scanw(int y, int x, const char* fmt, ...)
 {
-#if defined(__GNUG__)
-    va_list args;
-    va_start(args, fmt);
+    int result = ERR;
     char buf[BUFSIZ];
     char buf[BUFSIZ];
-    int result = wmove(w, y, x);
-    if (result == OK) {
-       result = wgetstr(w, buf);
-       if (result == OK) {
+
+    if (::wmove(w, y, x) != ERR) {
+       if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
+           va_list args;
+           va_start(args, fmt);
+#if USE_STDIO_VSCAN
+           if (::vsscanf(buf, fmt, args) != -1)
+               result = OK;
+#elif USE_STRSTREAM_VSCAN      /* powerpc, os390 */
+           strstreambuf ss(buf, sizeof(buf));
+           if (ss.vscan(fmt, args) != -1)
+               result = OK;
+#elif USE_STRSTREAM_VSCAN_CAST /* pre-gcc 3.0 */
            strstreambuf ss(buf, sizeof(buf));
            strstreambuf ss(buf, sizeof(buf));
-           result = ss.vscan(fmt, (_IO_va_list)args);
+           if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+               result = OK;
+#endif
+           va_end(args);
        }
     }
        }
     }
-    va_end(args);
     return result;
     return result;
-#else
-    return ERR;
-#endif
 }
 
 
 }
 
 
@@ -91,7 +113,7 @@ NCursesWindow::printw(const char * fmt, ...)
     va_list args;
     va_start(args, fmt);
     char buf[BUFSIZ];
     va_list args;
     va_start(args, fmt);
     char buf[BUFSIZ];
-    vsprintf(buf, fmt, args);
+    ::vsprintf(buf, fmt, args);
     va_end(args);
     return waddstr(w, buf);
 }
     va_end(args);
     return waddstr(w, buf);
 }
@@ -102,10 +124,10 @@ NCursesWindow::printw(int y, int x, const char * fmt, ...)
 {
     va_list args;
     va_start(args, fmt);
 {
     va_list args;
     va_start(args, fmt);
-    int result = wmove(w, y, x);
+    int result = ::wmove(w, y, x);
     if (result == OK) {
        char buf[BUFSIZ];
     if (result == OK) {
        char buf[BUFSIZ];
-       vsprintf(buf, fmt, args);
+       ::vsprintf(buf, fmt, args);
        result = waddstr(w, buf);
     }
     va_end(args);
        result = waddstr(w, buf);
     }
     va_end(args);
@@ -142,8 +164,7 @@ NCursesWindow::initialize() {
 }
 
 NCursesWindow::NCursesWindow() {
 }
 
 NCursesWindow::NCursesWindow() {
-  if (!b_initialized)
-    initialize();
+  initialize();
 
   w = (WINDOW *)0;
   init();
 
   w = (WINDOW *)0;
   init();
@@ -154,8 +175,7 @@ NCursesWindow::NCursesWindow() {
 
 NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
 {
 
 NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
 {
-    if (!b_initialized)
-      initialize();
+    initialize();
 
     w = ::newwin(lines, cols, begin_y, begin_x);
     if (w == 0) {
 
     w = ::newwin(lines, cols, begin_y, begin_x);
     if (w == 0) {
@@ -170,8 +190,7 @@ NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
 
 NCursesWindow::NCursesWindow(WINDOW* &window)
 {
 
 NCursesWindow::NCursesWindow(WINDOW* &window)
 {
-    if (!b_initialized)
-      initialize();
+    initialize();
 
     w = window;
     init();
 
     w = window;
     init();
@@ -183,6 +202,7 @@ NCursesWindow::NCursesWindow(WINDOW* &window)
 NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
                             int begin_y, int begin_x, char absrel)
 {
 NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
                             int begin_y, int begin_x, char absrel)
 {
+    initialize();
     if (absrel == 'a') { // absolute origin
        begin_y -= win.begy();
        begin_x -= win.begx();
     if (absrel == 'a') { // absolute origin
        begin_y -= win.begy();
        begin_x -= win.begx();
@@ -208,6 +228,7 @@ NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
 NCursesWindow::NCursesWindow(NCursesWindow& win,
                                bool do_box NCURSES_PARAM_INIT(TRUE))
 {
 NCursesWindow::NCursesWindow(NCursesWindow& win,
                                bool do_box NCURSES_PARAM_INIT(TRUE))
 {
+  initialize();
   w = :: derwin(win.w,win.height()-2,win.width()-2,1,1);
   if (w == 0) {
     err_handler("Cannot construct subwindow");
   w = :: derwin(win.w,win.height()-2,win.width()-2,1,1);
   if (w == 0) {
     err_handler("Cannot construct subwindow");
@@ -244,6 +265,7 @@ static RIPOFFINIT* prip = R_INIT;
 extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
 
 NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
 extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
 
 NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
+  initialize();
   w = win;
   assert((w->_maxx+1)==cols);
   alloced = FALSE;
   w = win;
   assert((w->_maxx+1)==cols);
   alloced = FALSE;
@@ -323,7 +345,7 @@ NCursesWindow::~NCursesWindow()
     }
 
     if (alloced && w != 0)
     }
 
     if (alloced && w != 0)
-       delwin(w);
+       ::delwin(w);
 
     if (alloced) {
       --count;
 
     if (alloced) {
       --count;
@@ -364,7 +386,7 @@ NCursesWindow::getcolor(int getback) const
     short fore, back;
 
     if (colorInitialized==COLORS_ARE_REALLY_THERE) {
     short fore, back;
 
     if (colorInitialized==COLORS_ARE_REALLY_THERE) {
-      if (pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
+      if (::pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
        err_handler("Can't get color pair");
     }
     else {
        err_handler("Can't get color pair");
     }
     else {
@@ -396,7 +418,7 @@ int
 NCursesWindow::setpalette(short fore, short back, short pair)
 {
   if (colorInitialized==COLORS_ARE_REALLY_THERE)
 NCursesWindow::setpalette(short fore, short back, short pair)
 {
   if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return init_pair(pair, fore, back);
+    return ::init_pair(pair, fore, back);
   else
     return OK;
 }
   else
     return OK;
 }
index 8091194cbc5e81c13c2e169faf3d75f92fe03ea0..5383399de4fee7cb7b981f1ffe0c256aba633a33 100644 (file)
@@ -1,19 +1,42 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 // * This makes emacs happy -*-Mode: C++;-*-
-#ifndef _CURSESW_H
-#define _CURSESW_H
-
-// $Id: cursesw.h,v 1.18 1999/10/23 15:16:53 tom Exp $
+/****************************************************************************
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+#ifndef NCURSES_CURSESW_H_incl
+#define NCURSES_CURSESW_H_incl 1
+
+// $Id: cursesw.h,v 1.28 2001/07/15 01:17:56 tom Exp $
 
 #include <etip.h>
 #include <stdio.h>
 #include <stdarg.h>
 
 #include <etip.h>
 #include <stdio.h>
 #include <stdarg.h>
-#ifdef __MWERKS__
-/* This is a bogus check, stringstream is actually ANSI C++ standard,
- * but old compilers like GCC don't have it, and new compilers like Metrowerks
- * don't have strstream
- */
-#include <sstream>
-#else
+
+#if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
 #include <strstream.h>
 #endif
 
 #include <strstream.h>
 #endif
 
@@ -118,7 +141,7 @@ inline int UNDEF(clearok)(WINDOW* win, bool bf)  { return clearok(win, bf); }
 #undef clearok
 #define clearok UNDEF(clearok)
 #else
 #undef clearok
 #define clearok UNDEF(clearok)
 #else
-extern "C" int clearok(WINDOW*, bool);
+extern "C" NCURSES_IMPEXP int NCURSES_API clearok(WINDOW*, bool);
 #endif
 
 #ifdef clrtobot
 #endif
 
 #ifdef clrtobot
@@ -152,7 +175,7 @@ inline int UNDEF(erase)()  { return erase(); }
 #endif
 
 #ifdef flushok
 #endif
 
 #ifdef flushok
-inline int UNDEF(flushok)(WINDOW* _win, bool _bf)  { 
+inline int UNDEF(flushok)(WINDOW* _win, bool _bf)  {
   return flushok(_win, _bf); }
 #undef flushok
 #define flushok UNDEF(flushok)
   return flushok(_win, _bf); }
 #undef flushok
 #define flushok UNDEF(flushok)
@@ -185,49 +208,49 @@ inline int UNDEF(innstr)(char *_str, int n)  { return innstr(_str,n); }
 #endif
 
 #ifdef mvwinnstr
 #endif
 
 #ifdef mvwinnstr
-inline int UNDEF(mvwinnstr)(WINDOW *win, int y, int x, char *_str, int n) { 
+inline int UNDEF(mvwinnstr)(WINDOW *win, int y, int x, char *_str, int n) {
   return mvwinnstr(win,y,x,_str,n); }
 #undef mvwinnstr
 #define mvwinnstr UNDEF(mvwinnstr)
 #endif
 
 #ifdef mvinnstr
   return mvwinnstr(win,y,x,_str,n); }
 #undef mvwinnstr
 #define mvwinnstr UNDEF(mvwinnstr)
 #endif
 
 #ifdef mvinnstr
-inline int UNDEF(mvinnstr)(int y, int x, char *_str, int n) { 
+inline int UNDEF(mvinnstr)(int y, int x, char *_str, int n) {
   return mvinnstr(y,x,_str,n); }
 #undef mvinnstr
 #define mvinnstr UNDEF(mvinnstr)
 #endif
 
 #ifdef winsstr
   return mvinnstr(y,x,_str,n); }
 #undef mvinnstr
 #define mvinnstr UNDEF(mvinnstr)
 #endif
 
 #ifdef winsstr
-inline int UNDEF(winsstr)(WINDOW *w, const char *_str)  { 
+inline int UNDEF(winsstr)(WINDOW *w, const char *_str)  {
   return winsstr(w,_str); }
 #undef winsstr
 #define winsstr UNDEF(winsstr)
 #endif
 
 #ifdef mvwinsstr
   return winsstr(w,_str); }
 #undef winsstr
 #define winsstr UNDEF(winsstr)
 #endif
 
 #ifdef mvwinsstr
-inline int UNDEF(mvwinsstr)(WINDOW *w, int y, int x,  const char *_str)  { 
+inline int UNDEF(mvwinsstr)(WINDOW *w, int y, int x,  const char *_str)  {
   return mvwinsstr(w,y,x,_str); }
 #undef mvwinsstr
 #define mvwinsstr UNDEF(mvwinsstr)
 #endif
 
 #ifdef insstr
   return mvwinsstr(w,y,x,_str); }
 #undef mvwinsstr
 #define mvwinsstr UNDEF(mvwinsstr)
 #endif
 
 #ifdef insstr
-inline int UNDEF(insstr)(const char *_str)  { 
+inline int UNDEF(insstr)(const char *_str)  {
   return insstr(_str); }
 #undef insstr
 #define insstr UNDEF(insstr)
 #endif
 
 #ifdef mvinsstr
   return insstr(_str); }
 #undef insstr
 #define insstr UNDEF(insstr)
 #endif
 
 #ifdef mvinsstr
-inline int UNDEF(mvinsstr)(int y, int x,const char *_str)  { 
+inline int UNDEF(mvinsstr)(int y, int x,const char *_str)  {
   return mvinsstr(y,x,_str); }
 #undef mvinsstr
 #define mvinsstr UNDEF(mvinsstr)
 #endif
 
 #ifdef insnstr
   return mvinsstr(y,x,_str); }
 #undef mvinsstr
 #define mvinsstr UNDEF(mvinsstr)
 #endif
 
 #ifdef insnstr
-inline int UNDEF(insnstr)(const char *_str, int n)  { 
+inline int UNDEF(insnstr)(const char *_str, int n)  {
   return insnstr(_str,n); }
 #undef insnstr
 #define insnstr UNDEF(insnstr)
   return insnstr(_str,n); }
 #undef insnstr
 #define insnstr UNDEF(insnstr)
@@ -254,7 +277,7 @@ inline int UNDEF(getnstr)(char *_str, int n)  { return getnstr(_str,n); }
 #endif
 
 #ifdef getyx
 #endif
 
 #ifdef getyx
-inline void UNDEF(getyx)(const WINDOW* win, int& y, int& x) { 
+inline void UNDEF(getyx)(const WINDOW* win, int& y, int& x) {
   getyx(win, y, x); }
 #undef getyx
 #define getyx UNDEF(getyx)
   getyx(win, y, x); }
 #undef getyx
 #define getyx UNDEF(getyx)
@@ -301,7 +324,7 @@ inline int UNDEF(leaveok)(WINDOW* win, bool bf)  { return leaveok(win, bf); }
 #undef leaveok
 #define leaveok UNDEF(leaveok)
 #else
 #undef leaveok
 #define leaveok UNDEF(leaveok)
 #else
-extern "C" int leaveok(WINDOW* win, bool bf);
+extern "C" NCURSES_IMPEXP int NCURSES_API leaveok(WINDOW* win, bool bf);
 #endif
 
 #ifdef move
 #endif
 
 #ifdef move
@@ -340,9 +363,9 @@ inline int UNDEF(scrollok)(WINDOW* win, bool bf)  { return scrollok(win, bf); }
 #define scrollok UNDEF(scrollok)
 #else
 #if    defined(__NCURSES_H)
 #define scrollok UNDEF(scrollok)
 #else
 #if    defined(__NCURSES_H)
-extern "C" int scrollok(WINDOW*, bool);
+extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, bool);
 #else
 #else
-extern "C" int scrollok(WINDOW*, char);
+extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, char);
 #endif
 #endif
 
 #endif
 #endif
 
@@ -365,7 +388,7 @@ inline int UNDEF(standout)()  { return standout(); }
 #endif
 
 #ifdef subpad
 #endif
 
 #ifdef subpad
-inline WINDOW *UNDEF(subpad)(WINDOW *p, int l, int c, int y, int x) 
+inline WINDOW *UNDEF(subpad)(WINDOW *p, int l, int c, int y, int x)
 { return derwin(p,l,c,y,x); }
 #undef subpad
 #define subpad UNDEF(subpad)
 { return derwin(p,l,c,y,x); }
 #undef subpad
 #define subpad UNDEF(subpad)
@@ -434,7 +457,7 @@ inline int UNDEF(wattroff)(WINDOW *win, int att) { return wattroff(win, att); }
 #endif
 
 #ifdef chgat
 #endif
 
 #ifdef chgat
-inline int UNDEF(chgat)(int n,attr_t attr, short color, const void *opts) { 
+inline int UNDEF(chgat)(int n,attr_t attr, short color, const void *opts) {
   return chgat(n,attr,color,opts); }
 #undef chgat
 #define chgat UNDEF(chgat)
   return chgat(n,attr,color,opts); }
 #undef chgat
 #define chgat UNDEF(chgat)
@@ -442,7 +465,7 @@ inline int UNDEF(chgat)(int n,attr_t attr, short color, const void *opts) {
 
 #ifdef mvchgat
 inline int UNDEF(mvchgat)(int y, int x, int n,
 
 #ifdef mvchgat
 inline int UNDEF(mvchgat)(int y, int x, int n,
-                         attr_t attr, short color, const void *opts) { 
+                         attr_t attr, short color, const void *opts) {
   return mvchgat(y,x,n,attr,color,opts); }
 #undef mvchgat
 #define mvchgat UNDEF(mvchgat)
   return mvchgat(y,x,n,attr,color,opts); }
 #undef mvchgat
 #define mvchgat UNDEF(mvchgat)
@@ -450,7 +473,7 @@ inline int UNDEF(mvchgat)(int y, int x, int n,
 
 #ifdef mvwchgat
 inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n,
 
 #ifdef mvwchgat
 inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n,
-                          attr_t attr, short color, const void *opts) { 
+                          attr_t attr, short color, const void *opts) {
   return mvwchgat(win,y,x,n,attr,color,opts); }
 #undef mvwchgat
 #define mvwchgat UNDEF(mvwchgat)
   return mvwchgat(win,y,x,n,attr,color,opts); }
 #undef mvwchgat
 #define mvwchgat UNDEF(mvwchgat)
@@ -538,7 +561,7 @@ inline int UNDEF(mvwgetnstr)(WINDOW *win, int y, int x, char *str, int n)
 #endif
 
 #ifdef mvwinch
 #endif
 
 #ifdef mvwinch
-inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) { 
+inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
   return mvwinch(win, y, x);}
 #undef mvwinch
 #define mvwinch UNDEF(mvwinch)
   return mvwinch(win, y, x);}
 #undef mvwinch
 #define mvwinch UNDEF(mvwinch)
@@ -671,18 +694,18 @@ inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
  *
  */
 
  *
  */
 
-class NCursesWindow
+class NCURSES_IMPEXP NCursesWindow
 {
   friend class NCursesMenu;
   friend class NCursesForm;
 {
   friend class NCursesMenu;
   friend class NCursesForm;
-  
+
 private:
   static bool    b_initialized;
   static void    initialize();
   static int     ripoff_init(WINDOW *,int);
 
 private:
   static bool    b_initialized;
   static void    initialize();
   static int     ripoff_init(WINDOW *,int);
 
-  void           init(); 
-  
+  void           init();
+
   short          getcolor(int getback) const;
 
   static int     setpalette(short fore, short back, short pair);
   short          getcolor(int getback) const;
 
   static int     setpalette(short fore, short back, short pair);
@@ -700,15 +723,15 @@ protected:
   //   We rely on the c++ promise that
   //   all otherwise uninitialized
   //   static class vars are set to 0
   //   We rely on the c++ promise that
   //   all otherwise uninitialized
   //   static class vars are set to 0
-  
+
   WINDOW*        w;                // the curses WINDOW
   WINDOW*        w;                // the curses WINDOW
-  
+
   bool           alloced;          // TRUE if we own the WINDOW
   bool           alloced;          // TRUE if we own the WINDOW
-  
+
   NCursesWindow* par;              // parent, if subwindow
   NCursesWindow* subwins;          // head of subwindows list
   NCursesWindow* sib;              // next subwindow of parent
   NCursesWindow* par;              // parent, if subwindow
   NCursesWindow* subwins;          // head of subwindows list
   NCursesWindow* sib;              // next subwindow of parent
-  
+
   void           kill_subwindows(); // disable all subwindows
   // Destroy all subwindows.
 
   void           kill_subwindows(); // disable all subwindows
   // Destroy all subwindows.
 
@@ -718,18 +741,18 @@ protected:
 
 public:
   NCursesWindow(WINDOW* &window);  // useful only for stdscr
 
 public:
   NCursesWindow(WINDOW* &window);  // useful only for stdscr
-  
+
   NCursesWindow(int lines,         // number of lines
                int cols,          // number of columns
                int begin_y,       // line origin
                int begin_x);      // col origin
   NCursesWindow(int lines,         // number of lines
                int cols,          // 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 begin_y,       // absolute or relative
                int begin_x,       //   origins:
   NCursesWindow(NCursesWindow& par,// parent window
                int lines,         // number of lines
                int cols,          // number of columns
                int begin_y,       // absolute or relative
                int begin_x,       //   origins:
-               char absrel = 'a');// if `a', by & bx are
+               char absrel = 'a');// if `a', begin_y & begin_x are
   // absolute screen pos, else if `r', they are relative to par origin
 
   NCursesWindow(NCursesWindow& par,// parent window
   // absolute screen pos, else if `r', they are relative to par origin
 
   NCursesWindow(NCursesWindow& par,// parent window
@@ -751,31 +774,31 @@ public:
                        int (*init)(NCursesWindow& win));
   // This function is used to generate a window of ripped-of lines.
   // If the argument is positive, lines are removed from the top, if it
                        int (*init)(NCursesWindow& win));
   // This function is used to generate a window of ripped-of lines.
   // If the argument is positive, lines are removed from the top, if it
-  // is negative lines are removed from the bottom. This enhances the 
-  // lowlevel ripoffline() function because it uses the internal 
-  // implementation that allows to remove more than just a single line. 
+  // is negative lines are removed from the bottom. This enhances the
+  // lowlevel ripoffline() function because it uses the internal
+  // implementation that allows to remove more than just a single line.
   // This function must be called before any other ncurses function. The
   // This function must be called before any other ncurses function. The
-  // creation of the window is defered until ncurses gets initialized.
+  // creation of the window is deferred until ncurses gets initialized.
   // The initialization function is then called.
 
   // -------------------------------------------------------------------------
   // terminal status
   // -------------------------------------------------------------------------
   // The initialization function is then called.
 
   // -------------------------------------------------------------------------
   // terminal status
   // -------------------------------------------------------------------------
-  int            lines() const { return LINES; }
+  int            lines() const { initialize(); return LINES; }
   // Number of lines on terminal, *not* window
 
   // Number of lines on terminal, *not* window
 
-  int            cols() const { return COLS; }
+  int            cols() const { initialize(); return COLS; }
   // Number of cols  on terminal, *not* window
 
   // Number of cols  on terminal, *not* window
 
-  int            tabsize() const { return TABSIZE; }
+  int            tabsize() const { initialize(); return TABSIZE; }
   // Size of a tab on terminal, *not* window
 
   static int     NumberOfColors();
   // Number of available colors
 
   // Size of a tab on terminal, *not* window
 
   static int     NumberOfColors();
   // Number of available colors
 
-  int     colors() const { return NumberOfColors(); }
+  int            colors() const { return NumberOfColors(); }
   // Number of available colors
   // Number of available colors
-  
+
   // -------------------------------------------------------------------------
   // window status
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // window status
   // -------------------------------------------------------------------------
@@ -797,25 +820,25 @@ public:
   int            maxy() const { return w->_maxy; }
   // Largest y coord in window
 
   int            maxy() const { return w->_maxy; }
   // Largest y coord in window
 
-  short  getcolor() const;
+  short          getcolor() const;
   // Actual color pair
 
   // Actual color pair
 
-  short  foreground() const { return getcolor(0); }
+  short          foreground() const { return getcolor(0); }
   // Actual foreground color
 
   // Actual foreground color
 
-  short  background() const { return getcolor(1); }
+  short          background() const { return getcolor(1); }
   // Actual background color
 
   // Actual background color
 
-  int    setpalette(short fore, short back);
+  int            setpalette(short fore, short back);
   // Set color palette entry
 
   // Set color palette entry
 
-  int    setcolor(short pair);
+  int            setcolor(short pair);
   // Set actually used palette entry
   // Set actually used palette entry
-  
+
   // -------------------------------------------------------------------------
   // window positioning
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // window positioning
   // -------------------------------------------------------------------------
-  virtual int  mvwin(int begin_y, int begin_x) {
+  virtual int    mvwin(int begin_y, int begin_x) {
     return ::mvwin(w,begin_y,begin_x); }
   // Move window to new position with the new position as top left corner.
   // This is virtual because it is redefined in NCursesPanel.
     return ::mvwin(w,begin_y,begin_x); }
   // Move window to new position with the new position as top left corner.
   // This is virtual because it is redefined in NCursesPanel.
@@ -827,12 +850,12 @@ public:
   // Move cursor the this position
 
   void           getyx(int& y, int& x) const { ::getyx(w, y, x); }
   // Move cursor the this position
 
   void           getyx(int& y, int& x) const { ::getyx(w, y, x); }
-  // Get current position of the cursor 
+  // Get current position of the cursor
 
 
-  int            mvcur(int oldrow, int oldcol, int newrow, int newcol) const { 
+  int            mvcur(int oldrow, int oldcol, int newrow, int newcol) const {
     return ::mvcur(oldrow, oldcol, newrow, newcol); }
   // Perform lowlevel cursor motion that takes effect immediately.
     return ::mvcur(oldrow, oldcol, newrow, newcol); }
   // Perform lowlevel cursor motion that takes effect immediately.
-  
+
   // -------------------------------------------------------------------------
   // input
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // input
   // -------------------------------------------------------------------------
@@ -842,13 +865,13 @@ public:
   int            getch(int y, int x) { return ::mvwgetch(w,y,x); }
   // Move cursor to position and get a keystroke from the window
 
   int            getch(int y, int x) { return ::mvwgetch(w,y,x); }
   // Move cursor to position and get a keystroke from the window
 
-  int            getstr(char* str, int n=-1) { 
+  int            getstr(char* str, int n=-1) {
     return ::wgetnstr(w, str,n); }
   // Read a series of characters into str until a newline or carriage return
   // is received. Read at most n characters. If n is negative, the limit is
   // ignored.
 
     return ::wgetnstr(w, str,n); }
   // Read a series of characters into str until a newline or carriage return
   // is received. Read at most n characters. If n is negative, the limit is
   // ignored.
 
-  int            getstr(int y, int x, char* str, int n=-1) { 
+  int            getstr(int y, int x, char* str, int n=-1) {
     return ::mvwgetnstr(w,y,x,str,n); }
   // Move the cursor to the requested position and then perform the getstr()
   // as described above.
     return ::mvwgetnstr(w,y,x,str,n); }
   // Move the cursor to the requested position and then perform the getstr()
   // as described above.
@@ -864,8 +887,7 @@ public:
   // as described above.
 
   int            scanw(const char* fmt, ...)
   // as described above.
 
   int            scanw(const char* fmt, ...)
-    // Perform a scanw function from the window. This only works if you're
-    // using the GNU C++ compiler.
+    // Perform a scanw function from the window.
 #if __GNUG__ >= 2
     __attribute__ ((format (scanf, 2, 3)));
 #else
 #if __GNUG__ >= 2
     __attribute__ ((format (scanf, 2, 3)));
 #else
@@ -874,18 +896,18 @@ public:
 
   int            scanw(int y, int x, const char* fmt, ...)
     // Move the cursor to the requested position and then perform a scanw
 
   int            scanw(int y, int x, const char* fmt, ...)
     // Move the cursor to the requested position and then perform a scanw
-    // from the window. This nly works if you're using the GNU C++ compiler.
+    // from the window.
 #if __GNUG__ >= 2
     __attribute__ ((format (scanf, 4, 5)));
 #else
   ;
 #endif
 #if __GNUG__ >= 2
     __attribute__ ((format (scanf, 4, 5)));
 #else
   ;
 #endif
-  
+
   // -------------------------------------------------------------------------
   // output
   // -------------------------------------------------------------------------
   int            addch(const chtype ch) { return ::waddch(w, ch); }
   // -------------------------------------------------------------------------
   // output
   // -------------------------------------------------------------------------
   int            addch(const chtype ch) { return ::waddch(w, ch); }
-  // Put attributed character to the window. 
+  // Put attributed character to the window.
 
   int            addch(int y, int x, const chtype ch) {
     return ::mvwaddch(w,y,x,ch); }
 
   int            addch(int y, int x, const chtype ch) {
     return ::mvwaddch(w,y,x,ch); }
@@ -895,10 +917,10 @@ public:
   int            echochar(const chtype ch) { return ::wechochar(w,ch); }
   // Put attributed character to the window and refresh it immediately.
 
   int            echochar(const chtype ch) { return ::wechochar(w,ch); }
   // Put attributed character to the window and refresh it immediately.
 
-  int            addstr(const char* str, int n=-1) { 
+  int            addstr(const char* str, int n=-1) {
     return ::waddnstr(w, (char*)str,n); }
   // Write the string str to the window, stop writing if the terminating
     return ::waddnstr(w, (char*)str,n); }
   // Write the string str to the window, stop writing if the terminating
-  // NUL or the limit n is reached. If n is negative, it is ignored. 
+  // NUL or the limit n is reached. If n is negative, it is ignored.
 
   int            addstr(int y, int x, const char * str, int n=-1) {
     return ::mvwaddnstr(w,y,x,(char*)str,n); }
 
   int            addstr(int y, int x, const char * str, int n=-1) {
     return ::mvwaddnstr(w,y,x,(char*)str,n); }
@@ -907,7 +929,7 @@ public:
 
   int            printw(const char* fmt, ...)
     // Do a formatted print to the window.
 
   int            printw(const char* fmt, ...)
     // Do a formatted print to the window.
-#if __GNUG__ >= 2
+#if (__GNUG__ >= 2) && !defined(printf)
     __attribute__ ((format (printf, 2, 3)));
 #else
   ;
     __attribute__ ((format (printf, 2, 3)));
 #else
   ;
@@ -915,7 +937,7 @@ public:
 
   int            printw(int y, int x, const char * fmt, ...)
     // Move the cursor and then do a formatted print to the window.
 
   int            printw(int y, int x, const char * fmt, ...)
     // Move the cursor and then do a formatted print to the window.
-#if __GNUG__ >= 2
+#if (__GNUG__ >= 2) && !defined(printf)
     __attribute__ ((format (printf, 4, 5)));
 #else
   ;
     __attribute__ ((format (printf, 4, 5)));
 #else
   ;
@@ -939,7 +961,7 @@ public:
 
   int            insertln() { return ::winsdelln(w,1); }
   // Insert an empty line above the current line.
 
   int            insertln() { return ::winsdelln(w,1); }
   // Insert an empty line above the current line.
-  
+
   int            insdelln(int n=1) { return ::winsdelln(w,n); }
   // If n>0 insert that many lines above the current line. If n<0 delete
   // that many lines beginning with the current line.
   int            insdelln(int n=1) { return ::winsdelln(w,n); }
   // If n>0 insert that many lines above the current line. If n<0 delete
   // that many lines beginning with the current line.
@@ -949,7 +971,7 @@ public:
   // Insert the string into the window before the current cursor position.
   // Insert stops at end of string or when the limit n is reached. If n is
   // negative, it is ignored.
   // Insert the string into the window before the current cursor position.
   // Insert stops at end of string or when the limit n is reached. If n is
   // negative, it is ignored.
-  
+
   int            insstr(int y, int x, const char *s, int n=-1) {
     return ::mvwinsnstr(w,y,x,s,n); }
   // Move the cursor to the requested position and then perform the insstr()
   int            insstr(int y, int x, const char *s, int n=-1) {
     return ::mvwinsnstr(w,y,x,s,n); }
   // Move the cursor to the requested position and then perform the insstr()
@@ -957,7 +979,7 @@ public:
 
   int            attron (chtype at) { return ::wattron (w, at); }
   // Switch on the window attributes;
 
   int            attron (chtype at) { return ::wattron (w, at); }
   // Switch on the window attributes;
-  
+
   int            attroff(chtype at) { return ::wattroff(w, (int) at); }
   // Switch off the window attributes;
 
   int            attroff(chtype at) { return ::wattroff(w, (int) at); }
   // Switch off the window attributes;
 
@@ -995,10 +1017,10 @@ public:
   // -------------------------------------------------------------------------
   // borders
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // borders
   // -------------------------------------------------------------------------
-  int            box(chtype vert=0, chtype  hor=0) { 
+  int            box(chtype vert=0, chtype  hor=0) {
     return ::wborder(w, vert, vert, hor, hor, 0, 0 ,0, 0); }
   // Draw a box around the window with the given vertical and horizontal
     return ::wborder(w, vert, vert, hor, hor, 0, 0 ,0, 0); }
   // Draw a box around the window with the given vertical and horizontal
-  // drawing characters. If you specifiy a zero as character, curses will try
+  // drawing characters. If you specify a zero as character, curses will try
   // to find a "nice" character.
 
   int            border(chtype left=0, chtype right=0,
   // to find a "nice" character.
 
   int            border(chtype left=0, chtype right=0,
@@ -1016,7 +1038,7 @@ public:
   // -------------------------------------------------------------------------
   int            hline(int len, chtype ch=0) { return ::whline(w, ch, len); }
   // Draw a horizontal line of len characters with the given character. If
   // -------------------------------------------------------------------------
   int            hline(int len, chtype ch=0) { return ::whline(w, ch, len); }
   // Draw a horizontal line of len characters with the given character. If
-  // you pass zero for the character, curses will try to find a "nice" one. 
+  // you pass zero for the character, curses will try to find a "nice" one.
 
   int            hline(int y, int x, int len, chtype ch=0) {
     return ::mvwhline(w,y,x,ch,len); }
 
   int            hline(int y, int x, int len, chtype ch=0) {
     return ::mvwhline(w,y,x,ch,len); }
@@ -1029,7 +1051,7 @@ public:
   int            vline(int y, int x, int len, chtype ch=0) {
     return ::mvwvline(w,y,x,ch,len); }
   // Move the cursor to the requested position and then draw a vertical line.
   int            vline(int y, int x, int len, chtype ch=0) {
     return ::mvwvline(w,y,x,ch,len); }
   // Move the cursor to the requested position and then draw a vertical line.
-  
+
   // -------------------------------------------------------------------------
   // erasure
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // erasure
   // -------------------------------------------------------------------------
@@ -1050,7 +1072,7 @@ public:
   // Clear to the end of the line.
 
   int            delch() { return ::wdelch(w); }
   // Clear to the end of the line.
 
   int            delch() { return ::wdelch(w); }
-  // Delete character under the cursor. 
+  // Delete character under the cursor.
 
   int            delch(int y, int x) { return ::mvwdelch(w,y,x); }
   // Move cursor to requested position and delete the character under the
 
   int            delch(int y, int x) { return ::mvwdelch(w,y,x); }
   // Move cursor to requested position and delete the character under the
@@ -1090,18 +1112,18 @@ public:
   int            untouchwin() { return ::wtouchln(w,0,height(),0); }
   // Mark the whole window as unmodified.
 
   int            untouchwin() { return ::wtouchln(w,0,height(),0); }
   // Mark the whole window as unmodified.
 
-  int            touchln(int s, int cnt, bool changed=TRUE) { 
+  int            touchln(int s, int cnt, bool changed=TRUE) {
     return ::wtouchln(w,s,cnt,(int)(changed?1:0)); }
   // Mark cnt lines beginning from line s as changed or unchanged, depending
   // on the value of the changed flag.
 
     return ::wtouchln(w,s,cnt,(int)(changed?1:0)); }
   // Mark cnt lines beginning from line s as changed or unchanged, depending
   // on the value of the changed flag.
 
-  bool           is_linetouched(int line) const { 
+  bool           is_linetouched(int line) const {
     return (::is_linetouched(w,line) ? TRUE:FALSE); }
     return (::is_linetouched(w,line) ? TRUE:FALSE); }
-  // Return TRUE if line is marked as changed, FALSE otherwise 
+  // Return TRUE if line is marked as changed, FALSE otherwise
 
 
-  bool           is_wintouched() const { 
+  bool           is_wintouched() const {
     return (::is_wintouched(w) ? TRUE:FALSE); }
     return (::is_wintouched(w) ? TRUE:FALSE); }
-  // Return TRUE if window is marked as changed, FALSE otherwise 
+  // Return TRUE if window is marked as changed, FALSE otherwise
 
   int            leaveok(bool bf) { return ::leaveok(w, bf); }
   // If bf is TRUE, curses will leave the cursor after an update whereever
 
   int            leaveok(bool bf) { return ::leaveok(w, bf); }
   // If bf is TRUE, curses will leave the cursor after an update whereever
@@ -1141,7 +1163,7 @@ public:
 
   int            meta(bool bf) { return ::meta(w,bf); }
   // If called with bf=TRUE, keys may generate 8-Bit characters. Otherwise
 
   int            meta(bool bf) { return ::meta(w,bf); }
   // If called with bf=TRUE, keys may generate 8-Bit characters. Otherwise
-  // 7-Bit characters are generated. 
+  // 7-Bit characters are generated.
 
   int            standout() { return ::wstandout(w); }
   // Enable "standout" attributes
 
   int            standout() { return ::wstandout(w); }
   // Enable "standout" attributes
@@ -1158,9 +1180,9 @@ public:
   // doupdate(). This is redefined in NCursesPanel.
 
   virtual int    noutrefresh() { return ::wnoutrefresh(w); }
   // doupdate(). This is redefined in NCursesPanel.
 
   virtual int    noutrefresh() { return ::wnoutrefresh(w); }
-  // Propagate the changes in this window to the virtual screen. This is 
+  // Propagate the changes in this window to the virtual screen. This is
   // redefined in NCursesPanel.
   // redefined in NCursesPanel.
-  
+
   // -------------------------------------------------------------------------
   // multiple window control
   // -------------------------------------------------------------------------
   // -------------------------------------------------------------------------
   // multiple window control
   // -------------------------------------------------------------------------
@@ -1207,7 +1229,7 @@ public:
 // -------------------------------------------------------------------------
 // We leave this here for compatibility reasons.
 // -------------------------------------------------------------------------
 // -------------------------------------------------------------------------
 // We leave this here for compatibility reasons.
 // -------------------------------------------------------------------------
-class NCursesColorWindow : public NCursesWindow {
+class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow {
 public:
   NCursesColorWindow(WINDOW* &window)   // useful only for stdscr
     : NCursesWindow(window) {
 public:
   NCursesColorWindow(WINDOW* &window)   // useful only for stdscr
     : NCursesWindow(window) {
@@ -1228,8 +1250,8 @@ public:
                     char absrel = 'a') // if `a', by & bx are
     : NCursesWindow(par,lines,cols,     // absolute screen pos,
                    begin_y,begin_x,    // else if `r', they are
                     char absrel = 'a') // if `a', by & bx are
     : NCursesWindow(par,lines,cols,     // absolute screen pos,
                    begin_y,begin_x,    // else if `r', they are
-                   absrel ) {          // relative to par origin  
-      useColors(); }                      
+                   absrel ) {          // relative to par origin
+      useColors(); }
 };
 
 // These enum definitions really belong inside the NCursesPad class, but only
 };
 
 // These enum definitions really belong inside the NCursesPad class, but only
@@ -1251,7 +1273,7 @@ public:
 // Pad Support. We allow an association of a pad with a "real" window
 // through which the pad may be viewed.
 // -------------------------------------------------------------------------
 // Pad Support. We allow an association of a pad with a "real" window
 // through which the pad may be viewed.
 // -------------------------------------------------------------------------
-class NCursesPad : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPad : public NCursesWindow {
 private:
   NCursesWindow* viewWin;       // the "viewport" window
   NCursesWindow* viewSub;       // the "viewport" subwindow
 private:
   NCursesWindow* viewWin;       // the "viewport" window
   NCursesWindow* viewSub;       // the "viewport" subwindow
@@ -1301,7 +1323,7 @@ public:
   int echochar(const chtype ch) { return ::pechochar(w,ch); }
   // Put the attributed character onto the pad and immediately do a
   // prefresh().
   int echochar(const chtype ch) { return ::pechochar(w,ch); }
   // Put the attributed character onto the pad and immediately do a
   // prefresh().
-  
+
   int refresh();
   // If a viewport is defined the pad is displayed in this window, otherwise
   // this is a noop.
   int refresh();
   // If a viewport is defined the pad is displayed in this window, otherwise
   // this is a noop.
@@ -1326,7 +1348,7 @@ public:
     return ::pnoutrefresh(w,pminrow,pmincol,
                          sminrow,smincol,smaxrow,smaxcol);
   }
     return ::pnoutrefresh(w,pminrow,pmincol,
                          sminrow,smincol,smaxrow,smaxcol);
   }
-  // Does the same like refresh() but without calling doupdate().
+  // Does the same as refresh() but without calling doupdate().
 
   virtual void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1);
   // Add the window "view" as viewing window to the pad.
 
   virtual void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1);
   // Add the window "view" as viewing window to the pad.
@@ -1343,7 +1365,7 @@ 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.
 // 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 NCursesFramedPad : public NCursesPad {
+class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad {
 protected:
   virtual void OnOperation(int pad_req);
 
 protected:
   virtual void OnOperation(int pad_req);
 
@@ -1372,4 +1394,4 @@ public:
 
 };
 
 
 };
 
-#endif // _CURSESW_H
+#endif // NCURSES_CURSESW_H_incl
index 236d3a55b3ddbdd4956ae50ca8ac8527f325f609..2107625ba5e49c83dcdaafde348704bc231b2f18 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
+#include "internal.h"
 #include "cursslk.h"
 #include "cursesapp.h"
 #include "cursslk.h"
 #include "cursesapp.h"
-#include "internal.h"
 #include <string.h>
 
 #include <string.h>
 
-MODULE_ID("$Id: cursslk.cc,v 1.6 2000/07/15 21:07:50 tom Exp $")
+MODULE_ID("$Id: cursslk.cc,v 1.10 2002/07/13 11:35:08 juergen Exp $")
 
 void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)  {
   delete[] label;
   label = new char[1 + ::strlen(text)];
 
 void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)  {
   delete[] label;
   label = new char[1 + ::strlen(text)];
-  (strcpy)(label,text);
+  (::strcpy)(label,text);
 }
 
 long Soft_Label_Key_Set::count      = 0L;
 int  Soft_Label_Key_Set::num_labels = 0;
 
 }
 
 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() {
   Soft_Label_Key_Set::format = None;
 
 void Soft_Label_Key_Set::init() {
index 1598b0634baba1ee4bd67aa3ef76c8d811bdc184..ab6a9c0fef2c719fb8c9a294cc516ccb1ee97bd0 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: cursslk.h,v 1.5 1999/05/16 17:30:08 juergen Exp $
+// $Id: cursslk.h,v 1.8 2002/07/06 15:47:52 juergen Exp $
 
 
-#ifndef _CURSSLK_H
-#define _CURSSLK_H
+#ifndef NCURSES_CURSSLK_H_incl
+#define NCURSES_CURSSLK_H_incl
 
 #include <cursesw.h>
 
 
 #include <cursesw.h>
 
-class Soft_Label_Key_Set {
+class NCURSES_IMPEXP Soft_Label_Key_Set {
 public:
   // This inner class represents the attributes of a Soft Label Key (SLK)
 public:
   // This inner class represents the attributes of a Soft Label Key (SLK)
-  class Soft_Label_Key {
+  class NCURSES_IMPEXP Soft_Label_Key {
     friend class Soft_Label_Key_Set;
   public:
     typedef enum { Left=0, Center=1, Right=2 } Justification;
     friend class Soft_Label_Key_Set;
   public:
     typedef enum { Left=0, Center=1, Right=2 } Justification;
@@ -83,10 +84,10 @@ public:
   } Label_Layout;
 
 private:
   } Label_Layout;
 
 private:
-  static long count;               // Number of Key Sets
-  static Label_Layout  format;     // Layout of the Key Sets
-  static int  num_labels;          // Number Of Labels in Key Sets
-  bool b_attrInit;                 // Are attributes initialized
+  static long NCURSES_IMPEXP count;               // Number of Key Sets
+  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
 
   
   Soft_Label_Key *slk_array;       // The array of SLK's
 
@@ -126,12 +127,12 @@ public:
 
   // This constructor assumes, that you already constructed a Key Set
   // with a layout by the constructor above. This layout will be reused.
 
   // This constructor assumes, that you already constructed a Key Set
   // with a layout by the constructor above. This layout will be reused.
-  Soft_Label_Key_Set();
+  NCURSES_IMPEXP Soft_Label_Key_Set();
 
   virtual ~Soft_Label_Key_Set();
 
   // Get Label# i. Label counting starts with 1!
 
   virtual ~Soft_Label_Key_Set();
 
   // Get Label# i. Label counting starts with 1!
-  Soft_Label_Key& operator[](int i);
+  NCURSES_IMPEXP Soft_Label_Key& operator[](int i);
 
   // Retrieve number of Labels
   inline int labels() const { return num_labels; }          
 
   // Retrieve number of Labels
   inline int labels() const { return num_labels; }          
@@ -202,4 +203,4 @@ public:
   }
 };
 
   }
 };
 
-#endif // _CURSSLK_H
+#endif // NCURSES_CURSSLK_H_incl
index 088dc2fbc86dc810e6deeadeab303cf15a7e5b74..047e4b2473db1f64e08b6db295179da3b65f5715 100644 (file)
@@ -4,9 +4,10 @@
  *   written by Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
  *
  *   Demo code for NCursesMenu and NCursesForm written by
  *   written by Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
  *
  *   Demo code for NCursesMenu and NCursesForm written by
- *   Juergen Pfeifer <juergen.pfeifer@gmx.net>
+ *   Juergen Pfeifer
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
  *
  *
- * $Id: demo.cc,v 1.18 1999/09/11 18:57:54 tom Exp $
+ * $Id: demo.cc,v 1.22 2002/07/06 15:47:52 juergen Exp $
  */
 
 #include "cursesapp.h"
  */
 
 #include "cursesapp.h"
@@ -19,7 +20,7 @@
 
 extern "C" unsigned int sleep(unsigned int);
 
 
 extern "C" unsigned int sleep(unsigned int);
 
-#undef index   // needed for NeXT
+#undef index // needed for NeXT
 
 //
 // -------------------------------------------------------------------------
 
 //
 // -------------------------------------------------------------------------
@@ -140,7 +141,7 @@ template<class T> class MyAction : public NCursesUserItem<T>
 {
 public:
   MyAction (const char* p_name,
 {
 public:
   MyAction (const char* p_name,
-           const T* p_UserData)
+            const T* p_UserData)
     : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
   {};
 
     : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
   {};
 
@@ -170,7 +171,7 @@ class Label : public NCursesFormField
 {
 public:
   Label(const char* title,
 {
 public:
   Label(const char* title,
-       int row, int col)
+        int row, int col)
     : NCursesFormField(1,(int)::strlen(title),row,col) {
       set_value(title);
       options_off(O_EDIT|O_ACTIVE);
     : NCursesFormField(1,(int)::strlen(title),row,col) {
       set_value(title);
       options_off(O_EDIT|O_ACTIVE);
@@ -293,18 +294,18 @@ public:
 
     for (int i=0; i < PADSIZE; i++) {
       for (int j=0; j < PADSIZE; j++) {
 
     for (int i=0; i < PADSIZE; i++) {
       for (int j=0; j < PADSIZE; j++) {
-       if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
-         if (i==0 || j==0)
-           FP.addch('+');
-         else
-           FP.addch((chtype)('A' + (gridcount++ % 26)));
-       }
-       else if (i % GRIDSIZE == 0)
-         FP.addch('-');
-       else if (j % GRIDSIZE == 0)
-         FP.addch('|');
-       else
-         FP.addch(' ');
+        if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
+          if (i==0 || j==0)
+            FP.addch('+');
+          else
+            FP.addch((chtype)('A' + (gridcount++ % 26)));
+        }
+        else if (i % GRIDSIZE == 0)
+          FP.addch('-');
+        else if (j % GRIDSIZE == 0)
+          FP.addch('|');
+        else
+          FP.addch(' ');
       }
     }
 
       }
     }
 
@@ -324,6 +325,49 @@ public:
     options_off(O_SELECTABLE);
   }
 };
     options_off(O_SELECTABLE);
   }
 };
+
+//
+// -------------------------------------------------------------------------
+//
+class ScanAction : public NCursesMenuItem
+{
+public:
+  ScanAction(const char* s) : NCursesMenuItem(s) {
+  }
+
+  bool action() {
+    NCursesPanel *std = new NCursesPanel();
+
+    NCursesPanel *w = new NCursesPanel(std->lines() - 2, std->cols() - 2, 1, 1);
+    w->box();
+    w->refresh();
+
+    NCursesPanel *s = new NCursesPanel(w->lines() - 6, w->cols() - 6, 3, 3);
+    s->scrollok(TRUE);
+    ::echo();
+
+    s->printw("Enter decimal integers.  The running total will be shown\n");
+    int value = -1;
+    int result = 0;
+    while (value != 0) {
+      value = 0;
+      s->scanw("%d", &value);
+      if (value != 0) {
+        s->printw("%d: ", result += value);
+      }
+      s->refresh();
+    }
+    s->printw("\nPress any key to continue...");
+    s->getch();
+
+    delete s;
+    delete w;
+    delete std;
+    ::noecho();
+    return FALSE;
+  }
+};
+
 //
 // -------------------------------------------------------------------------
 //
 //
 // -------------------------------------------------------------------------
 //
@@ -346,7 +390,7 @@ public:
     I[2] = new MyAction<UserData> ("Silly", u);
     I[3] = new FormAction("Form");
     I[4] = new PadAction("Pad");
     I[2] = new MyAction<UserData> ("Silly", u);
     I[3] = new FormAction("Form");
     I[4] = new PadAction("Pad");
-    I[5] = new PassiveItem("Six");
+    I[5] = new ScanAction("Scan");
     I[6] = new QuitItem();
     I[7] = new NCursesMenuItem(); // Terminating empty item
 
     I[6] = new QuitItem();
     I[7] = new NCursesMenuItem(); // Terminating empty item
 
index efea83323b11bf7b1f27f0bbe593c6ade421a0dd..e0c182257d54a8dec39e5a650ec4013a584e3d79 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #!/bin/sh
-# $Id: edit_cfg.sh,v 1.8 2000/07/01 16:07:37 tom Exp $
+# $Id: edit_cfg.sh,v 1.12 2001/12/08 20:44:59 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -42,10 +42,13 @@ for name in \
        ETIP_NEEDS_MATH_EXCEPTION \
        ETIP_NEEDS_MATH_H \
        HAVE_BUILTIN_H \
        ETIP_NEEDS_MATH_EXCEPTION \
        ETIP_NEEDS_MATH_H \
        HAVE_BUILTIN_H \
-       HAVE_GXX_BUILTIN_H \
        HAVE_GPP_BUILTIN_H \
        HAVE_GPP_BUILTIN_H \
+       HAVE_GXX_BUILTIN_H \
+       HAVE_STRSTREAM_H \
        HAVE_TYPEINFO \
        HAVE_TYPEINFO \
-       HAVE_VALUES_H
+       HAVE_VALUES_H \
+       USE_STRSTREAM_VSCAN \
+       USE_STRSTREAM_VSCAN_CAST
 do
        mv $2 $2.bak
        if ( grep "[    ]$name[         ]1" $1 2>&1 >/dev/null)
 do
        mv $2 $2.bak
        if ( grep "[    ]$name[         ]1" $1 2>&1 >/dev/null)
index 985cd1eb6a06695f81ceac4c6e152d3c08cdcfdc..d41c7d43ee26b07055e08c2b91aca4297372dc86 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: etip.h.in,v 1.13 1999/09/12 02:01:59 tom Exp $
+// $Id: etip.h.in,v 1.24 2002/10/12 22:33:07 Dimitar.Zhekov Exp $
 
 
-#ifndef _ETIP_H
-#define _ETIP_H
+#ifndef NCURSES_ETIP_H_incl
+#define NCURSES_ETIP_H_incl 1
 
 // These are substituted at configure/build time
 #ifndef HAVE_BUILTIN_H
 
 // These are substituted at configure/build time
 #ifndef HAVE_BUILTIN_H
 #define HAVE_GPP_BUILTIN_H 0
 #endif
 
 #define HAVE_GPP_BUILTIN_H 0
 #endif
 
+#ifndef HAVE_STRSTREAM_H
+#define HAVE_STRSTREAM_H 0
+#endif
+
 #ifndef HAVE_TYPEINFO
 #define HAVE_TYPEINFO 0
 #endif
 #ifndef HAVE_TYPEINFO
 #define HAVE_TYPEINFO 0
 #endif
 #define CPP_HAS_PARAM_INIT 0
 #endif
 
 #define CPP_HAS_PARAM_INIT 0
 #endif
 
+#ifndef USE_STRSTREAM_VSCAN
+#define USE_STRSTREAM_VSCAN 0
+#endif
+
+#ifndef USE_STRSTREAM_VSCAN_CAST
+#define USE_STRSTREAM_VSCAN_CAST 0
+#endif
+
 #ifdef __GNUG__
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
 #    if HAVE_TYPEINFO
 #ifdef __GNUG__
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
 #    if HAVE_TYPEINFO
 #  include <string.h>
 #endif
 
 #  include <string.h>
 #endif
 
+#include <ncurses_dll.h>
+
 extern "C" {
 #if HAVE_VALUES_H
 #  include <values.h>
 extern "C" {
 #if HAVE_VALUES_H
 #  include <values.h>
@@ -122,11 +137,11 @@ extern "C" {
 #endif
 
 // Forward Declarations
 #endif
 
 // Forward Declarations
-class NCursesPanel;
-class NCursesMenu;
-class NCursesForm;
+class NCURSES_IMPEXP NCursesPanel;
+class NCURSES_IMPEXP NCursesMenu;
+class NCURSES_IMPEXP NCursesForm;
 
 
-class NCursesException
+class NCURSES_IMPEXP NCursesException
 {
 public:
   const char *message;
 {
 public:
   const char *message;
@@ -145,30 +160,30 @@ public:
   }
 };
 
   }
 };
 
-class NCursesPanelException : public NCursesException
+class NCURSES_IMPEXP NCursesPanelException : public NCursesException
 {
 public:
   const NCursesPanel* p;
 
 {
 public:
   const NCursesPanel* p;
 
-  NCursesPanelException (const char *msg, int err) : 
+  NCursesPanelException (const char *msg, int err) :
     NCursesException (msg, err),
     p ((NCursesPanel*)0)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
                         const char *msg,
     NCursesException (msg, err),
     p ((NCursesPanel*)0)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
                         const char *msg,
-                        int err) : 
+                        int err) :
     NCursesException (msg, err),
     p (panel)
     {};
 
     NCursesException (msg, err),
     p (panel)
     {};
 
-  NCursesPanelException (int err) : 
+  NCursesPanelException (int err) :
     NCursesException ("panel library error", err),
     p ((NCursesPanel*)0)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
     NCursesException ("panel library error", err),
     p ((NCursesPanel*)0)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
-                        int err) : 
+                        int err) :
     NCursesException ("panel library error", err),
     p (panel)
     {};
     NCursesException ("panel library error", err),
     p (panel)
     {};
@@ -179,30 +194,30 @@ public:
 
 };
 
 
 };
 
-class NCursesMenuException : public NCursesException
+class NCURSES_IMPEXP NCursesMenuException : public NCursesException
 {
 public:
   const NCursesMenu* m;
 
 {
 public:
   const NCursesMenu* m;
 
-  NCursesMenuException (const char *msg, int err) : 
+  NCursesMenuException (const char *msg, int err) :
     NCursesException (msg, err),
     m ((NCursesMenu *)0)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
                        const char *msg,
     NCursesException (msg, err),
     m ((NCursesMenu *)0)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
                        const char *msg,
-                       int err) : 
+                       int err) :
     NCursesException (msg, err),
     m (menu)
     {};
 
     NCursesException (msg, err),
     m (menu)
     {};
 
-  NCursesMenuException (int err) : 
+  NCursesMenuException (int err) :
     NCursesException ("menu library error", err),
     m ((NCursesMenu *)0)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
     NCursesException ("menu library error", err),
     m ((NCursesMenu *)0)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
-                       int err) : 
+                       int err) :
     NCursesException ("menu library error", err),
     m (menu)
     {};
     NCursesException ("menu library error", err),
     m (menu)
     {};
@@ -213,30 +228,30 @@ public:
 
 };
 
 
 };
 
-class NCursesFormException : public NCursesException
+class NCURSES_IMPEXP NCursesFormException : public NCursesException
 {
 public:
   const NCursesForm* f;
 
 {
 public:
   const NCursesForm* f;
 
-  NCursesFormException (const char *msg, int err) : 
+  NCursesFormException (const char *msg, int err) :
     NCursesException (msg, err),
     f ((NCursesForm*)0)
     {};
 
   NCursesFormException (const NCursesForm* form,
                        const char *msg,
     NCursesException (msg, err),
     f ((NCursesForm*)0)
     {};
 
   NCursesFormException (const NCursesForm* form,
                        const char *msg,
-                       int err) : 
+                       int err) :
     NCursesException (msg, err),
     f (form)
     {};
 
     NCursesException (msg, err),
     f (form)
     {};
 
-  NCursesFormException (int err) : 
+  NCursesFormException (int err) :
     NCursesException ("form library error", err),
     f ((NCursesForm*)0)
     {};
 
   NCursesFormException (const NCursesForm* form,
     NCursesException ("form library error", err),
     f ((NCursesForm*)0)
     {};
 
   NCursesFormException (const NCursesForm* form,
-                       int err) : 
+                       int err) :
     NCursesException ("form library error", err),
     f (form)
     {};
     NCursesException ("form library error", err),
     f (form)
     {};
@@ -247,27 +262,31 @@ public:
 
 };
 
 
 };
 
-#if !(defined(__GNUG__)||defined(__SUNPRO_CC))
+#if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
 #  include <iostream.h>
    extern "C" void exit(int);
 #endif
 
 inline void THROW(const NCursesException *e) {
 #  include <iostream.h>
    extern "C" void exit(int);
 #endif
 
 inline void THROW(const NCursesException *e) {
-#if defined(__GNUG__)
+#if defined(__GNUG__) && defined(__EXCEPTIONS)
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
       (*lib_error_handler)(e?e->classname():"",e?e->message:"");
 #else
       throw *e;
 #endif
 #elif defined(__SUNPRO_CC)
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
       (*lib_error_handler)(e?e->classname():"",e?e->message:"");
 #else
       throw *e;
 #endif
 #elif defined(__SUNPRO_CC)
+#  if !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5)
   genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
   genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
+#else
+  throw *e;
+#endif
 #else
   if (e)
     cerr << e->message << endl;
   exit(0);
 #else
   if (e)
     cerr << e->message << endl;
   exit(0);
-#endif     
+#endif
 }
 
 #define THROWS(s)
 
 }
 
 #define THROWS(s)
 
-#endif // _ETIP_H
+#endif // NCURSES_ETIP_H_incl
index 67bc3ff2469e0e60672310a43d59640b46ff41cf..d680d144f561d04711237d89aab5034ce97e45f9 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997                 *
+ *   Author: Juergen Pfeifer, 1997                                          *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: internal.h,v 1.6 2000/09/02 18:22:23 tom Exp $
+// $Id: internal.h,v 1.9 2002/07/13 11:35:08 juergen Exp $
 
 
-#ifndef _CPLUS_INTERNAL_H
-#define _CPLUS_INTERNAL_H 1
+#ifndef NCURSES_CPLUS_INTERNAL_H
+#define NCURSES_CPLUS_INTERNAL_H 1
+
+#include <ncurses_cfg.h>
 
 #if USE_RCS_IDS
 #define MODULE_ID(id) static const char Ident[] = id;
 
 #if USE_RCS_IDS
 #define MODULE_ID(id) static const char Ident[] = id;
@@ -44,4 +47,4 @@
 
 #define CTRL(x) ((x) & 0x1f)
 
 
 #define CTRL(x) ((x) & 0x1f)
 
-#endif
+#endif // NCURSES_CPLUS_INTERNAL_H
index b100dbe1a331e739af3b3386c557c58569e72fab..9f4e5a6d715d3fdde8eabc906ad7d263068b9d0a 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-#   Free Software Foundation, Inc.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
 
 
-version='2000-06-13'
+timestamp='2002-08-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
 
 # 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
@@ -24,38 +24,50 @@ version='2000-06-13'
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
+# 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.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
 # The plan is that this can be called by configure scripts if you
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
 # The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
+# don't specify an explicit build system type.
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
 Usage: $0 [OPTION]
 
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
 Usage: $0 [OPTION]
 
-Output the configuration name of this system.
+Output the configuration name of the system \`$me' is run on.
 
 Operation modes:
 
 Operation modes:
-  -h, --help               print this help, then exit
-  -V, --version            print version number, then exit"
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
-  case "$1" in
-    --version | --vers* | -V )
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
@@ -64,9 +76,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
     - )        # Use stdin as input.
        break ;;
     -* )
-       exec >&2
-       echo "$me: invalid option $1"
-       echo "$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
     * )
        break ;;
        exit 1 ;;
     * )
        break ;;
@@ -78,70 +88,95 @@ if test $# != 0; then
   exit 1
 fi
 
   exit 1
 fi
 
-# Use $HOST_CC if defined. $CC may point to a cross-compiler
-if test x"$CC_FOR_BUILD" = x; then
-  if test x"$HOST_CC" != x; then
-    CC_FOR_BUILD="$HOST_CC"
-  else
-    if test x"$CC" != x; then
-      CC_FOR_BUILD="$CC"
-    else
-      CC_FOR_BUILD=cc
-    fi
-  fi
-fi
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
 
 
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+   || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       rm -f $files ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
+# (ghazi@noc.rutgers.edu 1994-08-24)
 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
        PATH=$PATH:/.attbin ; export PATH
 fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
        PATH=$PATH:/.attbin ; export PATH
 fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    i?86:OS/2:*:*)
-        echo "i386-unknown-os2"
-       exit 0;;
     *:NetBSD:*:*)
     *:NetBSD:*:*)
-       # Netbsd (nbsd) targets should (where applicable) match one or
+       # NetBSD (nbsd) targets should (where applicable) match one or
        # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
        # compatibility and a consistent mechanism for selecting the
        # object file format.
        # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
        # compatibility and a consistent mechanism for selecting the
        # object file format.
-       # Determine the machine/vendor (is the vendor relevant).
-       case "${UNAME_MACHINE}" in
-           amiga) machine=m68k-cbm ;;
-           arm32) machine=arm-unknown ;;
-           atari*) machine=m68k-atari ;;
-           sun3*) machine=m68k-sun ;;
-           mac68k) machine=m68k-apple ;;
-           macppc) machine=powerpc-apple ;;
-           hp3[0-9][05]) machine=m68k-hp ;;
-           ibmrt|romp-ibm) machine=romp-ibm ;;
-           *) machine=${UNAME_MACHINE}-unknown ;;
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
        esac
        esac
-       # The Operating System including object format.
-       if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-               | grep __ELF__ >/dev/null
-       then
-           # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-           # Return netbsd for either.  FIX?
-           os=netbsd
-       else
-           os=netbsdelf
-       fi
        # The OS release
        release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # The OS release
        release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
@@ -149,6 +184,45 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit 0 ;;
        # 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 ;;
+    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 ;;
+    *:OpenBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
     alpha:OSF1:*:*)
        if test $UNAME_RELEASE = "V4.0"; then
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
     alpha:OSF1:*:*)
        if test $UNAME_RELEASE = "V4.0"; then
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -157,6 +231,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # 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.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
+       eval $set_cc_for_build
        cat <<EOF >$dummy.s
        .data
 \$Lformat:
        cat <<EOF >$dummy.s
        .data
 \$Lformat:
@@ -184,7 +259,7 @@ main:
 EOF
        $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
        if test "$?" = 0 ; then
 EOF
        $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
        if test "$?" = 0 ; then
-               case `./$dummy` in
+               case `$dummy` in
                        0-0)
                                UNAME_MACHINE="alpha"
                                ;;
                        0-0)
                                UNAME_MACHINE="alpha"
                                ;;
@@ -203,9 +278,15 @@ EOF
                        2-307)
                                UNAME_MACHINE="alphaev67"
                                ;;
                        2-307)
                                UNAME_MACHINE="alphaev67"
                                ;;
+                       2-1307)
+                               UNAME_MACHINE="alphaev68"
+                               ;;
+                       3-1307)
+                               UNAME_MACHINE="alphaev7"
+                               ;;
                esac
        fi
                esac
        fi
-       rm -f $dummy.s $dummy
+       rm -f $dummy.s $dummy && rmdir $tmpdir
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
        exit 0 ;;
     Alpha\ *:Windows_NT*:*)
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
        exit 0 ;;
     Alpha\ *:Windows_NT*:*)
@@ -218,31 +299,13 @@ EOF
        echo alpha-dec-winnt3.5
        exit 0 ;;
     Amiga*:UNIX_System_V:4.0:*)
        echo alpha-dec-winnt3.5
        exit 0 ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-cbm-sysv4
+       echo m68k-unknown-sysv4
        exit 0;;
        exit 0;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
     *:[Aa]miga[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-amigaos
        exit 0 ;;
     *:[Aa]miga[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-amigaos
        exit 0 ;;
-    arc64:OpenBSD:*:*)
-       echo mips64el-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hkmips:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
        exit 0 ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
        exit 0 ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -250,7 +313,7 @@ EOF
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
-    SR2?01:HI-UX/MPP:*:*)
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
@@ -264,6 +327,10 @@ EOF
     NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
        exit 0 ;;
     NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
        exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7 && exit 0 ;;
+       esac ;;
     sun4H:SunOS:5.*:*)
        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit 0 ;;
     sun4H:SunOS:5.*:*)
        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit 0 ;;
@@ -292,7 +359,7 @@ EOF
        echo m68k-sun-sunos${UNAME_RELEASE}
        exit 0 ;;
     sun*:*:4.2BSD:*)
        echo m68k-sun-sunos${UNAME_RELEASE}
        exit 0 ;;
     sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
@@ -306,9 +373,6 @@ EOF
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
        exit 0 ;;
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
        exit 0 ;;
-    atari*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
     # 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
     # 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
@@ -335,18 +399,6 @@ EOF
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
         exit 0 ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
         exit 0 ;;
-    sun3*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-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 ;;
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
@@ -363,6 +415,7 @@ EOF
        echo clipper-intergraph-clix${UNAME_RELEASE}
        exit 0 ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
        echo clipper-intergraph-clix${UNAME_RELEASE}
        exit 0 ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
        sed 's/^        //' << EOF >$dummy.c
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
@@ -385,11 +438,20 @@ EOF
        }
 EOF
        $CC_FOR_BUILD $dummy.c -o $dummy \
        }
 EOF
        $CC_FOR_BUILD $dummy.c -o $dummy \
-         && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
+         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+         && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
        echo mips-mips-riscos${UNAME_RELEASE}
        exit 0 ;;
        echo mips-mips-riscos${UNAME_RELEASE}
        exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS)
+       echo powerpc-harris-powermax
+       exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
        echo powerpc-harris-powerunix
        exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
        echo powerpc-harris-powerunix
        exit 0 ;;
@@ -434,14 +496,23 @@ EOF
     *:IRIX*:*:*)
        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
        exit 0 ;;
     *:IRIX*:*:*)
        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
        exit 0 ;;
-    ????????:AIX?:[12].1:2)    # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+    ????????: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 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i?86:AIX:*:*)
+    i*86:AIX:*:*)
        echo i386-ibm-aix
        exit 0 ;;
        echo i386-ibm-aix
        exit 0 ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit 0 ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
                sed 's/^                //' << EOF >$dummy.c
                #include <sys/systemcfg.h>
 
                sed 's/^                //' << EOF >$dummy.c
                #include <sys/systemcfg.h>
 
@@ -453,8 +524,8 @@ EOF
                        exit(0);
                        }
 EOF
                        exit(0);
                        }
 EOF
-               $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
-               rm -f $dummy.c $dummy
+               $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+               rm -f $dummy.c $dummy && rmdir $tmpdir
                echo rs6000-ibm-aix3.2.5
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
                echo rs6000-ibm-aix3.2.5
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
@@ -462,9 +533,9 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit 0 ;;
                echo rs6000-ibm-aix3.2
        fi
        exit 0 ;;
-    *:AIX:*:4)
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
+    *: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
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -472,7 +543,7 @@ EOF
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV=4.${UNAME_RELEASE}
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
        exit 0 ;;
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
        exit 0 ;;
@@ -498,11 +569,28 @@ EOF
        echo m68k-hp-bsd4.4
        exit 0 ;;
     9000/[34678]??:HP-UX:*:*)
        echo m68k-hp-bsd4.4
        exit 0 ;;
     9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
-              sed 's/^              //' << EOF >$dummy.c
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^              //' << EOF >$dummy.c
 
               #define _HPUX_SOURCE
               #include <stdlib.h>
 
               #define _HPUX_SOURCE
               #include <stdlib.h>
@@ -535,13 +623,19 @@ EOF
                   exit (0);
               }
 EOF
                   exit (0);
               }
 EOF
-       (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
-       rm -f $dummy.c $dummy
+                   (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
+                   if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+                   rm -f $dummy.c $dummy && rmdir $tmpdir
+               fi ;;
        esac
        esac
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
     3050*:HI-UX:*:*)
     3050*:HI-UX:*:*)
+       eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
        int
        sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
        int
@@ -567,8 +661,8 @@ EOF
          exit (0);
        }
 EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
+       $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
        echo unknown-hitachi-hiuxwe2
        exit 0 ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
        echo unknown-hitachi-hiuxwe2
        exit 0 ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -577,7 +671,7 @@ EOF
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
        exit 0 ;;
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
        exit 0 ;;
-    *9??*:MPE/iX:*:*)
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
        exit 0 ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.0-hp-mpeix
        exit 0 ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
@@ -586,7 +680,7 @@ EOF
     hp8??:OSF1:*:*)
        echo hppa1.0-hp-osf
        exit 0 ;;
     hp8??:OSF1:*:*)
        echo hppa1.0-hp-osf
        exit 0 ;;
-    i?86:OSF1:*:*)
+    i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
            echo ${UNAME_MACHINE}-unknown-osf1mk
        else
        if [ -x /usr/sbin/sysversion ] ; then
            echo ${UNAME_MACHINE}-unknown-osf1mk
        else
@@ -596,9 +690,6 @@ EOF
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
        exit 0 ;;
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
        exit 0 ;;
-    hppa*:OpenBSD:*:*)
-       echo hppa-unknown-openbsd
-       exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
         exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
         exit 0 ;;
@@ -617,41 +708,34 @@ EOF
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
         exit 0 ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
         exit 0 ;;
-    CRAY*X-MP:*:*:*)
-       echo xmp-cray-unicos
-        exit 0 ;;
     CRAY*Y-MP:*:*:*)
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE}
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*[A-Z]90:*:*:*)
        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
        exit 0 ;;
     CRAY*[A-Z]90:*:*:*)
        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
        exit 0 ;;
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
-    CRAY*T3E:*:*:*)
+    CRAY*T3D:*:*:*)
        echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
        echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
     CRAY*SV1:*:*:*)
        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY*SV1:*:*:*)
        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
-    CRAY-2:*:*:*)
-       echo cray2-cray-unicos
-        exit 0 ;;
-    F300:UNIX_System_V:*:*)
+    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/ /_/'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
         exit 0 ;;
         exit 0 ;;
-    F301:UNIX_System_V:*:*)
-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
-       exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit 0 ;;
     sparc*:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit 0 ;;
     sparc*:BSD/OS:*:*)
@@ -661,10 +745,19 @@ EOF
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
     *:FreeBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
     *:FreeBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-       exit 0 ;;
-    *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       # 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=`
+       rm -f $dummy.c && rmdir $tmpdir
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
        exit 0 ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit 0 ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
@@ -672,6 +765,12 @@ EOF
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
+    x86:Interix*:3*)
+       echo i386-pc-interix3
+       exit 0 ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
     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
@@ -693,223 +792,139 @@ EOF
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit 0 ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit 0 ;;
-    *:Linux:*:*)
-
+    arm*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    mips:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef mips
+       #undef mipsel
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=mipsel
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=mips
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+       ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit 0 ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit 0 ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       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 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit 0 ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit 0 ;;
+    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
        # problems with other programs or directories called `ld' in the path.
        # 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
        # problems with other programs or directories called `ld' in the path.
-       ld_help_string=`cd /; ld --help 2>&1`
-       ld_supported_emulations=`echo $ld_help_string \
-                        | sed -ne '/supported emulations:/!d
+       # Set LC_ALL=C to ensure ld outputs messages in English.
+       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+                        | sed -ne '/supported targets:/!d
                                    s/[         ][      ]*/ /g
                                    s/[         ][      ]*/ /g
-                                   s/.*supported emulations: *//
+                                   s/.*supported targets: *//
                                    s/ .*//
                                    p'`
                                    s/ .*//
                                    p'`
-        case "$ld_supported_emulations" in
-         *ia64)
-               echo "${UNAME_MACHINE}-unknown-linux"
-               exit 0
+        case "$ld_supported_targets" in
+         elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
                ;;
                ;;
-         i?86linux)
+         a.out-i386-linux)
                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit 0
-               ;;
-         elf_i?86)
-               echo "${UNAME_MACHINE}-pc-linux"
-               exit 0
-               ;;
-         i?86coff)
+               exit 0 ;;
+         coff-i386)
                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit 0
-               ;;
-         sparclinux)
-               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-               exit 0
-               ;;
-         armlinux)
-               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-               exit 0
-               ;;
-         elf32arm*)
-               echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
-               exit 0
-               ;;
-         armelf_linux*)
-               echo "${UNAME_MACHINE}-unknown-linux-gnu"
-               exit 0
-               ;;
-         m68klinux)
-               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
-               exit 0
-               ;;
-         elf32ppc | elf32ppclinux)
-               # Determine Lib Version
-               cat >$dummy.c <<EOF
-#include <features.h>
-#if defined(__GLIBC__)
-extern char __libc_version[];
-extern char __libc_release[];
-#endif
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#if defined(__GLIBC__)
-  printf("%s %s\n", __libc_version, __libc_release);
-#else
-  printf("unkown\n");
-#endif
-  return 0;
-}
-EOF
-               LIBC=""
-               $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
-               if test "$?" = 0 ; then
-                       ./$dummy | grep 1\.99 > /dev/null
-                       if test "$?" = 0 ; then
-                               LIBC="libc1"
-                       fi
-               fi
-               rm -f $dummy.c $dummy
-               echo powerpc-unknown-linux-gnu${LIBC}
-               exit 0
-               ;;
-         shelf_linux)
-               echo "${UNAME_MACHINE}-unknown-linux-gnu"
-               exit 0
-               ;;
+               exit 0 ;;
+         "")
+               # 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 0 ;;
        esac
        esac
-
-       if test "${UNAME_MACHINE}" = "alpha" ; then
-               cat <<EOF >$dummy.s
-                       .data
-               \$Lformat:
-                       .byte 37,100,45,37,120,10,0     # "%d-%x\n"
-
-                       .text
-                       .globl main
-                       .align 4
-                       .ent main
-               main:
-                       .frame \$30,16,\$26,0
-                       ldgp \$29,0(\$27)
-                       .prologue 1
-                       .long 0x47e03d80 # implver \$0
-                       lda \$2,-1
-                       .long 0x47e20c21 # amask \$2,\$1
-                       lda \$16,\$Lformat
-                       mov \$0,\$17
-                       not \$1,\$18
-                       jsr \$26,printf
-                       ldgp \$29,0(\$26)
-                       mov 0,\$16
-                       jsr \$26,exit
-                       .end main
-EOF
-               LIBC=""
-               $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
-               if test "$?" = 0 ; then
-                       case `./$dummy` in
-                       0-0)
-                               UNAME_MACHINE="alpha"
-                               ;;
-                       1-0)
-                               UNAME_MACHINE="alphaev5"
-                               ;;
-                       1-1)
-                               UNAME_MACHINE="alphaev56"
-                               ;;
-                       1-101)
-                               UNAME_MACHINE="alphapca56"
-                               ;;
-                       2-303)
-                               UNAME_MACHINE="alphaev6"
-                               ;;
-                       2-307)
-                               UNAME_MACHINE="alphaev67"
-                               ;;
-                       esac
-
-                       objdump --private-headers $dummy | \
-                         grep ld.so.1 > /dev/null
-                       if test "$?" = 0 ; then
-                               LIBC="libc1"
-                       fi
-               fi
-               rm -f $dummy.s $dummy
-               echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
-       elif test "${UNAME_MACHINE}" = "mips" ; then
-         cat >$dummy.c <<EOF
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __MIPSEB__
-  printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       elif test "${UNAME_MACHINE}" = "s390"; then
-         echo s390-ibm-linux && exit 0
-       else
-         # Either a pre-BFD a.out linker (linux-gnuoldld)
-         # or one that does not give us useful --help.
-         # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
-         # If ld does not provide *any* "supported emulations:"
-         # that means it is gnuoldld.
-         echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
-         test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
-         case "${UNAME_MACHINE}" in
-         i?86)
-           VENDOR=pc;
-           ;;
-         *)
-           VENDOR=unknown;
-           ;;
-         esac
-         # Determine whether the default compiler is a.out or elf
-         cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-#  if __GLIBC__ >= 2
-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-#  else
-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-#  endif
-# else
-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
-  return 0;
-}
+       # Determine whether the default compiler is a.out or elf
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #ifdef __ELF__
+       # ifdef __GLIBC__
+       #  if __GLIBC__ >= 2
+       LIBC=gnu
+       #  else
+       LIBC=gnulibc1
+       #  endif
+       # else
+       LIBC=gnulibc1
+       # endif
+       #else
+       #ifdef __INTEL_COMPILER
+       LIBC=gnu
+       #else
+       LIBC=gnuaout
+       #endif
+       #endif
 EOF
 EOF
-         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
-         rm -f $dummy.c $dummy
-       fi ;;
-# 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.
-    i?86:DYNIX/ptx:4*:*)
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       ;;
+    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 0 ;;
        echo i386-sequent-sysv4
        exit 0 ;;
-    i?86:UNIX_SV:4.2MP:2.*)
+    i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
         # I am not positive that other SVR4 systems won't match this,
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
         # I am not positive that other SVR4 systems won't match this,
@@ -917,7 +932,7 @@ EOF
         # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit 0 ;;
         # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit 0 ;;
-    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+    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
                echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
                echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
@@ -925,34 +940,33 @@ EOF
                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
        fi
        exit 0 ;;
                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
        fi
        exit 0 ;;
-    i?86:*:5:7*)
-        # Fixed at (any) Pentium or better
-        UNAME_MACHINE=i586
-        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
-           echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
-       else
-           echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
-       fi
+    i*86:*:5:[78]*)
+       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 0 ;;
        exit 0 ;;
-    i?86:*:3.2:*)
+    i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
                echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
                echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
                        && UNAME_MACHINE=i586
                        && UNAME_MACHINE=i586
-               (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
                        && UNAME_MACHINE=i686
                        && UNAME_MACHINE=i686
-               (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
                        && UNAME_MACHINE=i686
                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
-    i?86:*DOS:*:*)
+    i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
        exit 0 ;;
     pc:*:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
        exit 0 ;;
     pc:*:*:*)
@@ -978,9 +992,12 @@ EOF
        # "miniframe"
        echo m68010-convergent-sysv
        exit 0 ;;
        # "miniframe"
        echo m68010-convergent-sysv
        exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit 0 ;;
     M68*:*:R3V[567]*:*)
        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
     M68*:*:R3V[567]*:*)
        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -991,21 +1008,24 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && echo i486-ncr-sysv4 && exit 0 ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:*)
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
        echo m68k-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit 0 ;;
        echo m68k-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit 0 ;;
-    i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
-    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+    rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
@@ -1023,8 +1043,8 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit 0 ;;
                echo ns32k-sni-sysv
        fi
        exit 0 ;;
-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                           # says <Richard.M.Bartel@ccMail.Census.GOV>
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
         echo i586-unisys-sysv4
         exit 0 ;;
     *:UNIX_System_V:4*:FTX*)
         echo i586-unisys-sysv4
         exit 0 ;;
     *:UNIX_System_V:4*:FTX*)
@@ -1036,10 +1056,14 @@ EOF
        # From seanf@swdc.stratus.com.
        echo i860-stratus-sysv4
        exit 0 ;;
        # From seanf@swdc.stratus.com.
        echo i860-stratus-sysv4
        exit 0 ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit 0 ;;
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
        exit 0 ;;
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
        exit 0 ;;
-    news*:NEWS-OS:*:6*)
+    news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
        exit 0 ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        echo mips-sony-newsos6
        exit 0 ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
@@ -1064,6 +1088,9 @@ EOF
     SX-5:SUPER-UX:*:*)
        echo sx5-nec-superux${UNAME_RELEASE}
        exit 0 ;;
     SX-5:SUPER-UX:*:*)
        echo sx5-nec-superux${UNAME_RELEASE}
        exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
        exit 0 ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
        exit 0 ;;
@@ -1074,28 +1101,74 @@ EOF
        echo `uname -p`-apple-darwin${UNAME_RELEASE}
        exit 0 ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        echo `uname -p`-apple-darwin${UNAME_RELEASE}
        exit 0 ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       if test "${UNAME_MACHINE}" = "x86pc"; then
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
                UNAME_MACHINE=pc
        fi
-       echo `uname -p`-${UNAME_MACHINE}-nto-qnx
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
        exit 0 ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit 0 ;;
        exit 0 ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit 0 ;;
-    NSR-W:NONSTOP_KERNEL:*:*)
+    NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
        exit 0 ;;
        echo nsr-tandem-nsk${UNAME_RELEASE}
        exit 0 ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit 0 ;;
     BS2000:POSIX*:*:*)
        echo bs2000-siemens-sysv
        exit 0 ;;
     DS/*:UNIX_System_V:*:*)
        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
        exit 0 ;;
     BS2000:POSIX*:*:*)
        echo bs2000-siemens-sysv
        exit 0 ;;
     DS/*:UNIX_System_V:*:*)
        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
        exit 0 ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit 0 ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit 0 ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit 0 ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit 0 ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit 0 ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
 
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
 
+eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
 # include <sys/types.h>
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
 # include <sys/types.h>
@@ -1182,11 +1255,24 @@ main ()
 #endif
 
 #if defined (vax)
 #endif
 
 #if defined (vax)
-#if !defined (ultrix)
-  printf ("vax-dec-bsd\n"); exit (0);
-#else
-  printf ("vax-dec-ultrix\n"); exit (0);
-#endif
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
 #endif
 
 #if defined (alliant) && defined (i860)
 #endif
 
 #if defined (alliant) && defined (i860)
@@ -1197,8 +1283,8 @@ main ()
 }
 EOF
 
 }
 EOF
 
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
 
 # Apollos put the system type in the environment.
 
 
 # Apollos put the system type in the environment.
 
@@ -1233,8 +1319,9 @@ fi
 cat >&2 <<EOF
 $0: unable to guess system type
 
 cat >&2 <<EOF
 $0: unable to guess system type
 
-The $version version of this script cannot recognize your system type.
-Please download the most up to date version of the config scripts:
+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/
 
 
     ftp://ftp.gnu.org/pub/gnu/config/
 
@@ -1243,7 +1330,7 @@ send the following data and any information you think might be
 pertinent to <config-patches@gnu.org> in order to provide the needed
 information to handle your system.
 
 pertinent to <config-patches@gnu.org> in order to provide the needed
 information to handle your system.
 
-config.guess version = $version
+config.guess timestamp = $timestamp
 
 uname -m = `(uname -m) 2>/dev/null || echo unknown`
 uname -r = `(uname -r) 2>/dev/null || echo unknown`
 
 uname -m = `(uname -m) 2>/dev/null || echo unknown`
 uname -r = `(uname -r) 2>/dev/null || echo unknown`
@@ -1270,7 +1357,7 @@ exit 1
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
+# time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
index f8ec622e95b052747c1b1ddd1c3bf7ee9317fdae..b0222f7ea0bb03621b52062eb794bb4ceb272994 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 #! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-#   Free Software Foundation, Inc.
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
 
 
-version='2000-07-06'
+timestamp='2002-08-22'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -29,7 +29,8 @@ version='2000-07-06'
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
 # 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>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -60,16 +61,30 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS
 Canonicalize a configuration name.
 
 Operation modes:
 Canonicalize a configuration name.
 
 Operation modes:
-  -h, --help               print this help, then exit
-  -V, --version            print version number, then exit"
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+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
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
-  case "$1" in
-    --version | --vers* | -V )
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
@@ -78,9 +93,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
     - )        # Use stdin as input.
        break ;;
     -* )
-       exec >&2
-       echo "$me: invalid option $1"
-       echo "$help"
+       echo "$me: invalid option $1$help"
        exit 1 ;;
 
     *local*)
        exit 1 ;;
 
     *local*)
@@ -105,7 +118,7 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu*)
+  nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -122,9 +135,6 @@ esac
 ### recognize some manufacturers as not being operating systems, so we
 ### can provide default operating systems below.
 case $os in
 ### recognize some manufacturers as not being operating systems, so we
 ### can provide default operating systems below.
 case $os in
-       -os2)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86/'`
-               ;;
        -sun*os*)
                # Prevent following clause from handling this invalid input.
                ;;
        -sun*os*)
                # Prevent following clause from handling this invalid input.
                ;;
@@ -148,6 +158,14 @@ case $os in
                os=-vxworks
                basic_machine=$1
                ;;
                os=-vxworks
                basic_machine=$1
                ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -206,22 +224,46 @@ esac
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
-               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
-               | 580 | i960 | h8300 \
-               | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
-               | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
-               | hppa64 \
-               | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
-               | alphaev6[78] \
-               | we32k | ns16k | clipper | i370 | sh | sh[34] \
-               | powerpc | powerpcle \
-               | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
-               | mips64orion | mips64orionel | mipstx39 | mipstx39el \
-               | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
-               | mips64vr5000 | miprs64vr5000el | mcore \
-               | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
-               | thumb | d10v | d30v | fr30 | avr)
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | c4x | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k \
+       | m32r | m68000 | m68k | m88k | mcore \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64vr | mips64vrel \
+       | mips64orion | mips64orionel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | ns16k | ns32k \
+       | openrisc | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+       | strongarm \
+       | tahoe | thumb | tic80 | tron \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xscale | xstormy16 | xtensa \
+       | z8k)
                basic_machine=$basic_machine-unknown
                ;;
        m6811 | m68hc11 | m6812 | m68hc12)
                basic_machine=$basic_machine-unknown
                ;;
        m6811 | m68hc11 | m6812 | m68hc12)
@@ -229,13 +271,13 @@ case $basic_machine in
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
                ;;
 
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
                ;;
 
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
-       i[234567]86)
+       i*86 | x86_64)
          basic_machine=$basic_machine-pc
          ;;
        # Object if more than one company name word.
          basic_machine=$basic_machine-pc
          ;;
        # Object if more than one company name word.
@@ -244,28 +286,56 @@ case $basic_machine in
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
-       # FIXME: clean up the formatting here.
-       vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-             | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
-             | xmp-* | ymp-* \
-             | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
-             | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
-             | hppa2.0n-* | hppa64-* \
-             | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
-             | alphaev6[78]-* \
-             | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
-             | clipper-* | orion-* \
-             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-             | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-* \
-             | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
-             | mipstx39-* | mipstx39el-* | mcore-* \
-             | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
-             | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
-             | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
-             | bs2000-* | tic54x-* | c54x-*)
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* \
+       | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c54x-* \
+       | clipper-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* \
+       | m32r-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | mcore-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipstx39 | mipstx39el \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+       | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+       | xtensa-* \
+       | ymp-* \
+       | z8k-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
@@ -302,14 +372,14 @@ case $basic_machine in
                os=-sysv
                ;;
        amiga | amiga-*)
                os=-sysv
                ;;
        amiga | amiga-*)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                ;;
        amigaos | amigados)
                ;;
        amigaos | amigados)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-amigaos
                ;;
        amigaunix | amix)
                os=-amigaos
                ;;
        amigaunix | amix)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-sysv4
                ;;
        apollo68)
                os=-sysv4
                ;;
        apollo68)
@@ -328,6 +398,10 @@ case $basic_machine in
                basic_machine=ns32k-sequent
                os=-dynix
                ;;
                basic_machine=ns32k-sequent
                os=-dynix
                ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
        convex-c1)
                basic_machine=c1-convex
                os=-bsd
        convex-c1)
                basic_machine=c1-convex
                os=-bsd
@@ -348,16 +422,8 @@ case $basic_machine in
                basic_machine=c38-convex
                os=-bsd
                ;;
                basic_machine=c38-convex
                os=-bsd
                ;;
-       cray | ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       cray2)
-               basic_machine=cray2-cray
-               os=-unicos
-               ;;
-       [ctj]90-cray)
-               basic_machine=c90-cray
+       cray | j90)
+               basic_machine=j90-cray
                os=-unicos
                ;;
        crds | unos)
                os=-unicos
                ;;
        crds | unos)
@@ -372,6 +438,14 @@ case $basic_machine in
        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
                basic_machine=mips-dec
                ;;
        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
                basic_machine=mips-dec
                ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
                basic_machine=m68k-motorola
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
                basic_machine=m68k-motorola
@@ -413,6 +487,10 @@ case $basic_machine in
                basic_machine=tron-gmicro
                os=-sysv
                ;;
                basic_machine=tron-gmicro
                os=-sysv
                ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -488,19 +566,19 @@ case $basic_machine in
                basic_machine=i370-ibm
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
                basic_machine=i370-ibm
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i[34567]86v32)
+       i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
-       i[34567]86v4*)
+       i*86v4*)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
-       i[34567]86v)
+       i*86v)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
-       i[34567]86sol2)
+       i*86sol2)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
@@ -512,14 +590,6 @@ case $basic_machine in
                basic_machine=i386-unknown
                os=-vsta
                ;;
                basic_machine=i386-unknown
                os=-vsta
                ;;
-       i386-go32 | go32)
-               basic_machine=i386-unknown
-               os=-go32
-               ;;
-       i386-mingw32 | mingw32)
-               basic_machine=i386-unknown
-               os=-mingw32
-               ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
@@ -545,6 +615,10 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
                basic_machine=ns32k-utek
                os=-sysv
                ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
@@ -552,14 +626,6 @@ case $basic_machine in
                basic_machine=m68k-atari
                os=-mint
                ;;
                basic_machine=m68k-atari
                os=-mint
                ;;
-       mipsel*-linux*)
-               basic_machine=mipsel-unknown
-               os=-linux-gnu
-               ;;
-       mips*-linux*)
-               basic_machine=mips-unknown
-               os=-linux-gnu
-               ;;
        mips3*-*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
                ;;
        mips3*-*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
                ;;
@@ -574,8 +640,12 @@ case $basic_machine in
                basic_machine=m68k-rom68k
                os=-coff
                ;;
                basic_machine=m68k-rom68k
                os=-coff
                ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
        msdos)
        msdos)
-               basic_machine=i386-unknown
+               basic_machine=i386-pc
                os=-msdos
                ;;
        mvs)
                os=-msdos
                ;;
        mvs)
@@ -639,6 +709,10 @@ case $basic_machine in
                basic_machine=i960-intel
                os=-mon960
                ;;
                basic_machine=i960-intel
                os=-mon960
                ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
        np1)
                basic_machine=np1-gould
                ;;
        np1)
                basic_machine=np1-gould
                ;;
@@ -649,6 +723,10 @@ case $basic_machine in
                basic_machine=hppa1.1-oki
                os=-proelf
                ;;
                basic_machine=hppa1.1-oki
                os=-proelf
                ;;
+       or32 | or32-*)
+               basic_machine=or32-unknown
+               os=-coff
+               ;;
        OSE68000 | ose68000)
                basic_machine=m68000-ericsson
                os=-ose
        OSE68000 | ose68000)
                basic_machine=m68000-ericsson
                os=-ose
@@ -671,45 +749,59 @@ case $basic_machine in
        pbb)
                basic_machine=m68k-tti
                ;;
        pbb)
                basic_machine=m68k-tti
                ;;
-        pc532 | pc532-*)
+       pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
                basic_machine=ns32k-pc532
                ;;
-       pentium | p5 | k5 | k6 | nexen)
+       pentium | p5 | k5 | k6 | nexgen | viac3)
                basic_machine=i586-pc
                ;;
                basic_machine=i586-pc
                ;;
-       pentiumpro | p6 | 6x86 | athlon)
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
                basic_machine=i686-pc
                ;;
        pentiumii | pentium2)
                basic_machine=i686-pc
                ;;
        pentiumii | pentium2)
-               basic_machine=i786-pc
+               basic_machine=i686-pc
                ;;
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexen-*)
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
                ;;
                ;;
        pn)
                basic_machine=pn-gould
                ;;
-       power)  basic_machine=rs6000-ibm
+       power)  basic_machine=power-ibm
                ;;
        ppc)    basic_machine=powerpc-unknown
                ;;
        ppc)    basic_machine=powerpc-unknown
-               ;;
+               ;;
        ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
        ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
-               ;;
+               ;;
        ppcle-* | powerpclittle-*)
                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle-* | powerpclittle-*)
                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        ps2)
                basic_machine=i386-ibm
                ;;
        ps2)
                basic_machine=i386-ibm
                ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
        rom68k)
                basic_machine=m68k-rom68k
                os=-coff
        rom68k)
                basic_machine=m68k-rom68k
                os=-coff
@@ -720,10 +812,22 @@ case $basic_machine in
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
        sa29200)
                basic_machine=a29k-amd
                os=-udi
                ;;
        sa29200)
                basic_machine=a29k-amd
                os=-udi
                ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
        sequent)
                basic_machine=i386-sequent
                ;;
        sequent)
                basic_machine=i386-sequent
                ;;
@@ -731,7 +835,7 @@ case $basic_machine in
                basic_machine=sh-hitachi
                os=-hms
                ;;
                basic_machine=sh-hitachi
                os=-hms
                ;;
-       sparclite-wrs)
+       sparclite-wrs | simso-wrs)
                basic_machine=sparclite-wrs
                os=-vxworks
                ;;
                basic_machine=sparclite-wrs
                os=-vxworks
                ;;
@@ -797,8 +901,16 @@ case $basic_machine in
                basic_machine=i386-sequent
                os=-dynix
                ;;
                basic_machine=i386-sequent
                os=-dynix
                ;;
+       t3d)
+               basic_machine=alpha-cray
+               os=-unicos
+               ;;
        t3e)
        t3e)
-               basic_machine=t3e-cray
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
                os=-unicos
                ;;
        tic54x | c54x*)
                os=-unicos
                ;;
        tic54x | c54x*)
@@ -811,6 +923,10 @@ case $basic_machine in
        tx39el)
                basic_machine=mipstx39el-unknown
                ;;
        tx39el)
                basic_machine=mipstx39el-unknown
                ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
@@ -835,8 +951,8 @@ case $basic_machine in
                os=-vms
                ;;
        vpp*|vx|vx-*)
                os=-vms
                ;;
        vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
+               basic_machine=f301-fujitsu
+               ;;
        vxworks960)
                basic_machine=i960-wrs
                os=-vxworks
        vxworks960)
                basic_machine=i960-wrs
                os=-vxworks
@@ -857,13 +973,17 @@ case $basic_machine in
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
-       xmp)
-               basic_machine=xmp-cray
-               os=-unicos
+       windows32)
+               basic_machine=i386-pc
+               os=-windows32-msvcrt
                ;;
                ;;
-        xps | xps100)
+       xps | xps100)
                basic_machine=xps100-honeywell
                ;;
                basic_machine=xps100-honeywell
                ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
        z8k-*-coff)
                basic_machine=z8k-unknown
                os=-sim
        z8k-*-coff)
                basic_machine=z8k-unknown
                os=-sim
@@ -884,13 +1004,6 @@ case $basic_machine in
        op60c)
                basic_machine=hppa1.1-oki
                ;;
        op60c)
                basic_machine=hppa1.1-oki
                ;;
-       mips)
-               if [ x$os = x-linux-gnu ]; then
-                       basic_machine=mips-unknown
-               else
-                       basic_machine=mips-mips
-               fi
-               ;;
        romp)
                basic_machine=romp-ibm
                ;;
        romp)
                basic_machine=romp-ibm
                ;;
@@ -900,19 +1013,26 @@ case $basic_machine in
        vax)
                basic_machine=vax-dec
                ;;
        vax)
                basic_machine=vax-dec
                ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
        we32k)
                basic_machine=we32k-att
                ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
        we32k)
                basic_machine=we32k-att
                ;;
-       sh3 | sh4)
-               base_machine=sh-unknown
+       sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+               basic_machine=sh-unknown
                ;;
                ;;
-       sparc | sparcv9)
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparc | sparcv9 | sparcv9b)
                basic_machine=sparc-sun
                ;;
                basic_machine=sparc-sun
                ;;
-        cydra)
+       cydra)
                basic_machine=cydra-cydrome
                ;;
        orion)
                basic_machine=cydra-cydrome
                ;;
        orion)
@@ -931,6 +1051,9 @@ case $basic_machine in
                basic_machine=c4x-none
                os=-coff
                ;;
                basic_machine=c4x-none
                os=-coff
                ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
        *)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
        *)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
@@ -987,15 +1110,19 @@ case $os in
              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit*)
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
                case $basic_machine in
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
                case $basic_machine in
-                   x86-* | i[34567]86-*)
+                   x86-* | i*86-*)
                        ;;
                    *)
                        os=-nto$os
                        ;;
                    *)
                        os=-nto$os
@@ -1006,7 +1133,6 @@ case $os in
                os=-nto-qnx
                ;;
        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
                os=-nto-qnx
                ;;
        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -os2 \
              | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
              | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
@@ -1043,16 +1169,22 @@ case $os in
        -acis*)
                os=-aos
                ;;
        -acis*)
                os=-aos
                ;;
+       -atheos*)
+               os=-atheos
+               ;;
        -386bsd)
                os=-bsd
                ;;
        -ctix* | -uts*)
                os=-sysv
                ;;
        -386bsd)
                os=-bsd
                ;;
        -ctix* | -uts*)
                os=-sysv
                ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
        -ns2 )
        -ns2 )
-               os=-nextstep2
+               os=-nextstep2
                ;;
                ;;
-       -nsk)
+       -nsk*)
                os=-nsk
                ;;
        # Preserve the version number of sinix5.
                os=-nsk
                ;;
        # Preserve the version number of sinix5.
@@ -1089,8 +1221,8 @@ case $os in
        -xenix)
                os=-xenix
                ;;
        -xenix)
                os=-xenix
                ;;
-        -*mint | -*MiNT)
-               os=-mint
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
                ;;
        -none)
                ;;
                ;;
        -none)
                ;;
@@ -1123,7 +1255,11 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
        arm*-semi)
                os=-aout
                ;;
-        pdp11-*)
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
                os=-none
                ;;
        *-dec | vax-*)
                os=-none
                ;;
        *-dec | vax-*)
@@ -1150,6 +1286,9 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
        mips*-*)
                os=-elf
                ;;
+       or32-*)
+               os=-coff
+               ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
                os=-sysv3
                ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
                os=-sysv3
                ;;
@@ -1213,25 +1352,25 @@ case $basic_machine in
        *-next)
                os=-nextstep3
                ;;
        *-next)
                os=-nextstep3
                ;;
-        *-gould)
+       *-gould)
                os=-sysv
                ;;
                os=-sysv
                ;;
-        *-highlevel)
+       *-highlevel)
                os=-bsd
                ;;
        *-encore)
                os=-bsd
                ;;
                os=-bsd
                ;;
        *-encore)
                os=-bsd
                ;;
-        *-sgi)
+       *-sgi)
                os=-irix
                ;;
                os=-irix
                ;;
-        *-siemens)
+       *-siemens)
                os=-sysv4
                ;;
        *-masscomp)
                os=-rtu
                ;;
                os=-sysv4
                ;;
        *-masscomp)
                os=-rtu
                ;;
-       f301-fujitsu)
+       f30[01]-fujitsu | f700-fujitsu)
                os=-uxpv
                ;;
        *-rom68k)
                os=-uxpv
                ;;
        *-rom68k)
@@ -1297,7 +1436,7 @@ case $basic_machine in
                        -ptx*)
                                vendor=sequent
                                ;;
                        -ptx*)
                                vendor=sequent
                                ;;
-                       -vxsim* | -vxworks*)
+                       -vxsim* | -vxworks* | -windiss*)
                                vendor=wrs
                                ;;
                        -aux*)
                                vendor=wrs
                                ;;
                        -aux*)
@@ -1309,9 +1448,12 @@ case $basic_machine in
                        -mpw* | -macos*)
                                vendor=apple
                                ;;
                        -mpw* | -macos*)
                                vendor=apple
                                ;;
-                       -*mint | -*MiNT)
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                                vendor=atari
                                ;;
                                vendor=atari
                                ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
@@ -1322,7 +1464,7 @@ exit 0
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
+# time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
index c18a988f72c4d271dae24fa52f981c98182126a5..c20c60f3ec2e5920babc1b53b6a740330d8727c5 100755 (executable)
--- a/configure
+++ b/configure
 #! /bin/sh
 #! /bin/sh
-
-# From configure.in Revision: 1.220 
-
-
-
+# From configure.in Revision: 1.274 .
 # Guess values for system-dependent variables and create Makefiles.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13.20000819 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+# Generated by Autoconf 2.52.20011227.
 #
 #
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 
-# Defaults:
-ac_help=
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
 ac_default_prefix=/usr/local
 ac_default_prefix=/usr/local
-# Any additions from configure.in:
+cross_compiling=no
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+ac_unique_file="ncurses/base/lib_initscr.c"
 
 # Initialize some variables set by options.
 
 # Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
 # The variables have the same names as the options, with
 # dashes changed to underlines.
 # The variables have the same names as the options, with
 # dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
+cache_file=/dev/null
 exec_prefix=NONE
 exec_prefix=NONE
-host=NONE
 no_create=
 no_create=
-nonopt=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
@@ -33,10 +123,15 @@ program_transform_name=s,x,x,
 silent=
 site=
 srcdir=
 silent=
 site=
 srcdir=
-target=NONE
 verbose=
 x_includes=NONE
 x_libraries=NONE
 verbose=
 x_includes=NONE
 x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
@@ -50,17 +145,16 @@ oldincludedir='/usr/include'
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
 
 ac_prev=
 for ac_option
 do
 
 ac_prev=
 for ac_option
 do
-
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
@@ -68,59 +162,59 @@ do
     continue
   fi
 
     continue
   fi
 
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case "$ac_option" in
+  case $ac_option in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
+    bindir=$ac_optarg ;;
 
   -build | --build | --buil | --bui | --bu)
 
   -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
+    ac_prev=build_alias ;;
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$ac_optarg" ;;
+    build_alias=$ac_optarg ;;
 
   -cache-file | --cache-file | --cache-fil | --cache-fi \
   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
     ac_prev=cache_file ;;
   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
 
   -cache-file | --cache-file | --cache-fil | --cache-fi \
   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
     ac_prev=cache_file ;;
   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file="$ac_optarg" ;;
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
 
   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
   | --da=*)
 
   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
   | --da=*)
-    datadir="$ac_optarg" ;;
+    datadir=$ac_optarg ;;
 
   -disable-* | --disable-*)
 
   -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
 
   -enable-* | --enable-*)
 
   -enable-* | --enable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
       *) ac_optarg=yes ;;
     esac
       *) ac_optarg=yes ;;
     esac
-    eval "enable_${ac_feature}='$ac_optarg'" ;;
+    eval "enable_$ac_feature='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -129,175 +223,47 @@ do
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
-    exec_prefix="$ac_optarg" ;;
+    exec_prefix=$ac_optarg ;;
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he)
-    # Omit some internal or obsolete options to make the list less imposing.
-    # This message is too long to be a string in the A/UX 3.1 sh.
-    cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-cat <<EOF
---enable and --with options recognized:
-  --with-system-type=XXX  test: override derived host system-type
-  --enable-add-ons=DIR... used to check if we are a glibc add-on.
-  --without-cxx           do not adjust ncurses bool to match C++
-  --without-cxx-binding   do not build C++ binding and demo
-  --without-ada           suppress check for Ada95, don't build demo
-  --without-progs         suppress build with programs (e.g., tic)
-  --without-curses-h      install curses.h as ncurses.h only
-  --with-install-prefix   prefixes actual install-location
-Options to Specify the Libraries Built/Used:
-  --with-libtool          generate libraries with libtool
-  --with-shared           generate shared-libraries
-  --with-normal           generate normal-libraries (default)
-  --with-debug            generate debug-libraries (default)
-EOF
-cat <<EOF
-  --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-gpm              use Alessandro Rubini's GPM library
-  --enable-rpath          use rpath option when generating shared libraries
-  --with-shlib-version=X  Specify rel or abi version for shared libs
-Fine-Tuning Your Configuration:
-  --disable-overwrite     leave out the link to -lcurses
-  --disable-database      use only built-in data
-  --with-database=XXX     specify terminfo source to install
-  --with-fallbacks=XXX    specify list of fallback terminal descriptions
-EOF
-cat <<EOF
-  --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
-  --enable-termcap        compile in termcap fallback support
-  --enable-getcap         fast termcap load, no xrefs to terminfo
-  --enable-getcap-cache   cache translated termcaps in ~/.terminfo
-  --enable-symlinks       make tic use symbolic links not hard links
-  --enable-broken_linker  compile with broken-linker support code
-  --enable-bsdpad         recognize BSD-style prefix padding
-  --with-rcs-ids          compile-in RCS identifiers
-Options to Specify How Manpages are Installed:
-  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
-                          optionally formatted, e.g., gzip,formatted
-EOF
-cat <<EOF
-  --with-manpage-renames  specify manpage-renaming
-  --with-manpage-symlinks specify manpage-symlinks
-  --with-manpage-tbl      specify manpage processing with tbl
-Extensions:
-  --disable-ext-funcs     disable function-extensions
-  --enable-const          compile with extra/non-standard const
-  --enable-no-padding     compile with \$NCURSES_NO_PADDING code
-  --enable-sigwinch       compile with SIGWINCH handler
-  --enable-tcap-names     compile with user-definable terminal capabilities
-Development Code:
-  --with-develop          enable all development options
-  --enable-colorfgbg      compile with \$COLORFGBG code
-EOF
-cat <<EOF
-  --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-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
-Testing/development Options:
-  --enable-echo           build: display "compiling" commands (default)
-  --enable-warnings       build: turn on GCC compiler warnings
-EOF
-cat <<EOF
-  --enable-assertions     test: turn on generation of assertion code
-  --disable-leaks         test: suppress permanent memory-leaks
-  --enable-expanded       test: generate functions for certain macros
-  --disable-macros        test: use functions rather than macros
-Ada95 Binding Options:
-  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
-  --with-ada-include=DIR  Ada includes are in DIR (default: PREFIX/lib/ada/adainclude)
-  --with-ada-objects=DIR  Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
-EOF
-    exit 0 ;;
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
 
   -host | --host | --hos | --ho)
 
   -host | --host | --hos | --ho)
-    ac_prev=host ;;
+    ac_prev=host_alias ;;
   -host=* | --host=* | --hos=* | --ho=*)
   -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
+    host_alias=$ac_optarg ;;
 
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
   | --includ=* | --inclu=* | --incl=* | --inc=*)
 
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
   | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir="$ac_optarg" ;;
+    includedir=$ac_optarg ;;
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
+    infodir=$ac_optarg ;;
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
+    libdir=$ac_optarg ;;
 
   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
   | --libexe | --libex | --libe)
     ac_prev=libexecdir ;;
   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
   | --libexe=* | --libex=* | --libe=*)
 
   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
   | --libexe | --libex | --libe)
     ac_prev=libexecdir ;;
   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
   | --libexe=* | --libex=* | --libe=*)
-    libexecdir="$ac_optarg" ;;
+    libexecdir=$ac_optarg ;;
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
@@ -306,12 +272,12 @@ EOF
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
+    localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
+    mandir=$ac_optarg ;;
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
@@ -332,26 +298,26 @@ EOF
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
+    oldincludedir=$ac_optarg ;;
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
+    prefix=$ac_optarg ;;
 
   -program-prefix | --program-prefix | --program-prefi | --program-pref \
   | --program-pre | --program-pr | --program-p)
     ac_prev=program_prefix ;;
   -program-prefix=* | --program-prefix=* | --program-prefi=* \
   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
 
   -program-prefix | --program-prefix | --program-prefi | --program-pref \
   | --program-pre | --program-pr | --program-p)
     ac_prev=program_prefix ;;
   -program-prefix=* | --program-prefix=* | --program-prefi=* \
   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix="$ac_optarg" ;;
+    program_prefix=$ac_optarg ;;
 
   -program-suffix | --program-suffix | --program-suffi | --program-suff \
   | --program-suf | --program-su | --program-s)
     ac_prev=program_suffix ;;
   -program-suffix=* | --program-suffix=* | --program-suffi=* \
   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
 
   -program-suffix | --program-suffix | --program-suffi | --program-suff \
   | --program-suf | --program-su | --program-s)
     ac_prev=program_suffix ;;
   -program-suffix=* | --program-suffix=* | --program-suffi=* \
   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix="$ac_optarg" ;;
+    program_suffix=$ac_optarg ;;
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
@@ -368,7 +334,7 @@ EOF
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
+    program_transform_name=$ac_optarg ;;
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
@@ -378,7 +344,7 @@ EOF
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
+    sbindir=$ac_optarg ;;
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -389,58 +355,57 @@ EOF
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
+    sharedstatedir=$ac_optarg ;;
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
+    site=$ac_optarg ;;
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
+    srcdir=$ac_optarg ;;
 
   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
   | --syscon | --sysco | --sysc | --sys | --sy)
     ac_prev=sysconfdir ;;
   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
 
   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
   | --syscon | --sysco | --sysc | --sys | --sy)
     ac_prev=sysconfdir ;;
   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir="$ac_optarg" ;;
+    sysconfdir=$ac_optarg ;;
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
+    ac_prev=target_alias ;;
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
+    target_alias=$ac_optarg ;;
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13.20000819"
-    exit 0 ;;
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
 
   -with-* | --with-*)
 
   -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
       *) ac_optarg=yes ;;
     esac
       *) ac_optarg=yes ;;
     esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
+    eval "with_$ac_package='$ac_optarg'" ;;
 
   -without-* | --without-*)
 
   -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval "with_${ac_package}=no" ;;
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
 
   --x)
     # Obsolete; use --with-x.
 
   --x)
     # Obsolete; use --with-x.
@@ -451,98 +416,98 @@ EOF
     ac_prev=x_includes ;;
   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
     ac_prev=x_includes ;;
   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes="$ac_optarg" ;;
+    x_includes=$ac_optarg ;;
 
   -x-libraries | --x-libraries | --x-librarie | --x-librari \
   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
     ac_prev=x_libraries ;;
   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
 
   -x-libraries | --x-libraries | --x-librarie | --x-librari \
   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
     ac_prev=x_libraries ;;
   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries="$ac_optarg" ;;
+    x_libraries=$ac_optarg ;;
 
 
-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
     ;;
 
     ;;
 
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
   *)
   *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
   esac
 done
 
 if test -n "$ac_prev"; then
     ;;
 
   esac
 done
 
 if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
 fi
 
 fi
 
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
 
 
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
 do
 do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
   esac
 done
 
   esac
 done
 
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: should be removed in autoconf 3.0.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
 
 
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
 
 
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=ncurses/base/lib_initscr.c
+test "$silent" = yes && exec 6>/dev/null
 
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
   ac_prog=$0
 
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
   ac_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
   test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
   test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
@@ -553,13 +518,408 @@ else
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+    { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
   else
   else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+    { echo "$as_me: error: cannot find sources in $srcdir" >&2
+   { (exit 1); exit 1; }; }
   fi
 fi
   fi
 fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<EOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+EOF
+
+  cat <<EOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --infodir=DIR           info documentation [PREFIX/info]
+  --mandir=DIR            man documentation [PREFIX/man]
+EOF
+
+  cat <<\EOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD           configure for building on BUILD [guessed]
+  --host=HOST       build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+EOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\EOF
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+
+  --with-system-type=XXX  test: override derived host system-type
+  --enable-add-ons=DIR... used to check if we are a glibc add-on.
+  --with-build-cc=XXX     if cross-compiling, the host C compiler (\$BUILD_CC)
+  --with-build-cflags=XXX if cross-compiling, the host C compiler-flags
+  --with-build-cppflags=XXX if cross-compiling, the host C preprocessor-flags
+  --with-build-ldflags=XXX if cross-compiling, the host linker-flags
+  --with-build-libs=XXX   if cross-compiling, the host libraries
+  --without-cxx           do not adjust ncurses bool to match C++
+  --without-cxx-binding   do not build C++ binding and demo
+  --without-ada           suppress check for Ada95, don't build demo
+  --without-progs         suppress build with programs (e.g., tic)
+  --without-curses-h      install curses.h as ncurses.h only
+  --with-install-prefix   prefixes actual install-location (\$DESTDIR)
+Options to Specify the Libraries Built/Used:
+  --with-libtool          generate libraries with libtool
+  --with-shared           generate shared-libraries
+  --with-normal           generate normal-libraries (default)
+  --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-gpm              use Alessandro Rubini's GPM library
+  --enable-rpath          use rpath option when generating shared libraries
+  --with-shlib-version=X  Specify rel or abi version for shared libs
+Fine-Tuning Your Configuration:
+  --disable-overwrite     leave out the link to -lcurses
+  --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
+  --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
+  --enable-termcap        compile in termcap fallback support
+  --with-termpath=XXX     specify list of termcap files (default: /etc/termcap:/usr/share/misc/termcap)
+  --enable-getcap         fast termcap load, no xrefs to terminfo
+  --enable-getcap-cache   cache translated termcaps in ~/.terminfo
+  --enable-symlinks       make tic use symbolic links not hard links
+  --enable-broken_linker  compile with broken-linker support code
+  --with-bool=TYPE        override fallback type of bool variable
+  --with-ospeed=TYPE      override type of ospeed variable
+  --enable-bsdpad         recognize BSD-style prefix padding
+  --with-rcs-ids          compile-in RCS identifiers
+Options to Specify How Manpages are Installed:
+  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
+                          optionally formatted, e.g., gzip,formatted
+  --with-manpage-renames  specify manpage-renaming
+  --with-manpage-symlinks specify manpage-symlinks
+  --with-manpage-tbl      specify manpage processing with tbl
+Extensions:
+  --disable-ext-funcs     disable function-extensions
+  --enable-const          compile with extra/non-standard const
+  --enable-no-padding     compile with \$NCURSES_NO_PADDING code
+  --enable-sigwinch       compile with SIGWINCH handler
+  --enable-tcap-names     compile with user-definable terminal capabilities
+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-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
+  --enable-assertions     test: turn on generation of assertion code
+  --disable-leaks         test: suppress permanent memory-leaks
+  --enable-expanded       test: generate functions for certain macros
+  --disable-macros        test: use functions rather than macros
+Ada95 Binding Options:
+  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
+  --with-ada-include=DIR  Ada includes are in DIR (default: PREFIX/lib/ada/adainclude)
+  --with-ada-objects=DIR  Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+EOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
+    cd $ac_subdir
+    # A "../" for each directory in /$ac_subdir.
+    ac_dots=`echo $ac_subdir |
+             sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
+
+    case $srcdir in
+    .) # No --srcdir option.  We are building in place.
+      ac_sub_srcdir=$srcdir ;;
+    [\\/]* | ?:[\\/]* ) # Absolute path.
+      ac_sub_srcdir=$srcdir/$ac_subdir ;;
+    *) # Relative path.
+      ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
+    esac
+
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_sub_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_sub_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_sub_srcdir/configure; then
+      echo
+      $SHELL $ac_sub_srcdir/configure  --help=recursive
+    elif test -f $ac_sub_srcdir/configure.ac ||
+           test -f $ac_sub_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\EOF
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+EOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<EOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.52.20011227.  Invocation command line was
+
+  $ $0 $@
+
+EOF
+{
+cat <<_ASUNAME
+## ---------- ##
+## Platform.  ##
+## ---------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+PATH = $PATH
 
 
+_ASUNAME
+} >&5
+
+cat >&5 <<EOF
+## ------------ ##
+## Core tests.  ##
+## ------------ ##
+
+EOF
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+  case $ac_arg in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+    ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+    ac_sep=" " ;;
+  *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+     ac_sep=" " ;;
+  esac
+  # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  echo >&5
+  echo "## ----------------- ##" >&5
+  echo "## Cache variables.  ##" >&5
+  echo "## ----------------- ##" >&5
+  echo >&5
+  # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} >&5
+  sed "/^$/d" confdefs.h >conftest.log
+  if test -s conftest.log; then
+    echo >&5
+    echo "## ------------ ##" >&5
+    echo "## confdefs.h.  ##" >&5
+    echo "## ------------ ##" >&5
+    echo >&5
+    cat conftest.log >&5
+  fi
+  (echo; echo) >&5
+  test "$ac_signal" != 0 &&
+    echo "$as_me: caught signal $ac_signal" >&5
+  echo "$as_me: exit $exit_status" >&5
+  rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
   if test "x$prefix" != xNONE; then
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
   if test "x$prefix" != xNONE; then
@@ -570,57 +930,118 @@ if test -z "$CONFIG_SITE"; then
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    echo "loading site script $ac_site_file"
+    { echo "$as_me:933: 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"
   fi
 done
 
 if test -r "$cache_file"; then
     . "$ac_site_file"
   fi
 done
 
 if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:944: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
 else
 else
-  echo "creating cache $cache_file"
-  > $cache_file
+  { echo "$as_me:952: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:968: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:972: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+        { echo "$as_me:978: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:980:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:982:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.  It doesn't matter if
+  # we pass some twice (in addition to the command line arguments).
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+       ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:1001: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:1003: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 ac_ext=c
 fi
 
 ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='       '
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
+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
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='     ' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)      ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+echo "#! $SHELL" >conftest.sh
+echo  "exit 0"   >>conftest.sh
+chmod +x conftest.sh
+if { (echo "$as_me:1023: PATH=\".;.\"; conftest.sh") >&5
+  (PATH=".;."; conftest.sh) 2>&5
+  ac_status=$?
+  echo "$as_me:1026: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_path_separator=';'
 else
 else
-  ac_n= ac_c='\c' ac_t=
+  ac_path_separator=:
 fi
 fi
+PATH_SEPARATOR="$ac_path_separator"
+rm -f conftest.sh
 
 
-
-
-
+ac_config_headers="$ac_config_headers include/ncurses_cfg.h:include/ncurses_cfg.hin"
 
 NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 NCURSES_MINOR="`egrep '^NCURSES_MINOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 NCURSES_PATCH="`egrep '^NCURSES_PATCH[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 
 NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 NCURSES_MINOR="`egrep '^NCURSES_MINOR[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 NCURSES_PATCH="`egrep '^NCURSES_PATCH[         ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
-echo "$ac_t""Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version (`date`)" 1>&6
-
-
-
-
-
-
-
+cf_cv_timestamp=`date`
+echo "$as_me:1043: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
 
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
 
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
@@ -632,106 +1053,101 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
   fi
 done
 if test -z "$ac_aux_dir"; then
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+  { { echo "$as_me:1063: 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
 fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+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:1073: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:1077: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:1086: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:1090: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:1095: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+echo "$as_me:1102: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:1111: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:1116: result: $ac_cv_host" >&5
+echo "${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
 
 if test -f $srcdir/config.guess ; then
-       
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-#    same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-#    as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
+       echo "$as_me:1124: 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
+else
+  ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+  ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+  { { echo "$as_me:1133: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:1138: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 # The aliases save the names the user supplied, while $host etc.
 # will get canonicalized.
 
 # The aliases save the names the user supplied, while $host etc.
 # will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:675: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:696: checking target system type" >&5
-
-target_alias=$target
-case "$target_alias" in
-NONE)
-  case $nonopt in
-  NONE) target_alias=$host_alias ;;
-  *) target_alias=$nonopt ;;
-  esac ;;
-esac
-
-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:714: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
+test -n "$target_alias" &&
   test "$program_prefix$program_suffix$program_transform_name" = \
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
   test "$program_prefix$program_suffix$program_transform_name" = \
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
-
        system_name="$host_os"
 else
        system_name="`(uname -s -r) 2>/dev/null`"
        system_name="$host_os"
 else
        system_name="`(uname -s -r) 2>/dev/null`"
@@ -739,33 +1155,35 @@ else
                system_name="`(hostname) 2>/dev/null`"
        fi
 fi
                system_name="`(hostname) 2>/dev/null`"
        fi
 fi
-test -n "$system_name" && cat >> confdefs.h <<EOF
+test -n "$system_name" && cat >>confdefs.h <<EOF
 #define SYSTEM_NAME "$system_name"
 EOF
 
 #define SYSTEM_NAME "$system_name"
 EOF
 
-if eval "test \"`echo '$''{'cf_cv_system_name'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${cf_cv_system_name+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cf_cv_system_name="$system_name"
 fi
 
 else
   cf_cv_system_name="$system_name"
 fi
 
-
 test -z "$system_name" && system_name="$cf_cv_system_name"
 test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$ac_t"""Configuring for $cf_cv_system_name"" 1>&6
+test -n "$cf_cv_system_name" && echo "$as_me:1169: 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
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
-       echo "$ac_t""Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" 1>&6
-       { echo "configure: error: "Please remove config.cache and try again."" 1>&2; exit 1; }
+       echo "$as_me:1173: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+       { { echo "$as_me:1175: error: \"Please remove config.cache and try again.\"" >&5
+echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 fi
 
-
 # Check whether --with-system-type or --without-system-type was given.
 if test "${with_system_type+set}" = set; then
   withval="$with_system_type"
 # Check whether --with-system-type or --without-system-type was given.
 if test "${with_system_type+set}" = set; then
   withval="$with_system_type"
-  echo "configure: warning: overriding system type to $withval" 1>&2
+  { echo "$as_me:1183: WARNING: overriding system type to $withval" >&5
+echo "$as_me: WARNING: overriding system type to $withval" >&2;}
  cf_cv_system_name=$withval
  cf_cv_system_name=$withval
-fi
-
+fi;
 
 # We need a configure script only when compiling as part of GNU C library.
 # Here we have to generate one of the files we need while compiling.
 
 # We need a configure script only when compiling as part of GNU C library.
 # Here we have to generate one of the files we need while compiling.
@@ -783,8 +1201,7 @@ if test "${enable_add_ons+set}" = set; then
   glibc_add_on=yes
 else
   glibc_add_on=
   glibc_add_on=yes
 else
   glibc_add_on=
-fi
-
+fi;
 
 if test x"$glibc_add_on" = "xyes" ; then
   rm -f $srcdir/Banner
 
 if test x"$glibc_add_on" = "xyes" ; then
   rm -f $srcdir/Banner
@@ -802,23 +1219,24 @@ cf_user_CFLAGS="$CFLAGS"
 
 ###    Default install-location
 
 
 ###    Default install-location
 
-echo $ac_n "checking for prefix""... $ac_c" 1>&6
-echo "configure:807: checking for prefix" >&5
+echo "$as_me:1222: 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
 if test "x$prefix" = "xNONE" ; then
        case "$cf_cv_system_name" in
                # non-vendor systems don't have a conflict
-       openbsd*|netbsd*|freebsd*|linux*)
+       openbsd*|netbsd*|freebsd*|linux*|cygwin*)
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
                ;;
        esac
 fi
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
                ;;
        esac
 fi
-echo "$ac_t""$prefix" 1>&6
+echo "$as_me:1234: result: $prefix" >&5
+echo "${ECHO_T}$prefix" >&6
 
 if test "x$prefix" = "xNONE" ; then
 
 if test "x$prefix" = "xNONE" ; then
-echo $ac_n "checking for default include-directory""... $ac_c" 1>&6
-echo "configure:822: checking for default include-directory" >&5
+echo "$as_me:1238: 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 \
        $includedir \
 test -n "$verbose" && echo 1>&6
 for cf_symbol in \
        $includedir \
        fi
        test -n "$verbose"  && echo "   tested $cf_dir" 1>&6
 done
        fi
        test -n "$verbose"  && echo "   tested $cf_dir" 1>&6
 done
-echo "$ac_t""$includedir" 1>&6
+echo "$as_me:1261: result: $includedir" >&5
+echo "${ECHO_T}$includedir" >&6
 fi
 
 fi
 
-
 ###    Checks for programs.
 ###    Checks for programs.
-# Extract the first word of "gcc", so it can be a program name with args.
+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
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:1274: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}gcc"
+echo "$as_me:1289: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:1297: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:1300: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:852: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:1309: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="gcc"
+echo "$as_me:1324: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1332: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1335: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:1348: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}cc"
+echo "$as_me:1363: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1371: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:1374: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:1383: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="cc"
+echo "$as_me:1398: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1406: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1409: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
 else
 else
-  echo "$ac_t""no" 1>&6
+  CC="$ac_cv_prog_CC"
 fi
 
 fi
 
+fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:882: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:1422: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
   ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-       continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+  ac_prog_rejected=yes
+  continue
+fi
+ac_cv_prog_CC="cc"
+echo "$as_me:1442: found $ac_dir/$ac_word" >&5
+break
+done
+
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
   set dummy $ac_cv_prog_CC
   shift
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
   set dummy $ac_cv_prog_CC
   shift
-  if test $# -gt 0; then
+  if test $# != 0; then
     # We chose a different compiler from the bogus one.
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
     # We chose a different compiler from the bogus one.
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$ac_dir/$ac_word" "$@"
+    set dummy "$ac_dir/$ac_word" ${1+"$@"}
     shift
     ac_cv_prog_CC="$@"
   fi
 fi
 fi
 fi
     shift
     ac_cv_prog_CC="$@"
   fi
 fi
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1464: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:1467: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:933: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:1478: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+echo "$as_me:1493: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1501: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+  echo "$as_me:1504: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:965: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in 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:1517: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="$ac_prog"
+echo "$as_me:1532: found $ac_dir/$ac_word" >&5
+break
+done
 
 
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1540: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1543: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
 
-cat > conftest.$ac_ext << EOF
+  test -n "$ac_ct_CC" && break
+done
 
 
-#line 976 "configure"
+  CC=$ac_ct_CC
+fi
+
+fi
+
+test -z "$CC" && { { echo "$as_me:1555: error: no acceptable cc found in \$PATH" >&5
+echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:1560:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:1563: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1566: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1568: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1571: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1573: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1576: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 1580 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-main(){return(0);}
-EOF
-if { (eval echo configure:981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+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:1596: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:1599: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:1602: \$? = $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
+# resort.
+for ac_file in `ls a.exe conftest.exe 2>/dev/null;
+                ls a.out conftest 2>/dev/null;
+                ls a.* conftest.* 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    a.out ) # We found the default executable, but exeext='' is most
+            # certainly right.
+            break;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1625: error: C compiler cannot create executables" >&5
+echo "$as_me: error: C compiler cannot create executables" >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:1631: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1636: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:1642: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1645: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
   else
   else
-    ac_cv_prog_cc_cross=yes
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { echo "$as_me:1652: 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;}
+   { (exit 1); exit 1; }; }
+    fi
   fi
   fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
 fi
 fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1007: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1012: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
+echo "$as_me:1660: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1667: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:1669: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:1672: checking for executable suffix" >&5
+echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+if { (eval echo "$as_me:1674: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:1677: \$? = $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
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
 else
 else
-  ac_cv_prog_gcc=no
-fi
+  { { echo "$as_me:1693: 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
 
 fi
 
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+rm -f conftest$ac_cv_exeext
+echo "$as_me:1699: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:1705: checking for object suffix" >&5
+echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1711 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
 
 
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:1723: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1726: \$? = $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
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
 else
 else
-  GCC=
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1738: error: cannot compute OBJEXT: cannot compile" >&5
+echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 fi
 
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1040: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:1745: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:1749: checking whether we are using the GNU C compiler" >&5
+echo $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
 else
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1755 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1770: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1773: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1776: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1779: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:1791: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:1797: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1803 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1815: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1818: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1821: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1824: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
   ac_cv_prog_cc_g=yes
 else
-  ac_cv_prog_cc_g=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cc_g=no
 fi
 fi
-rm -f conftest*
-
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+echo "$as_me:1834: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 if test "$ac_test_CFLAGS" = set; then
 if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
+  CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
     CFLAGS="-g -O2"
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
     CFLAGS="-g -O2"
@@ -1066,186 +1848,458 @@ else
     CFLAGS=
   fi
 fi
     CFLAGS=
   fi
 fi
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1861: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1864: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1867: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1870: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1882 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1895: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1898: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1901: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1904: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1914 "configure"
+#include "confdefs.h"
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1926: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1929: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1932: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1935: \$? = $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
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
 
 
-if test "$GCC" = yes ; then
-       echo $ac_n "checking version of gcc""... $ac_c" 1>&6
-echo "configure:1073: checking version of gcc" >&5
-       eval "$CC --version"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 fi
 fi
-if test "$host" != $build; then
-       for ac_prog in $CC gcc cc
+rm -f conftest.$ac_objext conftest.$ac_ext
+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
+
+GCC_VERSION=none
+if test "$GCC" = yes ; then
+       echo "$as_me:1964: checking version of gcc" >&5
+echo $ECHO_N "checking version of gcc... $ECHO_C" >&6
+       GCC_VERSION="`${CC} --version|head -1`"
+       echo "$as_me:1967: result: $GCC_VERSION" >&5
+echo "${ECHO_T}$GCC_VERSION" >&6
+fi
+
+# If we're cross-compiling, allow the user to override the tools and their
+# options.  The configure script is oriented toward identifying the target
+# compiler, etc., but we need a host compiler to generate parts of the source.
+BUILD_CC='$(CC)'
+BUILD_CFLAGS='$(CFLAGS)'
+BUILD_CPPFLAGS='$(CPPFLAGS)'
+BUILD_LDFLAGS='$(LDFLAGS)'
+BUILD_LIBS='$(LIBS)'
+if test "$host_alias" != "$target_alias" ; then
+
+# Check whether --with-build-cc or --without-build-cc was given.
+if test "${with_build_cc+set}" = set; then
+  withval="$with_build_cc"
+  BUILD_CC="$withval"
+else
+  for ac_prog in $CC gcc cc
 do
 do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1082: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:1990: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_BUILD_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$BUILD_CC"; then
   ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
 else
 else
   if test -n "$BUILD_CC"; then
   ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_BUILD_CC="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_BUILD_CC="$ac_prog"
+echo "$as_me:2005: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-BUILD_CC="$ac_cv_prog_BUILD_CC"
+BUILD_CC=$ac_cv_prog_BUILD_CC
 if test -n "$BUILD_CC"; then
 if test -n "$BUILD_CC"; then
-  echo "$ac_t""$BUILD_CC" 1>&6
+  echo "$as_me:2013: result: $BUILD_CC" >&5
+echo "${ECHO_T}$BUILD_CC" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2016: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-test -n "$BUILD_CC" && break
+  test -n "$BUILD_CC" && break
 done
 
 done
 
-else
-       BUILD_CC="$CC"
+fi;
+
+# Check whether --with-build-cflags or --without-build-cflags was given.
+if test "${with_build_cflags+set}" = set; then
+  withval="$with_build_cflags"
+  BUILD_CFLAGS="$withval"
+fi;
+
+# Check whether --with-build-cppflags or --without-build-cppflags was given.
+if test "${with_build_cppflags+set}" = set; then
+  withval="$with_build_cppflags"
+  BUILD_CPPFLAGS="$withval"
+fi;
+
+# Check whether --with-build-ldflags or --without-build-ldflags was given.
+if test "${with_build_ldflags+set}" = set; then
+  withval="$with_build_ldflags"
+  BUILD_LDFLAGS="$withval"
+fi;
+
+# Check whether --with-build-libs or --without-build-libs was given.
+if test "${with_build_libs+set}" = set; then
+  withval="$with_build_libs"
+  BUILD_LIBS="$withval"
+fi;
 fi
 
 fi
 
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1116: checking how to run the C preprocessor" >&5
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:2055: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 1131 "configure"
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2076 "configure"
 #include "confdefs.h"
 #include <assert.h>
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1137: \"$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
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:2081: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2087: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 1148 "configure"
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2110 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1154: \"$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
-  :
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:2114: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2120: \$? = $ac_status" >&5
+  (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
+  # Broken: success on invalid input.
+continue
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 1165 "configure"
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:2157: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2167 "configure"
 #include "confdefs.h"
 #include <assert.h>
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1171: \"$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
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:2172: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2178: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
+  # Broken: fails on valid input.
+continue
 fi
 fi
-rm -f conftest*
+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 2201 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:2205: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2211: \$? = $ac_status" >&5
+  (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
 fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
 fi
-  CPP="$ac_cv_prog_CPP"
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
 else
 else
-  ac_cv_prog_CPP="$CPP"
+  { { echo "$as_me:2239: error: C preprocessor \"$CPP\" fails sanity check" >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 fi
-echo "$ac_t""$CPP" 1>&6
 
 
-if test $ac_cv_prog_gcc = yes; then
-    echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1197: checking whether ${CC-cc} needs -traditional" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+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
+
+if test $ac_cv_c_compiler_gnu = yes; then
+    echo "$as_me:2251: 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'"
 else
     ac_pattern="Autoconf.*'x'"
-  cat > conftest.$ac_ext <<EOF
-#line 1203 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2258 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 else
   ac_cv_prog_gcc_traditional=yes
 else
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=no
 fi
 rm -f conftest*
 
   ac_cv_prog_gcc_traditional=no
 fi
 rm -f conftest*
 
-
   if test $ac_cv_prog_gcc_traditional = no; then
   if test $ac_cv_prog_gcc_traditional = no; then
-    cat > conftest.$ac_ext <<EOF
-#line 1221 "configure"
+    cat >conftest.$ac_ext <<_ACEOF
+#line 2273 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 fi
 rm -f conftest*
 
   fi
 fi
   ac_cv_prog_gcc_traditional=yes
 fi
 rm -f conftest*
 
   fi
 fi
-
-echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
+echo "$as_me:2286: 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
 
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
 fi
 
-echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1243: checking for POSIXized ISC" >&5
+echo "$as_me:2293: checking for POSIXized ISC" >&5
+echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
 if test -d /etc/conf/kconfig.d &&
 if test -d /etc/conf/kconfig.d &&
-  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
 then
-  echo "$ac_t""yes" 1>&6
+  echo "$as_me:2298: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   ISC=yes # If later tests want to check for ISC.
   ISC=yes # If later tests want to check for ISC.
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define _POSIX_SOURCE 1
 EOF
 
 #define _POSIX_SOURCE 1
 EOF
 
@@ -1255,19 +2309,20 @@ EOF
     CC="$CC -Xp"
   fi
 else
     CC="$CC -Xp"
   fi
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2312: result: no" >&5
+echo "${ECHO_T}no" >&6
   ISC=
 fi
 
   ISC=
 fi
 
-
-echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1265: 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
+echo "$as_me:2317: checking for ${CC-cc} option to accept ANSI C" >&5
+echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
+if test "${cf_cv_ansi_cc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
+
 cf_cv_ansi_cc=no
 cf_save_CFLAGS="$CFLAGS"
 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
 # Don't try gcc -ansi; that turns off useful extensions and
 # breaks some systems' header files.
 # AIX                  -qlanglvl=ansi
@@ -1283,9 +2338,39 @@ for cf_arg in "-DCC_HAS_PROTOS" \
        "-Aa -D_HPUX_SOURCE" \
        -Xc
 do
        "-Aa -D_HPUX_SOURCE" \
        -Xc
 do
-       CFLAGS="$cf_save_CFLAGS $cf_arg"
-       cat > conftest.$ac_ext <<EOF
-#line 1289 "configure"
+
+cf_new_cflags=
+cf_new_cppflags=
+for cf_add_cflags in $cf_arg
+do
+       case $cf_add_cflags in #(vi
+       -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+               case "$CPPFLAGS" in
+               *$cf_add_cflags) #(vi
+                       ;;
+               *) #(vi
+                       cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+                       ;;
+               esac
+               ;;
+       *)
+               cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+               ;;
+       esac
+done
+
+if test -n "$cf_new_cflags" ; then
+
+       CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+
+       CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 2373 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -1294,56 +2379,105 @@ choke me
 #endif
 #endif
 
 #endif
 #endif
 
-int main() {
+int
+main ()
+{
 
        int test (int i, double x);
        struct s1 {int (*f) (int a);};
        struct s2 {int (*f) (double a);};
 
        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:1305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2394: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2397: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2400: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2403: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_ansi_cc="$cf_arg"; break
 else
   cf_cv_ansi_cc="$cf_arg"; break
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 done
 CFLAGS="$cf_save_CFLAGS"
 done
 CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
 
 fi
-
-echo "$ac_t""$cf_cv_ansi_cc" 1>&6
+echo "$as_me:2416: 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
 
 if test "$cf_cv_ansi_cc" != "no"; then
 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-       CFLAGS="$CFLAGS $cf_cv_ansi_cc"
+
+cf_new_cflags=
+cf_new_cppflags=
+for cf_add_cflags in $cf_cv_ansi_cc
+do
+       case $cf_add_cflags in #(vi
+       -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+               case "$CPPFLAGS" in
+               *$cf_add_cflags) #(vi
+                       ;;
+               *) #(vi
+                       cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+                       ;;
+               esac
+               ;;
+       *)
+               cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+               ;;
+       esac
+done
+
+if test -n "$cf_new_cflags" ; then
+
+       CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+
+       CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
+
 else
 else
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define CC_HAS_PROTOS 1
 EOF
 
 fi
 fi
 
 #define CC_HAS_PROTOS 1
 EOF
 
 fi
 fi
 
-
 if test "$cf_cv_ansi_cc" = "no"; then
 if test "$cf_cv_ansi_cc" = "no"; then
-       { echo "configure: error: Your compiler does not appear to recognize prototypes.
+       { { echo "$as_me:2461: error: Your compiler does not appear to recognize prototypes.
+You have the following choices:
+       a. adjust your compiler options
+       b. get an up-to-date compiler
+       c. use a wrapper such as unproto" >&5
+echo "$as_me: error: Your compiler does not appear to recognize prototypes.
 You have the following choices:
        a. adjust your compiler options
        b. get an up-to-date compiler
 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; }
+       c. use a wrapper such as unproto" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 fi
 
-
-
 PROG_EXT=
 case $cf_cv_system_name in
 os2*)
     # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@
 PROG_EXT=
 case $cf_cv_system_name in
 os2*)
     # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@
-    CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
-    CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
+    CFLAGS="$CFLAGS -Zmt"
+    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+    CXXFLAGS="$CXXFLAGS -Zmt"
     LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
     PROG_EXT=".exe"
     ;;
     LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
     PROG_EXT=".exe"
     ;;
@@ -1352,7 +2486,9 @@ cygwin*)
     ;;
 esac
 
     ;;
 esac
 
-
+test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
+#define PROG_EXT "$PROG_EXT"
+EOF
 
 case "$cf_cv_system_name" in
 freebsd*) #(vi
 
 case "$cf_cv_system_name" in
 freebsd*) #(vi
@@ -1361,45 +2497,46 @@ 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
 *) 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1366: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_LDCONFIG'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2500: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_LDCONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  case "$LDCONFIG" in
-  /*)
+  case $LDCONFIG in
+  [\\/]* | ?:[\\/]*)
   ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
   ;;
   ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
   ;;
-  ?:/*)                         
-  ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a dos path.
-  ;;
   *)
   *)
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$LDPATH"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$LDPATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  if $as_executable_p "$ac_dir/$ac_word"; then
+   ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
+   echo "$as_me:2517: found $ac_dir/$ac_word" >&5
+   break
+fi
+done
+
   ;;
 esac
 fi
   ;;
 esac
 fi
-LDCONFIG="$ac_cv_path_LDCONFIG"
+LDCONFIG=$ac_cv_path_LDCONFIG
+
 if test -n "$LDCONFIG"; then
 if test -n "$LDCONFIG"; then
-  echo "$ac_t""$LDCONFIG" 1>&6
+  echo "$as_me:2528: result: $LDCONFIG" >&5
+echo "${ECHO_T}$LDCONFIG" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2531: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
   ;;
 esac
 
 fi
 
   ;;
 esac
 
-
-echo $ac_n "checking if you want to ensure bool is consistent with C++""... $ac_c" 1>&6
-echo "configure:1403: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:2538: checking if you want to ensure bool is consistent with C++" >&5
+echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
 
 # Check whether --with-cxx or --without-cxx was given.
 if test "${with_cxx+set}" = set; then
 
 # Check whether --with-cxx or --without-cxx was given.
 if test "${with_cxx+set}" = set; then
@@ -1407,142 +2544,208 @@ if test "${with_cxx+set}" = set; then
   cf_with_cxx=$withval
 else
   cf_with_cxx=yes
   cf_with_cxx=$withval
 else
   cf_with_cxx=yes
-fi
-
-echo "$ac_t""$cf_with_cxx" 1>&6
+fi;
+echo "$as_me:2548: result: $cf_with_cxx" >&5
+echo "${ECHO_T}$cf_with_cxx" >&6
 if test "X$cf_with_cxx" = Xno ; then
        CXX=""
        GXX=""
 else
 if test "X$cf_with_cxx" = Xno ; then
        CXX=""
        GXX=""
 else
-               for ac_prog in $CCC c++ g++ gcc CC cxx 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1423: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+               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
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:2564: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
 else
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CXX="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+echo "$as_me:2579: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-CXX="$ac_cv_prog_CXX"
+CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
 if test -n "$CXX"; then
-  echo "$ac_t""$CXX" 1>&6
+  echo "$as_me:2587: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2590: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-test -n "$CXX" && break
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:2603: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CXX="$ac_prog"
+echo "$as_me:2618: found $ac_dir/$ac_word" >&5
+break
 done
 done
-test -n "$CXX" || CXX="gcc"
-
-
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1455: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
-
-ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
 
 
-cat > conftest.$ac_ext << EOF
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:2626: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+  echo "$as_me:2629: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
 
-#line 1466 "configure"
+  test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+  CXX=$ac_ct_CXX
+fi
+
+# Provide some information about the compiler.
+echo "$as_me:2641:" \
+     "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:2644: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:2647: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:2649: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:2652: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:2654: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:2657: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:2660: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2666 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-int main(){return(0);}
-EOF
-if { (eval echo configure:1471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cxx_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cxx_cross=no
-  else
-    ac_cv_prog_cxx_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cxx_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
-if test $ac_cv_prog_cxx_works = no; then
-  echo "$ac_t""You don't have any C++ compiler, too bad" 1>&6;                 cf_with_cxx=no; CXX=""; GXX="";
-fi
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1497: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
-cross_compiling=$ac_cv_prog_cxx_cross
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1502: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.C <<EOF
-#ifdef __GNUC__
-  yes;
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
 #endif
 #endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1511: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gxx=yes
-else
-  ac_cv_prog_gxx=no
-fi
-fi
 
 
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2681: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2684: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2687: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2690: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:2702: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:2708: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2714 "configure"
+#include "confdefs.h"
 
 
-if test $ac_cv_prog_gxx = yes; then
-  GXX=yes
-else
-  GXX=
-fi
+int
+main ()
+{
 
 
-ac_test_CXXFLAGS="${CXXFLAGS+set}"
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS=
-echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1530: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2726: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2729: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2732: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2735: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_prog_cxx_g=yes
 else
   ac_cv_prog_cxx_g=yes
 else
-  ac_cv_prog_cxx_g=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cxx_g=no
 fi
 fi
-rm -f conftest*
-
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+echo "$as_me:2745: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
 if test "$ac_test_CXXFLAGS" = set; then
 if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS="$ac_save_CXXFLAGS"
+  CXXFLAGS=$ac_save_CXXFLAGS
 elif test $ac_cv_prog_cxx_g = yes; then
   if test "$GXX" = yes; then
     CXXFLAGS="-g -O2"
 elif test $ac_cv_prog_cxx_g = yes; then
   if test "$GXX" = yes; then
     CXXFLAGS="-g -O2"
@@ -1556,21 +2759,112 @@ else
     CXXFLAGS=
   fi
 fi
     CXXFLAGS=
   fi
 fi
+for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2772 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2785: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2788: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2791: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2794: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2804 "configure"
+#include "confdefs.h"
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2816: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2819: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2822: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2825: \$? = $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
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
        fi
 
 
        fi
 
+GXX_VERSION=none
 if test "$GXX" = yes; then
 if test "$GXX" = yes; then
-       case "`${CXX-g++} --version`" in
+       echo "$as_me:2851: checking version of g++" >&5
+echo $ECHO_N "checking version of g++... $ECHO_C" >&6
+       GXX_VERSION="`${CXX-g++} --version|head -1`"
+       echo "$as_me:2854: result: $GXX_VERSION" >&5
+echo "${ECHO_T}$GXX_VERSION" >&6
+       case $GXX_VERSION in
        1*|2.[0-6]*)
        1*|2.[0-6]*)
-               GXX=""; CXX=""; ac_cv_prog_gxx=no
+               GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
                cf_cxx_library=no
                cf_cxx_library=no
-               echo No: templates do not work
+               { echo "$as_me:2860: WARNING: templates do not work" >&5
+echo "$as_me: WARNING: templates do not work" >&2;}
                ;;
        esac
 fi
 
                ;;
        esac
 fi
 
-echo $ac_n "checking if you want to build C++ binding and demo""... $ac_c" 1>&6
-echo "configure:1574: checking if you want to build C++ binding and demo" >&5
+echo "$as_me:2866: 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.
 if test "${with_cxx_binding+set}" = set; then
 
 # Check whether --with-cxx-binding or --without-cxx-binding was given.
 if test "${with_cxx_binding+set}" = set; then
@@ -1578,12 +2872,12 @@ if test "${with_cxx_binding+set}" = set; then
   cf_with_cxx_binding=$withval
 else
   cf_with_cxx_binding=$cf_with_cxx
   cf_with_cxx_binding=$withval
 else
   cf_with_cxx_binding=$cf_with_cxx
-fi
-
-echo "$ac_t""$cf_with_cxx_binding" 1>&6
+fi;
+echo "$as_me:2876: result: $cf_with_cxx_binding" >&5
+echo "${ECHO_T}$cf_with_cxx_binding" >&6
 
 
-echo $ac_n "checking if you want to build with Ada95""... $ac_c" 1>&6
-echo "configure:1587: checking if you want to build with Ada95" >&5
+echo "$as_me:2879: checking if you want to build with Ada95" >&5
+echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
 
 # Check whether --with-ada or --without-ada was given.
 if test "${with_ada+set}" = set; then
 
 # Check whether --with-ada or --without-ada was given.
 if test "${with_ada+set}" = set; then
@@ -1591,12 +2885,12 @@ if test "${with_ada+set}" = set; then
   cf_with_ada=$withval
 else
   cf_with_ada=yes
   cf_with_ada=$withval
 else
   cf_with_ada=yes
-fi
-
-echo "$ac_t""$cf_with_ada" 1>&6
+fi;
+echo "$as_me:2889: result: $cf_with_ada" >&5
+echo "${ECHO_T}$cf_with_ada" >&6
 
 
-echo $ac_n "checking if you want to build programs such as tic""... $ac_c" 1>&6
-echo "configure:1600: checking if you want to build programs such as tic" >&5
+echo "$as_me:2892: 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.
 if test "${with_progs+set}" = set; then
 
 # Check whether --with-progs or --without-progs was given.
 if test "${with_progs+set}" = set; then
@@ -1604,12 +2898,12 @@ if test "${with_progs+set}" = set; then
   cf_with_progs=$withval
 else
   cf_with_progs=yes
   cf_with_progs=$withval
 else
   cf_with_progs=yes
-fi
-
-echo "$ac_t""$cf_with_progs" 1>&6
+fi;
+echo "$as_me:2902: result: $cf_with_progs" >&5
+echo "${ECHO_T}$cf_with_progs" >&6
 
 
-echo $ac_n "checking if you wish to install curses.h""... $ac_c" 1>&6
-echo "configure:1613: checking if you wish to install curses.h" >&5
+echo "$as_me:2905: 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.
 if test "${with_curses_h+set}" = set; then
 
 # Check whether --with-curses-h or --without-curses-h was given.
 if test "${with_curses_h+set}" = set; then
@@ -1617,9 +2911,9 @@ if test "${with_curses_h+set}" = set; then
   with_curses_h=$withval
 else
   with_curses_h=yes
   with_curses_h=$withval
 else
   with_curses_h=yes
-fi
-
-echo "$ac_t""$with_curses_h" 1>&6
+fi;
+echo "$as_me:2915: result: $with_curses_h" >&5
+echo "${ECHO_T}$with_curses_h" >&6
 
 modules_to_build="ncurses"
 if test "X$cf_with_progs" != Xno ; then
 
 modules_to_build="ncurses"
 if test "X$cf_with_progs" != Xno ; then
@@ -1627,83 +2921,82 @@ modules_to_build="$modules_to_build progs tack"
 fi
 modules_to_build="$modules_to_build panel menu form"
 
 fi
 modules_to_build="$modules_to_build panel menu form"
 
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
 test "$program_prefix" != NONE &&
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
 
 for ac_prog in mawk gawk nawk awk
 do
 
 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.
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1655: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2941: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$AWK"; then
 else
   if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AWK="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AWK="$ac_prog"
+echo "$as_me:2956: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-AWK="$ac_cv_prog_AWK"
+AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
 if test -n "$AWK"; then
-  echo "$ac_t""$AWK" 1>&6
+  echo "$as_me:2964: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2967: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-test -n "$AWK" && break
+  test -n "$AWK" && break
 done
 
 done
 
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1685: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2974: 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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  cat > conftestmake <<\EOF
+  cat >conftest.make <<\EOF
 all:
        @echo 'ac_maketemp="${MAKE}"'
 EOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 all:
        @echo 'ac_maketemp="${MAKE}"'
 EOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
-rm -f conftestmake
+rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+  echo "$as_me:2994: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
   SET_MAKE=
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2998: result: no" >&5
+echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -1714,31 +3007,39 @@ fi
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # 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.
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # 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 $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1723: checking for a BSD compatible install" >&5
+echo "$as_me:3015: 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 -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+    ac_save_IFS=$IFS; IFS=$ac_path_separator
   for ac_dir in $PATH; do
   for ac_dir in $PATH; do
+    IFS=$ac_save_IFS
     # Account for people who put trailing slashes in PATH elements.
     # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    case $ac_dir/ in
+    / | ./ | .// | /cC/* \
+    | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
+    | /usr/ucb/* ) ;;
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
       # Don't use installbsd from OSF since it installs stuff as root
       # by default.
       for ac_prog in ginstall scoinst install; do
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
       # Don't use installbsd from OSF since it installs stuff as root
       # by default.
       for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
+        if $as_executable_p "$ac_dir/$ac_prog"; then
          if test $ac_prog = install &&
          if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+            grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
            :
            # AIX install.  It has an incompatible calling convention.
            :
+         elif test $ac_prog = install &&
+           grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
          else
            ac_cv_path_install="$ac_dir/$ac_prog -c"
            break 2
          else
            ac_cv_path_install="$ac_dir/$ac_prog -c"
            break 2
@@ -1748,26 +3049,26 @@ else
       ;;
     esac
   done
       ;;
     esac
   done
-  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
+    INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
+    INSTALL=$ac_install_sh
   fi
 fi
   fi
 fi
-echo "$ac_t""$INSTALL" 1>&6
+echo "$as_me:3064: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
@@ -1775,16 +3076,16 @@ case $INSTALL in
 /*)
   ;;
 *)
 /*)
   ;;
 *)
-  cf_dir=`echo $INSTALL|sed -e 's%/[^/]*$%%'`
+  cf_dir=`echo $INSTALL | sed -e 's:/[^/]*$::'`
   test -z "$cf_dir" && cf_dir=.
   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
   ;;
 esac
 
   test -z "$cf_dir" && cf_dir=.
   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
   ;;
 esac
 
-echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:1786: checking for long file names" >&5
-if eval "test \"`echo '$''{'ac_cv_sys_long_file_names'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3085: 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
 else
   ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
 else
   ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
@@ -1798,40 +3099,44 @@ else
 #      /var/tmp                likewise
 #      /usr/tmp                likewise
 if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
 #      /var/tmp                likewise
 #      /usr/tmp                likewise
 if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
-  ac_tmpdirs="$TMPDIR"
+  ac_tmpdirs=$TMPDIR
 else
   ac_tmpdirs='/tmp /var/tmp /usr/tmp'
 fi
 for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
   test -d $ac_dir || continue
   test -w $ac_dir || continue # It is less confusing to not echo anything here.
 else
   ac_tmpdirs='/tmp /var/tmp /usr/tmp'
 fi
 for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
   test -d $ac_dir || continue
   test -w $ac_dir || continue # It is less confusing to not echo anything here.
-  (echo 1 > $ac_dir/conftest9012345) 2>/dev/null
-  (echo 2 > $ac_dir/conftest9012346) 2>/dev/null
-  val=`cat $ac_dir/conftest9012345 2>/dev/null`
-  if test ! -f $ac_dir/conftest9012345 || test "$val" != 1; then
+  ac_xdir=$ac_dir/cf$$
+  (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue
+  ac_tf1=$ac_xdir/conftest9012345
+  ac_tf2=$ac_xdir/conftest9012346
+  (echo 1 >$ac_tf1) 2>/dev/null
+  (echo 2 >$ac_tf2) 2>/dev/null
+  ac_val=`cat $ac_tf1 2>/dev/null`
+  if test ! -f $ac_tf1 || test "$ac_val" != 1; then
     ac_cv_sys_long_file_names=no
     ac_cv_sys_long_file_names=no
-    rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
+    rm -rf $ac_xdir 2>/dev/null
     break
   fi
     break
   fi
-  rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
+  rm -rf $ac_xdir 2>/dev/null
 done
 fi
 done
 fi
-
-echo "$ac_t""$ac_cv_sys_long_file_names" 1>&6
+echo "$as_me:3124: 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
 if test $ac_cv_sys_long_file_names = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define HAVE_LONG_FILE_NAMES 1
 EOF
 
 fi
 
 #define HAVE_LONG_FILE_NAMES 1
 EOF
 
 fi
 
-
-echo $ac_n "checking if filesystem supports mixed-case filenames""... $ac_c" 1>&6
-echo "configure:1831: checking if filesystem supports mixed-case filenames" >&5
-if eval "test \"`echo '$''{'cf_cv_mixedcase'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3134: 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
 else
 else
-  
+
        rm -f conftest CONFTEST
        echo test >conftest
        if test -f CONFTEST ; then
        rm -f conftest CONFTEST
        echo test >conftest
        if test -f CONFTEST ; then
@@ -1842,126 +3147,162 @@ else
        rm -f conftest CONFTEST
 
 fi
        rm -f conftest CONFTEST
 
 fi
-
-echo "$ac_t""$cf_cv_mixedcase" 1>&6
-test "$cf_cv_mixedcase" = yes && cat >> confdefs.h <<\EOF
+echo "$as_me:3150: 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
 
 #define MIXEDCASE_FILENAMES 1
 EOF
 
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1854: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
-  rm -f conftestdata
-  ac_cv_prog_LN_S="ln -s"
-else
-  ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
-  echo "$ac_t""yes" 1>&6
+echo "$as_me:3156: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:3160: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3163: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
 fi
 
 fi
 
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1877: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:3170: 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
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+echo "$as_me:3185: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-RANLIB="$ac_cv_prog_RANLIB"
+RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
 if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
+  echo "$as_me:3193: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3196: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
 fi
 fi
+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:3205: 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
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_RANLIB="ranlib"
+echo "$as_me:3220: found $ac_dir/$ac_word" >&5
+break
+done
 
 
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:3229: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+  echo "$as_me:3232: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
 
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
 
 # Extract the first word of "ctags", so it can be a program name with args.
 set dummy ctags; ac_word=$2
 
 # Extract the first word of "ctags", so it can be a program name with args.
 set dummy ctags; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1909: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MAKE_LOWER_TAGS'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3243: 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
 else
   if test -n "$MAKE_LOWER_TAGS"; then
   ac_cv_prog_MAKE_LOWER_TAGS="$MAKE_LOWER_TAGS" # Let the user override the test.
 else
 else
   if test -n "$MAKE_LOWER_TAGS"; then
   ac_cv_prog_MAKE_LOWER_TAGS="$MAKE_LOWER_TAGS" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_MAKE_LOWER_TAGS="yes"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_MAKE_LOWER_TAGS="yes"
+echo "$as_me:3258: found $ac_dir/$ac_word" >&5
+break
+done
+
   test -z "$ac_cv_prog_MAKE_LOWER_TAGS" && ac_cv_prog_MAKE_LOWER_TAGS="no"
 fi
 fi
   test -z "$ac_cv_prog_MAKE_LOWER_TAGS" && ac_cv_prog_MAKE_LOWER_TAGS="no"
 fi
 fi
-MAKE_LOWER_TAGS="$ac_cv_prog_MAKE_LOWER_TAGS"
+MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
 if test -n "$MAKE_LOWER_TAGS"; then
 if test -n "$MAKE_LOWER_TAGS"; then
-  echo "$ac_t""$MAKE_LOWER_TAGS" 1>&6
+  echo "$as_me:3267: result: $MAKE_LOWER_TAGS" >&5
+echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3270: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 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
 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1941: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MAKE_UPPER_TAGS'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3277: 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
 else
   if test -n "$MAKE_UPPER_TAGS"; then
   ac_cv_prog_MAKE_UPPER_TAGS="$MAKE_UPPER_TAGS" # Let the user override the test.
 else
 else
   if test -n "$MAKE_UPPER_TAGS"; then
   ac_cv_prog_MAKE_UPPER_TAGS="$MAKE_UPPER_TAGS" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_MAKE_UPPER_TAGS="yes"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_MAKE_UPPER_TAGS="yes"
+echo "$as_me:3292: found $ac_dir/$ac_word" >&5
+break
+done
+
   test -z "$ac_cv_prog_MAKE_UPPER_TAGS" && ac_cv_prog_MAKE_UPPER_TAGS="no"
 fi
 fi
   test -z "$ac_cv_prog_MAKE_UPPER_TAGS" && ac_cv_prog_MAKE_UPPER_TAGS="no"
 fi
 fi
-MAKE_UPPER_TAGS="$ac_cv_prog_MAKE_UPPER_TAGS"
+MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
 if test -n "$MAKE_UPPER_TAGS"; then
 if test -n "$MAKE_UPPER_TAGS"; then
-  echo "$ac_t""$MAKE_UPPER_TAGS" 1>&6
+  echo "$as_me:3301: result: $MAKE_UPPER_TAGS" >&5
+echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3304: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 else
 fi
 
 else
@@ -1974,138 +3315,142 @@ else
        MAKE_UPPER_TAGS="#"
 fi
 
        MAKE_UPPER_TAGS="#"
 fi
 
-
 if test "$MAKE_LOWER_TAGS" = yes ; then
        MAKE_LOWER_TAGS=
 else
        MAKE_LOWER_TAGS="#"
 fi
 
 if test "$MAKE_LOWER_TAGS" = yes ; then
        MAKE_LOWER_TAGS=
 else
        MAKE_LOWER_TAGS="#"
 fi
 
-
 for ac_prog in tdlint lint alint
 do
 for ac_prog in tdlint lint alint
 do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1991: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LINT'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3328: 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
 else
   if test -n "$LINT"; then
   ac_cv_prog_LINT="$LINT" # Let the user override the test.
 else
 else
   if test -n "$LINT"; then
   ac_cv_prog_LINT="$LINT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_LINT="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_LINT="$ac_prog"
+echo "$as_me:3343: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-LINT="$ac_cv_prog_LINT"
+LINT=$ac_cv_prog_LINT
 if test -n "$LINT"; then
 if test -n "$LINT"; then
-  echo "$ac_t""$LINT" 1>&6
+  echo "$as_me:3351: result: $LINT" >&5
+echo "${ECHO_T}$LINT" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3354: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-test -n "$LINT" && break
+  test -n "$LINT" && break
 done
 
 for ac_prog in man man_db
 do
 done
 
 for ac_prog in man man_db
 do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2025: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MAN'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3365: 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
 else
   if test -n "$MAN"; then
   ac_cv_prog_MAN="$MAN" # Let the user override the test.
 else
 else
   if test -n "$MAN"; then
   ac_cv_prog_MAN="$MAN" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_MAN="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_MAN="$ac_prog"
+echo "$as_me:3380: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
 fi
 fi
-MAN="$ac_cv_prog_MAN"
+MAN=$ac_cv_prog_MAN
 if test -n "$MAN"; then
 if test -n "$MAN"; then
-  echo "$ac_t""$MAN" 1>&6
+  echo "$as_me:3388: result: $MAN" >&5
+echo "${ECHO_T}$MAN" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:3391: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-test -n "$MAN" && break
+  test -n "$MAN" && break
 done
 
 done
 
-
-
-if eval "test \"`echo '$''{'cf_cv_subst_LD'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${cf_cv_subst_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
-echo $ac_n "checking for loader (symbol LD)""... $ac_c" 1>&6
-echo "configure:2061: checking for loader (symbol LD)" >&5
+
+echo "$as_me:3402: checking for loader (symbol LD)" >&5
+echo $ECHO_N "checking for loader (symbol LD)... $ECHO_C" >&6
 test -z "$LD" && LD=ld
 test -z "$LD" && LD=ld
-echo "$ac_t""$LD" 1>&6
+echo "$as_me:3405: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
 
 cf_cv_subst_LD=$LD
 fi
 
 LD=${cf_cv_subst_LD}
 
 
 cf_cv_subst_LD=$LD
 fi
 
 LD=${cf_cv_subst_LD}
 
-if eval "test \"`echo '$''{'cf_cv_subst_AR'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${cf_cv_subst_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
-echo $ac_n "checking for archiver (symbol AR)""... $ac_c" 1>&6
-echo "configure:2075: checking for archiver (symbol AR)" >&5
+
+echo "$as_me:3417: checking for archiver (symbol AR)" >&5
+echo $ECHO_N "checking for archiver (symbol AR)... $ECHO_C" >&6
 test -z "$AR" && AR=ar
 test -z "$AR" && AR=ar
-echo "$ac_t""$AR" 1>&6
+echo "$as_me:3420: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
 
 cf_cv_subst_AR=$AR
 fi
 
 AR=${cf_cv_subst_AR}
 
 
 cf_cv_subst_AR=$AR
 fi
 
 AR=${cf_cv_subst_AR}
 
-if eval "test \"`echo '$''{'cf_cv_subst_AR_OPTS'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${cf_cv_subst_AR_OPTS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
-echo $ac_n "checking for archiver options (symbol AR_OPTS)""... $ac_c" 1>&6
-echo "configure:2089: checking for archiver options (symbol AR_OPTS)" >&5
+
+echo "$as_me:3432: 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
 test -z "$AR_OPTS" && AR_OPTS=rv
-echo "$ac_t""$AR_OPTS" 1>&6
+echo "$as_me:3435: result: $AR_OPTS" >&5
+echo "${ECHO_T}$AR_OPTS" >&6
 
 cf_cv_subst_AR_OPTS=$AR_OPTS
 fi
 
 AR_OPTS=${cf_cv_subst_AR_OPTS}
 
 
 cf_cv_subst_AR_OPTS=$AR_OPTS
 fi
 
 AR_OPTS=${cf_cv_subst_AR_OPTS}
 
-
-
-echo $ac_n "checking for makeflags variable""... $ac_c" 1>&6
-echo "configure:2101: checking for makeflags variable" >&5
-if eval "test \"`echo '$''{'cf_cv_makeflags'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3443: 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
 else
 else
-  
+
        cf_cv_makeflags=''
        for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
        do
                cat >cf_makeflags.tmp <<CF_EOF
        cf_cv_makeflags=''
        for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
        do
                cat >cf_makeflags.tmp <<CF_EOF
+SHELL = /bin/sh
 all :
        @ echo '.$cf_option'
 CF_EOF
 all :
        @ echo '.$cf_option'
 CF_EOF
@@ -2126,14 +3471,13 @@ CF_EOF
                esac
        done
        rm -f cf_makeflags.tmp
                esac
        done
        rm -f cf_makeflags.tmp
-fi
-
-echo "$ac_t""$cf_cv_makeflags" 1>&6
-
 
 
+fi
+echo "$as_me:3476: result: $cf_cv_makeflags" >&5
+echo "${ECHO_T}$cf_cv_makeflags" >&6
 
 
-echo $ac_n "checking if you have specified an install-prefix""... $ac_c" 1>&6
-echo "configure:2137: checking if you have specified an install-prefix" >&5
+echo "$as_me:3479: checking if you have specified an install-prefix" >&5
+echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
 
 # Check whether --with-install-prefix or --without-install-prefix was given.
 if test "${with_install_prefix+set}" = set; then
 
 # Check whether --with-install-prefix or --without-install-prefix was given.
 if test "${with_install_prefix+set}" = set; then
@@ -2144,21 +3488,19 @@ if test "${with_install_prefix+set}" = set; then
        *)      DESTDIR="$withval"
                ;;
        esac
        *)      DESTDIR="$withval"
                ;;
        esac
-fi
-
-echo "$ac_t""$DESTDIR" 1>&6
-
+fi;
+echo "$as_me:3492: result: $DESTDIR" >&5
+echo "${ECHO_T}$DESTDIR" >&6
 
 ###############################################################################
 
 
 ###############################################################################
 
-
 ### Options to allow the user to specify the set of libraries which are used.
 ### Use "--without-normal --with-shared" to allow the default model to be
 ### shared, for example.
 cf_list_models=""
 
 ### Options to allow the user to specify the set of libraries which are used.
 ### Use "--without-normal --with-shared" to allow the default model to be
 ### shared, for example.
 cf_list_models=""
 
-echo $ac_n "checking if you want to build libraries with libtool""... $ac_c" 1>&6
-echo "configure:2162: checking if you want to build libraries with libtool" >&5
+echo "$as_me:3502: 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.
 if test "${with_libtool+set}" = set; then
 
 # Check whether --with-libtool or --without-libtool was given.
 if test "${with_libtool+set}" = set; then
@@ -2166,9 +3508,9 @@ if test "${with_libtool+set}" = set; then
   with_libtool=$withval
 else
   with_libtool=no
   with_libtool=$withval
 else
   with_libtool=no
-fi
-
-echo "$ac_t""$with_libtool" 1>&6
+fi;
+echo "$as_me:3512: result: $with_libtool" >&5
+echo "${ECHO_T}$with_libtool" >&6
 if test "$with_libtool" = "yes"; then
        cf_list_models="$cf_list_models libtool"
        test -z "$LIBTOOL" && LIBTOOL=libtool
 if test "$with_libtool" = "yes"; then
        cf_list_models="$cf_list_models libtool"
        test -z "$LIBTOOL" && LIBTOOL=libtool
@@ -2176,9 +3518,8 @@ else
        LIBTOOL=""
 fi
 
        LIBTOOL=""
 fi
 
-
-echo $ac_n "checking if you want to build shared libraries""... $ac_c" 1>&6
-echo "configure:2182: checking if you want to build shared libraries" >&5
+echo "$as_me:3521: 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.
 if test "${with_shared+set}" = set; then
 
 # Check whether --with-shared or --without-shared was given.
 if test "${with_shared+set}" = set; then
@@ -2186,13 +3527,13 @@ if test "${with_shared+set}" = set; then
   with_shared=$withval
 else
   with_shared=no
   with_shared=$withval
 else
   with_shared=no
-fi
-
-echo "$ac_t""$with_shared" 1>&6
+fi;
+echo "$as_me:3531: result: $with_shared" >&5
+echo "${ECHO_T}$with_shared" >&6
 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
 
 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
 
-echo $ac_n "checking if you want to build static libraries""... $ac_c" 1>&6
-echo "configure:2196: checking if you want to build static libraries" >&5
+echo "$as_me:3535: 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.
 if test "${with_normal+set}" = set; then
 
 # Check whether --with-normal or --without-normal was given.
 if test "${with_normal+set}" = set; then
@@ -2200,13 +3541,13 @@ if test "${with_normal+set}" = set; then
   with_normal=$withval
 else
   with_normal=yes
   with_normal=$withval
 else
   with_normal=yes
-fi
-
-echo "$ac_t""$with_normal" 1>&6
+fi;
+echo "$as_me:3545: result: $with_normal" >&5
+echo "${ECHO_T}$with_normal" >&6
 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
 
 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
 
-echo $ac_n "checking if you want to build debug libraries""... $ac_c" 1>&6
-echo "configure:2210: checking if you want to build debug libraries" >&5
+echo "$as_me:3549: 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.
 if test "${with_debug+set}" = set; then
 
 # Check whether --with-debug or --without-debug was given.
 if test "${with_debug+set}" = set; then
@@ -2214,13 +3555,13 @@ if test "${with_debug+set}" = set; then
   with_debug=$withval
 else
   with_debug=yes
   with_debug=$withval
 else
   with_debug=yes
-fi
-
-echo "$ac_t""$with_debug" 1>&6
+fi;
+echo "$as_me:3559: result: $with_debug" >&5
+echo "${ECHO_T}$with_debug" >&6
 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
 
 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
 
-echo $ac_n "checking if you want to build profiling libraries""... $ac_c" 1>&6
-echo "configure:2224: checking if you want to build profiling libraries" >&5
+echo "$as_me:3563: 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.
 if test "${with_profile+set}" = set; then
 
 # Check whether --with-profile or --without-profile was given.
 if test "${with_profile+set}" = set; then
@@ -2228,55 +3569,51 @@ if test "${with_profile+set}" = set; then
   with_profile=$withval
 else
   with_profile=no
   with_profile=$withval
 else
   with_profile=no
-fi
-
-echo "$ac_t""$with_profile" 1>&6
+fi;
+echo "$as_me:3573: result: $with_profile" >&5
+echo "${ECHO_T}$with_profile" >&6
 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
 
 ###############################################################################
 
 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
 
 ###############################################################################
 
-echo $ac_n "checking for specified models""... $ac_c" 1>&6
-echo "configure:2240: checking for specified models" >&5
+echo "$as_me:3579: checking for specified models" >&5
+echo $ECHO_N "checking for specified models... $ECHO_C" >&6
 test -z "$cf_list_models" && cf_list_models=normal
 test "$with_libtool" = "yes" && cf_list_models=libtool
 test -z "$cf_list_models" && cf_list_models=normal
 test "$with_libtool" = "yes" && cf_list_models=libtool
-echo "$ac_t""$cf_list_models" 1>&6
+echo "$as_me:3583: 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.
 
 ### Use the first model as the default, and save its suffix for use in building
 ### up test-applications.
-echo $ac_n "checking for default model""... $ac_c" 1>&6
-echo "configure:2248: checking for default model" >&5
+echo "$as_me:3588: 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}'`
 DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
-echo "$ac_t""$DFT_LWR_MODEL" 1>&6
-
+echo "$as_me:3591: result: $DFT_LWR_MODEL" >&5
+echo "${ECHO_T}$DFT_LWR_MODEL" >&6
 
 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 
 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-
 TINFO_NAME=tinfo
 
 TINFO_NAME=tinfo
 
-
 LIB_NAME=ncurses
 
 LIB_NAME=ncurses
 
-
 LIB_DIR=../lib
 
        case $cf_cv_system_name in
 LIB_DIR=../lib
 
        case $cf_cv_system_name in
-       os2)    LIB_PREFIX=''     ;;
+       OS/2*)  LIB_PREFIX=''     ;;
+       os2*)   LIB_PREFIX=''     ;;
        *)      LIB_PREFIX='lib'  ;;
        esac
 cf_prefix=$LIB_PREFIX
        *)      LIB_PREFIX='lib'  ;;
        esac
 cf_prefix=$LIB_PREFIX
-       
 
 LIB_PREFIX=$cf_prefix
 
 
 LIB_PREFIX=$cf_prefix
 
-
 LIB_SUFFIX=
 
 LIB_SUFFIX=
 
-
 ###############################################################################
 
 ###############################################################################
 
-echo $ac_n "checking if you want to build a separate terminfo library""... $ac_c" 1>&6
-echo "configure:2280: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:3615: 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.
 if test "${with_termlib+set}" = set; then
 
 # Check whether --with-termlib or --without-termlib was given.
 if test "${with_termlib+set}" = set; then
@@ -2284,13 +3621,13 @@ if test "${with_termlib+set}" = set; then
   with_termlib=$withval
 else
   with_termlib=no
   with_termlib=$withval
 else
   with_termlib=no
-fi
-
-echo "$ac_t""$with_termlib" 1>&6
+fi;
+echo "$as_me:3625: result: $with_termlib" >&5
+echo "${ECHO_T}$with_termlib" >&6
 
 ### Checks for special libraries, must be done up-front.
 
 ### Checks for special libraries, must be done up-front.
-echo $ac_n "checking if you want to link with dbmalloc for testing""... $ac_c" 1>&6
-echo "configure:2294: checking if you want to link with dbmalloc for testing" >&5
+echo "$as_me:3629: 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.
 if test "${with_dbmalloc+set}" = set; then
 
 # Check whether --with-dbmalloc or --without-dbmalloc was given.
 if test "${with_dbmalloc+set}" = set; then
@@ -2298,61 +3635,73 @@ if test "${with_dbmalloc+set}" = set; then
   with_dbmalloc=$withval
 else
   with_dbmalloc=no
   with_dbmalloc=$withval
 else
   with_dbmalloc=no
-fi
-
-echo "$ac_t""$with_dbmalloc" 1>&6
+fi;
+echo "$as_me:3639: result: $with_dbmalloc" >&5
+echo "${ECHO_T}$with_dbmalloc" >&6
 if test "$with_dbmalloc" = yes ; then
 if test "$with_dbmalloc" = yes ; then
-       echo $ac_n "checking for debug_malloc in -ldbmalloc""... $ac_c" 1>&6
-echo "configure:2307: checking for debug_malloc in -ldbmalloc" >&5
-ac_lib_var=`echo dbmalloc'_'debug_malloc | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:3643: checking for debug_malloc in -ldbmalloc" >&5
+echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldbmalloc  $LIBS"
 LIBS="-ldbmalloc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2315 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3651 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char debug_malloc();
-
-int main() {
-debug_malloc()
-; return 0; }
-EOF
-if { (eval echo configure:2326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo dbmalloc | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
+   builtin and then its argument prototype would still apply.  */
+char debug_malloc ();
+int
+main ()
+{
+debug_malloc ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3670: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3673: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3676: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3679: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dbmalloc_debug_malloc=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dbmalloc_debug_malloc=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:3690: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
+if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
+  cat >>confdefs.h <<EOF
+#define HAVE_LIBDBMALLOC 1
 EOF
 
   LIBS="-ldbmalloc $LIBS"
 
 EOF
 
   LIBS="-ldbmalloc $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
 fi
 
 fi
 
-echo $ac_n "checking if you want to link with dmalloc for testing""... $ac_c" 1>&6
-echo "configure:2356: checking if you want to link with dmalloc for testing" >&5
+echo "$as_me:3703: 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.
 if test "${with_dmalloc+set}" = set; then
 
 # Check whether --with-dmalloc or --without-dmalloc was given.
 if test "${with_dmalloc+set}" = set; then
@@ -2360,62 +3709,74 @@ if test "${with_dmalloc+set}" = set; then
   with_dmalloc=$withval
 else
   with_dmalloc=no
   with_dmalloc=$withval
 else
   with_dmalloc=no
-fi
-
-echo "$ac_t""$with_dmalloc" 1>&6
+fi;
+echo "$as_me:3713: result: $with_dmalloc" >&5
+echo "${ECHO_T}$with_dmalloc" >&6
 if test "$with_dmalloc" = yes ; then
 if test "$with_dmalloc" = yes ; then
-       echo $ac_n "checking for dmalloc_debug in -ldmalloc""... $ac_c" 1>&6
-echo "configure:2369: checking for dmalloc_debug in -ldmalloc" >&5
-ac_lib_var=`echo dmalloc'_'dmalloc_debug | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:3717: checking for dmalloc_debug in -ldmalloc" >&5
+echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldmalloc  $LIBS"
 LIBS="-ldmalloc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2377 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3725 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dmalloc_debug();
-
-int main() {
-dmalloc_debug()
-; return 0; }
-EOF
-if { (eval echo configure:2388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo dmalloc | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
+   builtin and then its argument prototype would still apply.  */
+char dmalloc_debug ();
+int
+main ()
+{
+dmalloc_debug ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3744: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3747: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3750: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3753: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dmalloc_dmalloc_debug=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dmalloc_dmalloc_debug=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:3764: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
+if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
+  cat >>confdefs.h <<EOF
+#define HAVE_LIBDMALLOC 1
 EOF
 
   LIBS="-ldmalloc $LIBS"
 
 EOF
 
   LIBS="-ldmalloc $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
 SHLIB_LIST=""
 fi
 
 fi
 
 SHLIB_LIST=""
-echo $ac_n "checking if you want to link with the gpm mouse library""... $ac_c" 1>&6
-echo "configure:2419: checking if you want to link with the gpm mouse library" >&5
+echo "$as_me:3778: 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
 
 # Check whether --with-gpm or --without-gpm was given.
 if test "${with_gpm+set}" = set; then
@@ -2423,115 +3784,134 @@ if test "${with_gpm+set}" = set; then
   with_gpm=$withval
 else
   with_gpm=no
   with_gpm=$withval
 else
   with_gpm=no
-fi
-
-echo "$ac_t""$with_gpm" 1>&6
+fi;
+echo "$as_me:3788: result: $with_gpm" >&5
+echo "${ECHO_T}$with_gpm" >&6
 if test "$with_gpm" = yes ; then
 if test "$with_gpm" = yes ; then
-       echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:2432: 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
+       echo "$as_me:3791: checking for Gpm_Open in -lgpm" >&5
+echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 LIBS="-lgpm  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2440 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3799 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char Gpm_Open();
-
-int main() {
-Gpm_Open()
-; return 0; }
-EOF
-if { (eval echo configure:2451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+   builtin and then its argument prototype would still apply.  */
+char Gpm_Open ();
+int
+main ()
+{
+Gpm_Open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3818: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3821: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3824: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3827: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_gpm_Gpm_Open=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_gpm_Gpm_Open=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:3838: 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
 
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
                EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
                SHLIB_LIST="-lgpm $SHLIB_LIST"
                EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
                SHLIB_LIST="-lgpm $SHLIB_LIST"
-               cat >> confdefs.h <<\EOF
+               cat >>confdefs.h <<\EOF
 #define HAVE_LIBGPM 1
 EOF
 
 #define HAVE_LIBGPM 1
 EOF
 
-               for ac_hdr in gpm.h
+for ac_header in gpm.h
 do
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2477: 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 2482 "configure"
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:3851: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3857 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:3861: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:3867: \$? = $ac_status" >&5
+  (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
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:3886: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 EOF
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
 fi
 done
 
-       
 else
 else
-  echo "$ac_t""no" 1>&6
-echo "configure: warning: Cannot link with gpm library - read the FAQ" 1>&2
+  { echo "$as_me:3897: WARNING: Cannot link with gpm library - read the FAQ" >&5
+echo "$as_me: WARNING: Cannot link with gpm library - read the FAQ" >&2;}
 fi
 
 fi
 
 fi
 
 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"$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
 
 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 $ac_n "checking for default loader flags""... $ac_c" 1>&6
-echo "configure:2535: checking for default loader flags" >&5
+echo "$as_me:3913: 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=''   ;;
 case $DFT_LWR_MODEL in
 libtool) LD_MODEL=''   ;;
 normal)  LD_MODEL=''   ;;
@@ -2539,10 +3919,11 @@ debug)   LD_MODEL=$CC_G_OPT ;;
 profile) LD_MODEL='-pg';;
 shared)  LD_MODEL=''   ;;
 esac
 profile) LD_MODEL='-pg';;
 shared)  LD_MODEL=''   ;;
 esac
-echo "$ac_t""$LD_MODEL" 1>&6
+echo "$as_me:3922: result: $LD_MODEL" >&5
+echo "${ECHO_T}$LD_MODEL" >&6
 
 
-echo $ac_n "checking if rpath option should be used""... $ac_c" 1>&6
-echo "configure:2546: checking if rpath option should be used" >&5
+echo "$as_me:3925: 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.
 if test "${enable_rpath+set}" = set; then
 
 # Check whether --enable-rpath or --disable-rpath was given.
 if test "${enable_rpath+set}" = set; then
@@ -2550,22 +3931,20 @@ if test "${enable_rpath+set}" = set; then
   cf_cv_ld_rpath=$enableval
 else
   cf_cv_ld_rpath=no
   cf_cv_ld_rpath=$enableval
 else
   cf_cv_ld_rpath=no
-fi
-
-echo "$ac_t""$cf_cv_ld_rpath" 1>&6
+fi;
+echo "$as_me:3935: result: $cf_cv_ld_rpath" >&5
+echo "${ECHO_T}$cf_cv_ld_rpath" >&6
 
 
-
-       
-       LOCAL_LDFLAGS=
-       LOCAL_LDFLAGS2=
+       LOCAL_LDFLAGS=
+       LOCAL_LDFLAGS2=
        LD_SHARED_OPTS=
        INSTALL_LIB="-m 644"
 
        cf_cv_do_symlinks=no
 
        LD_SHARED_OPTS=
        INSTALL_LIB="-m 644"
 
        cf_cv_do_symlinks=no
 
-       echo $ac_n "checking if release/abi version should be used for shared libs""... $ac_c" 1>&6
-echo "configure:2568: checking if release/abi version should be used for shared libs" >&5
-       
+       echo "$as_me:3945: 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.
 if test "${with_shlib_version+set}" = set; then
   withval="$with_shlib_version"
 # Check whether --with-shlib-version or --without-shlib-version was given.
 if test "${with_shlib_version+set}" = set; then
   withval="$with_shlib_version"
@@ -2578,15 +3957,17 @@ if test "${with_shlib_version+set}" = set; then
                cf_cv_shlib_version=$withval
                ;;
        *)
                cf_cv_shlib_version=$withval
                ;;
        *)
-               { echo "configure: error: option value must be one of: rel, abi, auto or no" 1>&2; exit 1; }
+               { { echo "$as_me:3960: 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; }; }
                ;;
        esac
                ;;
        esac
-       
+
 else
   cf_cv_shlib_version=auto
 else
   cf_cv_shlib_version=auto
-fi
-
-       echo "$ac_t""$cf_cv_shlib_version" 1>&6
+fi;
+       echo "$as_me:3969: result: $cf_cv_shlib_version" >&5
+echo "${ECHO_T}$cf_cv_shlib_version" >&6
 
        cf_cv_rm_so_locs=no
 
 
        cf_cv_rm_so_locs=no
 
@@ -2594,37 +3975,67 @@ fi
        CC_SHARED_OPTS=
        if test "$GCC" = yes
        then
        CC_SHARED_OPTS=
        if test "$GCC" = yes
        then
-               echo $ac_n "checking which $CC option to use""... $ac_c" 1>&6
-echo "configure:2599: checking which $CC option to use" >&5
+               echo "$as_me:3978: 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"
                cf_save_CFLAGS="$CFLAGS"
                for CC_SHARED_OPTS in -fPIC -fpic ''
                do
                        CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
-                       cat > conftest.$ac_ext <<EOF
-#line 2605 "configure"
+                       cat >conftest.$ac_ext <<_ACEOF
+#line 3985 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include "confdefs.h"
 #include <stdio.h>
-int main() {
+int
+main ()
+{
 int x = 1
 int x = 1
-; return 0; }
-EOF
-if { (eval echo configure:2612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3997: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4000: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4003: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4006: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   break
 else
   break
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
                done
                done
-               echo "$ac_t""$CC_SHARED_OPTS" 1>&6
+               echo "$as_me:4015: result: $CC_SHARED_OPTS" >&5
+echo "${ECHO_T}$CC_SHARED_OPTS" >&6
                CFLAGS="$cf_save_CFLAGS"
        fi
 
                CFLAGS="$cf_save_CFLAGS"
        fi
 
+       cf_cv_shlib_version_infix=no
+
        case $cf_cv_system_name in
        beos*)
                MK_SHARED_LIB='$(CC) -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
                ;;
        case $cf_cv_system_name in
        beos*)
                MK_SHARED_LIB='$(CC) -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
                ;;
+       cygwin*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
+               cf_cv_shlib_version=cygdll
+               cf_cv_shlib_version_infix=cygdll
+               ;;
+       darwin*)
+               EXTRA_CFLAGS="-no-cpp-precomp"
+               CC_SHARED_OPTS="-dynamic"
+               MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $@` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $@'
+               test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+               cf_cv_shlib_version_infix=yes
+               ;;
        hpux*)
                # (tested with gcc 2.7.2 -- I don't have c89)
                if test "$GCC" = yes; then
        hpux*)
                # (tested with gcc 2.7.2 -- I don't have c89)
                if test "$GCC" = yes; then
@@ -2652,8 +4063,8 @@ rm -f conftest*
                ;;
        linux*|gnu*)
                if test "$DFT_LWR_MODEL" = "shared" ; then
                ;;
        linux*|gnu*)
                if test "$DFT_LWR_MODEL" = "shared" ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-Wl,-rpath,"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-Wl,-rpath,"
@@ -2675,8 +4086,8 @@ rm -f conftest*
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
                if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
                if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                        EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
                        MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
                        if test "$cf_cv_shlib_version" = auto; then
                        EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
                        MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
                        if test "$cf_cv_shlib_version" = auto; then
@@ -2692,16 +4103,16 @@ rm -f conftest*
                # tested with OSF/1 V3.2 and 'cc'
                # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
                # link with shared libs).
                # tested with OSF/1 V3.2 and 'cc'
                # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
                # link with shared libs).
-               MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $@`'
+               MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $@`'
                case $host_os in
                osf4*)
                case $host_os in
                osf4*)
-                       MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
+                       MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
                        ;;
                esac
                MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        ;;
                esac
                MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@'
                if test "$DFT_LWR_MODEL" = "shared" ; then
-                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-rpath"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-rpath"
@@ -2711,7 +4122,7 @@ rm -f conftest*
                ;;
        sco3.2v5*)  # (also uw2* and UW7) hops 13-Apr-98
                # tested with osr5.0.5
                ;;
        sco3.2v5*)  # (also uw2* and UW7) hops 13-Apr-98
                # tested with osr5.0.5
-               if test "$ac_cv_prog_gcc" != yes; then
+               if test "$ac_cv_c_compiler_gnu" != yes; then
                        CC_SHARED_OPTS='-belf -KPIC'
                fi
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
                        CC_SHARED_OPTS='-belf -KPIC'
                fi
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
@@ -2725,7 +4136,7 @@ rm -f conftest*
                ;;
        sunos4*)
                # tested with SunOS 4.1.1 and gcc 2.7.0
                ;;
        sunos4*)
                # tested with SunOS 4.1.1 and gcc 2.7.0
-               if test "$ac_cv_prog_gcc" != yes; then
+               if test "$ac_cv_c_compiler_gnu" != yes; then
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -assert pure-text -o $@'
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -assert pure-text -o $@'
@@ -2733,13 +4144,13 @@ rm -f conftest*
                ;;
        solaris2*)
                # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
                ;;
        solaris2*)
                # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
-               if test "$ac_cv_prog_gcc" != yes; then
+               if test "$ac_cv_c_compiler_gnu" != yes; then
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
-                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-R"
                fi
                if test "$cf_cv_ld_rpath" = yes ; then
                        cf_ld_rpath_opt="-R"
@@ -2749,7 +4160,7 @@ rm -f conftest*
                ;;
        sysv5uw7*|unix_sv*)
                # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
                ;;
        sysv5uw7*|unix_sv*)
                # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
-               if test "$ac_cv_prog_gcc" != yes; then
+               if test "$ac_cv_c_compiler_gnu" != yes; then
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -d y -G -o $@'
                        CC_SHARED_OPTS='-KPIC'
                fi
                MK_SHARED_LIB='$(LD) -d y -G -o $@'
@@ -2768,78 +4179,84 @@ rm -f conftest*
                        test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
                        ;;
                *)
                        test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
                        ;;
                *)
-                       echo "configure: warning: ignored --with-shlib-version" 1>&2
+                       { echo "$as_me:4182: WARNING: ignored --with-shlib-version" >&5
+echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
                        ;;
                esac
                ;;
        esac
 
        if test -n "$cf_ld_rpath_opt" ; then
                        ;;
                esac
                ;;
        esac
 
        if test -n "$cf_ld_rpath_opt" ; then
-               echo $ac_n "checking if we need a space after rpath option""... $ac_c" 1>&6
-echo "configure:2780: checking if we need a space after rpath option" >&5
+               echo "$as_me:4190: 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"
                cf_save_LIBS="$LIBS"
                LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
-               cat > conftest.$ac_ext <<EOF
-#line 2784 "configure"
+               cat >conftest.$ac_ext <<_ACEOF
+#line 4195 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-int main() {
+int
+main ()
+{
 
 
-; return 0; }
-EOF
-if { (eval echo configure:2791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4207: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4210: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4213: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4216: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_rpath_space=no
 else
   cf_rpath_space=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_rpath_space=yes
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_rpath_space=yes
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
                LIBS="$cf_save_LIBS"
                LIBS="$cf_save_LIBS"
-               echo "$ac_t""$cf_rpath_space" 1>&6
+               echo "$as_me:4226: 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)"
        fi
 
                test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
                MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
        fi
 
-       
-       
-       
-       
-       
-       
-       
-       
-       
-
 if test "$CC_SHARED_OPTS" = "unknown"; then
        for model in $cf_list_models; do
                if test "$model" = "shared"; then
 if test "$CC_SHARED_OPTS" = "unknown"; then
        for model in $cf_list_models; do
                if test "$model" = "shared"; then
-                       { echo "configure: error: Shared libraries are not supported in this version" 1>&2; exit 1; }
+                       { { echo "$as_me:4235: error: Shared libraries are not supported in this version" >&5
+echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
+   { (exit 1); exit 1; }; }
                fi
        done
 fi
 
 ###############################################################################
 
                fi
        done
 fi
 
 ###############################################################################
 
-
 ###    use option --disable-overwrite to leave out the link to -lcurses
 ###    use option --disable-overwrite to leave out the link to -lcurses
-echo $ac_n "checking if you wish to install ncurses overwriting curses""... $ac_c" 1>&6
-echo "configure:2830: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:4245: 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.
 if test "${enable_overwrite+set}" = set; then
   enableval="$enable_overwrite"
   with_overwrite=$enableval
 else
 
 # Check whether --enable-overwrite or --disable-overwrite was given.
 if test "${enable_overwrite+set}" = set; then
   enableval="$enable_overwrite"
   with_overwrite=$enableval
 else
-  with_overwrite=yes
-fi
-
-echo "$ac_t""$with_overwrite" 1>&6
+  if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
+fi;
+echo "$as_me:4255: result: $with_overwrite" >&5
+echo "${ECHO_T}$with_overwrite" >&6
 
 
-echo $ac_n "checking if external terminfo-database is used""... $ac_c" 1>&6
-echo "configure:2843: checking if external terminfo-database is used" >&5
+echo "$as_me:4258: 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.
 if test "${enable_database+set}" = set; then
 
 # Check whether --enable-database or --disable-database was given.
 if test "${enable_database+set}" = set; then
@@ -2847,9 +4264,9 @@ if test "${enable_database+set}" = set; then
   use_database=$enableval
 else
   use_database=yes
   use_database=$enableval
 else
   use_database=yes
-fi
-
-echo "$ac_t""$use_database" 1>&6
+fi;
+echo "$as_me:4268: result: $use_database" >&5
+echo "${ECHO_T}$use_database" >&6
 
 case $host_os in #(vi
 os2*) #(vi
 
 case $host_os in #(vi
 os2*) #(vi
@@ -2860,26 +4277,30 @@ os2*) #(vi
        ;;
 esac
 
        ;;
 esac
 
+       case $cf_cv_system_name in
+       os2*)   PATHSEP=';'  ;;
+       *)      PATHSEP=':'  ;;
+       esac
 
 if test "$use_database" != no ; then
 
 if test "$use_database" != no ; then
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define USE_DATABASE 1
 EOF
 
 #define USE_DATABASE 1
 EOF
 
-       echo $ac_n "checking which terminfo source-file will be installed""... $ac_c" 1>&6
-echo "configure:2871: checking which terminfo source-file will be installed" >&5
-       
+       echo "$as_me:4290: 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.
 if test "${enable_database+set}" = set; then
   enableval="$enable_database"
   TERMINFO_SRC=$withval
 # Check whether --enable-database or --disable-database was given.
 if test "${enable_database+set}" = set; then
   enableval="$enable_database"
   TERMINFO_SRC=$withval
+fi;
+       echo "$as_me:4298: result: $TERMINFO_SRC" >&5
+echo "${ECHO_T}$TERMINFO_SRC" >&6
 fi
 
 fi
 
-       echo "$ac_t""$TERMINFO_SRC" 1>&6
-fi
-
-echo $ac_n "checking for list of fallback descriptions""... $ac_c" 1>&6
-echo "configure:2883: checking for list of fallback descriptions" >&5
+echo "$as_me:4302: 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.
 if test "${with_fallbacks+set}" = set; then
 
 # Check whether --with-fallbacks or --without-fallbacks was given.
 if test "${with_fallbacks+set}" = set; then
@@ -2887,54 +4308,54 @@ if test "${with_fallbacks+set}" = set; then
   with_fallback=$withval
 else
   with_fallback=
   with_fallback=$withval
 else
   with_fallback=
-fi
-
-echo "$ac_t""$with_fallback" 1>&6
+fi;
+echo "$as_me:4312: result: $with_fallback" >&5
+echo "${ECHO_T}$with_fallback" >&6
 FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
 
 FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
 
-
+MAKE_TERMINFO=
 if test "$use_database" = no ; then
 if test "$use_database" = no ; then
-       if test -z $with_fallback ; then
-               { echo "configure: error: You have disabled the database w/o specifying fallbacks" 1>&2; exit 1; }
-       fi
        TERMINFO="${datadir}/terminfo"
        TERMINFO="${datadir}/terminfo"
+       MAKE_TERMINFO="#"
 else
 
 else
 
-echo $ac_n "checking for list of terminfo directories""... $ac_c" 1>&6
-echo "configure:2905: checking for list of terminfo directories" >&5
-
+echo "$as_me:4322: 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.
 if test "${with_terminfo_dirs+set}" = set; then
   withval="$with_terminfo_dirs"
 
 # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
 if test "${with_terminfo_dirs+set}" = set; then
   withval="$with_terminfo_dirs"
-  :
-else
-  withval="${TERMINFO_DIRS-${datadir}/terminfo}"
-fi
 
 
-IFS="${IFS=    }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+else
+  withval=${TERMINFO_DIRS-${datadir}/terminfo}
+fi;
+IFS="${IFS=    }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
 cf_dst_path=
 for cf_src_path in $withval
 do
 cf_dst_path=
 for cf_src_path in $withval
 do
-  
+
 case ".$cf_src_path" in #(vi
 case ".$cf_src_path" in #(vi
-./*) #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
   ;;
   ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
   ;;
 .\${*prefix}*) #(vi
   eval cf_src_path="$cf_src_path"
   case ".$cf_src_path" in #(vi
   .NONE/*)
   ;;
 .\${*prefix}*) #(vi
   eval cf_src_path="$cf_src_path"
   case ".$cf_src_path" in #(vi
   .NONE/*)
-    cf_src_path=`echo $cf_src_path | sed -e s@NONE@$ac_default_prefix@`
+    cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
     ;;
   esac
   ;; #(vi
 .NONE/*)
     ;;
   esac
   ;; #(vi
 .NONE/*)
-  cf_src_path=`echo $cf_src_path | sed -e s@NONE@$ac_default_prefix@`
+  cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
   ;;
 *)
-  { echo "configure: error: expected a pathname" 1>&2; exit 1; }
+  { { echo "$as_me:4356: error: expected a pathname, not \"$cf_src_path\"" >&5
+echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+   { (exit 1); exit 1; }; }
   ;;
 esac
 
   ;;
 esac
 
@@ -2943,62 +4364,63 @@ esac
 done
 IFS="$ac_save_ifs"
 
 done
 IFS="$ac_save_ifs"
 
-eval TERMINFO_DIRS="$cf_dst_path"
+eval 'TERMINFO_DIRS="$cf_dst_path"'
 
 
-echo "$ac_t""$TERMINFO_DIRS" 1>&6
-test -n "$TERMINFO_DIRS" && cat >> confdefs.h <<EOF
+echo "$as_me:4369: result: $TERMINFO_DIRS" >&5
+echo "${ECHO_T}$TERMINFO_DIRS" >&6
+test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
 #define TERMINFO_DIRS "$TERMINFO_DIRS"
 EOF
 
 #define TERMINFO_DIRS "$TERMINFO_DIRS"
 EOF
 
-
-echo $ac_n "checking for default terminfo directory""... $ac_c" 1>&6
-echo "configure:2956: checking for default terminfo directory" >&5
+echo "$as_me:4375: 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.
 if test "${with_default_terminfo_dir+set}" = set; then
   withval="$with_default_terminfo_dir"
 
 # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
 if test "${with_default_terminfo_dir+set}" = set; then
   withval="$with_default_terminfo_dir"
-  :
+
 else
   withval="${TERMINFO-${datadir}/terminfo}"
 else
   withval="${TERMINFO-${datadir}/terminfo}"
-fi
-
+fi;
 case ".$withval" in #(vi
 case ".$withval" in #(vi
-./*) #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
   ;;
   ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
-    withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
     ;;
   esac
   ;; #(vi
 .NONE/*)
     ;;
   esac
   ;; #(vi
 .NONE/*)
-  withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
   ;;
 *)
-  { echo "configure: error: expected a pathname" 1>&2; exit 1; }
+  { { echo "$as_me:4404: error: expected a pathname, not \"$withval\"" >&5
+echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+   { (exit 1); exit 1; }; }
   ;;
 esac
 
 eval TERMINFO="$withval"
 
   ;;
 esac
 
 eval TERMINFO="$withval"
 
-echo "$ac_t""$TERMINFO" 1>&6
-cat >> confdefs.h <<EOF
+echo "$as_me:4412: result: $TERMINFO" >&5
+echo "${ECHO_T}$TERMINFO" >&6
+cat >>confdefs.h <<EOF
 #define TERMINFO "$TERMINFO"
 EOF
 
 #define TERMINFO "$TERMINFO"
 EOF
 
-
 fi
 
 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.
 ###    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 $ac_n "checking if big-core option selected""... $ac_c" 1>&6
-echo "configure:3002: checking if big-core option selected" >&5
+echo "$as_me:4422: 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.
 if test "${enable_big_core+set}" = set; then
 
 # Check whether --enable-big-core or --disable-big-core was given.
 if test "${enable_big_core+set}" = set; then
@@ -3008,8 +4430,8 @@ else
   if test "$cross_compiling" = yes; then
   with_big_core=no
 else
   if test "$cross_compiling" = yes; then
   with_big_core=no
 else
-  cat > conftest.$ac_ext <<EOF
-#line 3013 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4434 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -3021,30 +4443,37 @@ int main() {
                s[0] = s[n-1] = 0;
        exit(s == 0);
 }
                s[0] = s[n-1] = 0;
        exit(s == 0);
 }
-EOF
-if { (eval echo configure:3026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:4448: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4451: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:4453: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4456: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   with_big_core=yes
 else
   with_big_core=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  with_big_core=no
-fi
-rm -fr conftest*
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+with_big_core=no
 fi
 fi
-
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$with_big_core" 1>&6
-test "$with_big_core" = "yes" && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:4468: 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
 
 #define HAVE_BIG_CORE 1
 EOF
 
-
 ###    use option --enable-termcap to compile in the termcap fallback support
 ###    use option --enable-termcap to compile in the termcap fallback support
-echo $ac_n "checking if you want termcap-fallback support""... $ac_c" 1>&6
-echo "configure:3048: checking if you want termcap-fallback support" >&5
+echo "$as_me:4475: 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.
 if test "${enable_termcap+set}" = set; then
 
 # Check whether --enable-termcap or --disable-termcap was given.
 if test "${enable_termcap+set}" = set; then
@@ -3052,20 +4481,84 @@ if test "${enable_termcap+set}" = set; then
   with_termcap=$enableval
 else
   with_termcap=no
   with_termcap=$enableval
 else
   with_termcap=no
-fi
+fi;
+echo "$as_me:4485: result: $with_termcap" >&5
+echo "${ECHO_T}$with_termcap" >&6
+
+if test "$with_termcap" != "yes" ; then
+       if test "$use_database" = no ; then
+               if test -z $with_fallback ; then
+                       { { echo "$as_me:4491: error: You have disabled the database w/o specifying fallbacks" >&5
+echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       fi
+       cat >>confdefs.h <<\EOF
+#define PURE_TERMINFO 1
+EOF
+
+else
+
+cat >>confdefs.h <<\EOF
+#define USE_TERMCAP 1
+EOF
+
+echo "$as_me:4506: 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.
+if test "${with_termpath+set}" = set; then
+  withval="$with_termpath"
+
+else
+  withval=${TERMPATH-/etc/termcap:/usr/share/misc/termcap}
+fi;
+IFS="${IFS=    }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
+cf_dst_path=
+for cf_src_path in $withval
+do
+
+case ".$cf_src_path" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval cf_src_path="$cf_src_path"
+  case ".$cf_src_path" in #(vi
+  .NONE/*)
+    cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
+    ;;
+  esac
+  ;; #(vi
+.NONE/*)
+  cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
+  ;;
+*)
+  { { echo "$as_me:4540: error: expected a pathname, not \"$cf_src_path\"" >&5
+echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+   { (exit 1); exit 1; }; }
+  ;;
+esac
+
+  test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
+  cf_dst_path="${cf_dst_path}${cf_src_path}"
+done
+IFS="$ac_save_ifs"
 
 
-echo "$ac_t""$with_termcap" 1>&6
+eval 'TERMPATH="$cf_dst_path"'
 
 
-if test "$with_termcap" != "yes" ; then
-       cat >> confdefs.h <<\EOF
-#define PURE_TERMINFO 1
+echo "$as_me:4553: result: $TERMPATH" >&5
+echo "${ECHO_T}$TERMPATH" >&6
+test -n "$TERMPATH" && cat >>confdefs.h <<EOF
+#define TERMPATH "$TERMPATH"
 EOF
 
 EOF
 
-else
-
 ###    use option --enable-getcap to use a hacked getcap for reading termcaps
 ###    use option --enable-getcap to use a hacked getcap for reading termcaps
-echo $ac_n "checking if fast termcap-loader is needed""... $ac_c" 1>&6
-echo "configure:3069: checking if fast termcap-loader is needed" >&5
+echo "$as_me:4560: 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.
 if test "${enable_getcap+set}" = set; then
 
 # Check whether --enable-getcap or --disable-getcap was given.
 if test "${enable_getcap+set}" = set; then
@@ -3073,16 +4566,15 @@ if test "${enable_getcap+set}" = set; then
   with_getcap=$enableval
 else
   with_getcap=no
   with_getcap=$enableval
 else
   with_getcap=no
-fi
-
-echo "$ac_t""$with_getcap" 1>&6
-test "$with_getcap" = "yes" && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:4570: result: $with_getcap" >&5
+echo "${ECHO_T}$with_getcap" >&6
+test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP 1
 EOF
 
 #define USE_GETCAP 1
 EOF
 
-
-echo $ac_n "checking if translated termcaps will be cached in ~/.terminfo""... $ac_c" 1>&6
-echo "configure:3086: checking if translated termcaps will be cached in ~/.terminfo" >&5
+echo "$as_me:4576: 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.
 if test "${enable_getcap_cache+set}" = set; then
 
 # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
 if test "${enable_getcap_cache+set}" = set; then
@@ -3090,14 +4582,13 @@ if test "${enable_getcap_cache+set}" = set; then
   with_getcap_cache=$enableval
 else
   with_getcap_cache=no
   with_getcap_cache=$enableval
 else
   with_getcap_cache=no
-fi
-
-echo "$ac_t""$with_getcap_cache" 1>&6
-test "$with_getcap_cache" = "yes" && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:4586: 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
 EOF
 
 #define USE_GETCAP_CACHE 1
 EOF
 
-
 fi
 
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 fi
 
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 
 for ac_func in \
        remove \
 
 for ac_func in \
        remove \
-       unlink 
+       unlink
 do
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3112: 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 3117 "configure"
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:4602: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4608 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* 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();
-
-int main() {
+   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
 /* 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
-$ac_func();
+f = $ac_func;
 #endif
 
 #endif
 
-; return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4639: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4642: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4645: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4648: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4658: 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
 EOF
-if { (eval echo configure:3140: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
 
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
 fi
 done
 
 fi
 done
 
-
 if test "$ac_cv_prog_cc_cross" = yes ; then
 if test "$ac_cv_prog_cc_cross" = yes ; then
-       for ac_func in \
+
+for ac_func in \
                link \
                link \
-               symlink 
+               symlink
 do
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3171: 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 3176 "configure"
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:4675: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4681 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* 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();
-
-int main() {
+   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
 /* 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
-$ac_func();
+f = $ac_func;
 #endif
 
 #endif
 
-; return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4712: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4715: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4718: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4721: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4731: 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
 EOF
-if { (eval echo configure:3199: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
 
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
 fi
 done
 
 else
 fi
 done
 
 else
-       echo $ac_n "checking if link/symlink functions work""... $ac_c" 1>&6
-echo "configure:3225: checking if link/symlink functions work" >&5
-if eval "test \"`echo '$''{'cf_cv_link_funcs'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+       echo "$as_me:4742: 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
 else
 else
-  
+
                cf_cv_link_funcs=
                for cf_func in link symlink ; do
                        if test "$cross_compiling" = yes; then
                cf_cv_link_funcs=
                for cf_func in link symlink ; do
                        if test "$cross_compiling" = yes; then
-  
+
                        eval 'ac_cv_func_'$cf_func'=error'
 else
                        eval 'ac_cv_func_'$cf_func'=error'
 else
-  cat > conftest.$ac_ext <<EOF
-#line 3237 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4755 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -3260,88 +4779,96 @@ int main()
 #endif
        exit (fail);
 }
 #endif
        exit (fail);
 }
-                       
-EOF
-if { (eval echo configure:3266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:4785: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4788: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:4790: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4793: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
                        cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
                        eval 'ac_cv_func_'$cf_func'=yes'
 else
                        cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
                        eval 'ac_cv_func_'$cf_func'=yes'
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
                        eval 'ac_cv_func_'$cf_func'=no'
 fi
                        eval 'ac_cv_func_'$cf_func'=no'
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
                done
                test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
                done
                test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
-       
-fi
 
 
-echo "$ac_t""$cf_cv_link_funcs" 1>&6
-       test "$ac_cv_func_link"    = yes && cat >> confdefs.h <<\EOF
+fi
+echo "$as_me:4811: result: $cf_cv_link_funcs" >&5
+echo "${ECHO_T}$cf_cv_link_funcs" >&6
+       test "$ac_cv_func_link"    = yes && cat >>confdefs.h <<\EOF
 #define HAVE_LINK 1
 EOF
 
 #define HAVE_LINK 1
 EOF
 
-       test "$ac_cv_func_symlink" = yes && cat >> confdefs.h <<\EOF
+       test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_SYMLINK 1
 EOF
 
 fi
 
 #define HAVE_SYMLINK 1
 EOF
 
 fi
 
-
 with_links=no
 with_symlinks=no
 
 if test "$ac_cv_func_link" != yes ; then
 with_links=no
 with_symlinks=no
 
 if test "$ac_cv_func_link" != yes ; then
-    echo $ac_n "checking if tic should use symbolic links""... $ac_c" 1>&6
-echo "configure:3303: checking if tic should use symbolic links" >&5
+    echo "$as_me:4827: 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
     if test "$ac_cv_func_symlink" = yes ; then
        with_symlinks=yes
     else
        with_symlinks=no
     fi
-    echo "$ac_t""$with_symlinks" 1>&6
+    echo "$as_me:4834: result: $with_symlinks" >&5
+echo "${ECHO_T}$with_symlinks" >&6
 elif test "$ac_cv_func_symlink" != yes ; then
 elif test "$ac_cv_func_symlink" != yes ; then
-    echo $ac_n "checking if tic should use hard links""... $ac_c" 1>&6
-echo "configure:3312: checking if tic should use hard links" >&5
+    echo "$as_me:4837: 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
     if test "$ac_cv_func_link" = yes ; then
        with_links=yes
     else
        with_links=no
     fi
-    echo "$ac_t""$with_links" 1>&6
+    echo "$as_me:4844: result: $with_links" >&5
+echo "${ECHO_T}$with_links" >&6
 else
 else
-    echo $ac_n "checking if tic should use symbolic links""... $ac_c" 1>&6
-echo "configure:3321: checking if tic should use symbolic links" >&5
-    
+    echo "$as_me:4847: checking if tic should use symbolic links" >&5
+echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
+
 # Check whether --enable-symlinks or --disable-symlinks was given.
 if test "${enable_symlinks+set}" = set; then
   enableval="$enable_symlinks"
   with_symlinks=$enableval
 else
   with_symlinks=no
 # Check whether --enable-symlinks or --disable-symlinks was given.
 if test "${enable_symlinks+set}" = set; then
   enableval="$enable_symlinks"
   with_symlinks=$enableval
 else
   with_symlinks=no
+fi;
+    echo "$as_me:4857: result: $with_symlinks" >&5
+echo "${ECHO_T}$with_symlinks" >&6
 fi
 
 fi
 
-    echo "$ac_t""$with_symlinks" 1>&6
-fi
-
-test "$with_links" = yes && cat >> confdefs.h <<\EOF
+test "$with_links" = yes && cat >>confdefs.h <<\EOF
 #define USE_LINKS 1
 EOF
 
 #define USE_LINKS 1
 EOF
 
-test "$with_symlinks" = yes && cat >> confdefs.h <<\EOF
+test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF
 #define USE_SYMLINKS 1
 EOF
 
 #define USE_SYMLINKS 1
 EOF
 
-
 ###   use option --enable-broken-linker to force on use of broken-linker support
 ###   use option --enable-broken-linker to force on use of broken-linker support
-echo $ac_n "checking if you want broken-linker support code""... $ac_c" 1>&6
-echo "configure:3345: checking if you want broken-linker support code" >&5
+echo "$as_me:4870: checking if you want broken-linker support code" >&5
+echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
 
 # Check whether --enable-broken_linker or --disable-broken_linker was given.
 if test "${enable_broken_linker+set}" = set; then
 
 # Check whether --enable-broken_linker or --disable-broken_linker was given.
 if test "${enable_broken_linker+set}" = set; then
@@ -3349,17 +4876,62 @@ if test "${enable_broken_linker+set}" = set; then
   with_broken_linker=$enableval
 else
   with_broken_linker=$BROKEN_LINKER
   with_broken_linker=$enableval
 else
   with_broken_linker=$BROKEN_LINKER
-fi
+fi;
+echo "$as_me:4880: result: $with_broken_linker" >&5
+echo "${ECHO_T}$with_broken_linker" >&6
+
+BROKEN_LINKER=0
+if test "$with_broken_linker" = yes ; then
+       cat >>confdefs.h <<\EOF
+#define BROKEN_LINKER 1
+EOF
 
 
-echo "$ac_t""$with_broken_linker" 1>&6
-test "$with_broken_linker" = yes && cat >> confdefs.h <<\EOF
+       BROKEN_LINKER=1
+elif test $DFT_LWR_MODEL = shared ; then
+       case $cf_cv_system_name in #(vi
+       cygwin*)
+               cat >>confdefs.h <<\EOF
 #define BROKEN_LINKER 1
 EOF
 
 #define BROKEN_LINKER 1
 EOF
 
+               BROKEN_LINKER=1
+               test -n "$verbose" && echo "    cygwin linker is broken anyway" 1>&6
+
+               ;;
+       esac
+fi
+
+###   use option --with-bool to override bool's type
+echo "$as_me:4905: 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:4915: result: $NCURSES_BOOL" >&5
+echo "${ECHO_T}$NCURSES_BOOL" >&6
+
+###   use option --with-ospeed to override ospeed's type
+echo "$as_me:4919: checking for type of ospeed" >&5
+echo $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:4929: result: $NCURSES_OSPEED" >&5
+echo "${ECHO_T}$NCURSES_OSPEED" >&6
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo $ac_n "checking if tputs should process BSD-style prefix padding""... $ac_c" 1>&6
-echo "configure:3363: checking if tputs should process BSD-style prefix padding" >&5
+echo "$as_me:4933: 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
 
 # Check whether --enable-bsdpad or --disable-bsdpad was given.
 if test "${enable_bsdpad+set}" = set; then
@@ -3367,17 +4939,16 @@ if test "${enable_bsdpad+set}" = set; then
   with_bsdpad=$enableval
 else
   with_bsdpad=no
   with_bsdpad=$enableval
 else
   with_bsdpad=no
-fi
-
-echo "$ac_t""$with_bsdpad" 1>&6
-test "$with_bsdpad" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:4943: result: $with_bsdpad" >&5
+echo "${ECHO_T}$with_bsdpad" >&6
+test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
 #define BSD_TPUTS 1
 EOF
 
 #define BSD_TPUTS 1
 EOF
 
-
 ### Enable compiling-in rcs id's
 ### Enable compiling-in rcs id's
-echo $ac_n "checking if RCS identifiers should be compiled-in""... $ac_c" 1>&6
-echo "configure:3381: checking if RCS identifiers should be compiled-in" >&5
+echo "$as_me:4950: 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
 
 # Check whether --with-rcs-ids or --without-rcs-ids was given.
 if test "${with_rcs_ids+set}" = set; then
@@ -3385,31 +4956,27 @@ if test "${with_rcs_ids+set}" = set; then
   with_rcs_ids=$withval
 else
   with_rcs_ids=no
   with_rcs_ids=$withval
 else
   with_rcs_ids=no
-fi
-
-echo "$ac_t""$with_rcs_ids" 1>&6
-test "$with_rcs_ids" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:4960: 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
 
 #define USE_RCS_IDS 1
 EOF
 
-
 ###############################################################################
 
 ###############################################################################
 
-
- echo $ac_n "checking format of man-pages""... $ac_c" 1>&6
-echo "configure:3401: checking format of man-pages" >&5
-
+echo "$as_me:4968: 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"
 
 # Check whether --with-manpage-format or --without-manpage-format was given.
 if test "${with_manpage_format+set}" = set; then
   withval="$with_manpage_format"
-  cf_manpage_form=$withval
+  MANPAGE_FORMAT=$withval
 else
 else
-  cf_manpage_form=unknown
-fi
+  MANPAGE_FORMAT=unknown
+fi;
 
 
-
-case ".$cf_manpage_form" in
+case ".$MANPAGE_FORMAT" in
 .gzip|.compress|.BSDI|.normal|.formatted) # (vi
   ;;
 .unknown|.) # (vi
 .gzip|.compress|.BSDI|.normal|.formatted) # (vi
   ;;
 .unknown|.) # (vi
@@ -3417,8 +4984,8 @@ case ".$cf_manpage_form" in
     MANPATH="/usr/man:/usr/share/man"
   fi
   # look for the 'date' man-page (it's most likely to be installed!)
     MANPATH="/usr/man:/usr/share/man"
   fi
   # look for the 'date' man-page (it's most likely to be installed!)
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  cf_manpage_form=unknown
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  MANPAGE_FORMAT=unknown
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
     for cf_name in $cf_dir/*/date.[01]* $cf_dir/*/date
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
     for cf_name in $cf_dir/*/date.[01]* $cf_dir/*/date
@@ -3426,102 +4993,101 @@ case ".$cf_manpage_form" in
        cf_test=`echo $cf_name | sed -e 's/*//'`
        if test "x$cf_test" = "x$cf_name" ; then
          case "$cf_name" in
        cf_test=`echo $cf_name | sed -e 's/*//'`
        if test "x$cf_test" = "x$cf_name" ; then
          case "$cf_name" in
-         *.gz) cf_manpage_form=gzip;;
-         *.Z)  cf_manpage_form=compress;;
-         *.0)  cf_manpage_form=BSDI,formatted;;
-         *)    cf_manpage_form=normal;;
+         *.gz) MANPAGE_FORMAT=gzip;;
+         *.Z)  MANPAGE_FORMAT=compress;;
+         *.0)  MANPAGE_FORMAT=BSDI,formatted;;
+         *)    MANPAGE_FORMAT=normal;;
          esac
          break
        fi
     done
          esac
          break
        fi
     done
-    if test "$cf_manpage_form" != "unknown" ; then
+    if test "$MANPAGE_FORMAT" != "unknown" ; then
        break
     fi
   done
   IFS="$ac_save_ifs"
   ;;
 .*) # (vi
        break
     fi
   done
   IFS="$ac_save_ifs"
   ;;
 .*) # (vi
-  echo "configure: warning: Unexpected manpage-format" 1>&2
+  { echo "$as_me:5011: WARNING: Unexpected manpage-format" >&5
+echo "$as_me: WARNING: Unexpected manpage-format" >&2;}
   ;;
 esac
 
   ;;
 esac
 
-echo "$ac_t""$cf_manpage_form" 1>&6
-
-
-echo $ac_n "checking for manpage renaming""... $ac_c" 1>&6
-echo "configure:3453: checking for manpage renaming" >&5
+echo "$as_me:5016: result: $MANPAGE_FORMAT" >&5
+echo "${ECHO_T}$MANPAGE_FORMAT" >&6
 
 
+echo "$as_me:5019: 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"
 
 # Check whether --with-manpage-renames or --without-manpage-renames was given.
 if test "${with_manpage_renames+set}" = set; then
   withval="$with_manpage_renames"
-  cf_manpage_renames=$withval
+  MANPAGE_RENAMES=$withval
 else
 else
-  cf_manpage_renames=yes
-fi
+  MANPAGE_RENAMES=yes
+fi;
 
 
-
-case ".$cf_manpage_renames" in #(vi
+case ".$MANPAGE_RENAMES" in #(vi
 .no) #(vi
   ;;
 .|.yes)
   # Debian 'man' program?
   if test -f /etc/debian_version ; then
 .no) #(vi
   ;;
 .|.yes)
   # Debian 'man' program?
   if test -f /etc/debian_version ; then
-    cf_manpage_renames=`cd $srcdir && pwd`/man/man_db.renames
+    MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
   else
   else
-    cf_manpage_renames=no
+    MANPAGE_RENAMES=no
   fi
   ;;
 esac
 
   fi
   ;;
 esac
 
-if test "$cf_manpage_renames" != no ; then
-  if test ! -f $cf_manpage_renames ; then
-    { echo "configure: error: not a filename: $cf_manpage_renames" 1>&2; exit 1; }
+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:5047: 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
   fi
 
   test ! -d man && mkdir man
 
   # Construct a sed-script to perform renaming within man-pages
-  if test -n "$cf_manpage_renames" ; then
+  if test -n "$MANPAGE_RENAMES" ; then
     test ! -d man && mkdir man
     test ! -d man && mkdir man
-    $srcdir/man/make_sed.sh $cf_manpage_renames >man/edit_man.sed
+    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
   fi
 fi
 
   fi
 fi
 
-echo "$ac_t""$cf_manpage_renames" 1>&6
-
-
-echo $ac_n "checking for manpage symlinks""... $ac_c" 1>&6
-echo "configure:3496: checking for manpage symlinks" >&5
+echo "$as_me:5061: result: $MANPAGE_RENAMES" >&5
+echo "${ECHO_T}$MANPAGE_RENAMES" >&6
 
 
+echo "$as_me:5064: checking for manpage symlinks" >&5
+echo $ECHO_N "checking for manpage symlinks... $ECHO_C" >&6
 
 # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
 if test "${with_manpage_symlinks+set}" = set; then
   withval="$with_manpage_symlinks"
 
 # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
 if test "${with_manpage_symlinks+set}" = set; then
   withval="$with_manpage_symlinks"
-  cf_manpage_symlinks=$withval
+  MANPAGE_SYMLINKS=$withval
 else
 else
-  cf_manpage_symlinks=yes
-fi
-
-
-echo "$ac_t""$cf_manpage_symlinks" 1>&6
+  MANPAGE_SYMLINKS=yes
+fi;
 
 
+echo "$as_me:5075: result: $MANPAGE_SYMLINKS" >&5
+echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
 
 
-echo $ac_n "checking for manpage tbl""... $ac_c" 1>&6
-echo "configure:3512: checking for manpage tbl" >&5
-
+echo "$as_me:5078: 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"
 
 # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
 if test "${with_manpage_tbl+set}" = set; then
   withval="$with_manpage_tbl"
-  cf_manpage_tbl=$withval
+  MANPAGE_TBL=$withval
 else
 else
-  cf_manpage_tbl=no
-fi
-
-
-echo "$ac_t""$cf_manpage_tbl" 1>&6
+  MANPAGE_TBL=no
+fi;
 
 
+echo "$as_me:5089: result: $MANPAGE_TBL" >&5
+echo "${ECHO_T}$MANPAGE_TBL" >&6
 
   if test "$prefix" = "NONE" ; then
      cf_prefix="$ac_default_prefix"
 
   if test "$prefix" = "NONE" ; then
      cf_prefix="$ac_default_prefix"
@@ -3529,7 +5095,7 @@ echo "$ac_t""$cf_manpage_tbl" 1>&6
      cf_prefix="$prefix"
   fi
 
      cf_prefix="$prefix"
   fi
 
-  case "$cf_manpage_form" in # (vi
+  case "$MANPAGE_FORMAT" in # (vi
   *formatted*) # (vi
     cf_subdir='$mandir/cat'
     cf_format=yes
   *formatted*) # (vi
     cf_subdir='$mandir/cat'
     cf_format=yes
@@ -3546,8 +5112,9 @@ cat >man/edit_man.sh <<CF_EOF
 # this script is generated by the configure-script
 prefix="$cf_prefix"
 datadir="$datadir"
 # this script is generated by the configure-script
 prefix="$cf_prefix"
 datadir="$datadir"
+NCURSES_OSPEED="$NCURSES_OSPEED"
 TERMINFO="$TERMINFO"
 TERMINFO="$TERMINFO"
-MKDIRS="`cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
 transform="$program_transform_name"
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
 transform="$program_transform_name"
@@ -3583,12 +5150,13 @@ case \$i in #(vi
                continue
        fi
 CF_EOF
                continue
        fi
 CF_EOF
-if test "$cf_manpage_symlinks" = yes ; then
+if test "$MANPAGE_SYMLINKS" = yes ; then
 cat >>man/edit_man.sh <<CF_EOF
        aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
 CF_EOF
 fi
 cat >>man/edit_man.sh <<CF_EOF
        aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
 CF_EOF
 fi
-if test "$cf_manpage_renames" = no ; then
+
+if test "$MANPAGE_RENAMES" = no ; then
 cat >>man/edit_man.sh <<CF_EOF
        # perform program transformations for section 1 man pages
        if test \$section = 1 ; then
 cat >>man/edit_man.sh <<CF_EOF
        # perform program transformations for section 1 man pages
        if test \$section = 1 ; then
@@ -3596,45 +5164,51 @@ cat >>man/edit_man.sh <<CF_EOF
        else
                target=$cf_subdir\${section}/\$source
        fi
        else
                target=$cf_subdir\${section}/\$source
        fi
+CF_EOF
+else
+cat >>man/edit_man.sh <<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
 
        # replace variables in man page
-CF_EOF
-       
-       for cf_name in  captoinfo clear infocmp infotocap tic toe tput 
+
+       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
        do
 cat >>man/edit_man.sh <<CF_EOF
        prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
 CF_EOF
        done
        do
 cat >>man/edit_man.sh <<CF_EOF
        prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
 CF_EOF
        done
-       
+
 cat >>man/edit_man.sh <<CF_EOF
        sed     -e "s,@DATADIR@,\$datadir," \\
                -e "s,@TERMINFO@,\$TERMINFO," \\
 cat >>man/edit_man.sh <<CF_EOF
        sed     -e "s,@DATADIR@,\$datadir," \\
                -e "s,@TERMINFO@,\$TERMINFO," \\
+               -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
 CF_EOF
 CF_EOF
-       
-       for cf_name in  captoinfo clear infocmp infotocap tic toe tput 
+
+       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
        do
                cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 cat >>man/edit_man.sh <<CF_EOF
                -e "s,@$cf_NAME@,\$prog_$cf_name," \\
 CF_EOF
        done
        do
                cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 cat >>man/edit_man.sh <<CF_EOF
                -e "s,@$cf_NAME@,\$prog_$cf_name," \\
 CF_EOF
        done
-       
+
+if test -f $MANPAGE_RENAMES ; then
 cat >>man/edit_man.sh <<CF_EOF
 cat >>man/edit_man.sh <<CF_EOF
-               < \$i >\$TMP
+               < \$i | sed -f edit_man.sed >\$TMP
 CF_EOF
 else
 cat >>man/edit_man.sh <<CF_EOF
 CF_EOF
 else
 cat >>man/edit_man.sh <<CF_EOF
-       target=\`grep "^\$source" $cf_manpage_renames | $AWK '{print \$2}'\`
-       if test -z "\$target" ; then
-               echo '? missing rename for '\$source
-               target="\$source"
-       fi
-       target="$cf_subdir\$section/\$target"
-       test \$verb = installing && sed -e "s,@DATADIR@,\$datadir," < \$i | sed -f edit_man.sed >\$TMP
+               < \$i >\$TMP
 CF_EOF
 fi
 CF_EOF
 fi
-if test $cf_manpage_tbl = yes ; then
+if test $MANPAGE_TBL = yes ; then
 cat >>man/edit_man.sh <<CF_EOF
        tbl \$TMP >\$TMP.out
        mv \$TMP.out \$TMP
 cat >>man/edit_man.sh <<CF_EOF
        tbl \$TMP >\$TMP.out
        mv \$TMP.out \$TMP
@@ -3652,7 +5226,7 @@ cat >>man/edit_man.sh <<CF_EOF
        mv \$TMP.out \$TMP
 CF_EOF
 fi
        mv \$TMP.out \$TMP
 CF_EOF
 fi
-case "$cf_manpage_form" in #(vi
+case "$MANPAGE_FORMAT" in #(vi
 *compress*) #(vi
 cat >>man/edit_man.sh <<CF_EOF
        if test \$verb = installing ; then
 *compress*) #(vi
 cat >>man/edit_man.sh <<CF_EOF
        if test \$verb = installing ; then
@@ -3740,14 +5314,11 @@ exit 0
 CF_EOF
 chmod 755 man/edit_man.sh
 
 CF_EOF
 chmod 755 man/edit_man.sh
 
-
-
 ###############################################################################
 
 ###############################################################################
 
-
 ### Note that some functions (such as const) are normally disabled anyway.
 ### Note that some functions (such as const) are normally disabled anyway.
-echo $ac_n "checking if you want to build with function extensions""... $ac_c" 1>&6
-echo "configure:3751: checking if you want to build with function extensions" >&5
+echo "$as_me:5320: checking if you want to build with function extensions" >&5
+echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
 
 # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
 if test "${enable_ext_funcs+set}" = set; then
 
 # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
 if test "${enable_ext_funcs+set}" = set; then
@@ -3755,39 +5326,42 @@ if test "${enable_ext_funcs+set}" = set; then
   with_ext_funcs=$enableval
 else
   with_ext_funcs=yes
   with_ext_funcs=$enableval
 else
   with_ext_funcs=yes
-fi
-
-echo "$ac_t""$with_ext_funcs" 1>&6
+fi;
+echo "$as_me:5330: result: $with_ext_funcs" >&5
+echo "${ECHO_T}$with_ext_funcs" >&6
 if test "$with_ext_funcs" = yes ; then
 if test "$with_ext_funcs" = yes ; then
-       cat >> confdefs.h <<\EOF
+       NCURSES_EXT_FUNCS=1
+       cat >>confdefs.h <<\EOF
 #define HAVE_CURSES_VERSION 1
 EOF
 
 #define HAVE_CURSES_VERSION 1
 EOF
 
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define HAVE_HAS_KEY 1
 EOF
 
 #define HAVE_HAS_KEY 1
 EOF
 
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define HAVE_RESIZETERM 1
 EOF
 
 #define HAVE_RESIZETERM 1
 EOF
 
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define HAVE_USE_DEFAULT_COLORS 1
 EOF
 
 #define HAVE_USE_DEFAULT_COLORS 1
 EOF
 
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define HAVE_WRESIZE 1
 EOF
 
 #define HAVE_WRESIZE 1
 EOF
 
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define NCURSES_EXT_FUNCS 1
 EOF
 
 #define NCURSES_EXT_FUNCS 1
 EOF
 
+else
+       NCURSES_EXT_FUNCS=0
 fi
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 fi
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
-echo $ac_n "checking for extended use of const keyword""... $ac_c" 1>&6
-echo "configure:3791: checking for extended use of const keyword" >&5
+echo "$as_me:5363: checking for extended use of const keyword" >&5
+echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
 
 # Check whether --enable-const or --disable-const was given.
 if test "${enable_const+set}" = set; then
 
 # Check whether --enable-const or --disable-const was given.
 if test "${enable_const+set}" = set; then
@@ -3795,17 +5369,16 @@ if test "${enable_const+set}" = set; then
   with_ext_const=$enableval
 else
   with_ext_const=no
   with_ext_const=$enableval
 else
   with_ext_const=no
-fi
-
-echo "$ac_t""$with_ext_const" 1>&6
+fi;
+echo "$as_me:5373: 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
 
 NCURSES_CONST='/*nothing*/'
 if test "$with_ext_const" = yes ; then
        NCURSES_CONST=const
 fi
 
-
-echo $ac_n "checking if you want \$NCURSES_NO_PADDING code""... $ac_c" 1>&6
-echo "configure:3809: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo "$as_me:5380: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
 
 # Check whether --enable-no-padding or --disable-no-padding was given.
 if test "${enable_no_padding+set}" = set; then
 
 # Check whether --enable-no-padding or --disable-no-padding was given.
 if test "${enable_no_padding+set}" = set; then
@@ -3813,17 +5386,16 @@ if test "${enable_no_padding+set}" = set; then
   with_no_padding=$enableval
 else
   with_no_padding=$with_ext_funcs
   with_no_padding=$enableval
 else
   with_no_padding=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_no_padding" 1>&6
-test "$with_no_padding" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5390: 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
 
 #define NCURSES_NO_PADDING 1
 EOF
 
-
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo $ac_n "checking if you want SIGWINCH handler""... $ac_c" 1>&6
-echo "configure:3827: checking if you want SIGWINCH handler" >&5
+echo "$as_me:5397: checking if you want SIGWINCH handler" >&5
+echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
 
 # Check whether --enable-sigwinch or --disable-sigwinch was given.
 if test "${enable_sigwinch+set}" = set; then
 
 # Check whether --enable-sigwinch or --disable-sigwinch was given.
 if test "${enable_sigwinch+set}" = set; then
@@ -3831,17 +5403,16 @@ if test "${enable_sigwinch+set}" = set; then
   with_sigwinch=$enableval
 else
   with_sigwinch=$with_ext_funcs
   with_sigwinch=$enableval
 else
   with_sigwinch=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_sigwinch" 1>&6
-test "$with_sigwinch" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5407: result: $with_sigwinch" >&5
+echo "${ECHO_T}$with_sigwinch" >&6
+test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
 #define USE_SIGWINCH 1
 EOF
 
 #define USE_SIGWINCH 1
 EOF
 
-
 ###   use option --enable-tcap-names to allow user to define new capabilities
 ###   use option --enable-tcap-names to allow user to define new capabilities
-echo $ac_n "checking if you want user-definable terminal capabilities like termcap""... $ac_c" 1>&6
-echo "configure:3845: checking if you want user-definable terminal capabilities like termcap" >&5
+echo "$as_me:5414: 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
 
 # Check whether --enable-tcap-names or --disable-tcap-names was given.
 if test "${enable_tcap_names+set}" = set; then
@@ -3849,18 +5420,17 @@ if test "${enable_tcap_names+set}" = set; then
   with_tcap_names=$enableval
 else
   with_tcap_names=$with_ext_funcs
   with_tcap_names=$enableval
 else
   with_tcap_names=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_tcap_names" 1>&6
+fi;
+echo "$as_me:5424: result: $with_tcap_names" >&5
+echo "${ECHO_T}$with_tcap_names" >&6
 NCURSES_XNAMES=0
 test "$with_tcap_names" = yes && NCURSES_XNAMES=1
 
 NCURSES_XNAMES=0
 test "$with_tcap_names" = yes && NCURSES_XNAMES=1
 
-
 ###############################################################################
 # These options are relatively safe to experiment with.
 
 ###############################################################################
 # These options are relatively safe to experiment with.
 
-echo $ac_n "checking if you want all development code""... $ac_c" 1>&6
-echo "configure:3864: checking if you want all development code" >&5
+echo "$as_me:5432: 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
 
 # Check whether --with-develop or --without-develop was given.
 if test "${with_develop+set}" = set; then
@@ -3868,31 +5438,13 @@ if test "${with_develop+set}" = set; then
   with_develop=$withval
 else
   with_develop=no
   with_develop=$withval
 else
   with_develop=no
-fi
-
-echo "$ac_t""$with_develop" 1>&6
-
-###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo $ac_n "checking if you want colorfgbg code""... $ac_c" 1>&6
-echo "configure:3878: checking if you want colorfgbg code" >&5
-
-# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
-if test "${enable_hard_tabs+set}" = set; then
-  enableval="$enable_hard_tabs"
-  with_colorfgbg=$enableval
-else
-  with_colorfgbg=$with_develop
-fi
-
-echo "$ac_t""$with_colorfgbg" 1>&6
-test "$with_colorfgbg" = yes && cat >> confdefs.h <<\EOF
-#define USE_COLORFGBG 1
-EOF
-
+fi;
+echo "$as_me:5442: result: $with_develop" >&5
+echo "${ECHO_T}$with_develop" >&6
 
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
 
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo $ac_n "checking if you want hard-tabs code""... $ac_c" 1>&6
-echo "configure:3896: checking if you want hard-tabs code" >&5
+echo "$as_me:5446: 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
 
 # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
 if test "${enable_hard_tabs+set}" = set; then
@@ -3900,16 +5452,15 @@ if test "${enable_hard_tabs+set}" = set; then
   with_hardtabs=$enableval
 else
   with_hardtabs=$with_develop
   with_hardtabs=$enableval
 else
   with_hardtabs=$with_develop
-fi
-
-echo "$ac_t""$with_hardtabs" 1>&6
-test "$with_hardtabs" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5456: result: $with_hardtabs" >&5
+echo "${ECHO_T}$with_hardtabs" >&6
+test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
 #define USE_HARD_TABS 1
 EOF
 
 #define USE_HARD_TABS 1
 EOF
 
-
-echo $ac_n "checking if you want to use restrict environment when running as root""... $ac_c" 1>&6
-echo "configure:3913: checking if you want to use restrict environment when running as root" >&5
+echo "$as_me:5462: 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
 
 # Check whether --enable-root-environ or --disable-root-environ was given.
 if test "${enable_root_environ+set}" = set; then
@@ -3917,17 +5468,16 @@ if test "${enable_root_environ+set}" = set; then
   with_root_environ=$enableval
 else
   with_root_environ=yes
   with_root_environ=$enableval
 else
   with_root_environ=yes
-fi
-
-echo "$ac_t""$with_root_environ" 1>&6
-test "$with_root_environ" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5472: 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
 
 #define USE_ROOT_ENVIRON 1
 EOF
 
-
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo $ac_n "checking if you want limited support for xmc""... $ac_c" 1>&6
-echo "configure:3931: checking if you want limited support for xmc" >&5
+echo "$as_me:5479: 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
 
 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
 if test "${enable_xmc_glitch+set}" = set; then
@@ -3935,20 +5485,18 @@ if test "${enable_xmc_glitch+set}" = set; then
   with_xmc_glitch=$enableval
 else
   with_xmc_glitch=$with_develop
   with_xmc_glitch=$enableval
 else
   with_xmc_glitch=$with_develop
-fi
-
-echo "$ac_t""$with_xmc_glitch" 1>&6
-test "$with_xmc_glitch" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5489: 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
 
 #define USE_XMC_SUPPORT 1
 EOF
 
-
 ###############################################################################
 # These are just experimental, probably should not be in a package:
 
 ###############################################################################
 # These are just experimental, probably should not be in a package:
 
-
-echo $ac_n "checking if you do not want to assume colors are white-on-black""... $ac_c" 1>&6
-echo "configure:3952: checking if you do not want to assume colors are white-on-black" >&5
+echo "$as_me:5498: checking if you do not want to assume colors are white-on-black" >&5
+echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
 
 # Check whether --enable-assumed-color or --disable-assumed-color was given.
 if test "${enable_assumed_color+set}" = set; then
 
 # Check whether --enable-assumed-color or --disable-assumed-color was given.
 if test "${enable_assumed_color+set}" = set; then
@@ -3956,17 +5504,16 @@ if test "${enable_assumed_color+set}" = set; then
   with_assumed_color=$enableval
 else
   with_assumed_color=yes
   with_assumed_color=$enableval
 else
   with_assumed_color=yes
-fi
-
-echo "$ac_t""$with_assumed_color" 1>&6
-test "$with_assumed_color" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5508: 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
 
 #define USE_ASSUMED_COLOR 1
 EOF
 
-
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo $ac_n "checking if you want hashmap scrolling-optimization code""... $ac_c" 1>&6
-echo "configure:3970: checking if you want hashmap scrolling-optimization code" >&5
+echo "$as_me:5515: 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
 
 # Check whether --enable-hashmap or --disable-hashmap was given.
 if test "${enable_hashmap+set}" = set; then
@@ -3974,16 +5521,32 @@ if test "${enable_hashmap+set}" = set; then
   with_hashmap=$enableval
 else
   with_hashmap=yes
   with_hashmap=$enableval
 else
   with_hashmap=yes
-fi
-
-echo "$ac_t""$with_hashmap" 1>&6
-test "$with_hashmap" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5525: result: $with_hashmap" >&5
+echo "${ECHO_T}$with_hashmap" >&6
+test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
 #define USE_HASHMAP 1
 EOF
 
 #define USE_HASHMAP 1
 EOF
 
+###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+echo "$as_me:5532: checking if you want colorfgbg code" >&5
+echo $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:5542: result: $with_colorfgbg" >&5
+echo "${ECHO_T}$with_colorfgbg" >&6
+test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+#define USE_COLORFGBG 1
+EOF
 
 
-echo $ac_n "checking if you want experimental safe-sprintf code""... $ac_c" 1>&6
-echo "configure:3987: checking if you want experimental safe-sprintf code" >&5
+echo "$as_me:5548: 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
 
 # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
 if test "${enable_safe_sprintf+set}" = set; then
@@ -3991,19 +5554,18 @@ if test "${enable_safe_sprintf+set}" = set; then
   with_safe_sprintf=$enableval
 else
   with_safe_sprintf=no
   with_safe_sprintf=$enableval
 else
   with_safe_sprintf=no
-fi
-
-echo "$ac_t""$with_safe_sprintf" 1>&6
-test "$with_safe_sprintf" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5558: 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
 
 #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
 ###   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 $ac_n "checking if you want to experiment without scrolling-hints code""... $ac_c" 1>&6
-echo "configure:4007: checking if you want to experiment without scrolling-hints code" >&5
+echo "$as_me:5567: 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
 
 # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
 if test "${enable_scroll_hints+set}" = set; then
@@ -4011,18 +5573,21 @@ if test "${enable_scroll_hints+set}" = set; then
   with_scroll_hints=$enableval
 else
   with_scroll_hints=yes
   with_scroll_hints=$enableval
 else
   with_scroll_hints=yes
-fi
-
-echo "$ac_t""$with_scroll_hints" 1>&6
-test "$with_scroll_hints" = yes && cat >> confdefs.h <<\EOF
+fi;
+echo "$as_me:5577: 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
 #define USE_SCROLL_HINTS 1
 EOF
 
 fi
 
 ###   use option --enable-widec to turn on use of wide-character support
-echo $ac_n "checking if you want experimental wide-character code""... $ac_c" 1>&6
-echo "configure:4026: checking if you want experimental wide-character code" >&5
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
+NCURSES_MBSTATE_T=0
+echo "$as_me:5589: checking if you want experimental wide-character code" >&5
+echo $ECHO_N "checking if you want experimental wide-character code... $ECHO_C" >&6
 
 # Check whether --enable-widec or --disable-widec was given.
 if test "${enable_widec+set}" = set; then
 
 # Check whether --enable-widec or --disable-widec was given.
 if test "${enable_widec+set}" = set; then
@@ -4030,23 +5595,257 @@ if test "${enable_widec+set}" = set; then
   with_widec=$enableval
 else
   with_widec=no
   with_widec=$enableval
 else
   with_widec=no
-fi
-
-echo "$ac_t""$with_widec" 1>&6
+fi;
+echo "$as_me:5599: result: $with_widec" >&5
+echo "${ECHO_T}$with_widec" >&6
 if test "$with_widec" = yes ; then
        LIB_SUFFIX="w${LIB_SUFFIX}"
 if test "$with_widec" = yes ; then
        LIB_SUFFIX="w${LIB_SUFFIX}"
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define USE_WIDEC_SUPPORT 1
 EOF
 
 #define USE_WIDEC_SUPPORT 1
 EOF
 
+       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+       # with_overwrite=no
+       NCURSES_CH_T=cchar_t
+       echo "$as_me:5610: checking for putwc" >&5
+echo $ECHO_N "checking for putwc... $ECHO_C" >&6
+if test "${ac_cv_func_putwc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 5616 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char putwc (); 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 putwc ();
+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_putwc) || defined (__stub___putwc)
+choke me
+#else
+f = putwc;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5647: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5650: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5653: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5656: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_putwc=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_putwc=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:5666: result: $ac_cv_func_putwc" >&5
+echo "${ECHO_T}$ac_cv_func_putwc" >&6
+
+if test "$ac_cv_func_putwc" != yes ; then
+
+echo "$as_me:5671: 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
+
+       cf_save_LIBS="$LIBS"
+       LIBS="-lutf8 $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5680 "configure"
+#include "confdefs.h"
+
+#include <libutf8.h>
+int
+main ()
+{
+putwc(0,0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5693: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5696: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5699: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5702: \$? = $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"
+
+fi
+echo "$as_me:5714: result: $cf_cv_libutf8" >&5
+echo "${ECHO_T}$cf_cv_libutf8" >&6
+
+if test "$cf_cv_libutf8" = yes ; then
+       cat >>confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
+EOF
+
+       LIBS="-lutf8 $LIBS"
 fi
 
 fi
 
-###############################################################################
+       if test "$cf_cv_libutf8" = yes ; then
+               NCURSES_LIBUTF8=1
+       fi
+fi
+
+# This is needed on Tru64 5.0 to declare mbstate_t
+echo "$as_me:5731: checking if we must include wchar.h to declare mbstate_t" >&5
+echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+if test "${cf_cv_mbstate_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 5738 "configure"
+#include "confdefs.h"
+
+#include <stdlib.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:5754: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:5757: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:5760: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5763: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_mbstate_t=no
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cat >conftest.$ac_ext <<_ACEOF
+#line 5770 "configure"
+#include "confdefs.h"
+
+#include <stdlib.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:5787: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:5790: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:5793: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5796: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_mbstate_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_mbstate_t=unknown
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:5808: 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
+
+fi
+
+if test "$cf_cv_mbstate_t" != unknown ; then
+       cat >>confdefs.h <<\EOF
+#define HAVE_MBSTATE_T 1
+EOF
+
+fi
+
+       if test $cf_cv_mbstate_t = yes ; then
+               NCURSES_MBSTATE_T=1
+       fi
+fi
 
 
+echo "$as_me:5830: checking for terminal capabilities file" >&5
+echo $ECHO_N "checking for terminal capabilities file... $ECHO_C" >&6
+
+# Check whether --with-caps or --without-caps was given.
+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:5841: result: $TERMINFO_CAPS" >&5
+echo "${ECHO_T}$TERMINFO_CAPS" >&6
+
+###############################################################################
 
 ###    use option --disable-echo to suppress full display compiling commands
 
 ###    use option --disable-echo to suppress full display compiling commands
-echo $ac_n "checking if you want to display full commands during build""... $ac_c" 1>&6
-echo "configure:4050: checking if you want to display full commands during build" >&5
+echo "$as_me:5847: 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.
 if test "${enable_echo+set}" = set; then
 
 # Check whether --enable-echo or --disable-echo was given.
 if test "${enable_echo+set}" = set; then
@@ -4054,40 +5853,39 @@ if test "${enable_echo+set}" = set; then
   with_echo=$enableval
 else
   with_echo=yes
   with_echo=$enableval
 else
   with_echo=yes
-fi
-
+fi;
 if test "$with_echo" = yes; then
        ECHO_LINK=
 else
        ECHO_LINK='@ echo linking $@ ... ;'
        test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
 fi
 if test "$with_echo" = yes; then
        ECHO_LINK=
 else
        ECHO_LINK='@ echo linking $@ ... ;'
        test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
 fi
-echo "$ac_t""$with_echo" 1>&6
-
+echo "$as_me:5863: result: $with_echo" >&5
+echo "${ECHO_T}$with_echo" >&6
 
 ###    use option --enable-warnings to turn on all gcc warnings
 
 ###    use option --enable-warnings to turn on all gcc warnings
-echo $ac_n "checking if you want to see compiler warnings""... $ac_c" 1>&6
-echo "configure:4071: checking if you want to see compiler warnings" >&5
+echo "$as_me:5867: 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.
 if test "${enable_warnings+set}" = set; then
   enableval="$enable_warnings"
   with_warnings=$enableval
 
 # Check whether --enable-warnings or --disable-warnings was given.
 if test "${enable_warnings+set}" = set; then
   enableval="$enable_warnings"
   with_warnings=$enableval
-fi
-
-echo "$ac_t""$with_warnings" 1>&6
+fi;
+echo "$as_me:5875: result: $with_warnings" >&5
+echo "${ECHO_T}$with_warnings" >&6
 
 if test -n "$with_warnings"; then
        ADAFLAGS="$ADAFLAGS -gnatg"
 
 if test -n "$with_warnings"; then
        ADAFLAGS="$ADAFLAGS -gnatg"
-       
+
 if test "$GCC" = yes
 then
 if test "$GCC" = yes
 then
-               cat > conftest.$ac_ext <<EOF
-#line 4087 "configure"
+       cat > conftest.$ac_ext <<EOF
+#line 5884 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
-               echo "checking for $CC warning options" 1>&6
-echo "configure:4091: checking for $CC warning options" >&5
+       { echo "$as_me:5887: checking for $CC warning options..." >&5
+echo "$as_me: checking for $CC warning options..." >&6;}
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
@@ -4102,11 +5900,17 @@ echo "configure:4091: checking for $CC warning options" >&5
                Wnested-externs \
                Wpointer-arith \
                Wshadow \
                Wnested-externs \
                Wpointer-arith \
                Wshadow \
-               Wstrict-prototypes $cf_warn_CONST
+               Wstrict-prototypes \
+               Wundef $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo configure:4109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-                       test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
+               if { (eval echo "$as_me:5907: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:5910: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+                       test -n "$verbose" && echo "$as_me:5912: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                        test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
                fi
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                        test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
                fi
@@ -4115,7 +5919,6 @@ echo "configure:4091: checking for $CC warning options" >&5
        CFLAGS="$cf_save_CFLAGS"
 fi
 
        CFLAGS="$cf_save_CFLAGS"
 fi
 
-
 fi
 
 if test "$GCC" = yes
 fi
 
 if test "$GCC" = yes
@@ -4136,10 +5939,10 @@ cat > conftest.i <<EOF
 EOF
 if test "$GCC" = yes
 then
 EOF
 if test "$GCC" = yes
 then
-       echo "checking for $CC __attribute__ directives" 1>&6
-echo "configure:4141: checking for $CC __attribute__ directives" >&5
-       cat > conftest.$ac_ext <<EOF
-#line 4143 "configure"
+       { echo "$as_me:5942: checking for $CC __attribute__ directives..." >&5
+echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+cat > conftest.$ac_ext <<EOF
+#line 5945 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -4158,9 +5961,9 @@ extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern void foo(void) GCC_NORETURN;
 int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
 EOF
 extern void foo(void) GCC_NORETURN;
 int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
 EOF
-               for cf_attribute in scanf printf unused noreturn
+       for cf_attribute in scanf printf unused noreturn
        do
        do
-               
+
 CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
                cf_directive="__attribute__(($cf_attribute))"
 CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
                cf_directive="__attribute__(($cf_attribute))"
@@ -4177,8 +5980,13 @@ EOF
 EOF
                        ;;
                esac
 EOF
                        ;;
                esac
-               if { (eval echo configure:4181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-                       test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
+               if { (eval echo "$as_me:5983: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:5986: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+                       test -n "$verbose" && echo "$as_me:5988: result: ... $cf_attribute" >&5
+echo "${ECHO_T}... $cf_attribute" >&6
                        cat conftest.h >>confdefs.h
 #              else
 #                      sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
                        cat conftest.h >>confdefs.h
 #              else
 #                      sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
@@ -4190,10 +5998,9 @@ fi
 rm -rf conftest*
 fi
 
 rm -rf conftest*
 fi
 
-
 ###    use option --enable-assertions to turn on generation of assertion code
 ###    use option --enable-assertions to turn on generation of assertion code
-echo $ac_n "checking if you want to enable runtime assertions""... $ac_c" 1>&6
-echo "configure:4197: checking if you want to enable runtime assertions" >&5
+echo "$as_me:6002: 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.
 if test "${enable_assertions+set}" = set; then
 
 # Check whether --enable-assertions or --disable-assertions was given.
 if test "${enable_assertions+set}" = set; then
@@ -4201,14 +6008,14 @@ if test "${enable_assertions+set}" = set; then
   with_assertions=$enableval
 else
   with_assertions=no
   with_assertions=$enableval
 else
   with_assertions=no
-fi
-
-echo "$ac_t""$with_assertions" 1>&6
+fi;
+echo "$as_me:6012: result: $with_assertions" >&5
+echo "${ECHO_T}$with_assertions" >&6
 if test -n "$GCC"
 then
        if test "$with_assertions" = no
        then
 if test -n "$GCC"
 then
        if test "$with_assertions" = no
        then
-               cat >> confdefs.h <<\EOF
+               cat >>confdefs.h <<\EOF
 #define NDEBUG 1
 EOF
 
 #define NDEBUG 1
 EOF
 
 # Check whether --enable-leaks or --disable-leaks was given.
 if test "${enable_leaks+set}" = set; then
   enableval="$enable_leaks"
 # Check whether --enable-leaks or --disable-leaks was given.
 if test "${enable_leaks+set}" = set; then
   enableval="$enable_leaks"
-  test "$enableval" = no && cat >> confdefs.h <<\EOF
+  test "$enableval" = no && cat >>confdefs.h <<\EOF
 #define NO_LEAKS 1
 EOF
 
 #define NO_LEAKS 1
 EOF
 
-fi
-
-cat >> confdefs.h <<\EOF
+fi;
+cat >>confdefs.h <<\EOF
 #define HAVE_NC_ALLOC_H 1
 EOF
 
 #define HAVE_NC_ALLOC_H 1
 EOF
 
-
 ###    use option --enable-expanded to generate certain macros as functions
 
 # Check whether --enable-expanded or --disable-expanded was given.
 if test "${enable_expanded+set}" = set; then
   enableval="$enable_expanded"
 ###    use option --enable-expanded to generate certain macros as functions
 
 # Check whether --enable-expanded or --disable-expanded was given.
 if test "${enable_expanded+set}" = set; then
   enableval="$enable_expanded"
-  test "$enableval" = yes && cat >> confdefs.h <<\EOF
+  test "$enableval" = yes && cat >>confdefs.h <<\EOF
 #define NCURSES_EXPANDED 1
 EOF
 
 #define NCURSES_EXPANDED 1
 EOF
 
-fi
-
+fi;
 
 ###    use option --disable-macros to suppress macros in favor of functions
 
 # Check whether --enable-macros or --disable-macros was given.
 if test "${enable_macros+set}" = set; then
   enableval="$enable_macros"
 
 ###    use option --disable-macros to suppress macros in favor of functions
 
 # Check whether --enable-macros or --disable-macros was given.
 if test "${enable_macros+set}" = set; then
   enableval="$enable_macros"
-  test "$enableval" = no && cat >> confdefs.h <<\EOF
+  test "$enableval" = no && cat >>confdefs.h <<\EOF
 #define NCURSES_NOMACROS 1
 EOF
 
 #define NCURSES_NOMACROS 1
 EOF
 
-fi
-
+fi;
 
 ###    Checks for libraries.
 
 ###    Checks for libraries.
-echo $ac_n "checking for gettimeofday""... $ac_c" 1>&6
-echo "configure:4264: checking for gettimeofday" >&5
-if eval "test \"`echo '$''{'ac_cv_func_gettimeofday'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6065: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 4269 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6071 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gettimeofday(); below.  */
+    which can conflict with char gettimeofday (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char gettimeofday();
-
-int main() {
+   builtin and then its argument prototype would still apply.  */
+char gettimeofday ();
+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_gettimeofday) || defined (__stub___gettimeofday)
 choke me
 #else
 /* 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_gettimeofday) || defined (__stub___gettimeofday)
 choke me
 #else
-gettimeofday();
+f = gettimeofday;
 #endif
 
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:4292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_gettimeofday=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_gettimeofday=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'gettimeofday`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6102: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6105: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6108: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6111: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_gettimeofday=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_gettimeofday=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:6121: 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
 #define HAVE_GETTIMEOFDAY 1
 EOF
 
 else
 #define HAVE_GETTIMEOFDAY 1
 EOF
 
 else
-  echo "$ac_t""no" 1>&6
 
 
-
-echo $ac_n "checking for gettimeofday in -lbsd""... $ac_c" 1>&6
-echo "configure:4315: checking for gettimeofday in -lbsd" >&5
-ac_lib_var=`echo bsd'_'gettimeofday | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6130: 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
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbsd  $LIBS"
 LIBS="-lbsd  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4323 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6138 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char gettimeofday();
-
-int main() {
-gettimeofday()
-; return 0; }
-EOF
-if { (eval echo configure:4334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+   builtin and then its argument prototype would still apply.  */
+char gettimeofday ();
+int
+main ()
+{
+gettimeofday ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6157: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6160: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6163: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6166: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bsd_gettimeofday=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_bsd_gettimeofday=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6177: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+if test $ac_cv_lib_bsd_gettimeofday = yes; then
+  cat >>confdefs.h <<\EOF
 #define HAVE_GETTIMEOFDAY 1
 EOF
 
        LIBS="$LIBS -lbsd"
 #define HAVE_GETTIMEOFDAY 1
 EOF
 
        LIBS="$LIBS -lbsd"
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
 fi
 
 fi
 
-
-echo $ac_n "checking if -lm needed for math functions""... $ac_c" 1>&6
-echo "configure:4362: checking if -lm needed for math functions" >&5
-if eval "test \"`echo '$''{'cf_cv_need_libm'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6189: 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
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 4368 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 6196 "configure"
 #include "confdefs.h"
 
        #include <stdio.h>
        #include <math.h>
 #include "confdefs.h"
 
        #include <stdio.h>
        #include <math.h>
-       
-int main() {
+
+int
+main ()
+{
 double x = rand(); printf("result = %g\n", sin(x))
 double x = rand(); printf("result = %g\n", sin(x))
-; return 0; }
-EOF
-if { (eval echo configure:4378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6211: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6214: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6217: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6220: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_need_libm=no
 else
   cf_cv_need_libm=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_need_libm=yes
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_need_libm=yes
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$cf_cv_need_libm" 1>&6
+echo "$as_me:6230: result: $cf_cv_need_libm" >&5
+echo "${ECHO_T}$cf_cv_need_libm" >&6
 if test "$cf_cv_need_libm" = yes
 then
 MATH_LIB=-lm
 fi
 
 if test "$cf_cv_need_libm" = yes
 then
 MATH_LIB=-lm
 fi
 
-
-
 ###    Checks for header files.
 ###    Checks for header files.
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:4400: 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
+
+echo "$as_me:6239: checking if we must define _GNU_SOURCE" >&5
+echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+if test "${cf_cv_gnu_source+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  cat > conftest.$ac_ext <<EOF
-#line 4405 "configure"
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 6246 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
+
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6261: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6264: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6267: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6270: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_gnu_source=no
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+        cat >conftest.$ac_ext <<_ACEOF
+#line 6279 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
+
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6294: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6297: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6300: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6303: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_gnu_source=no
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_gnu_source=yes
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+       CPPFLAGS="$cf_save"
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:6318: result: $cf_cv_gnu_source" >&5
+echo "${ECHO_T}$cf_cv_gnu_source" >&6
+test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+
+echo "$as_me:6322: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6328 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4413: \"$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*
+
+_ACEOF
+if { (eval echo "$as_me:6336: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:6342: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   ac_cv_header_stdc=yes
 else
   ac_cv_header_stdc=yes
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
   ac_cv_header_stdc=no
 fi
-rm -f conftest*
+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.
 
 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 4430 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6364 "configure"
 #include "confdefs.h"
 #include <string.h>
 #include "confdefs.h"
 #include <string.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
   :
 else
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
   :
 else
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
@@ -4443,16 +6378,16 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 
 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 4448 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6382 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include "confdefs.h"
 #include <stdlib.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
   :
 else
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
   :
 else
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then
   :
 else
   :
 else
-  cat > conftest.$ac_ext <<EOF
-#line 4469 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6403 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #include "confdefs.h"
 #include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+                     || ('j' <= (c) && (c) <= 'r') \
+                     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
 
-EOF
-if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+        || toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:6429: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6432: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:6434: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6437: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   :
 else
   :
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_header_stdc=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_header_stdc=no
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
 fi
 fi
 fi
 fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
+echo "$as_me:6450: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 if test $ac_cv_header_stdc = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define STDC_HEADERS 1
 EOF
 
 fi
 
 ac_header_dirent=no
 #define STDC_HEADERS 1
 EOF
 
 fi
 
 ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:4508: checking for $ac_hdr that defines DIR" >&5
-if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4513 "configure"
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:6463: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6469 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
-int main() {
-DIR *dirp = 0;
-; return 0; }
-EOF
-if { (eval echo configure:4521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=yes"
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6484: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6487: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6490: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6493: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:6503: 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_hdr" | $as_tr_cpp` 1
 EOF
 EOF
- ac_header_dirent=$ac_hdr; break
-else
-  echo "$ac_t""no" 1>&6
+
+ac_header_dirent=$ac_hdr; break
 fi
 fi
+
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:4546: checking for opendir in -ldir" >&5
-ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:6516: 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
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldir  $LIBS"
 LIBS="-ldir  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4554 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6524 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:4565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6543: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6546: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6549: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6552: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dir_opendir=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dir_opendir=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6563: result: $ac_cv_lib_dir_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+if test $ac_cv_lib_dir_opendir = yes; then
   LIBS="$LIBS -ldir"
   LIBS="$LIBS -ldir"
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 else
 fi
 
 else
-echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:4587: checking for opendir in -lx" >&5
-ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:6570: 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
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lx  $LIBS"
 LIBS="-lx  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4595 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6578 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:4606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6597: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6600: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6603: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6606: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_x_opendir=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_x_opendir=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6617: result: $ac_cv_lib_x_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+if test $ac_cv_lib_x_opendir = yes; then
+  LIBS="$LIBS -lx"
 fi
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
 fi
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lx"
+
+echo "$as_me:6625: 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
 else
-  echo "$ac_t""no" 1>&6
-fi
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6631 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
 
 
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6647: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6650: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6653: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6656: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_time=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_header_time=no
 fi
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:6666: result: $ac_cv_header_time" >&5
+echo "${ECHO_T}$ac_cv_header_time" >&6
+if test $ac_cv_header_time = yes; then
+
+cat >>confdefs.h <<\EOF
+#define TIME_WITH_SYS_TIME 1
+EOF
 
 
+fi
 
 
-echo $ac_n "checking for regular-expression headers""... $ac_c" 1>&6
-echo "configure:4630: checking for regular-expression headers" >&5
-if eval "test \"`echo '$''{'cf_cv_regex'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6676: 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
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 4636 "configure"
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 6683 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
-int main() {
+int
+main ()
+{
 
        regex_t *p;
        int x = regcomp(p, "", 0);
        int y = regexec(p, "", 0, 0, 0);
        regfree(p);
 
        regex_t *p;
        int x = regcomp(p, "", 0);
        int y = regexec(p, "", 0, 0, 0);
        regfree(p);
-       
-; return 0; }
-EOF
-if { (eval echo configure:4649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6701: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6704: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6707: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6710: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_regex="regex.h"
 else
   cf_cv_regex="regex.h"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-       cat > conftest.$ac_ext <<EOF
-#line 4658 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 6718 "configure"
 #include "confdefs.h"
 #include <regexp.h>
 #include "confdefs.h"
 #include <regexp.h>
-int main() {
+int
+main ()
+{
 
                char *p = compile("", "", "", 0);
                int x = step("", "");
 
                char *p = compile("", "", "", 0);
                int x = step("", "");
-       
-; return 0; }
-EOF
-if { (eval echo configure:4668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6733: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6736: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6739: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6742: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_regex="regexp.h"
 else
   cf_cv_regex="regexp.h"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
                cf_save_LIBS="$LIBS"
                LIBS="-lgen $LIBS"
                cf_save_LIBS="$LIBS"
                LIBS="-lgen $LIBS"
-               cat > conftest.$ac_ext <<EOF
-#line 4679 "configure"
+               cat >conftest.$ac_ext <<_ACEOF
+#line 6752 "configure"
 #include "confdefs.h"
 #include <regexpr.h>
 #include "confdefs.h"
 #include <regexpr.h>
-int main() {
+int
+main ()
+{
 
                        char *p = compile("", "", "");
                        int x = step("", "");
 
                        char *p = compile("", "", "");
                        int x = step("", "");
-               
-; return 0; }
-EOF
-if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6767: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6770: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6773: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6776: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_regex="regexpr.h"
 else
   cf_cv_regex="regexpr.h"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  LIBS="$cf_save_LIBS"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+LIBS="$cf_save_LIBS"
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 
 fi
 
-echo "$ac_t""$cf_cv_regex" 1>&6
+echo "$as_me:6792: result: $cf_cv_regex" >&5
+echo "${ECHO_T}$cf_cv_regex" >&6
 case $cf_cv_regex in
 case $cf_cv_regex in
-       regex.h)   cat >> confdefs.h <<\EOF
+       regex.h)   cat >>confdefs.h <<\EOF
 #define HAVE_REGEX_H_FUNCS 1
 EOF
  ;;
 #define HAVE_REGEX_H_FUNCS 1
 EOF
  ;;
-       regexp.h)  cat >> confdefs.h <<\EOF
+       regexp.h)  cat >>confdefs.h <<\EOF
 #define HAVE_REGEXP_H_FUNCS 1
 EOF
  ;;
 #define HAVE_REGEXP_H_FUNCS 1
 EOF
  ;;
-       regexpr.h) cat >> confdefs.h <<\EOF
+       regexpr.h) cat >>confdefs.h <<\EOF
 #define HAVE_REGEXPR_H_FUNCS 1
 EOF
  ;;
 esac
 
 #define HAVE_REGEXPR_H_FUNCS 1
 EOF
  ;;
 esac
 
-
-for ac_hdr in \
+for ac_header in \
 fcntl.h \
 getopt.h \
 libc.h \
 fcntl.h \
 getopt.h \
 libc.h \
@@ -4737,141 +6824,169 @@ ttyent.h \
 unistd.h \
 
 do
 unistd.h \
 
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4743: 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 4748 "configure"
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:6828: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6834 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4753: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:6838: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:6844: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:6863: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 EOF
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
 fi
 done
 
-
 # check for ISC (this may also define _POSIX_SOURCE)
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 if test "$ISC" = yes ; then
 # check for ISC (this may also define _POSIX_SOURCE)
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 if test "$ISC" = yes ; then
-       echo $ac_n "checking for main in -lcposix""... $ac_c" 1>&6
-echo "configure:4784: checking for main in -lcposix" >&5
-ac_lib_var=`echo cposix'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:6877: 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
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcposix  $LIBS"
 LIBS="-lcposix  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4792 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6885 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo cposix | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6897: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6900: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6903: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6906: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_cposix_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_cposix_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6917: result: $ac_cv_lib_cposix_main" >&5
+echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
+if test $ac_cv_lib_cposix_main = yes; then
+  cat >>confdefs.h <<EOF
+#define HAVE_LIBCPOSIX 1
 EOF
 
   LIBS="-lcposix $LIBS"
 
 EOF
 
   LIBS="-lcposix $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-       echo $ac_n "checking for bzero in -linet""... $ac_c" 1>&6
-echo "configure:4827: checking for bzero in -linet" >&5
-ac_lib_var=`echo inet'_'bzero | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+       echo "$as_me:6928: 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
 else
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-linet  $LIBS"
 LIBS="-linet  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4835 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6936 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char bzero();
-
-int main() {
-bzero()
-; return 0; }
-EOF
-if { (eval echo configure:4846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+   builtin and then its argument prototype would still apply.  */
+char bzero ();
+int
+main ()
+{
+bzero ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6955: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6958: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6961: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6964: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_inet_bzero=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_inet_bzero=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6975: result: $ac_cv_lib_inet_bzero" >&5
+echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
+if test $ac_cv_lib_inet_bzero = yes; then
   LIBS="$LIBS -linet"
   LIBS="$LIBS -linet"
-else
-  echo "$ac_t""no" 1>&6
 fi
 fi
 
 fi
 fi
 
-
-echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:4869: 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
+echo "$as_me:6982: 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
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 4875 "configure"
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 6989 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -4882,201 +6997,343 @@ cat > conftest.$ac_ext <<EOF
 #include <sys/select.h>
 #endif
 
 #include <sys/select.h>
 #endif
 
-int main() {
+int
+main ()
+{
 
 
-; return 0; }
-EOF
-if { (eval echo configure:4890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7009: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7012: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7015: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7018: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_sys_time_select=yes
 else
   cf_cv_sys_time_select=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_sys_time_select=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_sys_time_select=no
 fi
 fi
-rm -f conftest*
-     
+rm -f conftest.$ac_objext conftest.$ac_ext
+
 fi
 
 fi
 
-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
+echo "$as_me:7030: result: $cf_cv_sys_time_select" >&5
+echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_SYS_TIME_SELECT 1
 EOF
 
 #define HAVE_SYS_TIME_SELECT 1
 EOF
 
-
-
 ###    checks for compiler characteristics
 ac_ext=c
 ###    checks for compiler characteristics
 ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4919: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4924 "configure"
+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:7043: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line 7051 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this.  */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this.  */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
-   It does not let you subtract one const X* pointer from another in an arm
-   of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this.  */
-  char *t;
-  char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-  *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-  int x[] = {25, 17};
-  const int *foo = &x[0];
-  ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-  typedef const int *iptr;
-  iptr p = 0;
-  ++p;
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
 }
 }
-{ /* AIX XL C 1.02.0.0 rejects this saying
-     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-  struct s { int j; const int *ap[3]; };
-  struct s *b; b->j = 5;
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
 }
 }
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-  const int foo = 10;
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
 }
 }
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX 10.20 and later        -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7100: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7103: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7106: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7109: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:7126: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:7129: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+echo "$as_me:7134: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7140 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset x;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *ccp;
+  char **p;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  ccp = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++ccp;
+  p = (char**) ccp;
+  ccp = (char const *const *) p;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+  }
+#endif
 
 
-; return 0; }
-EOF
-if { (eval echo configure:4973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7198: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7201: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7204: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7207: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
   ac_cv_c_const=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_const=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_const=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
+echo "$as_me:7217: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
 if test $ac_cv_c_const = no; then
-  cat >> confdefs.h <<\EOF
-#define const 
+
+cat >>confdefs.h <<\EOF
+#define const
 EOF
 
 fi
 
 EOF
 
 fi
 
-echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:4994: checking for inline" >&5
-if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7227: 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
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
-  cat > conftest.$ac_ext <<EOF
-#line 5001 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7235 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+#ifndef __cplusplus
+static $ac_kw int static_foo () {return 0; }
+$ac_kw int foo () {return 0; }
+#endif
 
 
-int main() {
-} $ac_kw foo() {
-; return 0; }
-EOF
-if { (eval echo configure:5008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7244: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7247: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7250: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7253: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_c_inline=$ac_kw; break
 else
   ac_cv_c_inline=$ac_kw; break
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 done
 
 fi
 done
 
 fi
-
-echo "$ac_t""$ac_cv_c_inline" 1>&6
-case "$ac_cv_c_inline" in
+echo "$as_me:7264: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6
+case $ac_cv_c_inline in
   inline | yes) ;;
   inline | yes) ;;
-  no) cat >> confdefs.h <<\EOF
-#define inline 
+  no)
+cat >>confdefs.h <<\EOF
+#define inline
 EOF
  ;;
 EOF
  ;;
-  *)  cat >> confdefs.h <<EOF
+  *)  cat >>confdefs.h <<EOF
 #define inline $ac_cv_c_inline
 EOF
  ;;
 esac
 
 #define inline $ac_cv_c_inline
 EOF
  ;;
 esac
 
-test "$ac_cv_c_inline" != no && cat >> confdefs.h <<\EOF
+test "$ac_cv_c_inline" != no && cat >>confdefs.h <<\EOF
 #define CC_HAS_INLINE_FUNCS 1
 EOF
 
 #define CC_HAS_INLINE_FUNCS 1
 EOF
 
-
-
-echo $ac_n "checking if unsigned literals are legal""... $ac_c" 1>&6
-echo "configure:5040: checking if unsigned literals are legal" >&5
-if eval "test \"`echo '$''{'cf_cv_unsigned_literals'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7283: 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
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 5046 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 7290 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-int main() {
+int
+main ()
+{
 long x = 1L + 1UL + 1U + 1
 long x = 1L + 1UL + 1U + 1
-; return 0; }
-EOF
-if { (eval echo configure:5053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7302: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7305: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7308: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7311: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_unsigned_literals=yes
 else
   cf_cv_unsigned_literals=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_unsigned_literals=no
-fi
-rm -f conftest*
-       
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_unsigned_literals=no
 fi
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 
-echo "$ac_t""$cf_cv_unsigned_literals" 1>&6
-
+fi
 
 
+echo "$as_me:7323: result: $cf_cv_unsigned_literals" >&5
+echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
 
 
-echo $ac_n "checking for type of chtype""... $ac_c" 1>&6
-echo "configure:5071: checking for type of chtype" >&5
-if eval "test \"`echo '$''{'cf_cv_typeof_chtype'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7326: 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
 else
 else
-  
+
                if test "$cross_compiling" = yes; then
   cf_cv_typeof_chtype=long
 else
                if test "$cross_compiling" = yes; then
   cf_cv_typeof_chtype=long
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5080 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7336 "configure"
 #include "confdefs.h"
 
 #ifdef USE_WIDEC_SUPPORT
 #include "confdefs.h"
 
 #ifdef USE_WIDEC_SUPPORT
@@ -5120,127 +7377,53 @@ int main()
        }
        exit(0);
 }
        }
        exit(0);
 }
-               
-EOF
-if { (eval echo configure:5126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:7383: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7386: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:7388: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7391: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_typeof_chtype=`cat cf_test.out`
 else
   cf_cv_typeof_chtype=`cat cf_test.out`
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_typeof_chtype=long
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_typeof_chtype=long
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
                rm -f cf_test.out
                rm -f cf_test.out
-       
-fi
 
 
-echo "$ac_t""$cf_cv_typeof_chtype" 1>&6
+fi
 
 
+echo "$as_me:7406: result: $cf_cv_typeof_chtype" >&5
+echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
 
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<EOF
 #define TYPEOF_CHTYPE $cf_cv_typeof_chtype
 EOF
 
 #define TYPEOF_CHTYPE $cf_cv_typeof_chtype
 EOF
 
-
 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"
 
 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"
 
-
-
-
-
-echo $ac_n "checking for number of bits in chtype""... $ac_c" 1>&6
-echo "configure:5159: checking for number of bits in chtype" >&5
-if eval "test \"`echo '$''{'cf_cv_shift_limit'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-       if test "$cross_compiling" = yes; then
-  cf_cv_shift_limit=32
-else
-  cat > conftest.$ac_ext <<EOF
-#line 5168 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-int main()
-{
-       FILE *fp = fopen("cf_test.out", "w");
-       if (fp != 0) {
-               int n;
-               unsigned TYPEOF_CHTYPE x = 1L;
-               for (n = 0; ; n++) {
-                       unsigned long y = (x >> n);
-                       if (y != 1 || x == 0)
-                               break;
-                       x <<= 1;
-               }
-               fprintf(fp, "%d", n);
-               fclose(fp);
-       }
-       exit(0);
-}
-               
-EOF
-if { (eval echo configure:5191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  cf_cv_shift_limit=`cat cf_test.out`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_shift_limit=32
-fi
-rm -fr conftest*
-fi
-
-               rm -f cf_test.out
-       
-fi
-
-echo "$ac_t""$cf_cv_shift_limit" 1>&6
-
-
-echo $ac_n "checking for width of character-index""... $ac_c" 1>&6
-echo "configure:5211: checking for width of character-index" >&5
-if eval "test \"`echo '$''{'cf_cv_widec_shift'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-if test ".$with_widec" = ".yes" ; then
-       cf_attrs_width=39
-       if ( expr $cf_cv_shift_limit \> $cf_attrs_width >/dev/null )
-       then
-               cf_cv_widec_shift=`expr 16 + $cf_cv_shift_limit - $cf_attrs_width`
-       else
-               cf_cv_widec_shift=16
-       fi
-else
-       cf_cv_widec_shift=8
-fi
-
-fi
-
-echo "$ac_t""$cf_cv_widec_shift" 1>&6
-
-
-
 ###    Checks for external-data
 
 ###    Checks for external-data
 
-
-echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
-echo "configure:5238: checking if external errno is declared" >&5
-if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7419: 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
 else
-  
-    cat > conftest.$ac_ext <<EOF
-#line 5244 "configure"
+
+    cat >conftest.$ac_ext <<_ACEOF
+#line 7426 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -5248,34 +7431,44 @@ else
 #endif
 #include <stdio.h>
 #include <sys/types.h>
 #endif
 #include <stdio.h>
 #include <sys/types.h>
-#include <errno.h> 
-int main() {
+#include <errno.h>
+int
+main ()
+{
 long x = (long) errno
 long x = (long) errno
-; return 0; }
-EOF
-if { (eval echo configure:5257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_dcl_'errno'=yes'
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7444: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7447: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7450: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7453: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_dcl_errno=yes
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_dcl_'errno'=no'
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_dcl_errno=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 fi
+echo "$as_me:7464: result: $cf_cv_dcl_errno" >&5
+echo "${ECHO_T}$cf_cv_dcl_errno" >&6
 
 
+if test "$cf_cv_dcl_errno" = no ; then
 
 
-eval 'cf_result=$cf_cv_dcl_'errno
-echo "$ac_t""$cf_result" 1>&6
+cf_result=`echo "decl_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 
-if test "$cf_result" = no ; then
-    eval 'cf_result=DECL_'errno
-    
-cf_result=`echo "$cf_result" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-    cat >> confdefs.h <<EOF
+    cat >>confdefs.h <<EOF
 #define $cf_result 1
 EOF
 
 #define $cf_result 1
 EOF
 
@@ -5283,72 +7476,83 @@ fi
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
-echo $ac_n "checking if external errno exists""... $ac_c" 1>&6
-echo "configure:5288: checking if external errno exists" >&5
-if eval "test \"`echo '$''{'cf_cv_have_errno'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7479: 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
 else
-  
-    cat > conftest.$ac_ext <<EOF
-#line 5294 "configure"
+
+    cat >conftest.$ac_ext <<_ACEOF
+#line 7486 "configure"
 #include "confdefs.h"
 
 #undef errno
 extern int errno;
 
 #include "confdefs.h"
 
 #undef errno
 extern int errno;
 
-int main() {
+int
+main ()
+{
 errno = 2
 errno = 2
-; return 0; }
-EOF
-if { (eval echo configure:5304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval 'cf_cv_have_'errno'=yes'
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7501: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7504: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7507: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7510: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_have_errno=yes
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_have_'errno'=no'
-fi
-rm -f conftest*
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_have_errno=no
 fi
 fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 
+fi
+echo "$as_me:7521: result: $cf_cv_have_errno" >&5
+echo "${ECHO_T}$cf_cv_have_errno" >&6
 
 
-eval 'cf_result=$cf_cv_have_'errno
-echo "$ac_t""$cf_result" 1>&6
+if test "$cf_cv_have_errno" = yes ; then
 
 
-if test "$cf_result" = yes ; then
-    eval 'cf_result=HAVE_'errno
-    
-cf_result=`echo "$cf_result" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_result=`echo "have_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 
-    cat >> confdefs.h <<EOF
+    cat >>confdefs.h <<EOF
 #define $cf_result 1
 EOF
 
 fi
 
 #define $cf_result 1
 EOF
 
 fi
 
-
-
-
-
-echo $ac_n "checking if data-only library module links""... $ac_c" 1>&6
-echo "configure:5336: checking if data-only library module links" >&5
-if eval "test \"`echo '$''{'cf_cv_link_dataonly'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7534: 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
 else
 else
-  
+
        rm -f conftest.a
        rm -f conftest.a
-               cat >conftest.$ac_ext <<EOF
-#line 5343 "configure"
+       cat >conftest.$ac_ext <<EOF
+#line 7542 "configure"
 int    testdata[3] = { 123, 456, 789 };
 EOF
 int    testdata[3] = { 123, 456, 789 };
 EOF
-               if { (eval echo configure:5346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } ; then
+       if { (eval echo "$as_me:7545: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7548: \$? = $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
                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 5352 "configure"
+       cat >conftest.$ac_ext <<EOF
+#line 7555 "configure"
 int    testfunc()
 {
 #if defined(NeXT)
 int    testfunc()
 {
 #if defined(NeXT)
@@ -5361,7 +7565,11 @@ int      testfunc()
 #endif
 }
 EOF
 #endif
 }
 EOF
-               if { (eval echo configure:5365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+       if { (eval echo "$as_me:7568: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7571: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
                mv conftest.o func.o && \
                ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
        fi
                mv conftest.o func.o && \
                ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
        fi
@@ -5372,8 +7580,8 @@ EOF
        if test "$cross_compiling" = yes; then
   cf_cv_link_dataonly=unknown
 else
        if test "$cross_compiling" = yes; then
   cf_cv_link_dataonly=unknown
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5377 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7584 "configure"
 #include "confdefs.h"
 
        int main()
 #include "confdefs.h"
 
        int main()
@@ -5381,32 +7589,45 @@ else
                extern int testfunc();
                exit (!testfunc());
        }
                extern int testfunc();
                exit (!testfunc());
        }
-       
-EOF
-if { (eval echo configure:5387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:7595: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7598: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:7600: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7603: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_link_dataonly=yes
 else
   cf_cv_link_dataonly=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_link_dataonly=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_link_dataonly=no
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
        LIBS="$cf_saveLIBS"
        LIBS="$cf_saveLIBS"
-       
+
 fi
 
 fi
 
-echo "$ac_t""$cf_cv_link_dataonly" 1>&6
-test "$cf_cv_link_dataonly" = no && cat >> confdefs.h <<\EOF
+echo "$as_me:7618: result: $cf_cv_link_dataonly" >&5
+echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+
+if test "$cf_cv_link_dataonly" = no ; then
+       cat >>confdefs.h <<\EOF
 #define BROKEN_LINKER 1
 EOF
 
 #define BROKEN_LINKER 1
 EOF
 
-
+       BROKEN_LINKER=1
+fi
 
 ###    Checks for library functions.
 
 ###    Checks for library functions.
+
 for ac_func in \
 getcwd \
 getegid \
 for ac_func in \
 getcwd \
 getegid \
@@ -5414,7 +7635,6 @@ geteuid \
 getttynam \
 issetugid \
 memccpy \
 getttynam \
 issetugid \
 memccpy \
-mkstemp \
 nanosleep \
 poll \
 remove \
 nanosleep \
 poll \
 remove \
@@ -5428,78 +7648,92 @@ strdup \
 strstr \
 tcgetpgrp \
 times \
 strstr \
 tcgetpgrp \
 times \
-vfscanf \
 vsnprintf \
 vsnprintf \
-vsscanf \
 
 do
 
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5438: 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 5443 "configure"
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:7655: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7661 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* 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();
-
-int main() {
+   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
 /* 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
-$ac_func();
+f = $ac_func;
 #endif
 
 #endif
 
-; return 0; }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7692: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7695: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7698: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7701: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7711: 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
 EOF
-if { (eval echo configure:5466: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
 
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
 fi
 done
 
 if test "$with_getcap" = "yes" ; then
 fi
 done
 
 if test "$with_getcap" = "yes" ; then
-       
-echo $ac_n "checking for terminal-capability database functions""... $ac_c" 1>&6
-echo "configure:5493: checking for terminal-capability database functions" >&5
-if eval "test \"`echo '$''{'cf_cv_cgetent'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:7723: 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
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 5499 "configure"
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 7730 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
 #include "confdefs.h"
 
 #include <stdlib.h>
-int main() {
+int
+main ()
+{
 
        char temp[128];
        char *buf = temp;
 
        char temp[128];
        char *buf = temp;
@@ -5507,325 +7741,720 @@ int main() {
        cgetent(&buf, /* int *, */ &db_array, "vt100");
        cgetcap(buf, "tc", '=');
        cgetmatch(buf, "tc");
        cgetent(&buf, /* int *, */ &db_array, "vt100");
        cgetcap(buf, "tc", '=');
        cgetmatch(buf, "tc");
-       
-; return 0; }
-EOF
-if { (eval echo configure:5514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7750: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7753: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7756: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7759: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_cgetent=yes
 else
   cf_cv_cgetent=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_cgetent=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cgetent=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 
 fi
 
-echo "$ac_t""$cf_cv_cgetent" 1>&6
-test "$cf_cv_cgetent" = yes && cat >> confdefs.h <<\EOF
+echo "$as_me:7771: 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
 EOF
 
 #define HAVE_BSD_CGETENT 1
 EOF
 
-
 fi
 
 fi
 
-
-echo $ac_n "checking for isascii""... $ac_c" 1>&6
-echo "configure:5537: checking for isascii" >&5
-if eval "test \"`echo '$''{'cf_cv_have_isascii'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:7779: 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
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 5543 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 7786 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #include "confdefs.h"
 #include <ctype.h>
-int main() {
+int
+main ()
+{
 int x = isascii(' ')
 int x = isascii(' ')
-; return 0; }
-EOF
-if { (eval echo configure:5550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7798: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7801: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7804: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7807: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_have_isascii=yes
 else
   cf_cv_have_isascii=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_have_isascii=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_have_isascii=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 fi
-echo "$ac_t""$cf_cv_have_isascii" 1>&6
-test "$cf_cv_have_isascii" = yes && cat >> confdefs.h <<\EOF
+echo "$as_me:7818: 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
 
 #define HAVE_ISASCII 1
 EOF
 
-
-
 if test "$ac_cv_func_sigaction" = yes; then
 if test "$ac_cv_func_sigaction" = yes; then
-echo $ac_n "checking whether sigaction needs _POSIX_SOURCE""... $ac_c" 1>&6
-echo "configure:5571: checking whether sigaction needs _POSIX_SOURCE" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5573 "configure"
+echo "$as_me:7825: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 7828 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include <signal.h>
-int main() {
+int
+main ()
+{
 struct sigaction act
 struct sigaction act
-; return 0; }
-EOF
-if { (eval echo configure:5582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7842: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7845: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7848: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7851: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   sigact_bad=no
 else
   sigact_bad=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-cat > conftest.$ac_ext <<EOF
-#line 5591 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 7859 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
 #include <sys/types.h>
 #include <signal.h>
-int main() {
+int
+main ()
+{
 struct sigaction act
 struct sigaction act
-; return 0; }
-EOF
-if { (eval echo configure:5601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7874: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7877: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7880: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7883: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   sigact_bad=yes
   sigact_bad=yes
-        cat >> confdefs.h <<\EOF
+        cat >>confdefs.h <<\EOF
 #define SVR4_ACTION 1
 EOF
 
 else
 #define SVR4_ACTION 1
 EOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  sigact_bad=unknown
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+sigact_bad=unknown
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-rm -f conftest*
-echo "$ac_t""$sigact_bad" 1>&6
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:7898: result: $sigact_bad" >&5
+echo "${ECHO_T}$sigact_bad" >&6
 fi
 
 fi
 
-
-for ac_hdr in \
+for ac_header in \
 termio.h \
 termios.h \
 unistd.h \
 
 do
 termio.h \
 termios.h \
 unistd.h \
 
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5629: 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 5634 "configure"
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:7909: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7915 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:7919: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:7925: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:7944: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 EOF
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
 if test "$ISC" = yes ; then
 fi
 done
 
 if test "$ISC" = yes ; then
-       for ac_hdr in sys/termio.h 
+
+for ac_header in sys/termio.h
 do
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5670: 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 5675 "configure"
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:7959: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7965 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:7969: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:7975: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:7994: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 EOF
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
 fi
 if test "$ac_cv_header_termios_h" = yes ; then
 fi
 done
 
 fi
 if test "$ac_cv_header_termios_h" = yes ; then
-       case "$CFLAGS" in
+       case "$CFLAGS $CPPFLAGS" in
        *-D_POSIX_SOURCE*)
                termios_bad=dunno ;;
        *)      termios_bad=maybe ;;
        esac
        if test "$termios_bad" = maybe ; then
        *-D_POSIX_SOURCE*)
                termios_bad=dunno ;;
        *)      termios_bad=maybe ;;
        esac
        if test "$termios_bad" = maybe ; then
-       echo $ac_n "checking whether termios.h needs _POSIX_SOURCE""... $ac_c" 1>&6
-echo "configure:5715: checking whether termios.h needs _POSIX_SOURCE" >&5
-       cat > conftest.$ac_ext <<EOF
-#line 5717 "configure"
+       echo "$as_me:8012: checking whether termios.h needs _POSIX_SOURCE" >&5
+echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
+       cat >conftest.$ac_ext <<_ACEOF
+#line 8015 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #include "confdefs.h"
 #include <termios.h>
-int main() {
+int
+main ()
+{
 struct termios foo; int x = foo.c_iflag
 struct termios foo; int x = foo.c_iflag
-; return 0; }
-EOF
-if { (eval echo configure:5724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8030: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:8033: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8036: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   termios_bad=no
 else
   termios_bad=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-               cat > conftest.$ac_ext <<EOF
-#line 5733 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+               cat >conftest.$ac_ext <<_ACEOF
+#line 8044 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
 #include <termios.h>
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
 #include <termios.h>
-int main() {
+int
+main ()
+{
 struct termios foo; int x = foo.c_iflag
 struct termios foo; int x = foo.c_iflag
-; return 0; }
-EOF
-if { (eval echo configure:5742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8058: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8061: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:8064: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8067: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   termios_bad=unknown
 else
   termios_bad=unknown
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  termios_bad=yes cat >> confdefs.h <<\EOF
-#define SVR4_TERMIO 1
-EOF
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+termios_bad=yes cat >>confdefs.h <<\EOF
+#define SVR4_TERMIO 1
+EOF
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+       echo "$as_me:8082: result: $termios_bad" >&5
+echo "${ECHO_T}$termios_bad" >&6
+       fi
+fi
+
+echo "$as_me:8087: checking for tcgetattr" >&5
+echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
+if test "${cf_cv_have_tcgetattr+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 8094 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#define TTY struct termios
+#else
+#ifdef HAVE_TERMIO_H
+#include <termio.h>
+#define TTY struct termio
+#endif
+#endif
+
+int
+main ()
+{
+
+TTY foo;
+tcgetattr(1, &foo);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8122: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8125: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8128: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8131: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_have_tcgetattr=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_have_tcgetattr=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8141: result: $cf_cv_have_tcgetattr" >&5
+echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
+test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
+#define HAVE_TCGETATTR 1
+EOF
+
+echo "$as_me:8147: checking for vsscanf function or workaround" >&5
+echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
+if test "${cf_cv_func_vsscanf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 8154 "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+int
+main ()
+{
+
+       va_list ap;
+       vsscanf("from", "%d", ap)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8170: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8173: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8176: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8179: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_func_vsscanf=vsscanf
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 8187 "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+int
+main ()
+{
+
+    FILE strbuf;
+    char *str = "from";
+
+    strbuf._flag = _IOREAD;
+    strbuf._ptr = strbuf._base = (unsigned char *) str;
+    strbuf._cnt = strlen(str);
+    strbuf._file = _NFILE;
+    return (vfscanf(&strbuf, "%d", ap))
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8209: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8212: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8215: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8218: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_func_vsscanf=vfscanf
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 8226 "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+int
+main ()
+{
+
+    FILE strbuf;
+    char *str = "from";
+
+    strbuf._flag = _IOREAD;
+    strbuf._ptr = strbuf._base = (unsigned char *) str;
+    strbuf._cnt = strlen(str);
+    strbuf._file = _NFILE;
+    return (_doscan(&strbuf, "%d", ap))
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8248: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8251: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8254: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8257: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_func_vsscanf=_doscan
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 
 
+cf_cv_func_vsscanf=no
 fi
 fi
-rm -f conftest*
-                       
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 fi
-rm -f conftest*
-       echo "$ac_t""$termios_bad" 1>&6
-       fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8272: result: $cf_cv_func_vsscanf" >&5
+echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
 
 
+case $cf_cv_func_vsscanf in #(vi
+vsscanf) cat >>confdefs.h <<\EOF
+#define HAVE_VSSCANF 1
+EOF
+;; #(vi
+vfscanf) cat >>confdefs.h <<\EOF
+#define HAVE_VFSCANF 1
+EOF
+;; #(vi
+_doscan) cat >>confdefs.h <<\EOF
+#define HAVE__DOSCAN 1
+EOF
+;;
+esac
 
 
+echo "$as_me:8290: 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
+else
 
 
-echo $ac_n "checking for tcgetattr""... $ac_c" 1>&6
-echo "configure:5765: checking for tcgetattr" >&5
-if eval "test \"`echo '$''{'cf_cv_have_tcgetattr'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+rm -f conftest*
+if test "$cross_compiling" = yes; then
+  echo "$as_me:8298: 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
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 5771 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8304 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char mkstemp (); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
 #endif
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#define TTY struct termios
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char mkstemp ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
+choke me
 #else
 #else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#define TTY struct termio
-#endif
+f = mkstemp;
 #endif
 
 #endif
 
-int main() {
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8335: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8338: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8341: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8344: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_mkstemp=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_mkstemp=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8354: result: $ac_cv_func_mkstemp" >&5
+echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8359 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+int main()
+{
+       char *tmpl = "conftestXXXXXX";
+       char name[2][80];
+       int n;
+       int result = 0;
+       int fd;
+       struct stat sb;
+
+       umask(077);
+       for (n = 0; n < 2; ++n) {
+               strcpy(name[n], tmpl);
+               if ((fd = mkstemp(name[n])) >= 0) {
+                       if (!strcmp(name[n], tmpl)
+                        || stat(name[n], &sb) != 0
+                        || (sb.st_mode & S_IFMT) != S_IFREG
+                        || (sb.st_mode & 077) != 0) {
+                               result = 1;
+                       }
+                       close(fd);
+               }
+       }
+       if (result == 0
+        && !strcmp(name[0], name[1]))
+               result = 1;
+       exit(result);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:8397: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8400: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:8402: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8405: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_func_mkstemp=yes
 
 
-TTY foo;
-tcgetattr(1, &foo);
-; return 0; }
-EOF
-if { (eval echo configure:5794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_have_tcgetattr=yes
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_have_tcgetattr=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_func_mkstemp=no
+
 fi
 fi
-rm -f conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 
-echo "$ac_t""$cf_cv_have_tcgetattr" 1>&6
-test "$cf_cv_have_tcgetattr" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_TCGETATTR 1
+fi
+echo "$as_me:8420: 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
+#define HAVE_MKSTEMP 1
 EOF
 
 EOF
 
+fi
 
 
+# setup for prototype of fallback for vsscanf()
+if test "$cf_cv_func_vsscanf" = vsscanf ; then
+       HAVE_VSSCANF=1
+else
+       HAVE_VSSCANF=0
+fi
 
 if test "$cross_compiling" = yes ; then
 
 if test "$cross_compiling" = yes ; then
-       echo "configure: warning: cross compiling: assume setvbuf params not reversed" 1>&2
+       { echo "$as_me:8437: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
 else
 else
-       echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6
-echo "configure:5817: checking whether setvbuf arguments are reversed" >&5
-if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+       echo "$as_me:8440: 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
 else
   if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+  { { echo "$as_me:8446: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5825 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8451 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 /* If setvbuf has the reversed format, exit 0. */
 #include "confdefs.h"
 #include <stdio.h>
 /* If setvbuf has the reversed format, exit 0. */
-main () {
+int
+main ()
+{
   /* This call has the arguments reversed.
      A reversed system may check and see that the address of main
      is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
   /* This call has the arguments reversed.
      A reversed system may check and see that the address of main
      is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
@@ -5834,43 +8463,52 @@ main () {
   putc('\r', stdout);
   exit(0);                     /* Non-reversed systems segv here.  */
 }
   putc('\r', stdout);
   exit(0);                     /* Non-reversed systems segv here.  */
 }
-EOF
-if { (eval echo configure:5839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:8468: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8471: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:8473: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8476: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_func_setvbuf_reversed=yes
 else
   ac_cv_func_setvbuf_reversed=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_func_setvbuf_reversed=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_setvbuf_reversed=no
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
 rm -f core core.* *.core
 fi
 rm -f core core.* *.core
 fi
-
-echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6
+echo "$as_me:8489: 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
 if test $ac_cv_func_setvbuf_reversed = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define SETVBUF_REVERSED 1
 EOF
 
 fi
 
 fi
 #define SETVBUF_REVERSED 1
 EOF
 
 fi
 
 fi
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:5864: 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
+echo "$as_me:8500: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5869 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8506 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #ifdef signal
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #ifdef signal
-#undef signal
+# undef signal
 #endif
 #ifdef __cplusplus
 extern "C" void (*signal (int, void (*)(int)))(int);
 #endif
 #ifdef __cplusplus
 extern "C" void (*signal (int, void (*)(int)))(int);
@@ -5878,80 +8516,103 @@ extern "C" void (*signal (int, void (*)(int)))(int);
 void (*signal ()) ();
 #endif
 
 void (*signal ()) ();
 #endif
 
-int main() {
+int
+main ()
+{
 int i;
 int i;
-; return 0; }
-EOF
-if { (eval echo configure:5886: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  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
   ac_cv_type_signal=void
 else
   ac_cv_type_signal=void
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_type_signal=int
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_type_signal=int
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
+echo "$as_me:8547: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
 
 
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<EOF
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
-
-
-echo $ac_n "checking for type sigaction_t""... $ac_c" 1>&6
-echo "configure:5906: checking for type sigaction_t" >&5
-if eval "test \"`echo '$''{'cf_cv_type_sigaction'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8554: 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
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 5912 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 8561 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
 #include "confdefs.h"
 
 #include <signal.h>
-int main() {
+int
+main ()
+{
 sigaction_t x
 sigaction_t x
-; return 0; }
-EOF
-if { (eval echo configure:5920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  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_type_sigaction=yes
 else
   cf_cv_type_sigaction=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_type_sigaction=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_type_sigaction=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 
-echo "$ac_t""$cf_cv_type_sigaction" 1>&6
-test "$cf_cv_type_sigaction" = yes && cat >> confdefs.h <<\EOF
+echo "$as_me:8594: 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
 
 #define HAVE_TYPE_SIGACTION 1
 EOF
 
-
-
-
-echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6
-echo "configure:5941: checking declaration of size-change" >&5
-if eval "test \"`echo '$''{'cf_cv_sizechange'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8600: 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
 else
 else
-  
+
     cf_cv_sizechange=unknown
     cf_cv_sizechange=unknown
-    cf_save_CFLAGS="$CFLAGS"
+    cf_save_CPPFLAGS="$CPPFLAGS"
 
 for cf_opts in "" "NEED_PTEM_H"
 do
 
 
 for cf_opts in "" "NEED_PTEM_H"
 do
 
-    CFLAGS="$cf_save_CFLAGS"
-    test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts"
-    cat > conftest.$ac_ext <<EOF
-#line 5955 "configure"
+    CPPFLAGS="$cf_save_CPPFLAGS"
+    test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+    cat >conftest.$ac_ext <<_ACEOF
+#line 8615 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
@@ -5972,7 +8633,9 @@ do
 #include <sys/ioctl.h>
 #endif
 
 #include <sys/ioctl.h>
 #endif
 
-int main() {
+int
+main ()
+{
 
 #ifdef TIOCGSIZE
        struct ttysize win;     /* FIXME: what system is this? */
 
 #ifdef TIOCGSIZE
        struct ttysize win;     /* FIXME: what system is this? */
@@ -5987,21 +8650,32 @@ int main() {
        no TIOCGSIZE or TIOCGWINSZ
 #endif /* TIOCGWINSZ */
 #endif /* TIOCGSIZE */
        no TIOCGSIZE or TIOCGWINSZ
 #endif /* TIOCGWINSZ */
 #endif /* TIOCGSIZE */
-       
-; return 0; }
-EOF
-if { (eval echo configure:5994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8659: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8662: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:8665: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8668: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_sizechange=yes
 else
   cf_cv_sizechange=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_sizechange=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_sizechange=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 
-       CFLAGS="$cf_save_CFLAGS"
+       CPPFLAGS="$cf_save_CPPFLAGS"
        if test "$cf_cv_sizechange" = yes ; then
                echo "size-change succeeded ($cf_opts)" >&5
                test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
        if test "$cf_cv_sizechange" = yes ; then
                echo "size-change succeeded ($cf_opts)" >&5
                test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
@@ -6010,16 +8684,16 @@ rm -f conftest*
 done
 
 fi
 done
 
 fi
-
-echo "$ac_t""$cf_cv_sizechange" 1>&6
+echo "$as_me:8687: result: $cf_cv_sizechange" >&5
+echo "${ECHO_T}$cf_cv_sizechange" >&6
 if test "$cf_cv_sizechange" != no ; then
 if test "$cf_cv_sizechange" != no ; then
-       cat >> confdefs.h <<\EOF
+       cat >>confdefs.h <<\EOF
 #define HAVE_SIZECHANGE 1
 EOF
 
        case $cf_cv_sizechange in #(vi
        NEED*)
 #define HAVE_SIZECHANGE 1
 EOF
 
        case $cf_cv_sizechange in #(vi
        NEED*)
-               cat >> confdefs.h <<EOF
+               cat >>confdefs.h <<EOF
 #define $cf_cv_sizechange  1
 EOF
 
 #define $cf_cv_sizechange  1
 EOF
 
@@ -6027,109 +8701,139 @@ EOF
        esac
 fi
 
        esac
 fi
 
-
-echo $ac_n "checking for memmove""... $ac_c" 1>&6
-echo "configure:6033: checking for memmove" >&5
-if eval "test \"`echo '$''{'ac_cv_func_memmove'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8704: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6038 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8710 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char memmove(); below.  */
+    which can conflict with char memmove (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char memmove();
-
-int main() {
+   builtin and then its argument prototype would still apply.  */
+char memmove ();
+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_memmove) || defined (__stub___memmove)
 choke me
 #else
 /* 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_memmove) || defined (__stub___memmove)
 choke me
 #else
-memmove();
+f = memmove;
 #endif
 
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:6061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_memmove=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_memmove=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'memmove`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8741: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8744: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8747: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8750: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_memmove=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_memmove=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8760: result: $ac_cv_func_memmove" >&5
+echo "${ECHO_T}$ac_cv_func_memmove" >&6
+if test $ac_cv_func_memmove = yes; then
   :
 else
   :
 else
-  echo "$ac_t""no" 1>&6
 
 
-echo $ac_n "checking for bcopy""... $ac_c" 1>&6
-echo "configure:6080: checking for bcopy" >&5
-if eval "test \"`echo '$''{'ac_cv_func_bcopy'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8766: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6085 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8772 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char bcopy(); below.  */
+    which can conflict with char bcopy (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 #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
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char bcopy();
-
-int main() {
+   builtin and then its argument prototype would still apply.  */
+char bcopy ();
+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_bcopy) || defined (__stub___bcopy)
 choke me
 #else
 /* 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_bcopy) || defined (__stub___bcopy)
 choke me
 #else
-bcopy();
+f = bcopy;
 #endif
 
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:6108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_bcopy=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8803: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8806: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:8809: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8812: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_bcopy=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_bcopy=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8822: result: $ac_cv_func_bcopy" >&5
+echo "${ECHO_T}$ac_cv_func_bcopy" >&6
+if test $ac_cv_func_bcopy = yes; then
+
+       echo "$as_me:8826: checking if bcopy does overlapping moves" >&5
+echo $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
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_bcopy=no"
-fi
-rm -f conftest*
-fi
 
 
-if eval "test \"`echo '$ac_cv_func_'bcopy`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-       echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
-echo "configure:6124: checking if bcopy does overlapping moves" >&5
-if eval "test \"`echo '$''{'cf_cv_good_bcopy'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
                if test "$cross_compiling" = yes; then
   cf_cv_good_bcopy=unknown
 else
                if test "$cross_compiling" = yes; then
   cf_cv_good_bcopy=unknown
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6133 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8836 "configure"
 #include "confdefs.h"
 
 int main() {
 #include "confdefs.h"
 
 int main() {
@@ -6140,37 +8844,44 @@ int main() {
        bcopy(temp+5, temp+15, 10);
        exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
 }
        bcopy(temp+5, temp+15, 10);
        exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
 }
-               
-EOF
-if { (eval echo configure:6146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:8850: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8853: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:8855: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8858: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_good_bcopy=yes
 else
   cf_cv_good_bcopy=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_good_bcopy=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_good_bcopy=no
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 
-               
 fi
 fi
+echo "$as_me:8871: result: $cf_cv_good_bcopy" >&5
+echo "${ECHO_T}$cf_cv_good_bcopy" >&6
 
 
-echo "$ac_t""$cf_cv_good_bcopy" 1>&6
-       
 else
 else
-  echo "$ac_t""no" 1>&6
-cf_cv_good_bcopy=no
+  cf_cv_good_bcopy=no
 fi
 
        if test "$cf_cv_good_bcopy" = yes ; then
 fi
 
        if test "$cf_cv_good_bcopy" = yes ; then
-               cat >> confdefs.h <<\EOF
+               cat >>confdefs.h <<\EOF
 #define USE_OK_BCOPY 1
 EOF
 
        else
 #define USE_OK_BCOPY 1
 EOF
 
        else
-               cat >> confdefs.h <<\EOF
+               cat >>confdefs.h <<\EOF
 #define USE_MY_MEMMOVE 1
 EOF
 
 #define USE_MY_MEMMOVE 1
 EOF
 
@@ -6178,18 +8889,17 @@ EOF
 
 fi
 
 
 fi
 
-
-echo $ac_n "checking if poll really works""... $ac_c" 1>&6
-echo "configure:6184: checking if poll really works" >&5
-if eval "test \"`echo '$''{'cf_cv_working_poll'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8892: 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
 else
 else
-  
+
 if test "$cross_compiling" = yes; then
   cf_cv_working_poll=unknown
 else
 if test "$cross_compiling" = yes; then
   cf_cv_working_poll=unknown
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6193 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8902 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -6208,78 +8918,139 @@ int main() {
        ret = poll(&myfds, 1, 100);
        exit(ret != 0);
 }
        ret = poll(&myfds, 1, 100);
        exit(ret != 0);
 }
-EOF
-if { (eval echo configure:6213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:8923: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:8926: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:8928: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8931: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_working_poll=yes
 else
   cf_cv_working_poll=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_working_poll=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_working_poll=no
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
 fi
 fi
-
-echo "$ac_t""$cf_cv_working_poll" 1>&6
-test "$cf_cv_working_poll" = "yes" && cat >> confdefs.h <<\EOF
+echo "$as_me:8943: result: $cf_cv_working_poll" >&5
+echo "${ECHO_T}$cf_cv_working_poll" >&6
+test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_WORKING_POLL 1
 EOF
 
 #define HAVE_WORKING_POLL 1
 EOF
 
-
-
 if test -z "$cf_user_CFLAGS" ; then
        CFLAGS=`echo ${CFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
        CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
 fi
 
 if test -z "$cf_user_CFLAGS" ; then
        CFLAGS=`echo ${CFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
        CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
 fi
 
+echo "$as_me:8954: checking for stdbool.h" >&5
+echo $ECHO_N "checking for stdbool.h... $ECHO_C" >&6
+if test "${ac_cv_header_stdbool_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 8960 "configure"
+#include "confdefs.h"
+#include <stdbool.h>
+_ACEOF
+if { (eval echo "$as_me:8964: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:8970: \$? = $ac_status" >&5
+  (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_stdbool_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_header_stdbool_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:8989: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+if test $ac_cv_header_stdbool_h = yes; then
+  cf_cv_header_stdbool_h=1
+else
+  cf_cv_header_stdbool_h=0
+fi
 
 
-echo $ac_n "checking for builtin bool type""... $ac_c" 1>&6
-echo "configure:6241: checking for builtin bool type" >&5
-if eval "test \"`echo '$''{'cf_cv_cc_bool_type'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:8997: 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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 6247 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 9004 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include <sys/types.h>
 
 #include "confdefs.h"
 
 #include <stdio.h>
 #include <sys/types.h>
 
-int main() {
+int
+main ()
+{
 bool x = false
 bool x = false
-; return 0; }
-EOF
-if { (eval echo configure:6257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:9019: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:9022: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:9025: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9028: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_cc_bool_type=1
 else
   cf_cv_cc_bool_type=1
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_cc_bool_type=0
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cc_bool_type=0
 fi
 fi
-rm -f conftest*
-       
+rm -f conftest.$ac_objext conftest.$ac_ext
+
 fi
 
 if test "$cf_cv_cc_bool_type" = 1
 fi
 
 if test "$cf_cv_cc_bool_type" = 1
-then   echo "$ac_t""yes" 1>&6
-else   echo "$ac_t""no" 1>&6
+then   echo "$as_me:9041: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else   echo "$as_me:9043: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 if test -n "$CXX" ; then
 fi
 
 if test -n "$CXX" ; then
-       ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+       ac_ext=cc
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
+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
 
 
-       
 if test -n "$GXX" ; then
 case $cf_cv_system_name in #(vi
 os2*) #(vi
 if test -n "$GXX" ; then
 case $cf_cv_system_name in #(vi
 os2*) #(vi
@@ -6289,51 +9060,63 @@ os2*) #(vi
        cf_stdcpp_libname=stdc++
        ;;
 esac
        cf_stdcpp_libname=stdc++
        ;;
 esac
-echo $ac_n "checking for library $cf_stdcpp_libname""... $ac_c" 1>&6
-echo "configure:6294: checking for library $cf_stdcpp_libname" >&5
-if eval "test \"`echo '$''{'cf_cv_libstdcpp'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:9063: checking for library $cf_stdcpp_libname" >&5
+echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
+if test "${cf_cv_libstdcpp+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
+
        cf_save="$LIBS"
        LIBS="$LIBS -l$cf_stdcpp_libname"
        cf_save="$LIBS"
        LIBS="$LIBS -l$cf_stdcpp_libname"
-cat > conftest.$ac_ext <<EOF
-#line 6302 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 9072 "configure"
 #include "confdefs.h"
 
 #include <strstream.h>
 #include "confdefs.h"
 
 #include <strstream.h>
-int main() {
+int
+main ()
+{
 
 char buf[80];
 strstreambuf foo(buf, sizeof(buf))
 
 
 char buf[80];
 strstreambuf foo(buf, sizeof(buf))
 
-; return 0; }
-EOF
-if { (eval echo configure:6313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:9088: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9091: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:9094: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9097: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_libstdcpp=yes
 else
   cf_cv_libstdcpp=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_libstdcpp=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_libstdcpp=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
        LIBS="$cf_save"
 
 fi
        LIBS="$cf_save"
 
 fi
-
-echo "$ac_t""$cf_cv_libstdcpp" 1>&6
+echo "$as_me:9109: result: $cf_cv_libstdcpp" >&5
+echo "${ECHO_T}$cf_cv_libstdcpp" >&6
 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
 fi
 
 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
 fi
 
-       if test "$GXX" = yes; then
-               case "`${CXX-g++} --version`" in
-               1*|2.0-6*)
-                       cf_cxx_library=yes
-                       ;;
-               2.7*)
-                       
+       case $GXX_VERSION in
+       1*|2.0-6*)
+               cf_cxx_library=yes
+               ;;
+       *-2.7*|2.7*)
+
 cf_cxx_library=unknown
 case $cf_cv_system_name in #(vi
 os2*) #(vi
 cf_cxx_library=unknown
 case $cf_cv_system_name in #(vi
 os2*) #(vi
@@ -6343,218 +9126,460 @@ os2*) #(vi
        cf_gpp_libname=g++
        ;;
 esac
        cf_gpp_libname=g++
        ;;
 esac
-if test "$ac_cv_prog_gxx" = yes; then
-       echo $ac_n "checking for lib$cf_gpp_libname""... $ac_c" 1>&6
-echo "configure:6349: checking for lib$cf_gpp_libname" >&5
+if test "$ac_cv_cxx_compiler_gnu" = yes; then
+       echo "$as_me:9130: 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"
        cf_save="$LIBS"
        LIBS="$LIBS -l$cf_gpp_libname"
-       cat > conftest.$ac_ext <<EOF
-#line 6353 "configure"
+       cat >conftest.$ac_ext <<_ACEOF
+#line 9135 "configure"
 #include "confdefs.h"
 
 #include <$cf_gpp_libname/builtin.h>
 #include "confdefs.h"
 
 #include <$cf_gpp_libname/builtin.h>
-       
-int main() {
+
+int
+main ()
+{
 two_arg_error_handler_t foo2 = lib_error_handler
 two_arg_error_handler_t foo2 = lib_error_handler
-; return 0; }
-EOF
-if { (eval echo configure:6362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:9149: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9152: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:9155: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9158: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
         if test "$cf_gpp_libname" = cpp ; then
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
         if test "$cf_gpp_libname" = cpp ; then
-           cat >> confdefs.h <<\EOF
+           cat >>confdefs.h <<\EOF
 #define HAVE_GPP_BUILTIN_H 1
 EOF
 
         else
 #define HAVE_GPP_BUILTIN_H 1
 EOF
 
         else
-           cat >> confdefs.h <<\EOF
+           cat >>confdefs.h <<\EOF
 #define HAVE_GXX_BUILTIN_H 1
 EOF
 
         fi
 else
 #define HAVE_GXX_BUILTIN_H 1
 EOF
 
         fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat > conftest.$ac_ext <<EOF
-#line 6382 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cat >conftest.$ac_ext <<_ACEOF
+#line 9177 "configure"
 #include "confdefs.h"
 
 #include <builtin.h>
 #include "confdefs.h"
 
 #include <builtin.h>
-       
-int main() {
+
+int
+main ()
+{
 two_arg_error_handler_t foo2 = lib_error_handler
 two_arg_error_handler_t foo2 = lib_error_handler
-; return 0; }
-EOF
-if { (eval echo configure:6391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:9191: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9194: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:9197: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9200: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
-        cat >> confdefs.h <<\EOF
+        cat >>confdefs.h <<\EOF
 #define HAVE_BUILTIN_H 1
 EOF
 
 else
 #define HAVE_BUILTIN_H 1
 EOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cxx_library=no
-fi
-rm -f conftest*
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cxx_library=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+       LIBS="$cf_save"
+       echo "$as_me:9217: result: $cf_cxx_library" >&5
+echo "${ECHO_T}$cf_cxx_library" >&6
+fi
+
+               ;;
+       *)
+               cf_cxx_library=no
+               ;;
+       esac
+
+       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
+echo "$as_me:9232: 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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9249 "configure"
+#include "confdefs.h"
+#include <assert.h>
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:9254: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9260: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9283 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:9287: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9293: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:9330: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9340 "configure"
+#include "confdefs.h"
+#include <assert.h>
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:9345: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9351: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9374 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:9378: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9384: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
 fi
-rm -f conftest*
-       LIBS="$cf_save"
-       echo "$ac_t""$cf_cxx_library" 1>&6
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
 fi
+rm -f conftest.err conftest.$ac_ext
 
 
-                       ;;
-               *)
-                       cf_cxx_library=no
-                       ;;
-               esac
-       else
-               cf_cxx_library=no
-       fi
-       echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:6421: checking how to run the C++ preprocessor" >&5
-if test -z "$CXXCPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
 else
 else
-  ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+  { { echo "$as_me:9412: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cc
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-  CXXCPP="${CXX-g++} -E"
-  cat > conftest.$ac_ext <<EOF
-#line 6434 "configure"
+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
+
+for ac_header in typeinfo
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:9426: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9432 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <stdlib.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6439: \"$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
-  :
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:9436: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9442: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CXXCPP=/lib/cpp
+  eval "$as_ac_Header=no"
 fi
 fi
-rm -f conftest*
-  ac_cv_prog_CXXCPP="$CXXCPP"
-ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
+echo "$as_me:9461: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
 fi
 fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
+done
 
 
-for ac_hdr in typeinfo
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6467: 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 6472 "configure"
+echo "$as_me:9471: checking for stdbool.h" >&5
+echo $ECHO_N "checking for stdbool.h... $ECHO_C" >&6
+if test "${ac_cv_header_stdbool_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9477 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <stdbool.h>
+_ACEOF
+if { (eval echo "$as_me:9481: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9487: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_cv_header_stdbool_h=yes
+else
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  ac_cv_header_stdbool_h=no
 fi
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
+echo "$as_me:9506: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+if test $ac_cv_header_stdbool_h = yes; then
+  cf_cv_header_stdbool_h=1
 else
 else
-  echo "$ac_t""no" 1>&6
+  cf_cv_header_stdbool_h=0
 fi
 fi
-done
 
 
-       
-echo $ac_n "checking for builtin bool type""... $ac_c" 1>&6
-echo "configure:6505: checking for builtin bool type" >&5
-if eval "test \"`echo '$''{'cf_cv_builtin_bool'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:9514: checking for builtin bool type" >&5
+echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+if test "${cf_cv_builtin_bool+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 else
-  
-       cat > conftest.$ac_ext <<EOF
-#line 6511 "configure"
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 9521 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include <sys/types.h>
 
 #include "confdefs.h"
 
 #include <stdio.h>
 #include <sys/types.h>
 
-int main() {
+int
+main ()
+{
 bool x = false
 bool x = false
-; return 0; }
-EOF
-if { (eval echo configure:6521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:9536: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:9539: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:9542: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9545: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_builtin_bool=1
 else
   cf_cv_builtin_bool=1
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_builtin_bool=0
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_builtin_bool=0
 fi
 fi
-rm -f conftest*
-       
+rm -f conftest.$ac_objext conftest.$ac_ext
+
 fi
 
 if test "$cf_cv_builtin_bool" = 1
 fi
 
 if test "$cf_cv_builtin_bool" = 1
-then   echo "$ac_t""yes" 1>&6
-else   echo "$ac_t""no" 1>&6
+then   echo "$as_me:9558: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else   echo "$as_me:9560: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 fi
 
-       
-echo $ac_n "checking for size of bool""... $ac_c" 1>&6
-echo "configure:6541: checking for size of bool" >&5
-if eval "test \"`echo '$''{'cf_cv_type_of_bool'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:9564: 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
 else
 else
-  
+
        rm -f cf_test.out
        if test "$cross_compiling" = yes; then
   cf_cv_type_of_bool=unknown
 else
        rm -f cf_test.out
        if test "$cross_compiling" = yes; then
   cf_cv_type_of_bool=unknown
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6551 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9575 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
 
 #include <stdlib.h>
 #include <stdio.h>
 
 #include <stdlib.h>
 #include <stdio.h>
+
+#if defined(__cplusplus)
+
 #ifdef HAVE_GXX_BUILTIN_H
 #include <g++/builtin.h>
 #elif HAVE_GPP_BUILTIN_H
 #ifdef HAVE_GXX_BUILTIN_H
 #include <g++/builtin.h>
 #elif HAVE_GPP_BUILTIN_H
@@ -6562,6 +9587,15 @@ extern "C" void exit(int);
 #elif HAVE_BUILTIN_H
 #include <builtin.h>
 #endif
 #elif HAVE_BUILTIN_H
 #include <builtin.h>
 #endif
+
+#else
+
+#if $cf_cv_header_stdbool_h
+#include <stdbool.h>
+#endif
+
+#endif
+
 main()
 {
        FILE *fp = fopen("cf_test.out", "w");
 main()
 {
        FILE *fp = fopen("cf_test.out", "w");
@@ -6577,33 +9611,48 @@ main()
        }
        exit(0);
 }
        }
        exit(0);
 }
-               
-EOF
-if { (eval echo configure:6583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:9617: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9620: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:9622: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9625: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_type_of_bool=`cat cf_test.out`
   cf_cv_type_of_bool=`cat cf_test.out`
+                if test -z "$cf_cv_type_of_bool"; then
+                  cf_cv_type_of_bool=unknown
+                fi
 else
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_type_of_bool=unknown
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_type_of_bool=unknown
 fi
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 
-       
 fi
 
        rm -f cf_test.out
 fi
 
        rm -f cf_test.out
-echo "$ac_t""$cf_cv_type_of_bool" 1>&6
+echo "$as_me:9643: 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
 if test "$cf_cv_type_of_bool" = unknown ; then
-       echo "configure: warning: Assuming unsigned for type of bool" 1>&2
-       cf_cv_type_of_bool=unsigned
+       case .$NCURSES_BOOL in #(vi
+       .auto|.) NCURSES_BOOL=unsigned;;
+       esac
+       { echo "$as_me:9649: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+       cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 
 fi
 
-       
-echo $ac_n "checking for special defines needed for etip.h""... $ac_c" 1>&6
-echo "configure:6607: checking for special defines needed for etip.h" >&5
+echo "$as_me:9654: 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"
 for cf_math in "" MATH_H
 cf_save_CXXFLAGS="$CXXFLAGS"
 cf_result="none"
 for cf_math in "" MATH_H
@@ -6613,24 +9662,38 @@ do
        CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
        test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
        test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
        CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
        test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
        test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
-cat > conftest.$ac_ext <<EOF
-#line 6618 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 9666 "configure"
 #include "confdefs.h"
 
 #include <etip.h.in>
 
 #include "confdefs.h"
 
 #include <etip.h.in>
 
-int main() {
+int
+main ()
+{
 
 
-; return 0; }
-EOF
-if { (eval echo configure:6627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  
-       test -n "$cf_math" && cat >> confdefs.h <<EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:9680: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:9683: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:9686: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9689: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+       test -n "$cf_math" && cat >>confdefs.h <<EOF
 #define ETIP_NEEDS_${cf_math} 1
 EOF
 
 #define ETIP_NEEDS_${cf_math} 1
 EOF
 
-       test -n "$cf_excp" && cat >> confdefs.h <<EOF
+       test -n "$cf_excp" && cat >>confdefs.h <<EOF
 #define ETIP_NEEDS_${cf_excp} 1
 EOF
 
 #define ETIP_NEEDS_${cf_excp} 1
 EOF
 
@@ -6638,39 +9701,35 @@ EOF
        break
 
 else
        break
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 fi
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 done
 done
 done
 done
-echo "$ac_t""$cf_result" 1>&6
+echo "$as_me:9710: result: $cf_result" >&5
+echo "${ECHO_T}$cf_result" >&6
 CXXFLAGS="$cf_save_CXXFLAGS"
 
 CXXFLAGS="$cf_save_CXXFLAGS"
 
-       
-if test "$CXX" = yes ; then
-echo $ac_n "checking if $CXX accepts parameter initialization""... $ac_c" 1>&6
-echo "configure:6654: checking if $CXX accepts parameter initialization" >&5
-if eval "test \"`echo '$''{'cf_cv_cpp_param_init'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test -n "$CXX"; then
+echo "$as_me:9715: 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
 else
 else
-  
-       ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+
+       ac_ext=cc
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
+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
 
        if test "$cross_compiling" = yes; then
   cf_cv_cpp_param_init=unknown
 else
 
        if test "$cross_compiling" = yes; then
   cf_cv_cpp_param_init=unknown
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6670 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9731 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
 
 class TEST {
 private:
 
 class TEST {
 private:
@@ -6686,35 +9745,242 @@ TEST::TEST(int x = 1)  // some compilers do not like second initializer
 }
 void main() { }
 
 }
 void main() { }
 
-EOF
-if { (eval echo configure:6691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:9750: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9753: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:9755: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9758: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   cf_cv_cpp_param_init=yes
 else
   cf_cv_cpp_param_init=yes
 else
-  echo "configure: failed program was:" >&5
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cpp_param_init=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+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
+
+fi
+echo "$as_me:9776: 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
+#define CPP_HAS_PARAM_INIT 1
+EOF
+
+if test -n "$CXX"; then
+
+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
+
+for ac_header in strstream.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:9794: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9800 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:9804: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9810: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_cpp_param_init=no
+  eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
 fi
 fi
-rm -fr conftest*
+echo "$as_me:9829: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
 fi
 fi
+done
+
+echo "$as_me:9839: 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
+else
+
+       for cf_vscan_func in strstream strstream_cast stdio
+       do
+       case $cf_vscan_func in #(vi
+       stdio)          cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
+       strstream)      cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
+       strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
+       esac
+       cat >conftest.$ac_ext <<_ACEOF
+#line 9853 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <stdarg.h>
+#define $cf_vscan_defs 1
+#if defined(USE_STDIO_VSCAN)
+#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
+#include <strstream.h>
+#endif
 
 
+int scanw(const char* fmt, ...)
+{
+    int result = -1;
+    char buf[BUFSIZ];
+
+    va_list args;
+    va_start(args, fmt);
+#if defined(USE_STDIO_VSCAN)
+    if (::vsscanf(buf, fmt, args) != -1)
+       result = 0;
+#elif defined(USE_STRSTREAM_VSCAN)
+    strstreambuf ss(buf, sizeof(buf));
+    if (ss.vscan(fmt, args) != -1)
+       result = 0;
+#elif defined(USE_STRSTREAM_VSCAN_CAST)
+    strstreambuf ss(buf, sizeof(buf));
+    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+       result = 0;
+#else
+#error case $cf_vscan_func failed
+#endif
+    va_end(args);
+    return result;
+}
+
+int
+main ()
+{
+int tmp, foo = scanw("%d", &tmp)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9901: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:9904: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9907: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_cpp_vscan_func=$cf_vscan_func; break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cpp_vscan_func=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+       test "$cf_cv_cpp_vscan_func" != no && break
+       done
 
 fi
 
 fi
+echo "$as_me:9920: result: $cf_cv_cpp_vscan_func" >&5
+echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
+
+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
 
 
-echo "$ac_t""$cf_cv_cpp_param_init" 1>&6
 fi
 fi
-test "$cf_cv_cpp_param_init" = yes && cat >> confdefs.h <<\EOF
-#define CPP_HAS_PARAM_INIT 1
+
+case $cf_cv_cpp_vscan_func in #(vi
+stdio) #(vi
+       cat >>confdefs.h <<\EOF
+#define CPP_HAS_VSCAN_FUNC 1
+EOF
+
+       cat >>confdefs.h <<\EOF
+#define USE_STDIO_VSCAN 1
+EOF
+
+       ;;
+strstream)
+       cat >>confdefs.h <<\EOF
+#define CPP_HAS_VSCAN_FUNC 1
+EOF
+
+       cat >>confdefs.h <<\EOF
+#define USE_STRSTREAM_VSCAN 1
+EOF
+
+       ;;
+strstream_cast)
+       cat >>confdefs.h <<\EOF
+#define CPP_HAS_VSCAN_FUNC 1
+EOF
+
+       cat >>confdefs.h <<\EOF
+#define USE_STRSTREAM_VSCAN_CAST 1
 EOF
 
 EOF
 
+       ;;
+esac
 
 
+       CXX_AR='$(AR)'
+       CXX_AR_OPTS='$(AR_OPTS)'
        case $cf_cv_system_name in #(vi
        case $cf_cv_system_name in #(vi
-       sco3.2v5*)
+       irix*) #(vi
+           if test "$GXX" != yes ; then
+               CXX_AR='$(CXX)'
+               CXX_AR_OPTS='-ar -o'
+           fi
+           ;;
+       sco3.2v5*) #(vi
            CXXLDFLAGS="-u main"
            ;;
            CXXLDFLAGS="-u main"
            ;;
+       solaris2*)
+           if test "$GXX" != yes ; then
+               CXX_AR='$(CXX)'
+               CXX_AR_OPTS='-xar -o'
+           fi
+           ;;
        esac
        esac
-       
+
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
@@ -6728,54 +9994,153 @@ else
        # Caveat: since the storage of the bool type is not standardized, it
        # may change.
 
        # Caveat: since the storage of the bool type is not standardized, it
        # may change.
 
-       echo $ac_n "checking for fallback type of bool""... $ac_c" 1>&6
-echo "configure:6733: checking for fallback type of bool" >&5
-       case "$host_cpu" in #(vi
-       i?86)   cf_cv_type_of_bool=char ;; #(vi
-       *)      cf_cv_type_of_bool=int  ;;
-       esac
-       echo "$ac_t""$cf_cv_type_of_bool" 1>&6
+       if test "$NCURSES_BOOL" != auto ; then
+               cf_cv_type_of_bool=$NCURSES_AUTO
+       else
+               if test "$cf_cv_header_stdbool_h" = 1 ; then
+
+echo "$as_me:10002: 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
+else
+
+       rm -f cf_test.out
+       if test "$cross_compiling" = yes; then
+  cf_cv_type_of_bool=unknown
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 10013 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#if defined(__cplusplus)
+
+#ifdef HAVE_GXX_BUILTIN_H
+#include <g++/builtin.h>
+#elif HAVE_GPP_BUILTIN_H
+#include <gpp/builtin.h>
+#elif HAVE_BUILTIN_H
+#include <builtin.h>
+#endif
+
+#else
+
+#if $cf_cv_header_stdbool_h
+#include <stdbool.h>
+#endif
+
+#endif
+
+main()
+{
+       FILE *fp = fopen("cf_test.out", "w");
+       if (fp != 0) {
+               bool x = true;
+               if ((bool)(-x) >= 0)
+                       fputs("unsigned ", fp);
+               if (sizeof(x) == sizeof(int))       fputs("int",  fp);
+               else if (sizeof(x) == sizeof(char)) fputs("char", fp);
+               else if (sizeof(x) == sizeof(short))fputs("short",fp);
+               else if (sizeof(x) == sizeof(long)) fputs("long", fp);
+               fclose(fp);
+       }
+       exit(0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:10055: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:10058: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:10060: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:10063: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_type_of_bool=`cat cf_test.out`
+                if test -z "$cf_cv_type_of_bool"; then
+                  cf_cv_type_of_bool=unknown
+                fi
+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_type_of_bool=unknown
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 
+fi
 
 
+       rm -f cf_test.out
+echo "$as_me:10081: result: $cf_cv_type_of_bool" >&5
+echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+if test "$cf_cv_type_of_bool" = unknown ; then
+       case .$NCURSES_BOOL in #(vi
+       .auto|.) NCURSES_BOOL=unsigned;;
+       esac
+       { echo "$as_me:10087: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+       cf_cv_type_of_bool=$NCURSES_BOOL
+fi
 
 
+               else
+                       echo "$as_me:10093: checking for fallback type of bool" >&5
+echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
+                       case "$host_cpu" in #(vi
+                       i?86)   cf_cv_type_of_bool=char ;; #(vi
+                       *)      cf_cv_type_of_bool=int  ;;
+                       esac
+                       echo "$as_me:10099: result: $cf_cv_type_of_bool" >&5
+echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+               fi
+       fi
+fi
 
 if test "$cf_with_ada" != "no" ; then
 cf_ada_make=gnatmake
 # Extract the first word of "$cf_ada_make", so it can be a program name with args.
 set dummy $cf_ada_make; ac_word=$2
 
 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6749: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnat_exists'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:10109: 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
 else
   if test -n "$gnat_exists"; then
   ac_cv_prog_gnat_exists="$gnat_exists" # Let the user override the test.
 else
 else
   if test -n "$gnat_exists"; then
   ac_cv_prog_gnat_exists="$gnat_exists" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_gnat_exists="yes"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_gnat_exists="yes"
+echo "$as_me:10124: found $ac_dir/$ac_word" >&5
+break
+done
+
   test -z "$ac_cv_prog_gnat_exists" && ac_cv_prog_gnat_exists="no"
 fi
 fi
   test -z "$ac_cv_prog_gnat_exists" && ac_cv_prog_gnat_exists="no"
 fi
 fi
-gnat_exists="$ac_cv_prog_gnat_exists"
+gnat_exists=$ac_cv_prog_gnat_exists
 if test -n "$gnat_exists"; then
 if test -n "$gnat_exists"; then
-  echo "$ac_t""$gnat_exists" 1>&6
+  echo "$as_me:10133: result: $gnat_exists" >&5
+echo "${ECHO_T}$gnat_exists" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:10136: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 if test "$ac_cv_prog_gnat_exists" = no; then
    cf_ada_make=
 else
 fi
 
 if test "$ac_cv_prog_gnat_exists" = no; then
    cf_ada_make=
 else
-   
+
 cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
   sed -e 's/[^0-9 \.]//g' | $AWK '{print $1;}'`
 case $cf_cv_gnat_version in
 cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
   sed -e 's/[^0-9 \.]//g' | $AWK '{print $1;}'`
 case $cf_cv_gnat_version in
@@ -6798,32 +10163,35 @@ esac
 
    # Extract the first word of "m4", so it can be a program name with args.
 set dummy m4; ac_word=$2
 
    # Extract the first word of "m4", so it can be a program name with args.
 set dummy m4; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6803: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_M4_exists'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:10166: 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
 else
   if test -n "$M4_exists"; then
   ac_cv_prog_M4_exists="$M4_exists" # Let the user override the test.
 else
 else
   if test -n "$M4_exists"; then
   ac_cv_prog_M4_exists="$M4_exists" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_M4_exists="yes"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_M4_exists="yes"
+echo "$as_me:10181: found $ac_dir/$ac_word" >&5
+break
+done
+
   test -z "$ac_cv_prog_M4_exists" && ac_cv_prog_M4_exists="no"
 fi
 fi
   test -z "$ac_cv_prog_M4_exists" && ac_cv_prog_M4_exists="no"
 fi
 fi
-M4_exists="$ac_cv_prog_M4_exists"
+M4_exists=$ac_cv_prog_M4_exists
 if test -n "$M4_exists"; then
 if test -n "$M4_exists"; then
-  echo "$ac_t""$M4_exists" 1>&6
+  echo "$as_me:10190: result: $M4_exists" >&5
+echo "${ECHO_T}$M4_exists" >&6
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:10193: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
    if test "$ac_cv_prog_M4_exists" = no; then
 fi
 
    if test "$ac_cv_prog_M4_exists" = no; then
@@ -6831,9 +10199,9 @@ fi
       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
    fi
    if test "$cf_cv_prog_gnat_correct" = yes; then
       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
    fi
    if test "$cf_cv_prog_gnat_correct" = yes; then
-      echo $ac_n "checking if GNAT works""... $ac_c" 1>&6
-echo "configure:6836: checking if GNAT works" >&5
-      
+      echo "$as_me:10202: checking if GNAT works" >&5
+echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+
 rm -f conftest*
 cat >>conftest.ads <<CF_EOF
 procedure conftest;
 rm -f conftest*
 cat >>conftest.ads <<CF_EOF
 procedure conftest;
@@ -6859,99 +10227,91 @@ else
 fi
 rm -f conftest*
 
 fi
 rm -f conftest*
 
-      echo "$ac_t""$cf_cv_prog_gnat_correct" 1>&6
+      echo "$as_me:10230: 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"
 
    fi
 fi
 if test        "$cf_cv_prog_gnat_correct" = yes; then
    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
 
-   
 # Check whether --with-ada-compiler or --without-ada-compiler was given.
 if test "${with_ada_compiler+set}" = set; then
   withval="$with_ada_compiler"
   cf_ada_compiler=$withval
 else
   cf_ada_compiler=gnatmake
 # Check whether --with-ada-compiler or --without-ada-compiler was given.
 if test "${with_ada_compiler+set}" = set; then
   withval="$with_ada_compiler"
   cf_ada_compiler=$withval
 else
   cf_ada_compiler=gnatmake
-fi
-
+fi;
 
    cf_ada_package=terminal_interface
 
 
    cf_ada_package=terminal_interface
 
-   
-   
-   
-   
-   
-   
-
-   
 # Check whether --with-ada-include or --without-ada-include was given.
 if test "${with_ada_include+set}" = set; then
   withval="$with_ada_include"
 # Check whether --with-ada-include or --without-ada-include was given.
 if test "${with_ada_include+set}" = set; then
   withval="$with_ada_include"
-  :
+
 else
   withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
 else
   withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
-fi
-
+fi;
 case ".$withval" in #(vi
 case ".$withval" in #(vi
-./*) #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
   ;;
   ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
-    withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
     ;;
   esac
   ;; #(vi
 .NONE/*)
     ;;
   esac
   ;; #(vi
 .NONE/*)
-  withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
   ;;
 *)
-  { echo "configure: error: expected a pathname" 1>&2; exit 1; }
+  { { echo "$as_me:10273: error: expected a pathname, not \"$withval\"" >&5
+echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+   { (exit 1); exit 1; }; }
   ;;
 esac
 
 eval ADA_INCLUDE="$withval"
 
   ;;
 esac
 
 eval ADA_INCLUDE="$withval"
 
-   
-
-   
 # Check whether --with-ada-objects or --without-ada-objects was given.
 if test "${with_ada_objects+set}" = set; then
   withval="$with_ada_objects"
 # Check whether --with-ada-objects or --without-ada-objects was given.
 if test "${with_ada_objects+set}" = set; then
   withval="$with_ada_objects"
-  :
+
 else
   withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}"
 else
   withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}"
-fi
-
+fi;
 case ".$withval" in #(vi
 case ".$withval" in #(vi
-./*) #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
   ;;
   ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
   ;;
 .\${*prefix}*) #(vi
   eval withval="$withval"
   case ".$withval" in #(vi
   .NONE/*)
-    withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
     ;;
   esac
   ;; #(vi
 .NONE/*)
     ;;
   esac
   ;; #(vi
 .NONE/*)
-  withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
+  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
   ;;
 *)
-  { echo "configure: error: expected a pathname" 1>&2; exit 1; }
+  { { echo "$as_me:10307: error: expected a pathname, not \"$withval\"" >&5
+echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+   { (exit 1); exit 1; }; }
   ;;
 esac
 
 eval ADA_OBJECTS="$withval"
 
   ;;
 esac
 
 eval ADA_OBJECTS="$withval"
 
-   
-
 fi
 fi
 
 fi
 fi
 
 ### using a 'char' for bools.  gcc 2.7.0's conversion-warnings are broken too
 ### badly to consider using for development purposes, but 2.5.8 is okay.
 if test -n "$with_warnings"; then
 ### using a 'char' for bools.  gcc 2.7.0's conversion-warnings are broken too
 ### badly to consider using for development purposes, but 2.5.8 is okay.
 if test -n "$with_warnings"; then
-       if test "$GCC" = yes; then
-               case "`$CC --version`" in
-               2.6.3)
-                       if test "$cf_cv_type_of_bool" != "char"; then
-                               EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
-                       fi
-                       ;;
-               2.5*)
+       case $GCC_VERSION in
+       2.6.3)
+               if test "$cf_cv_type_of_bool" != "char"; then
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
-                       ;;
-               esac
-       fi
+               fi
+               ;;
+       2.5*)
+               EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+               ;;
+       esac
 fi
 
 ### Construct the library-subsets, if any, from this set of keywords:
 ### none, base, ext_funcs, termlib.
 fi
 
 ### Construct the library-subsets, if any, from this set of keywords:
 ### none, base, ext_funcs, termlib.
-echo $ac_n "checking for library subsets""... $ac_c" 1>&6
-echo "configure:6980: checking for library subsets" >&5
+echo "$as_me:10336: checking for library subsets" >&5
+echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
 if test "$with_termlib" = yes ; then
        LIB_SUBSETS="termlib "
 else
        LIB_SUBSETS="termlib+"
 fi
 LIB_SUBSETS="${LIB_SUBSETS}base"
 if test "$with_termlib" = yes ; then
        LIB_SUBSETS="termlib "
 else
        LIB_SUBSETS="termlib+"
 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"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$ac_t""$LIB_SUBSETS" 1>&6
+echo "$as_me:10346: result: $LIB_SUBSETS" >&5
+echo "${ECHO_T}$LIB_SUBSETS" >&6
 
 LIB_TRACING=DEBUG
 
 LIB_TRACING=DEBUG
-case "$CFLAGS" in
+ADA_TRACE=FALSE
+case "$CFLAGS $CPPFLAGS" in
 *-DTRACE*)
        LIB_TRACING=all
 *-DTRACE*)
        LIB_TRACING=all
+       ADA_TRACE=TRUE
        ;;
 esac
 
        ;;
 esac
 
@@ -7011,8 +10373,6 @@ elif test "$includedir" != "/usr/include"; then
        fi
 fi
 
        fi
 fi
 
-
-
 ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
 if test "$srcdir" != "."; then
        ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
 ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
 if test "$srcdir" != "."; then
        ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
@@ -7029,11 +10389,9 @@ elif test "$includedir" != "/usr/include"; then
        fi
 fi
 
        fi
 fi
 
-
-
 ### Build up pieces for makefile rules
 ### Build up pieces for makefile rules
-echo $ac_n "checking default library suffix""... $ac_c" 1>&6
-echo "configure:7037: checking default library suffix" >&5
+echo "$as_me:10393: checking default library suffix" >&5
+echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
 
        case $DFT_LWR_MODEL in
        libtool) DFT_ARG_SUFFIX=''   ;;
 
        case $DFT_LWR_MODEL in
        libtool) DFT_ARG_SUFFIX=''   ;;
@@ -7043,12 +10401,12 @@ echo "configure:7037: checking default library suffix" >&5
        shared)  DFT_ARG_SUFFIX=''   ;;
        esac
        test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
        shared)  DFT_ARG_SUFFIX=''   ;;
        esac
        test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$ac_t""$DFT_ARG_SUFFIX" 1>&6
+echo "$as_me:10404: result: $DFT_ARG_SUFFIX" >&5
+echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
 
 
-echo $ac_n "checking default library-dependency suffix""... $ac_c" 1>&6
-echo "configure:7050: checking default library-dependency suffix" >&5
+echo "$as_me:10407: checking default library-dependency suffix" >&5
+echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
 
 
-       
        case $DFT_LWR_MODEL in
        libtool) DFT_DEP_SUFFIX='.la'  ;;
        normal)  DFT_DEP_SUFFIX='.a'   ;;
        case $DFT_LWR_MODEL in
        libtool) DFT_DEP_SUFFIX='.la'  ;;
        normal)  DFT_DEP_SUFFIX='.a'   ;;
@@ -7056,33 +10414,49 @@ echo "configure:7050: checking default library-dependency suffix" >&5
        profile) DFT_DEP_SUFFIX='_p.a' ;;
        shared)
                case $cf_cv_system_name in
        profile) DFT_DEP_SUFFIX='_p.a' ;;
        shared)
                case $cf_cv_system_name in
+               cygwin*) DFT_DEP_SUFFIX='.dll' ;;
+               darwin*) DFT_DEP_SUFFIX='.dylib' ;;
                hpux*)  DFT_DEP_SUFFIX='.sl'  ;;
                *)      DFT_DEP_SUFFIX='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
                hpux*)  DFT_DEP_SUFFIX='.sl'  ;;
                *)      DFT_DEP_SUFFIX='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
-echo "$ac_t""$DFT_DEP_SUFFIX" 1>&6
+if test $DFT_LWR_MODEL = shared ; then
+       case $cf_cv_system_name in #(vi
+       cygwin*)
+               DFT_DEP_SUFFIX=".dll.a"
+               ;;
+       esac
+fi
+echo "$as_me:10431: result: $DFT_DEP_SUFFIX" >&5
+echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
 
 
-echo $ac_n "checking default object directory""... $ac_c" 1>&6
-echo "configure:7068: checking default object directory" >&5
+echo "$as_me:10434: checking default object directory" >&5
+echo $ECHO_N "checking default object directory... $ECHO_C" >&6
 
        case $DFT_LWR_MODEL in
        libtool) DFT_OBJ_SUBDIR='obj_lo'  ;;
        normal)  DFT_OBJ_SUBDIR='objects' ;;
        debug)   DFT_OBJ_SUBDIR='obj_g' ;;
        profile) DFT_OBJ_SUBDIR='obj_p' ;;
 
        case $DFT_LWR_MODEL in
        libtool) DFT_OBJ_SUBDIR='obj_lo'  ;;
        normal)  DFT_OBJ_SUBDIR='objects' ;;
        debug)   DFT_OBJ_SUBDIR='obj_g' ;;
        profile) DFT_OBJ_SUBDIR='obj_p' ;;
-       shared)  DFT_OBJ_SUBDIR='obj_s' ;;
+       shared)
+               case $cf_cv_system_name in #(vi
+               cygwin) #(vi
+                       DFT_OBJ_SUBDIR='objects' ;;
+               *)
+                       DFT_OBJ_SUBDIR='obj_s' ;;
+               esac
        esac
        esac
-echo "$ac_t""$DFT_OBJ_SUBDIR" 1>&6
+echo "$as_me:10450: result: $DFT_OBJ_SUBDIR" >&5
+echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
-echo $ac_n "checking c++ library-dependency suffux""... $ac_c" 1>&6
-echo "configure:7081: checking c++ library-dependency suffux" >&5
+echo "$as_me:10454: checking c++ library-dependency suffix" >&5
+echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
 if test "$with_libtool" = "yes"; then
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
 if test "$with_libtool" = "yes"; then
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
-       
-       
+
        case normal in
        libtool) CXX_LIB_SUFFIX='.la'  ;;
        normal)  CXX_LIB_SUFFIX='.a'   ;;
        case normal in
        libtool) CXX_LIB_SUFFIX='.la'  ;;
        normal)  CXX_LIB_SUFFIX='.a'   ;;
@@ -7090,28 +10464,37 @@ else
        profile) CXX_LIB_SUFFIX='_p.a' ;;
        shared)
                case $cf_cv_system_name in
        profile) CXX_LIB_SUFFIX='_p.a' ;;
        shared)
                case $cf_cv_system_name in
+               cygwin*) CXX_LIB_SUFFIX='.dll' ;;
+               darwin*) CXX_LIB_SUFFIX='.dylib' ;;
                hpux*)  CXX_LIB_SUFFIX='.sl'  ;;
                *)      CXX_LIB_SUFFIX='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
 fi
                hpux*)  CXX_LIB_SUFFIX='.sl'  ;;
                *)      CXX_LIB_SUFFIX='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
 fi
-echo "$ac_t""$CXX_LIB_SUFFIX" 1>&6
-
+echo "$as_me:10475: result: $CXX_LIB_SUFFIX" >&5
+echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
 
 TINFO_LIST="$SHLIB_LIST"
 test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
 
 
 TINFO_LIST="$SHLIB_LIST"
 test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
 
-echo $ac_n "checking where we will install curses.h""... $ac_c" 1>&6
-echo "configure:7107: checking where we will install curses.h" >&5
+echo "$as_me:10481: 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}
 test "$with_overwrite" = no && \
 test "x$includedir" = 'x${prefix}/include' && \
        includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
-echo "$ac_t""$includedir" 1>&6
-
-
-
+echo "$as_me:10486: result: $includedir" >&5
+echo "${ECHO_T}$includedir" >&6
 
 
+### Resolve a conflict between normal and wide-curses by forcing applications
+### that will need libutf8 to add it to their configure script.
+if test "$with_overwrite" != no ; then
+if test "$NCURSES_LIBUTF8" = 1 ; then
+       NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+       { echo "$as_me:10494: 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.
 
 ### Set up low-level terminfo dependencies for makefiles.  Note that we
 ### could override this.
@@ -7129,9 +10512,8 @@ PROG_ARGS="$TEST_ARGS"
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
-
-echo $ac_n "checking for src modules""... $ac_c" 1>&6
-echo "configure:7135: checking for src modules" >&5
+echo "$as_me:10515: 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"
 
 # dependencies and linker-arguments for test-programs
 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
                if test $cf_dir = tack ; then
                        continue
                elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
                if test $cf_dir = tack ; then
                        continue
                elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
-                       
+
 cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-                       cat >> confdefs.h <<EOF
+                       cat >>confdefs.h <<EOF
 #define HAVE_${cf_have_include}_H 1
 EOF
 
 #define HAVE_${cf_have_include}_H 1
 EOF
 
-                       cat >> confdefs.h <<EOF
+                       cat >>confdefs.h <<EOF
 #define HAVE_LIB${cf_have_include} 1
 EOF
 
 #define HAVE_LIB${cf_have_include} 1
 EOF
 
@@ -7190,20 +10572,19 @@ EOF
                fi
        fi
 done
                fi
        fi
 done
-echo "$ac_t""$cf_cv_src_modules" 1>&6
-TEST_ARGS="-L${LIB_DIR} -L\$(libdir) $TEST_ARGS"
-
-
-
-PROG_ARGS="-L${LIB_DIR} -L\$(libdir) $PROG_ARGS"
+echo "$as_me:10575: 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"
 
 SRC_SUBDIRS="man include"
 for cf_dir in $cf_cv_src_modules
 do
        SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
 done
 
 SRC_SUBDIRS="man include"
 for cf_dir in $cf_cv_src_modules
 do
        SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
 done
-SRC_SUBDIRS="$SRC_SUBDIRS misc test"
+SRC_SUBDIRS="$SRC_SUBDIRS test"
+test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
 
 ADA_SUBDIRS=
 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
 
 ADA_SUBDIRS=
@@ -7223,445 +10604,872 @@ if test -n "$ADA_SUBDIRS"; then
    do
       SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
    done
    do
       SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
    done
-   
-fi
 
 
+fi
 
 DIRS_TO_MAKE="lib"
 for cf_item in $cf_list_models
 do
 
 DIRS_TO_MAKE="lib"
 for cf_item in $cf_list_models
 do
-       
+
        case $cf_item in
        libtool) cf_subdir='obj_lo'  ;;
        normal)  cf_subdir='objects' ;;
        debug)   cf_subdir='obj_g' ;;
        profile) cf_subdir='obj_p' ;;
        case $cf_item in
        libtool) cf_subdir='obj_lo'  ;;
        normal)  cf_subdir='objects' ;;
        debug)   cf_subdir='obj_g' ;;
        profile) cf_subdir='obj_p' ;;
-       shared)  cf_subdir='obj_s' ;;
+       shared)
+               case $cf_cv_system_name in #(vi
+               cygwin) #(vi
+                       cf_subdir='objects' ;;
+               *)
+                       cf_subdir='obj_s' ;;
+               esac
        esac
 
        esac
 
-       DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
+       for cf_item2 in $DIRS_TO_MAKE
+       do
+               test $cf_item2 = $cf_subdir && break
+       done
+       test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
 done
 for cf_dir in $DIRS_TO_MAKE
 do
        test ! -d $cf_dir && mkdir $cf_dir
 done
 
 done
 for cf_dir in $DIRS_TO_MAKE
 do
        test ! -d $cf_dir && mkdir $cf_dir
 done
 
-
+cat >>confdefs.h <<EOF
+#define NCURSES_PATHSEP '$PATHSEP'
+EOF
 
 ### Now that we're done running tests, add the compiler-warnings, if any
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
 ################################################################################
 
 ### Now that we're done running tests, add the compiler-warnings, if any
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
 ################################################################################
-trap '' 1 2 15
-cat > confcache <<\EOF
+ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h misc/run_tic.sh:misc/run_tic.in $SUB_MAKEFILES Makefile"
+ac_config_commands="$ac_config_commands default"
+cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
 #
 #
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
 #
 #
-EOF
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
 # So, don't put newlines in cache variables' values.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
 # So, don't put newlines in cache variables' values.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
   if test -w $cache_file; then
   if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
+  ac_vpsub='/^[        ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[   ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[     ]*$//;
+}'
 fi
 
 fi
 
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
 DEFS=-DHAVE_CONFIG_H
 
 DEFS=-DHAVE_CONFIG_H
 
-# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
 : ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:10728: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
 # Generated automatically by configure.
 # Run this file to recreate the current configuration.
 # Generated automatically by configure.
 # Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
 # Compiler output produced by configure, useful for debugging
 # Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
+# configure, is in config.log if it exists.
 
 
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+ac_cs_invocation="\$0 \$@"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+exec 6>&1
+
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\EOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.52.20011227,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
 do
 do
-  case "\$ac_option" in
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+EOF
+cat >>$CONFIG_STATUS <<EOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13.20000819"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:10904: 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;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:10923: 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;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
   esac
   esac
+  shift
 done
 
 done
 
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
+exec 5>>config.log
+cat >&5 << _ACEOF
 
 
-trap 'rm -fr `echo "\
-       include/MKterm.h.awk \
-       include/curses.h \
-       include/termcap.h \
-       include/unctrl.h \
-       misc/run_tic.sh:misc/run_tic.in \
-       $SUB_MAKEFILES \
-       Makefile include/ncurses_cfg.h:include/ncurses_cfg.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
+## ----------------------- ##
+## Running config.status.  ##
+## ----------------------- ##
 
 
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@NCURSES_MAJOR@%$NCURSES_MAJOR%g
-s%@NCURSES_MINOR@%$NCURSES_MINOR%g
-s%@NCURSES_PATCH@%$NCURSES_PATCH%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_cc_bool_type@%$cf_cv_cc_bool_type%g
-s%@cf_cv_builtin_bool@%$cf_cv_builtin_bool%g
-s%@cf_cv_type_of_bool@%$cf_cv_type_of_bool%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@CC@%$CC%g
-s%@BUILD_CC@%$BUILD_CC%g
-s%@CPP@%$CPP%g
-s%@PROG_EXT@%$PROG_EXT%g
-s%@LDCONFIG@%$LDCONFIG%g
-s%@CXX@%$CXX%g
-s%@AWK@%$AWK%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@LN_S@%$LN_S%g
-s%@RANLIB@%$RANLIB%g
-s%@MAKE_LOWER_TAGS@%$MAKE_LOWER_TAGS%g
-s%@MAKE_UPPER_TAGS@%$MAKE_UPPER_TAGS%g
-s%@LINT@%$LINT%g
-s%@MAN@%$MAN%g
-s%@LINT_OPTS@%$LINT_OPTS%g
-s%@LD@%$LD%g
-s%@AR@%$AR%g
-s%@AR_OPTS@%$AR_OPTS%g
-s%@cf_cv_makeflags@%$cf_cv_makeflags%g
-s%@DESTDIR@%$DESTDIR%g
-s%@cf_list_models@%$cf_list_models%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@DFT_LWR_MODEL@%$DFT_LWR_MODEL%g
-s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
-s%@TINFO_NAME@%$TINFO_NAME%g
-s%@LIB_NAME@%$LIB_NAME%g
-s%@LIB_PREFIX@%$LIB_PREFIX%g
-s%@LIB_SUFFIX@%$LIB_SUFFIX%g
-s%@CC_G_OPT@%$CC_G_OPT%g
-s%@CXX_G_OPT@%$CXX_G_OPT%g
-s%@LD_MODEL@%$LD_MODEL%g
-s%@CC_SHARED_OPTS@%$CC_SHARED_OPTS%g
-s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
-s%@MK_SHARED_LIB@%$MK_SHARED_LIB%g
-s%@LINK_PROGS@%$LINK_PROGS%g
-s%@LINK_TESTS@%$LINK_TESTS%g
-s%@EXTRA_LDFLAGS@%$EXTRA_LDFLAGS%g
-s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
-s%@LOCAL_LDFLAGS2@%$LOCAL_LDFLAGS2%g
-s%@INSTALL_LIB@%$INSTALL_LIB%g
-s%@TERMINFO_SRC@%$TERMINFO_SRC%g
-s%@FALLBACK_LIST@%$FALLBACK_LIST%g
-s%@TERMINFO_DIRS@%$TERMINFO_DIRS%g
-s%@TERMINFO@%$TERMINFO%g
-s%@NCURSES_CONST@%$NCURSES_CONST%g
-s%@NCURSES_XNAMES@%$NCURSES_XNAMES%g
-s%@ECHO_LINK@%$ECHO_LINK%g
-s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
-s%@MATH_LIB@%$MATH_LIB%g
-s%@cf_cv_typeof_chtype@%$cf_cv_typeof_chtype%g
-s%@cf_cv_1UL@%$cf_cv_1UL%g
-s%@cf_cv_shift_limit@%$cf_cv_shift_limit%g
-s%@cf_cv_widec_shift@%$cf_cv_widec_shift%g
-s%@CXXCPP@%$CXXCPP%g
-s%@CXXLDFLAGS@%$CXXLDFLAGS%g
-s%@CXXLIBS@%$CXXLIBS%g
-s%@gnat_exists@%$gnat_exists%g
-s%@M4_exists@%$M4_exists%g
-s%@cf_ada_make@%$cf_ada_make%g
-s%@cf_ada_compiler@%$cf_ada_compiler%g
-s%@cf_ada_package@%$cf_ada_package%g
-s%@ADAFLAGS@%$ADAFLAGS%g
-s%@cf_compile_generics@%$cf_compile_generics%g
-s%@cf_generic_objects@%$cf_generic_objects%g
-s%@ADA_INCLUDE@%$ADA_INCLUDE%g
-s%@ADA_OBJECTS@%$ADA_OBJECTS%g
-s%@ACPPFLAGS@%$ACPPFLAGS%g
-s%@DFT_ARG_SUFFIX@%$DFT_ARG_SUFFIX%g
-s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
-s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
-s%@CXX_LIB_SUFFIX@%$CXX_LIB_SUFFIX%g
-s%@EXTRA_LIBS@%$EXTRA_LIBS%g
-s%@TINFO_LIST@%$TINFO_LIST%g
-s%@SHLIB_LIST@%$SHLIB_LIST%g
-s%@TEST_DEPS@%$TEST_DEPS%g
-s%@TEST_ARGS@%$TEST_ARGS%g
-s%@PROG_ARGS@%$PROG_ARGS%g
-s%@ADA_SUBDIRS@%$ADA_SUBDIRS%g
-s%@DIRS_TO_MAKE@%$DIRS_TO_MAKE%g
+This file was extended by $as_me 2.52.20011227, executed with
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  > $ac_cs_invocation
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
 
-CEOF
+_ACEOF
 EOF
 
 EOF
 
-cat >> $CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<EOF
+#
+# INIT-COMMANDS section.
+#
 
 
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
-  if test $ac_beg -gt 1; then
-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
+### Special initialization commands, used to pass information from the
+### configuration-run into config.status
+
+AWK="$AWK"
+CF_LIST_MODELS="$cf_list_models"
+DFT_LWR_MODEL="$DFT_LWR_MODEL"
+LDCONFIG="$LDCONFIG"
+LIB_NAME="$LIB_NAME"
+LIB_SUBSETS="$LIB_SUBSETS"
+LIB_SUFFIX="$LIB_SUFFIX"
+LIB_TRACING="$LIB_TRACING"
+MAKE_TERMINFO="$MAKE_TERMINFO"
+NCURSES_OSPEED="$NCURSES_OSPEED"
+SRC_SUBDIRS="$SRC_SUBDIRS"
+TERMINFO="$TERMINFO"
+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_rel_version="$cf_cv_rel_version"
+cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
+cf_cv_shlib_version="$cf_cv_shlib_version"
+cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
+cf_cv_system_name="$cf_cv_system_name"
+cf_with_cxx_binding="$cf_with_cxx_binding"
+target="$target"
+
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "include/MKterm.h.awk" ) CONFIG_FILES="$CONFIG_FILES include/MKterm.h.awk" ;;
+  "include/curses.head" ) CONFIG_FILES="$CONFIG_FILES include/curses.head:include/curses.h.in" ;;
+  "include/termcap.h" ) CONFIG_FILES="$CONFIG_FILES include/termcap.h" ;;
+  "include/unctrl.h" ) CONFIG_FILES="$CONFIG_FILES include/unctrl.h" ;;
+  "misc/run_tic.sh" ) CONFIG_FILES="$CONFIG_FILES misc/run_tic.sh:misc/run_tic.in" ;;
+  "$SUB_MAKEFILES" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILES" ;;
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+  "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+  *) { { echo "$as_me:11003: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
 done
 done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@DEFS@,$DEFS,;t t
+s,@LIBS@,$LIBS,;t t
+s,@NCURSES_MAJOR@,$NCURSES_MAJOR,;t t
+s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t
+s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t
+s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
+s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
+s,@cf_cv_cc_bool_type@,$cf_cv_cc_bool_type,;t t
+s,@cf_cv_builtin_bool@,$cf_cv_builtin_bool,;t t
+s,@cf_cv_header_stdbool_h@,$cf_cv_header_stdbool_h,;t t
+s,@cf_cv_type_of_bool@,$cf_cv_type_of_bool,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@target@,$target,;t t
+s,@target_cpu@,$target_cpu,;t t
+s,@target_vendor@,$target_vendor,;t t
+s,@target_os@,$target_os,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@BUILD_CC@,$BUILD_CC,;t t
+s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
+s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
+s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
+s,@BUILD_LIBS@,$BUILD_LIBS,;t t
+s,@CPP@,$CPP,;t t
+s,@PROG_EXT@,$PROG_EXT,;t t
+s,@LDCONFIG@,$LDCONFIG,;t t
+s,@CXX@,$CXX,;t t
+s,@CXXFLAGS@,$CXXFLAGS,;t t
+s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+s,@AWK@,$AWK,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@LN_S@,$LN_S,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
+s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t
+s,@LINT@,$LINT,;t t
+s,@MAN@,$MAN,;t t
+s,@LINT_OPTS@,$LINT_OPTS,;t t
+s,@LD@,$LD,;t t
+s,@AR@,$AR,;t t
+s,@AR_OPTS@,$AR_OPTS,;t t
+s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t
+s,@DESTDIR@,$DESTDIR,;t t
+s,@cf_list_models@,$cf_list_models,;t t
+s,@LIBTOOL@,$LIBTOOL,;t t
+s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
+s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
+s,@TINFO_NAME@,$TINFO_NAME,;t t
+s,@LIB_NAME@,$LIB_NAME,;t t
+s,@LIB_PREFIX@,$LIB_PREFIX,;t t
+s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
+s,@CC_G_OPT@,$CC_G_OPT,;t t
+s,@CXX_G_OPT@,$CXX_G_OPT,;t t
+s,@LD_MODEL@,$LD_MODEL,;t t
+s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
+s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t
+s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t
+s,@LINK_PROGS@,$LINK_PROGS,;t t
+s,@LINK_TESTS@,$LINK_TESTS,;t t
+s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t
+s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
+s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
+s,@INSTALL_LIB@,$INSTALL_LIB,;t t
+s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
+s,@PATHSEP@,$PATHSEP,;t t
+s,@FALLBACK_LIST@,$FALLBACK_LIST,;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,@NCURSES_MBSTATE_T@,$NCURSES_MBSTATE_T,;t t
+s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+s,@ECHO_LINK@,$ECHO_LINK,;t t
+s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;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,@HAVE_VSSCANF@,$HAVE_VSSCANF,;t t
+s,@CXXCPP@,$CXXCPP,;t t
+s,@CXXLDFLAGS@,$CXXLDFLAGS,;t t
+s,@CXX_AR@,$CXX_AR,;t t
+s,@CXX_AR_OPTS@,$CXX_AR_OPTS,;t t
+s,@CXXLIBS@,$CXXLIBS,;t t
+s,@gnat_exists@,$gnat_exists,;t t
+s,@M4_exists@,$M4_exists,;t t
+s,@cf_ada_make@,$cf_ada_make,;t t
+s,@cf_ada_compiler@,$cf_ada_compiler,;t t
+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,@ADA_INCLUDE@,$ADA_INCLUDE,;t t
+s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
+s,@ADA_TRACE@,$ADA_TRACE,;t t
+s,@ACPPFLAGS@,$ACPPFLAGS,;t t
+s,@DFT_ARG_SUFFIX@,$DFT_ARG_SUFFIX,;t t
+s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
+s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t
+s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t
+s,@EXTRA_LIBS@,$EXTRA_LIBS,;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,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
+s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
+CEOF
+
 EOF
 
 EOF
 
-cat >> $CONFIG_STATUS <<EOF
+  cat >>$CONFIG_STATUS <<\EOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
 
 
-CONFIG_FILES=\${CONFIG_FILES-"\
-       include/MKterm.h.awk \
-       include/curses.h \
-       include/termcap.h \
-       include/unctrl.h \
-       misc/run_tic.sh:misc/run_tic.in \
-       $SUB_MAKEFILES \
-       Makefile"}
 EOF
 EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+cat >>$CONFIG_STATUS <<\EOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
   esac
 
   esac
 
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
   if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
   if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+    ;;
+  esac
+done; }
+
+    ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
     # A "../" for each directory in $ac_dir_suffix.
     # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+    ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
   else
     ac_dir_suffix= ac_dots=
   fi
 
   else
     ac_dir_suffix= ac_dots=
   fi
 
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  case $srcdir in
+  .)  ac_srcdir=.
+      if test -z "$ac_dots"; then
+         ac_top_srcdir=.
+      else
+         ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'`
+      fi ;;
+  [\\/]* | ?:[\\/]* )
+      ac_srcdir=$srcdir$ac_dir_suffix;
+      ac_top_srcdir=$srcdir ;;
   *) # Relative path.
   *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+    ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_dots$srcdir ;;
   esac
 
   esac
 
-  case "$ac_given_INSTALL" in
-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_dots$INSTALL ;;
   esac
 
   esac
 
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:11329: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated automatically by config.status.  */
+  configure_input="Generated automatically from `echo $ac_file_in |
+                                                 sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:11347: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:11360: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+EOF
+cat >>$CONFIG_STATUS <<EOF
+  sed "$ac_vpsub
+$extrasub
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+EOF
+cat >>$CONFIG_STATUS <<\EOF
 
 
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
+#
+# CONFIG_HEADER section.
+#
 
 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
 
 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([  ]*\)#\([        ]*define[       ][      ]*\)'
-ac_dB='\([     ][      ]*\)[^  ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='\([     ]\)%\1#\2define\3'
+ac_dA='s,^\([  ]*\)#\([        ]*define[       ][      ]*\)'
+ac_dB='[       ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_i turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_iA='s,^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_iB='\([     ]\),\1#\2define\3'
+ac_iC=' '
+ac_iD='\4,;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_uB='$,\1#\2define\3'
 ac_uC=' '
 ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
+ac_uD=',;t'
 
 
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="include/ncurses_cfg.h:include/ncurses_cfg.hin"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
   esac
 
   esac
 
-  echo creating $ac_file
-
-  rm -f conftest.frag conftest.in conftest.out
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  cat $ac_file_inputs > conftest.in
+  test x"$ac_file" != x- && { echo "$as_me:11426: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:11437: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:11450: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[     ]*$//' $ac_file_inputs >$tmp/in
 
 EOF
 
 
 EOF
 
-
 # Transform confdefs.h into a list of #define's.  We won't use it as a sed
 # script, but as data to insert where we see @DEFS@.  We expect AC_SAVE_DEFS to
 # be either 'cat' or 'sort'.
 # Transform confdefs.h into a list of #define's.  We won't use it as a sed
 # script, but as data to insert where we see @DEFS@.  We expect AC_SAVE_DEFS to
 # be either 'cat' or 'sort'.
-sort confdefs.h >conftest.vals
+cat confdefs.h | uniq >conftest.vals
 
 # Break up conftest.vals because some shells have a limit on
 # the size of here documents, and old seds have small limits too.
 
 rm -f conftest.tail
 echo '  rm -f conftest.frag' >> $CONFIG_STATUS
 
 # Break up conftest.vals because some shells have a limit on
 # the size of here documents, and old seds have small limits too.
 
 rm -f conftest.tail
 echo '  rm -f conftest.frag' >> $CONFIG_STATUS
-while :
+while grep . conftest.vals >/dev/null
 do
 do
-  ac_lines=`grep -c . conftest.vals`
-  # grep -c gives empty output for an empty file on some AIX systems.
-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
   # Write chunks of a limited-size here document to conftest.frag.
   echo '  cat >> conftest.frag <<CEOF' >> $CONFIG_STATUS
   sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
   # Write chunks of a limited-size here document to conftest.frag.
   echo '  cat >> conftest.frag <<CEOF' >> $CONFIG_STATUS
   sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
 done
 rm -f conftest.vals
 
 done
 rm -f conftest.vals
 
-# Run sed to substitute the contents of conftest.frag into conftest.in at the
+# Run sed to substitute the contents of conftest.frag into $tmp/in at the
 # marker @DEFS@.
 echo '  cat >> conftest.edit <<CEOF
 /@DEFS@/r conftest.frag
 /@DEFS@/d
 CEOF
 # marker @DEFS@.
 echo '  cat >> conftest.edit <<CEOF
 /@DEFS@/r conftest.frag
 /@DEFS@/d
 CEOF
-sed -f conftest.edit conftest.in > conftest.out
-rm -f conftest.in
-mv conftest.out conftest.in
+sed -f conftest.edit $tmp/in > $tmp/out
+rm -f $tmp/in
+mv $tmp/out $tmp/in
 rm -f conftest.edit conftest.frag
 ' >> $CONFIG_STATUS
 
 rm -f conftest.edit conftest.frag
 ' >> $CONFIG_STATUS
 
-
-cat >> $CONFIG_STATUS <<\EOF
-  rm -f conftest.frag conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.in >> conftest.h
-  rm -f conftest.in
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
+cat >>$CONFIG_STATUS <<\EOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated automatically by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated automatically by configure.  */" >$tmp/config.h
   else
   else
-    # Remove last slash and all that follows it.  Not all systems have dirname.
-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+    echo "/* $ac_file.  Generated automatically by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:11508: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
       if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
       if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-      # The file is in a subdirectory.
-      test ! -d "$ac_dir" && mkdir "$ac_dir"
+        { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+    ;;
+  esac
+done; }
+
+      fi
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
     fi
     fi
-    rm -f $ac_file
-    mv conftest.h $ac_file
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
   fi
   fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-# Extra initialization commands, if any
-
-### Special initialization commands, used to pass information from the
-### configuration-run into config.status
-
-AWK="$AWK"
-CF_LIST_MODELS="$cf_list_models"
-DFT_LWR_MODEL="$DFT_LWR_MODEL"
-LDCONFIG="$LDCONFIG"
-LIB_NAME="$LIB_NAME"
-LIB_SUFFIX="$LIB_SUFFIX"
-LIB_SUBSETS="$LIB_SUBSETS"
-LIB_TRACING="$LIB_TRACING"
-SRC_SUBDIRS="$SRC_SUBDIRS"
-TERMINFO="$TERMINFO"
-TINFO_NAME="$TINFO_NAME"
-WITH_ECHO="$with_echo"
-WITH_OVERWRITE="$with_overwrite"
-WITH_CURSES_H="$with_curses_h"
-cf_cv_abi_version="$cf_cv_abi_version"
-cf_cv_do_symlinks="$cf_cv_do_symlinks"
-cf_cv_rel_version="$cf_cv_rel_version"
-cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
-cf_cv_system_name="$cf_cv_system_name"
-cf_with_cxx_binding="$cf_with_cxx_binding"
-cf_cv_shlib_version="$cf_cv_shlib_version"
-target="$target"
-
-
+done
 EOF
 EOF
-cat >> $CONFIG_STATUS <<\EOF
-# Extra commands, if any
+cat >>$CONFIG_STATUS <<\EOF
 
 
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
 
 
+  case $ac_dest in
+    default )
 
        case $cf_cv_system_name in
 
        case $cf_cv_system_name in
-       os2)    LIB_PREFIX=''     ;;
+       OS/2*)  LIB_PREFIX=''     ;;
+       os2*)   LIB_PREFIX=''     ;;
        *)      LIB_PREFIX='lib'  ;;
        esac
 cf_prefix=$LIB_PREFIX
        *)      LIB_PREFIX='lib'  ;;
        esac
 cf_prefix=$LIB_PREFIX
-       
-
 
 for cf_dir in $SRC_SUBDIRS
 do
        if test -f $srcdir/$cf_dir/modules; then
 
 
 for cf_dir in $SRC_SUBDIRS
 do
        if test -f $srcdir/$cf_dir/modules; then
 
-               cf_libs_to_make=
+               IMPORT_LIB=
+               SHARED_LIB=
+               LIBS_TO_MAKE=
                for cf_item in $CF_LIST_MODELS
                do
                for cf_item in $CF_LIST_MODELS
                do
-                       
-       
+
        case $cf_item in
        libtool) cf_suffix='.la'  ;;
        normal)  cf_suffix='.a'   ;;
        case $cf_item in
        libtool) cf_suffix='.la'  ;;
        normal)  cf_suffix='.a'   ;;
@@ -7766,6 +11582,8 @@ do
        profile) cf_suffix='_p.a' ;;
        shared)
                case $cf_cv_system_name in
        profile) cf_suffix='_p.a' ;;
        shared)
                case $cf_cv_system_name in
+               cygwin*) cf_suffix='.dll' ;;
+               darwin*) cf_suffix='.dylib' ;;
                hpux*)  cf_suffix='.sl'  ;;
                *)      cf_suffix='.so'  ;;
                esac
                hpux*)  cf_suffix='.sl'  ;;
                *)      cf_suffix='.so'  ;;
                esac
                        if test $cf_item = shared ; then
                        if test "$cf_cv_do_symlinks" = yes ; then
                                case "$cf_cv_shlib_version" in #(vi
                        if test $cf_item = shared ; then
                        if test "$cf_cv_do_symlinks" = yes ; then
                                case "$cf_cv_shlib_version" in #(vi
-                               rel) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; #(vi
-                               abi) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
+                               rel) #(vi
+                                       case "$cf_cv_system_name" in #(vi
+                                       darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+                                       *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
+                                       esac
+                                       ;;
+                               abi)
+                                       case "$cf_cv_system_name" in #(vi
+                                       darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+                                       *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
+                                       esac
+                                       ;;
                                esac
                        fi
                                esac
                        fi
+                       # cygwin needs import library, and has unique naming convention
+                       if test $cf_cv_shlib_version = cygdll ; then
+                               SHARED_LIB="../lib/${cf_prefix}${cf_dir}\$(ABI_VERSION).dll"
+                               IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a"
+                               LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)"
+                               continue
+                       fi
                        fi
                        fi
-                       cf_libs_to_make="$cf_libs_to_make ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
+                       LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
                done
 
                if test $cf_dir = ncurses ; then
                done
 
                if test $cf_dir = ncurses ; then
+                       cf_subsets="$LIB_SUBSETS"
                        case "$LIB_SUBSETS" in #(vi
                        termlib+*) #(vi
                                ;;
                        *) #(vi
                        case "$LIB_SUBSETS" in #(vi
                        termlib+*) #(vi
                                ;;
                        *) #(vi
-                               cf_item=`echo $cf_libs_to_make |sed -e s/$LIB_NAME/$TINFO_NAME/g`
-                               cf_libs_to_make="$cf_item $cf_libs_to_make"
+                               cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
+                               LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
                                ;;
                        esac
                                ;;
                        esac
+               else
+                       cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib //'`
                fi
 
                fi
 
-               sed -e "s@\@LIBS_TO_MAKE\@@$cf_libs_to_make@" \
+               sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
+                   -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
+                   -e "s%@SHARED_LIB@%$SHARED_LIB%" \
                        $cf_dir/Makefile >$cf_dir/Makefile.out
                mv $cf_dir/Makefile.out $cf_dir/Makefile
 
                $AWK -f $srcdir/mk-0th.awk \
                        $cf_dir/Makefile >$cf_dir/Makefile.out
                mv $cf_dir/Makefile.out $cf_dir/Makefile
 
                $AWK -f $srcdir/mk-0th.awk \
-                       name=$cf_dir \
+                       libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
                        $srcdir/$cf_dir/modules >>$cf_dir/Makefile
 
                        $srcdir/$cf_dir/modules >>$cf_dir/Makefile
 
-               for cf_item in $CF_LIST_MODELS
+               for cf_subset in $cf_subsets
                do
                do
-                       echo 'Appending rules for '$cf_item' model ('$cf_dir')'
-                       
+                       cf_subdirs=
+                       for cf_item in $CF_LIST_MODELS
+                       do
+                       echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
+
 CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-                       
-       
        case $cf_item in
        libtool) cf_suffix='.la'  ;;
        normal)  cf_suffix='.a'   ;;
        case $cf_item in
        libtool) cf_suffix='.la'  ;;
        normal)  cf_suffix='.a'   ;;
@@ -7817,22 +11658,28 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
        profile) cf_suffix='_p.a' ;;
        shared)
                case $cf_cv_system_name in
        profile) cf_suffix='_p.a' ;;
        shared)
                case $cf_cv_system_name in
+               cygwin*) cf_suffix='.dll' ;;
+               darwin*) cf_suffix='.dylib' ;;
                hpux*)  cf_suffix='.sl'  ;;
                *)      cf_suffix='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}"
 
                hpux*)  cf_suffix='.sl'  ;;
                *)      cf_suffix='.so'  ;;
                esac
        esac
        test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}"
 
-                       
        case $cf_item in
        libtool) cf_subdir='obj_lo'  ;;
        normal)  cf_subdir='objects' ;;
        debug)   cf_subdir='obj_g' ;;
        profile) cf_subdir='obj_p' ;;
        case $cf_item in
        libtool) cf_subdir='obj_lo'  ;;
        normal)  cf_subdir='objects' ;;
        debug)   cf_subdir='obj_g' ;;
        profile) cf_subdir='obj_p' ;;
-       shared)  cf_subdir='obj_s' ;;
+       shared)
+               case $cf_cv_system_name in #(vi
+               cygwin) #(vi
+                       cf_subdir='objects' ;;
+               *)
+                       cf_subdir='obj_s' ;;
+               esac
        esac
 
        esac
 
-
                        # These dependencies really are for development, not
                        # builds, but they are useful in porting, too.
                        cf_depend="../include/ncurses_cfg.h"
                        # These dependencies really are for development, not
                        # builds, but they are useful in porting, too.
                        cf_depend="../include/ncurses_cfg.h"
@@ -7848,8 +11695,6 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
-                       for cf_subset in $LIB_SUBSETS
-                       do
                        $AWK -f $srcdir/mk-1st.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
                        $AWK -f $srcdir/mk-1st.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
@@ -7859,6 +11704,7 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                suffix=$cf_suffix \
                                subset=$cf_subset \
                                ShlibVer=$cf_cv_shlib_version \
                                suffix=$cf_suffix \
                                subset=$cf_subset \
                                ShlibVer=$cf_cv_shlib_version \
+                               ShlibVerInfix=$cf_cv_shlib_version_infix \
                                DoLinks=$cf_cv_do_symlinks \
                                rmSoLocs=$cf_cv_rm_so_locs \
                                ldconfig="$LDCONFIG" \
                                DoLinks=$cf_cv_do_symlinks \
                                rmSoLocs=$cf_cv_rm_so_locs \
                                ldconfig="$LDCONFIG" \
@@ -7866,7 +11712,11 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                depend="$cf_depend" \
                                target="$target" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                                depend="$cf_depend" \
                                target="$target" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-                       test $cf_dir = ncurses && WITH_OVERWRITE=no
+                       for cf_subdir2 in $cf_subdirs lib
+                       do
+                               test $cf_subdir = $cf_subdir2 && break
+                       done
+                       test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
@@ -7876,6 +11726,7 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+                       cf_subdirs="$cf_subdirs $cf_subdir"
                        done
                done
        fi
                        done
                done
        fi
@@ -7931,11 +11782,11 @@ done
 
 cat >> Makefile <<CF_EOF
 
 
 cat >> Makefile <<CF_EOF
 
-install.data \
+install.data \\
 uninstall.data ::
 uninstall.data ::
-       cd misc && \$(MAKE) \$(CF_MFLAGS) \$@
+$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \$@
 
 
-install.man \
+install.man \\
 uninstall.man ::
        cd man && \$(MAKE) \$(CF_MFLAGS) \$@
 
 uninstall.man ::
        cd man && \$(MAKE) \$(CF_MFLAGS) \$@
 
@@ -7950,14 +11801,13 @@ if test -d tack ; then
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
 
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
 
-install.man \
+install.man \\
 uninstall.man ::
        cd tack && \$(MAKE) \$(CF_MFLAGS) \$@
 CF_EOF
 fi
 fi
 
 uninstall.man ::
        cd tack && \$(MAKE) \$(CF_MFLAGS) \$@
 CF_EOF
 fi
 fi
 
-
 rm -f headers.sed headers.sh
 
 echo creating headers.sh
 rm -f headers.sed headers.sh
 
 echo creating headers.sh
@@ -8028,6 +11878,9 @@ test "\$NAME" = "curses.h" && NAME=ncurses.h
 CF_EOF
 fi
 cat >>headers.sh <<CF_EOF
 CF_EOF
 fi
 cat >>headers.sh <<CF_EOF
+# Just in case someone gzip'd manpages, remove the conflicting copy.
+test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
+
 eval \$PRG \$TMPSRC \$DST/\$NAME
 rm -f \$TMPSRC \$TMPSED
 CF_EOF
 eval \$PRG \$TMPSRC \$DST/\$NAME
 rm -f \$TMPSRC \$TMPSED
 CF_EOF
@@ -8039,7 +11892,7 @@ do
        if test -f $srcdir/$cf_dir/headers; then
        cat >>$cf_dir/Makefile <<CF_EOF
 \$(DESTDIR)\$(includedir) :
        if test -f $srcdir/$cf_dir/headers; then
        cat >>$cf_dir/Makefile <<CF_EOF
 \$(DESTDIR)\$(includedir) :
-       \$(srcdir)/../mkinstalldirs \$@
+       sh \$(srcdir)/../mkinstalldirs \$@
 
 install \\
 install.libs \\
 
 install \\
 install.libs \\
@@ -8071,13 +11924,46 @@ CF_EOF
                        test $i = curses.h && echo "    -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
                done
        fi
                        test $i = curses.h && echo "    -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
                done
        fi
+
+       if test -f $srcdir/$cf_dir/modules; then
+               if test "$cf_dir" != "c++" ; then
+                       cat >>$cf_dir/Makefile <<"CF_EOF"
+depend : $(AUTO_SRC)
+       makedepend -- $(CPPFLAGS) -- $(C_SRC)
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+CF_EOF
+               fi
+       fi
 done
 
 done
 
+ ;;
+  esac
+done
+EOF
 
 
+cat >>$CONFIG_STATUS <<\EOF
 
 
-exit 0
+{ (exit 0); exit 0; }
 EOF
 chmod +x $CONFIG_STATUS
 EOF
 chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+ac_clean_files=$ac_clean_files_save
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
 ${MAKE-make} preinstall
 ${MAKE-make} preinstall
index a46fbf1d43ed64f08eaa9d8ad4f9a7f6daea224d..14d08e097218ed7c8442d9703d2d46a1fe57bdb3 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
 dnl***************************************************************************
-dnl Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,16 +26,16 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+dnl Author: Thomas E. Dickey 1995-on
 dnl
 dnl
-dnl $Id: configure.in,v 1.220 2000/10/15 00:54:36 tom Exp $
+dnl $Id: configure.in,v 1.274 2002/09/15 00:11:28 tom Exp $
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl See http://dickey.his.com/autoconf/ for additional information.
+dnl See http://invisible-island.net/autoconf/ for additional information.
 dnl
 dnl ---------------------------------------------------------------------------
 dnl
 dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20000819)
-AC_REVISION($Revision: 1.220 $)
+AC_PREREQ(2.13.20020210)
+AC_REVISION($Revision: 1.274 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -61,19 +61,16 @@ AC_ARG_ENABLE(add-ons, dnl
                [glibc_add_on=yes],
                [glibc_add_on=])
 
                [glibc_add_on=yes],
                [glibc_add_on=])
 
-dnl We need to use [ and ] for other purposes for a while now.
-changequote(,)dnl
 if test x"$glibc_add_on" = "xyes" ; then
   rm -f $srcdir/Banner
   # We are in glibc.
   rm -f $srcdir/Makefile
   cp $srcdir/Makefile.glibc $srcdir/Makefile
 if test x"$glibc_add_on" = "xyes" ; then
   rm -f $srcdir/Banner
   # We are in glibc.
   rm -f $srcdir/Makefile
   cp $srcdir/Makefile.glibc $srcdir/Makefile
-  echo "ncurses `grep \"^[     ]*ncurses-version[      ]*=.*$\" \
+  echo "ncurses `grep \"^[[    ]]*ncurses-version[[    ]]*=.*$\" \
                $srcdir/Makefile | sed -e \
                $srcdir/Makefile | sed -e \
-               's/^[   ]*ncurses-version[      ]*=[    ]*\([^  ^ ]*\)[         ]*$/\1/'`" > $srcdir/Banner
+               's/^[[  ]]*ncurses-version[[    ]]*=[[  ]]*\([[^        ^ ]]*\)[[       ]]*$/\1/'`" > $srcdir/Banner
   exit 0
 fi
   exit 0
 fi
-changequote([,])dnl
 
 ###    Save the given $CFLAGS to allow user-override.
 cf_user_CFLAGS="$CFLAGS"
 
 ###    Save the given $CFLAGS to allow user-override.
 cf_user_CFLAGS="$CFLAGS"
@@ -83,16 +80,45 @@ CF_CFG_DEFAULTS
 
 ###    Checks for programs.
 AC_PROG_CC
 
 ###    Checks for programs.
 AC_PROG_CC
+GCC_VERSION=none
 if test "$GCC" = yes ; then
        AC_MSG_CHECKING(version of gcc)
 if test "$GCC" = yes ; then
        AC_MSG_CHECKING(version of gcc)
-       eval "$CC --version"
+       GCC_VERSION="`${CC} --version|head -1`"
+       AC_MSG_RESULT($GCC_VERSION)
 fi
 fi
-if test "$host" != $build; then
-       AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)
-else
-       BUILD_CC="$CC"
+
+# If we're cross-compiling, allow the user to override the tools and their
+# options.  The configure script is oriented toward identifying the target
+# compiler, etc., but we need a host compiler to generate parts of the source.
+BUILD_CC='$(CC)'
+BUILD_CFLAGS='$(CFLAGS)'
+BUILD_CPPFLAGS='$(CPPFLAGS)'
+BUILD_LDFLAGS='$(LDFLAGS)'
+BUILD_LIBS='$(LIBS)'
+if test "$host_alias" != "$target_alias" ; then
+       AC_ARG_WITH(build-cc,
+               [  --with-build-cc=XXX     if cross-compiling, the host C compiler (\$BUILD_CC)],
+               [BUILD_CC="$withval"],
+               [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
+       AC_ARG_WITH(build-cflags,
+               [  --with-build-cflags=XXX if cross-compiling, the host C compiler-flags],
+               [BUILD_CFLAGS="$withval"])
+       AC_ARG_WITH(build-cppflags,
+               [  --with-build-cppflags=XXX if cross-compiling, the host C preprocessor-flags],
+               [BUILD_CPPFLAGS="$withval"])
+       AC_ARG_WITH(build-ldflags,
+               [  --with-build-ldflags=XXX if cross-compiling, the host linker-flags],
+               [BUILD_LDFLAGS="$withval"])
+       AC_ARG_WITH(build-libs,
+               [  --with-build-libs=XXX   if cross-compiling, the host libraries],
+               [BUILD_LIBS="$withval"])
 fi
 AC_SUBST(BUILD_CC)
 fi
 AC_SUBST(BUILD_CC)
+AC_SUBST(BUILD_CFLAGS)
+AC_SUBST(BUILD_CPPFLAGS)
+AC_SUBST(BUILD_LDFLAGS)
+AC_SUBST(BUILD_LIBS)
+
 AC_PROG_CPP
 AC_PROG_GCC_TRADITIONAL
 AC_ISC_POSIX
 AC_PROG_CPP
 AC_PROG_GCC_TRADITIONAL
 AC_ISC_POSIX
@@ -129,17 +155,19 @@ else
        popdef([AC_MSG_ERROR])dnl
 fi
 
        popdef([AC_MSG_ERROR])dnl
 fi
 
-changequote(,)dnl
+GXX_VERSION=none
 if test "$GXX" = yes; then
 if test "$GXX" = yes; then
-       case "`${CXX-g++} --version`" in
-       1*|2.[0-6]*)
+       AC_MSG_CHECKING(version of g++)
+       GXX_VERSION="`${CXX-g++} --version|head -1`"
+       AC_MSG_RESULT($GXX_VERSION)
+       case $GXX_VERSION in
+       1*|2.[[0-6]]*)
                GXX=""; CXX=""; ac_cv_prog_gxx=no
                cf_cxx_library=no
                GXX=""; CXX=""; ac_cv_prog_gxx=no
                cf_cxx_library=no
-               echo No: templates do not work
+               AC_MSG_WARN(templates do not work)
                ;;
        esac
 fi
                ;;
        esac
 fi
-changequote([,])dnl
 
 AC_MSG_CHECKING(if you want to build C++ binding and demo)
 AC_ARG_WITH(cxx-binding,
 
 AC_MSG_CHECKING(if you want to build C++ binding and demo)
 AC_ARG_WITH(cxx-binding,
@@ -200,7 +228,7 @@ dnl adjust the location into which the actual install is done, so that an
 dnl archive can be built without modifying the host system's configuration.
 AC_MSG_CHECKING(if you have specified an install-prefix)
 AC_ARG_WITH(install-prefix,
 dnl archive can be built without modifying the host system's configuration.
 AC_MSG_CHECKING(if you have specified an install-prefix)
 AC_ARG_WITH(install-prefix,
-       [  --with-install-prefix   prefixes actual install-location],
+       [  --with-install-prefix   prefixes actual install-location (\$DESTDIR)],
        [case "$withval" in #(vi
        yes|no) #(vi
                ;;
        [case "$withval" in #(vi
        yes|no) #(vi
                ;;
@@ -394,12 +422,12 @@ AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
 AC_ARG_ENABLE(overwrite,
        [  --disable-overwrite     leave out the link to -lcurses],
        [with_overwrite=$enableval],
 AC_ARG_ENABLE(overwrite,
        [  --disable-overwrite     leave out the link to -lcurses],
        [with_overwrite=$enableval],
-       [with_overwrite=yes])
+       [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi])
 AC_MSG_RESULT($with_overwrite)
 
 AC_MSG_CHECKING(if external terminfo-database is used)
 AC_ARG_ENABLE(database,
 AC_MSG_RESULT($with_overwrite)
 
 AC_MSG_CHECKING(if external terminfo-database is used)
 AC_ARG_ENABLE(database,
-       [  --disable-database      use only built-in data],
+       [  --disable-database      do not use terminfo, only fallbacks/termcap],
        [use_database=$enableval],
        [use_database=yes])
 AC_MSG_RESULT($use_database)
        [use_database=$enableval],
        [use_database=yes])
 AC_MSG_RESULT($use_database)
@@ -414,6 +442,7 @@ os2*) #(vi
 esac
 AC_SUBST(TERMINFO_SRC)
 
 esac
 AC_SUBST(TERMINFO_SRC)
 
+CF_PATHSEP
 if test "$use_database" != no ; then
        AC_DEFINE(USE_DATABASE)
        AC_MSG_CHECKING(which terminfo source-file will be installed)
 if test "$use_database" != no ; then
        AC_DEFINE(USE_DATABASE)
        AC_MSG_CHECKING(which terminfo source-file will be installed)
@@ -432,11 +461,10 @@ AC_MSG_RESULT($with_fallback)
 FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
 AC_SUBST(FALLBACK_LIST)
 
 FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
 AC_SUBST(FALLBACK_LIST)
 
+MAKE_TERMINFO=
 if test "$use_database" = no ; then
 if test "$use_database" = no ; then
-       if test -z $with_fallback ; then
-               AC_ERROR(You have disabled the database w/o specifying fallbacks)
-       fi
        TERMINFO="${datadir}/terminfo"
        TERMINFO="${datadir}/terminfo"
+       MAKE_TERMINFO="#"
 else
 
 AC_MSG_CHECKING(for list of terminfo directories)
 else
 
 AC_MSG_CHECKING(for list of terminfo directories)
@@ -460,6 +488,7 @@ AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
 fi
 
 AC_SUBST(TERMINFO)
 fi
 
 AC_SUBST(TERMINFO)
+AC_SUBST(MAKE_TERMINFO)
 
 ###    use option --disable-big-core to make tic run on small machines
 ###    We need 4Mb, check if we can allocate 50% more than that.
 
 ###    use option --disable-big-core to make tic run on small machines
 ###    We need 4Mb, check if we can allocate 50% more than that.
@@ -492,9 +521,23 @@ AC_ARG_ENABLE(termcap,
 AC_MSG_RESULT($with_termcap)
 
 if test "$with_termcap" != "yes" ; then
 AC_MSG_RESULT($with_termcap)
 
 if test "$with_termcap" != "yes" ; then
+       if test "$use_database" = no ; then
+               if test -z $with_fallback ; then
+                       AC_ERROR(You have disabled the database w/o specifying fallbacks)
+               fi
+       fi
        AC_DEFINE(PURE_TERMINFO)
 else
 
        AC_DEFINE(PURE_TERMINFO)
 else
 
+AC_DEFINE(USE_TERMCAP)
+AC_MSG_CHECKING(for list of termcap files)
+CF_WITH_PATHLIST(termpath,
+       [  --with-termpath=XXX     specify list of termcap files],
+       TERMPATH,
+       /etc/termcap:/usr/share/misc/termcap)
+AC_MSG_RESULT($TERMPATH)
+test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
+
 ###    use option --enable-getcap to use a hacked getcap for reading termcaps
 AC_MSG_CHECKING(if fast termcap-loader is needed)
 AC_ARG_ENABLE(getcap,
 ###    use option --enable-getcap to use a hacked getcap for reading termcaps
 AC_MSG_CHECKING(if fast termcap-loader is needed)
 AC_ARG_ENABLE(getcap,
@@ -556,7 +599,39 @@ AC_ARG_ENABLE(broken_linker,
        [with_broken_linker=$enableval],
        [with_broken_linker=$BROKEN_LINKER])
 AC_MSG_RESULT($with_broken_linker)
        [with_broken_linker=$enableval],
        [with_broken_linker=$BROKEN_LINKER])
 AC_MSG_RESULT($with_broken_linker)
-test "$with_broken_linker" = yes && AC_DEFINE(BROKEN_LINKER)
+
+BROKEN_LINKER=0
+if test "$with_broken_linker" = yes ; then
+       AC_DEFINE(BROKEN_LINKER)
+       BROKEN_LINKER=1
+elif test $DFT_LWR_MODEL = shared ; then
+       case $cf_cv_system_name in #(vi
+       cygwin*)
+               AC_DEFINE(BROKEN_LINKER)
+               BROKEN_LINKER=1
+               CF_VERBOSE(cygwin linker is broken anyway)
+               ;;
+       esac
+fi
+AC_SUBST(BROKEN_LINKER)
+
+###   use option --with-bool to override bool's type
+AC_MSG_CHECKING(for type of bool)
+AC_ARG_WITH(bool,
+       [  --with-bool=TYPE        override fallback type of bool variable],
+       [NCURSES_BOOL="$withval"],
+       [NCURSES_BOOL=auto])
+AC_MSG_RESULT($NCURSES_BOOL)
+AC_SUBST(NCURSES_BOOL)
+
+###   use option --with-ospeed to override ospeed's type
+AC_MSG_CHECKING(for type of ospeed)
+AC_ARG_WITH(ospeed,
+       [  --with-ospeed=TYPE      override type of ospeed variable],
+       [NCURSES_OSPEED="$withval"],
+       [NCURSES_OSPEED=short])
+AC_MSG_RESULT($NCURSES_OSPEED)
+AC_SUBST(NCURSES_OSPEED)
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
 AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
 AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
@@ -590,13 +665,17 @@ AC_ARG_ENABLE(ext-funcs,
        [with_ext_funcs=yes])
 AC_MSG_RESULT($with_ext_funcs)
 if test "$with_ext_funcs" = yes ; then
        [with_ext_funcs=yes])
 AC_MSG_RESULT($with_ext_funcs)
 if test "$with_ext_funcs" = yes ; then
+       NCURSES_EXT_FUNCS=1
        AC_DEFINE(HAVE_CURSES_VERSION)
        AC_DEFINE(HAVE_HAS_KEY)
        AC_DEFINE(HAVE_RESIZETERM)
        AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
        AC_DEFINE(HAVE_WRESIZE)
        AC_DEFINE(NCURSES_EXT_FUNCS)
        AC_DEFINE(HAVE_CURSES_VERSION)
        AC_DEFINE(HAVE_HAS_KEY)
        AC_DEFINE(HAVE_RESIZETERM)
        AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
        AC_DEFINE(HAVE_WRESIZE)
        AC_DEFINE(NCURSES_EXT_FUNCS)
+else
+       NCURSES_EXT_FUNCS=0
 fi
 fi
+AC_SUBST(NCURSES_EXT_FUNCS)
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 AC_MSG_CHECKING(for extended use of const keyword)
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 AC_MSG_CHECKING(for extended use of const keyword)
@@ -649,15 +728,6 @@ AC_ARG_WITH(develop,
        [with_develop=no])
 AC_MSG_RESULT($with_develop)
 
        [with_develop=no])
 AC_MSG_RESULT($with_develop)
 
-###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-AC_MSG_CHECKING(if you want colorfgbg code)
-AC_ARG_ENABLE(hard-tabs,
-       [  --enable-colorfgbg      compile with \$COLORFGBG code],
-       [with_colorfgbg=$enableval],
-       [with_colorfgbg=$with_develop])
-AC_MSG_RESULT($with_colorfgbg)
-test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
-
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
 AC_MSG_CHECKING(if you want hard-tabs code)
 AC_ARG_ENABLE(hard-tabs,
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
 AC_MSG_CHECKING(if you want hard-tabs code)
 AC_ARG_ENABLE(hard-tabs,
@@ -705,6 +775,15 @@ AC_ARG_ENABLE(hashmap,
 AC_MSG_RESULT($with_hashmap)
 test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
 
 AC_MSG_RESULT($with_hashmap)
 test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
 
+###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+AC_MSG_CHECKING(if you want colorfgbg code)
+AC_ARG_ENABLE(colorfgbg,
+       [  --enable-colorfgbg      compile with \$COLORFGBG code],
+       [with_colorfgbg=$enableval],
+       [with_colorfgbg=no])
+AC_MSG_RESULT($with_colorfgbg)
+test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
+
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
        [  --enable-safe-sprintf   compile with experimental safe-sprintf code],
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
        [  --enable-safe-sprintf   compile with experimental safe-sprintf code],
@@ -726,6 +805,9 @@ test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
 fi
 
 ###   use option --enable-widec to turn on use of wide-character support
 fi
 
 ###   use option --enable-widec to turn on use of wide-character support
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
+NCURSES_MBSTATE_T=0
 AC_MSG_CHECKING(if you want experimental wide-character code)
 AC_ARG_ENABLE(widec,
        [  --enable-widec          compile with experimental wide-char/UTF-8 code],
 AC_MSG_CHECKING(if you want experimental wide-character code)
 AC_ARG_ENABLE(widec,
        [  --enable-widec          compile with experimental wide-char/UTF-8 code],
@@ -735,7 +817,33 @@ AC_MSG_RESULT($with_widec)
 if test "$with_widec" = yes ; then
        LIB_SUFFIX="w${LIB_SUFFIX}"
        AC_DEFINE(USE_WIDEC_SUPPORT)
 if test "$with_widec" = yes ; then
        LIB_SUFFIX="w${LIB_SUFFIX}"
        AC_DEFINE(USE_WIDEC_SUPPORT)
+       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+       # with_overwrite=no
+       NCURSES_CH_T=cchar_t
+       AC_CHECK_FUNC(putwc)
+if test "$ac_cv_func_putwc" != yes ; then
+       CF_LIBUTF8
+       if test "$cf_cv_libutf8" = yes ; then
+               NCURSES_LIBUTF8=1
+       fi
+fi
+       CF_MBSTATE_T
+       if test $cf_cv_mbstate_t = yes ; then
+               NCURSES_MBSTATE_T=1
+       fi
 fi
 fi
+AC_SUBST(NCURSES_CH_T)
+AC_SUBST(NCURSES_LIBUTF8)
+AC_SUBST(NCURSES_MBSTATE_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:)
 
 ###############################################################################
 CF_HELP_MESSAGE(Testing/development Options:)
@@ -814,8 +922,10 @@ CF_MATH_LIB(MATH_LIB,sin(x))
 AC_SUBST(MATH_LIB)
 
 ###    Checks for header files.
 AC_SUBST(MATH_LIB)
 
 ###    Checks for header files.
+CF_GNU_SOURCE
 AC_STDC_HEADERS
 AC_HEADER_DIRENT
 AC_STDC_HEADERS
 AC_HEADER_DIRENT
+AC_HEADER_TIME
 CF_REGEX
 
 dnl These are some other potentially nonportable headers.
 CF_REGEX
 
 dnl These are some other potentially nonportable headers.
@@ -853,7 +963,6 @@ AC_C_INLINE
 test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
 
 CF_TYPEOF_CHTYPE
 test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
 
 CF_TYPEOF_CHTYPE
-CF_WIDEC_SHIFT
 
 ###    Checks for external-data
 CF_ERRNO
 
 ###    Checks for external-data
 CF_ERRNO
@@ -867,7 +976,6 @@ geteuid \
 getttynam \
 issetugid \
 memccpy \
 getttynam \
 issetugid \
 memccpy \
-mkstemp \
 nanosleep \
 poll \
 remove \
 nanosleep \
 poll \
 remove \
@@ -881,9 +989,7 @@ strdup \
 strstr \
 tcgetpgrp \
 times \
 strstr \
 tcgetpgrp \
 times \
-vfscanf \
 vsnprintf \
 vsnprintf \
-vsscanf \
 )
 if test "$with_getcap" = "yes" ; then
        CF_CGETENT
 )
 if test "$with_getcap" = "yes" ; then
        CF_CGETENT
@@ -892,6 +998,16 @@ fi
 CF_ISASCII
 CF_STRUCT_SIGACTION
 CF_FUNC_TERMIOS
 CF_ISASCII
 CF_STRUCT_SIGACTION
 CF_FUNC_TERMIOS
+CF_FUNC_VSSCANF
+CF_MKSTEMP
+
+# setup for prototype of fallback for vsscanf()
+if test "$cf_cv_func_vsscanf" = vsscanf ; then
+       HAVE_VSSCANF=1
+else
+       HAVE_VSSCANF=0
+fi
+AC_SUBST(HAVE_VSSCANF)
 
 dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
 if test "$cross_compiling" = yes ; then
 
 dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
 if test "$cross_compiling" = yes ; then
@@ -916,32 +1032,49 @@ CF_BOOL_DECL(cf_cv_cc_bool_type)
 if test -n "$CXX" ; then
        AC_LANG_CPLUSPLUS
        CF_STDCPP_LIBRARY
 if test -n "$CXX" ; then
        AC_LANG_CPLUSPLUS
        CF_STDCPP_LIBRARY
-       if test "$GXX" = yes; then
-               case "`${CXX-g++} --version`" in
-               1*|2.[0-6]*)
-                       cf_cxx_library=yes
-                       ;;
-               2.7*)
-                       CF_GPP_LIBRARY
-                       ;;
-               *)
-                       cf_cxx_library=no
-                       ;;
-               esac
-       else
+
+       case $GXX_VERSION in
+       1*|2.[0-6]*)
+               cf_cxx_library=yes
+               ;;
+       *-2.7*|2.7*)
+               CF_GPP_LIBRARY
+               ;;
+       *)
                cf_cxx_library=no
                cf_cxx_library=no
-       fi
+               ;;
+       esac
+
        AC_CHECK_HEADERS(typeinfo)
        AC_CHECK_HEADERS(typeinfo)
+
        CF_BOOL_DECL
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
        CF_BOOL_DECL
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
+       CF_CPP_VSCAN_FUNC
+
+       CXX_AR='$(AR)'
+       CXX_AR_OPTS='$(AR_OPTS)'
        case $cf_cv_system_name in #(vi
        case $cf_cv_system_name in #(vi
-       sco3.2v5*)
+       irix*) #(vi
+           if test "$GXX" != yes ; then
+               CXX_AR='$(CXX)'
+               CXX_AR_OPTS='-ar -o'
+           fi
+           ;;
+       sco3.2v5*) #(vi
            CXXLDFLAGS="-u main"
            ;;
            CXXLDFLAGS="-u main"
            ;;
+       solaris2*)
+           if test "$GXX" != yes ; then
+               CXX_AR='$(CXX)'
+               CXX_AR_OPTS='-xar -o'
+           fi
+           ;;
        esac
        AC_SUBST(CXXLDFLAGS)
        esac
        AC_SUBST(CXXLDFLAGS)
+       AC_SUBST(CXX_AR)
+       AC_SUBST(CXX_AR_OPTS)
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
@@ -955,12 +1088,20 @@ else
        # Caveat: since the storage of the bool type is not standardized, it
        # may change.
 
        # Caveat: since the storage of the bool type is not standardized, it
        # may change.
 
-       AC_MSG_CHECKING(for fallback type of bool)
-       case "$host_cpu" in #(vi
-       i?86)   cf_cv_type_of_bool=char ;; #(vi
-       *)      cf_cv_type_of_bool=int  ;;
-       esac
-       AC_MSG_RESULT($cf_cv_type_of_bool)
+       if test "$NCURSES_BOOL" != auto ; then
+               cf_cv_type_of_bool=$NCURSES_AUTO
+       else
+               if test "$cf_cv_header_stdbool_h" = 1 ; then
+                       CF_BOOL_SIZE
+               else
+                       AC_MSG_CHECKING(for fallback type of bool)
+                       case "$host_cpu" in #(vi
+                       i?86)   cf_cv_type_of_bool=char ;; #(vi
+                       *)      cf_cv_type_of_bool=int  ;;
+                       esac
+                       AC_MSG_RESULT($cf_cv_type_of_bool)
+               fi
+       fi
 fi
 AC_SUBST(CXXLIBS)
 
 fi
 AC_SUBST(CXXLIBS)
 
@@ -1032,18 +1173,16 @@ fi
 ### using a 'char' for bools.  gcc 2.7.0's conversion-warnings are broken too
 ### badly to consider using for development purposes, but 2.5.8 is okay.
 if test -n "$with_warnings"; then
 ### using a 'char' for bools.  gcc 2.7.0's conversion-warnings are broken too
 ### badly to consider using for development purposes, but 2.5.8 is okay.
 if test -n "$with_warnings"; then
-       if test "$GCC" = yes; then
-               case "`$CC --version`" in
-               2.6.3)
-                       if test "$cf_cv_type_of_bool" != "char"; then
-                               EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
-                       fi
-                       ;;
-               2.5*)
+       case $GCC_VERSION in
+       2.6.3)
+               if test "$cf_cv_type_of_bool" != "char"; then
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
-                       ;;
-               esac
-       fi
+               fi
+               ;;
+       2.5*)
+               EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
+               ;;
+       esac
 fi
 
 ### Construct the library-subsets, if any, from this set of keywords:
 fi
 
 ### Construct the library-subsets, if any, from this set of keywords:
@@ -1055,15 +1194,19 @@ else
        LIB_SUBSETS="termlib+"
 fi
 LIB_SUBSETS="${LIB_SUBSETS}base"
        LIB_SUBSETS="termlib+"
 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"
 AC_MSG_RESULT($LIB_SUBSETS)
 
 LIB_TRACING=DEBUG
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
 AC_MSG_RESULT($LIB_SUBSETS)
 
 LIB_TRACING=DEBUG
-case "$CFLAGS" in
+ADA_TRACE=FALSE
+case "$CFLAGS $CPPFLAGS" in
 *-DTRACE*)
        LIB_TRACING=all
 *-DTRACE*)
        LIB_TRACING=all
+       ADA_TRACE=TRUE
        ;;
 esac
        ;;
 esac
+AC_SUBST(ADA_TRACE)
 
 ### Construct the list of include-directories to be generated
 CF_INCLUDE_DIRS
 
 ### Construct the list of include-directories to be generated
 CF_INCLUDE_DIRS
@@ -1077,6 +1220,13 @@ AC_MSG_RESULT($DFT_ARG_SUFFIX)
 
 AC_MSG_CHECKING(default library-dependency suffix)
 CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
 
 AC_MSG_CHECKING(default library-dependency suffix)
 CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
+if test $DFT_LWR_MODEL = shared ; then
+       case $cf_cv_system_name in #(vi
+       cygwin*)
+               DFT_DEP_SUFFIX=".dll.a"
+               ;;
+       esac
+fi
 AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
 AC_MSG_RESULT($DFT_DEP_SUFFIX)
 
 AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
 AC_MSG_RESULT($DFT_DEP_SUFFIX)
 
@@ -1086,7 +1236,7 @@ AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
 AC_MSG_RESULT($DFT_OBJ_SUBDIR)
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
 AC_MSG_RESULT($DFT_OBJ_SUBDIR)
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
-AC_MSG_CHECKING(c++ library-dependency suffux)
+AC_MSG_CHECKING(c++ library-dependency suffix)
 if test "$with_libtool" = "yes"; then
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
 if test "$with_libtool" = "yes"; then
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
@@ -1104,6 +1254,15 @@ test "x$includedir" = 'x${prefix}/include' && \
        includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
 AC_MSG_RESULT($includedir)
 
        includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
 AC_MSG_RESULT($includedir)
 
+### Resolve a conflict between normal and wide-curses by forcing applications
+### that will need libutf8 to add it to their configure script.
+if test "$with_overwrite" != no ; then
+if test "$NCURSES_LIBUTF8" = 1 ; then
+       NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+       AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
+fi
+fi
+
 AC_SUBST(EXTRA_LIBS)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 AC_SUBST(EXTRA_LIBS)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
@@ -1127,13 +1286,15 @@ PROG_ARGS="$TEST_ARGS"
 CF_SRC_MODULES($modules_to_build)
 CF_DIRS_TO_MAKE
 
 CF_SRC_MODULES($modules_to_build)
 CF_DIRS_TO_MAKE
 
+AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
+
 ### Now that we're done running tests, add the compiler-warnings, if any
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
 ################################################################################
 AC_OUTPUT( \
        include/MKterm.h.awk \
 ### Now that we're done running tests, add the compiler-warnings, if any
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
 ################################################################################
 AC_OUTPUT( \
        include/MKterm.h.awk \
-       include/curses.h \
+       include/curses.head:include/curses.h.in \
        include/termcap.h \
        include/unctrl.h \
        misc/run_tic.sh:misc/run_tic.in \
        include/termcap.h \
        include/unctrl.h \
        misc/run_tic.sh:misc/run_tic.in \
@@ -1149,23 +1310,26 @@ CF_LIST_MODELS="$cf_list_models"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
 LDCONFIG="$LDCONFIG"
 LIB_NAME="$LIB_NAME"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
 LDCONFIG="$LDCONFIG"
 LIB_NAME="$LIB_NAME"
-LIB_SUFFIX="$LIB_SUFFIX"
 LIB_SUBSETS="$LIB_SUBSETS"
 LIB_SUBSETS="$LIB_SUBSETS"
+LIB_SUFFIX="$LIB_SUFFIX"
 LIB_TRACING="$LIB_TRACING"
 LIB_TRACING="$LIB_TRACING"
+MAKE_TERMINFO="$MAKE_TERMINFO"
+NCURSES_OSPEED="$NCURSES_OSPEED"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
 TINFO_NAME="$TINFO_NAME"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
 TINFO_NAME="$TINFO_NAME"
+WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
-WITH_CURSES_H="$with_curses_h"
 cf_cv_abi_version="$cf_cv_abi_version"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 cf_cv_rel_version="$cf_cv_rel_version"
 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
 cf_cv_abi_version="$cf_cv_abi_version"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 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"
+cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
 cf_cv_system_name="$cf_cv_system_name"
 cf_with_cxx_binding="$cf_with_cxx_binding"
 cf_cv_system_name="$cf_cv_system_name"
 cf_with_cxx_binding="$cf_with_cxx_binding"
-cf_cv_shlib_version="$cf_cv_shlib_version"
 target="$target"
 
 target="$target"
 
-],sort)dnl
+],cat)dnl
 ${MAKE-make} preinstall
 ${MAKE-make} preinstall
diff --git a/dist.mk b/dist.mk
index b6a515dd54b110a617ca8c18e2d3796730b686d3..ad6743f8c8e0667f4935a81f03564eedc957724c 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -1,4 +1,4 @@
-# $Id: dist.mk,v 1.227 2000/10/20 22:28:06 tom Exp $
+# $Id: dist.mk,v 1.327 2002/10/12 23:27:36 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -9,8 +9,8 @@ SHELL = /bin/sh
 
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
 
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
-NCURSES_MINOR = 2
-NCURSES_PATCH = 20001021
+NCURSES_MINOR = 3
+NCURSES_PATCH = 20021012
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
@@ -63,17 +63,35 @@ manhtml: MANIFEST
             echo "s/$${xu}/$${x}/g" >> subst.tmp ;\
           fi ;\
        done
             echo "s/$${xu}/$${x}/g" >> subst.tmp ;\
           fi ;\
        done
+       # change some things to make weblint happy:
+       @echo 's/<B>/<STRONG>/g'     >> subst.tmp
+       @echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp
+       @echo 's/<I>/<EM>/g'         >> subst.tmp
+       @echo 's/<\/I>/<\/EM>/g'     >> subst.tmp
        @sort < subst.tmp | uniq > subst.sed
        @sort < subst.tmp | uniq > subst.sed
+       @echo '/<\/TITLE>/a\' >> subst.sed
+       @echo '<link rev=made href="mailto:bug-ncurses@gnu.org">\' >> subst.sed
+       @echo '<meta http-equiv="Content-Type" content="text\/html; charset=iso-8859-1">' >> subst.sed
        @rm -f subst.tmp
        @for f in man/*.[0-9]* ; do \
           m=`basename $$f` ;\
        @rm -f subst.tmp
        @for f in man/*.[0-9]* ; do \
           m=`basename $$f` ;\
+          T=`egrep '^.TH' $$f|sed -e 's/^.TH //' -e s'/"//g' -e 's/[   ]\+$$//'` ; \
           g=$${m}.html ;\
           if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\
           echo "Converting $$m to HTML" ;\
           g=$${m}.html ;\
           if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\
           echo "Converting $$m to HTML" ;\
-          man/edit_man.sh editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) | \
+          echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' > doc/html/man/$$g ;\
+          echo '<!-- ' >> doc/html/man/$$g ;\
+          egrep '^.\\"[^#]' $$f | \
+               sed     -e 's/\$$/@/g' \
+                       -e 's/^.../  */' \
+                       -e 's/</\&lt;/g' \
+                       -e 's/>/\&gt;/g' \
+          >> doc/html/man/$$g ;\
+          echo '-->' >> doc/html/man/$$g ;\
+          man/edit_man.sh 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' \
           sed -f subst.sed |\
           sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
-          > doc/html/man/$$g ;\
+          >> doc/html/man/$$g ;\
        done
        @rm -f subst.sed
        @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
        done
        @rm -f subst.sed
        @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
index 89073216eec15d871ddd8986b910887dfb680cfe..70a951dbfe0cbf28c6953d2216f0811a9a6558f0 100644 (file)
@@ -1,17 +1,15 @@
-<!DOCTYPE HTML
- PUBLIC "-//IETF//DTD HTML 3.0//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
 <!--
 <!--
-  $Id: Ada95.html,v 1.1 2000/03/05 18:21:59 juergen Exp $
+  $Id: Ada95.html,v 1.3 2002/07/13 16:32:37 tom Exp $
 -->
 <HTML>
 -->
 <HTML>
-
 <HEAD>
 <TITLE>Ada95 Binding for ncurses</Title>
 </HEAD>
 <BODY>
 <H1>Ada95 Binding for ncurses</H1>
 The ncurses Ada95 binding is &copy; 1996-2000 by 
 <HEAD>
 <TITLE>Ada95 Binding for ncurses</Title>
 </HEAD>
 <BODY>
 <H1>Ada95 Binding for ncurses</H1>
 The ncurses Ada95 binding is &copy; 1996-2000 by 
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
+<A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">J&uuml;rgen Pfeifer</A>.
 <P>
                                                                          
 Permission is hereby granted to reproduce and distribute this
 <P>
                                                                          
 Permission is hereby granted to reproduce and distribute this
@@ -28,7 +26,7 @@ This binding comes AS IS with no warranty, implied or expressed.
 <H2>General Remarks</H2>
 <UL>
 <LI>This document describes Version 01.00 of the binding.</LI>
 <H2>General Remarks</H2>
 <UL>
 <LI>This document describes Version 01.00 of the binding.</LI>
-<LI>The functionality is modelled to be compatible with the ncurses
+<LI>The functionality is modeled to be compatible with the ncurses
 package, a clone of the SVr4 curses model.<BR>
 I did the development on an Intel box running the latest stable release of
 <A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released 
 package, a clone of the SVr4 curses model.<BR>
 I did the development on an Intel box running the latest stable release of
 <A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released 
@@ -39,7 +37,7 @@ it is not guaranteed to work.</LI>
 If you don't have this program, you can get the FSF version
 <A HREF="ftp://prep.ai.mit.edu/pub/gnu/">here</A>.</LI>
 <LI>Ada programs are supposed to be readable. One of my
 If you don't have this program, you can get the FSF version
 <A HREF="ftp://prep.ai.mit.edu/pub/gnu/">here</A>.</LI>
 <LI>Ada programs are supposed to be readable. One of my
-favourite methods to make code readable is to use expressive
+favorite methods to make code readable is to use expressive
 names for the identifiers. You can find a list of a mapping
 of the cryptic curses names to the Ada names in this <A HREF="ada/table.html">table</A>.</LI>
 <LI>This is not a typical one-2-one interface mapping. It is 
 names for the identifiers. You can find a list of a mapping
 of the cryptic curses names to the Ada names in this <A HREF="ada/table.html">table</A>.</LI>
 <LI>This is not a typical one-2-one interface mapping. It is 
@@ -143,16 +141,14 @@ sign of the parameter is evaluated. ncurses has internally implemented
 it in a way, that uses the line parameter also to control the amount of
 lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
 routine of the binding.
 it in a way, that uses the line parameter also to control the amount of
 lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
 routine of the binding.
-<A NAME="userpointer">
-<H4>How user defined field types work</H4>
+<H4><A NAME="userpointer">How user defined field types work</A></H4>
 TBD
 <H4>Enumeration fields handling</H4>
 The (n)curses documentation says, that the String arrays to be passed to
 an TYPE_ENUM fieldtype must not be automatic variables. This is not true
 in this binding, because it is internally arranged to safely copy these
 values.
 TBD
 <H4>Enumeration fields handling</H4>
 The (n)curses documentation says, that the String arrays to be passed to
 an TYPE_ENUM fieldtype must not be automatic variables. This is not true
 in this binding, because it is internally arranged to safely copy these
 values.
-<A NAME="compiler">
-<H4>Using other Ada compilers</H4>
+<H4><A NAME="compiler">Using other Ada compilers</A></H4>
 This should basically not be a problem.
 <H4>Port to other curses implementations</H4>
 Basically it should not be too hard to make all this run on a regular SVr4
 This should basically not be a problem.
 <H4>Port to other curses implementations</H4>
 Basically it should not be too hard to make all this run on a regular SVr4
index 46b0a0031bc97c5958e9b15f8a2e4d867a278910..8fcea4d6019c1b573d42b248a5c5b1c7f3a07db4 100644 (file)
 <LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm" TARGET="main">terminal_interface-curses-panels-user_data.ads</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm" TARGET="main">terminal_interface-curses-panels.adb</A>
 <LI><A HREF="../terminal_interface-curses-panels__ads.htm" TARGET="main">terminal_interface-curses-panels.ads</A>
 <LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm" TARGET="main">terminal_interface-curses-panels-user_data.ads</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm" TARGET="main">terminal_interface-curses-panels.adb</A>
 <LI><A HREF="../terminal_interface-curses-panels__ads.htm" TARGET="main">terminal_interface-curses-panels.ads</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm" TARGET="main">terminal_interface-curses-putwin.adb</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm" TARGET="main">terminal_interface-curses-putwin.ads</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm" TARGET="main">terminal_interface-curses-termcap.adb</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm" TARGET="main">terminal_interface-curses-termcap.ads</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm" TARGET="main">terminal_interface-curses-terminfo.adb</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm" TARGET="main">terminal_interface-curses-terminfo.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm" TARGET="main">terminal_interface-curses-text_io-aux.adb</A>
 <LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm" TARGET="main">terminal_interface-curses-text_io-aux.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io-complex_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.adb</A>
 <LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm" TARGET="main">terminal_interface-curses-text_io-aux.adb</A>
 <LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm" TARGET="main">terminal_interface-curses-text_io-aux.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io-complex_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.adb</A>
@@ -63,6 +69,8 @@
 <LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io__adb.htm" TARGET="main">terminal_interface-curses-text_io.adb</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm" TARGET="main">terminal_interface-curses-text_io.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.ads</A>
 <LI><A HREF="../terminal_interface-curses-text_io__adb.htm" TARGET="main">terminal_interface-curses-text_io.adb</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm" TARGET="main">terminal_interface-curses-text_io.ads</A>
+<LI><A HREF="../terminal_interface-curses-trace__adb.htm" TARGET="main">terminal_interface-curses-trace.adb</A>
+<LI><A HREF="../terminal_interface-curses-trace__ads.htm" TARGET="main">terminal_interface-curses-trace.ads</A>
 <LI><A HREF="../terminal_interface-curses__adb.htm" TARGET="main">terminal_interface-curses.adb</A>
 <LI><A HREF="../terminal_interface-curses__ads.htm" TARGET="main">terminal_interface-curses.ads</A>
 <LI><A HREF="../terminal_interface__ads.htm" TARGET="main">terminal_interface.ads</A>
 <LI><A HREF="../terminal_interface-curses__adb.htm" TARGET="main">terminal_interface-curses.adb</A>
 <LI><A HREF="../terminal_interface-curses__ads.htm" TARGET="main">terminal_interface-curses.ads</A>
 <LI><A HREF="../terminal_interface__ads.htm" TARGET="main">terminal_interface.ads</A>
index f32aaba2ffd2aabd808b04833eefba4202527d50..dd98d806a9c04e64478610e3d690c4f3e03bf055 100644 (file)
@@ -3,16 +3,17 @@
 <H2>Functions - A</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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-field_types-alpha__ads.htm#41_53" TARGET="main">Alpha</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53" TARGET="main">AlphaNumeric</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#56_12" TARGET="main">ASF</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#41_51" TARGET="main">Aux -  terminal_interface-curses-text_io-aux.ads:41</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm#46_12" TARGET="main">Aux -  terminal_interface-curses-text_io-float_io.adb:46</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm#46_12" TARGET="main">Aux -  terminal_interface-curses-text_io-decimal_io.adb:46</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-enumeration_io.adb:47</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm#46_12" TARGET="main">Aux -  terminal_interface-curses-text_io-fixed_io.adb:46</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm#46_12" TARGET="main">Aux -  terminal_interface-curses-text_io-integer_io.adb:46</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm#46_12" TARGET="main">Aux -  terminal_interface-curses-text_io-modular_io.adb:46</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#49_12" TARGET="main">ACS</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#959_16" TARGET="main">Ahead</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#53_16" TARGET="main">Allocate_Arg</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#42_53" TARGET="main">Alpha</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#42_53" TARGET="main">AlphaNumeric</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#57_12" TARGET="main">ASF</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#42_51" TARGET="main">Aux -  terminal_interface-curses-text_io-aux.ads:42</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-float_io.adb:47</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-decimal_io.adb:47</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12" TARGET="main">Aux -  terminal_interface-curses-text_io-enumeration_io.adb:48</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-fixed_io.adb:47</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-integer_io.adb:47</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm#47_12" TARGET="main">Aux -  terminal_interface-curses-text_io-modular_io.adb:47</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 46b0d30edf86eeca79067fcfcfbda94bc55ce68a..cd263b76628ff7865f1f6b323a94ea6e8ed5e9eb 100644 (file)
@@ -3,8 +3,8 @@
 <H2>Functions - B</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - B</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2051_16" TARGET="main">Baud</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#764_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#2080_16" TARGET="main">Baud</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#804_16" TARGET="main">Beeper</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#975_16" TARGET="main">Behind</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#65_16" TARGET="main">Bottompanel</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 47beafff016bb9e05a9dd941292c0cda4806a5df..e5ab81fa756cf64a5867045a4db4ab0d0f5bedbf 100644 (file)
@@ -3,31 +3,34 @@
 <H2>Functions - C</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - C</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2211_16" TARGET="main">Canchangecolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#784_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-field_types-user-choice__ads.htm#43_58" TARGET="main">Choice</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#971_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__adb.htm#2240_16" TARGET="main">Canchangecolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#824_16" TARGET="main">Cbreak</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#64_13" TARGET="main">Character_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#44_58" TARGET="main">Choice</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#69_13" TARGET="main">CInt_2_FOS</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#77_13" TARGET="main">CInt_2_FrmOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#72_13" TARGET="main">CInt_2_IOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#64_13" TARGET="main">CInt_2_MOS</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1018_16" TARGET="main">Clear_Ok</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-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#2228_16" TARGET="main">Colorcontent</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#44_17" TARGET="main">Complex_Types</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1282_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#2315_16" TARGET="main">Curs_Set</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__adb.htm#71_15" TARGET="main">C_E_Array</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-text_io__ads.htm#100_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:100</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2257_16" TARGET="main">Colorcontent</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#45_17" TARGET="main">Complex_Types</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1319_16" TARGET="main">Copywin</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#774_16" TARGET="main">Count -  terminal_interface-curses-forms.adb:774</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#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#49_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration-ada.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration.ads:65</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1040_16" TARGET="main">Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#300_16" TARGET="main">Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2470_16" TARGET="main">curses_versionC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2344_16" TARGET="main">Curs_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2456_16" TARGET="main">C_Assume_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#150_13" TARGET="main">C_Builtin_Router</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#72_15" TARGET="main">C_E_Array</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#757_16" TARGET="main">C_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#81_13" TARGET="main">C_Generic_Choice</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#82_13" TARGET="main">C_Generic_Type</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#923_16" TARGET="main">C_Mitems</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2444_16" TARGET="main">C_Use_Default_Colors</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 9472a374eea06414024180ae835fdd298171139b..705bd5c6fea85565f93720261dd048908490abea 100644 (file)
@@ -3,20 +3,20 @@
 <H2>Functions - D</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - D</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1999_16" TARGET="main">Defkey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2247_16" TARGET="main">Def_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2249_16" TARGET="main">Def_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2031_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#329_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-text_io-decimal_io__adb.htm#47_12" TARGET="main">DIO</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#1074_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#352_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#2028_16" TARGET="main">Defkey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2276_16" TARGET="main">Def_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2278_16" TARGET="main">Def_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2060_16" TARGET="main">Delayoutput</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#156_16" TARGET="main">Del_Panel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#351_16" TARGET="main">Derwin</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#126_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:126</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#270_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:270</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#278_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:278</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm#48_12" TARGET="main">DIO</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#129_14" TARGET="main">Dispatch_Event</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1111_16" TARGET="main">Do_Update</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#973_16" TARGET="main">Driver</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#374_16" TARGET="main">Dupwin</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#151_16" TARGET="main">Dup_Field</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#559_16" TARGET="main">Dyn_Info</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index b9f13e3b78e92aca48d2ab6a4ad31621a5fdff6e..b927c7b4c8c3f88addae29c9a223ece7039fc3cf 100644 (file)
@@ -3,9 +3,9 @@
 <H2>Functions - E</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - E</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#822_16" TARGET="main">Echo</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12" TARGET="main">EIO</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#144_16" TARGET="main">Endwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53" TARGET="main">Enumeration</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2059_16" TARGET="main">Erasechar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#862_16" TARGET="main">Echo</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm#49_12" TARGET="main">EIO</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#166_16" TARGET="main">Endwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_53" TARGET="main">Enumeration</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2088_16" TARGET="main">Erasechar</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 1df765f23437974bff4771757e80a79a46013895..21e6172a40c6fd4955a3672b11b6d39c3f4dbfe3 100644 (file)
@@ -3,44 +3,44 @@
 <H2>Functions - F</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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-text_io-complex_io__adb.htm#45_12" TARGET="main">FIO -  terminal_interface-curses-text_io-complex_io.adb:45</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm#47_12" TARGET="main">FIO -  terminal_interface-curses-text_io-float_io.adb:47</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm#47_12" TARGET="main">FIXIO</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#774_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-forms__adb.htm#468_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:468</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#478_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:478</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#255_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:255</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#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#57_13" TARGET="main">Field_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#424_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:424</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#434_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:434</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#213_16" TARGET="main">Field_Just</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#374_16" TARGET="main">Field_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#352_16" TARGET="main">Field_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#349_16" TARGET="main">Field_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#507_16" TARGET="main">Field_Pad</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#293_16" TARGET="main">Field_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#73_16" TARGET="main">Field_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__adb.htm#46_12" TARGET="main">FIO -  terminal_interface-curses-text_io-complex_io.adb:46</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm#48_12" TARGET="main">FIO -  terminal_interface-curses-text_io-float_io.adb:48</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm#48_12" TARGET="main">FIXIO</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#814_16" TARGET="main">Flash</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#528_16" TARGET="main">Fld_Info</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-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#2041_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#55_12" TARGET="main">F_Array</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#67_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:67</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2070_16" TARGET="main">Flushinp</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#889_16" TARGET="main">Form_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#867_16" TARGET="main">Form_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#864_16" TARGET="main">Form_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#84_16" TARGET="main">Form_Request_Name -  terminal_interface-curses-forms.adb:84</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#92_16" TARGET="main">Form_Request_Name -  terminal_interface-curses-forms.adb:92</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#628_16" TARGET="main">Form_Sub</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#74_16" TARGET="main">Form_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#600_16" TARGET="main">Form_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#65_13" TARGET="main">FOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#825_16" TARGET="main">Free -  terminal_interface-curses-forms.adb:825</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#958_16" TARGET="main">Free -  terminal_interface-curses-menus.adb:958</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#123_17" TARGET="main">Freeargs</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#131_16" TARGET="main">Freeitem</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#133_16" TARGET="main">Free_Field</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#121_17" TARGET="main">Free_Type</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#73_13" TARGET="main">FrmOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#996_16" TARGET="main">Frm_Driver</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#56_12" TARGET="main">F_Array</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index d90750d68aed81940c7b62e34b2a3d67f36e527d..4b6367be3adaeec2fbbef62d91905e7e90312cec 100644 (file)
@@ -3,19 +3,30 @@
 <H2>Functions - G</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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-forms-field_types__adb.htm#61_13" TARGET="main">Get_Arg</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-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-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-text_io__ads.htm#62_13" TARGET="main">Get_Window</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#91_13" TARGET="main">Generic_Char_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#84_13" TARGET="main">Generic_Field_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_13" TARGET="main">Generic_Next</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_13" TARGET="main">Generic_Prev</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#69_16" TARGET="main">Getmouse</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#66_16" TARGET="main">getwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#62_13" TARGET="main">Get_Arg</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#60_13" TARGET="main">Get_Entry</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1084_16" TARGET="main">Get_Fieldindex</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#59_13" TARGET="main">Get_Fieldtype</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#64_13" TARGET="main">Get_Flag -  terminal_interface-curses-termcap.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#65_13" TARGET="main">Get_Flag -  terminal_interface-curses-terminfo.ads:65</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#93_13" TARGET="main">Get_Flag -  terminal_interface-curses.adb:93</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#340_16" TARGET="main">Get_Itemindex</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#532_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:532</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#540_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:540</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#68_14" TARGET="main">Get_Number -  terminal_interface-curses-termcap.ads:68</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#69_13" TARGET="main">Get_Number -  terminal_interface-curses-terminfo.ads:69</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1070_16" TARGET="main">Get_Page</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#758_16" TARGET="main">Get_Pattern</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#713_16" TARGET="main">Get_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#74_14" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:74</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#77_13" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:77</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#58_14" TARGET="main">Get_String -  terminal_interface-curses-terminfo.ads:58</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#49_13" TARGET="main">Get_Window -  terminal_interface-curses-putwin.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#63_13" TARGET="main">Get_Window -  terminal_interface-curses-text_io.ads:63</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index e852d92503d28a6088e3a2e4622b3bafb18b9356..8dd6ecf9b34f09359ed53dd097f9e3e8d3e14441 100644 (file)
@@ -3,10 +3,11 @@
 <H2>Functions - H</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - H</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#863_16" TARGET="main">Halfdelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2182_16" TARGET="main">Hascolors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#580_16" TARGET="main">Haskey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2075_16" TARGET="main">Has_Ic</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2087_16" TARGET="main">Has_Il</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#94_16" TARGET="main">Hidepanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#910_16" TARGET="main">Halfdelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2211_16" TARGET="main">Hascolors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#600_16" TARGET="main">Haskey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2104_16" TARGET="main">Has_Ic</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2116_16" TARGET="main">Has_Il</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#61_13" TARGET="main">Has_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#95_16" TARGET="main">Hidepanel</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index a3dada486ef0aa4f5ee24c830f8ef1d9fbb45bb6..1ed76f9bbad910506fba1783fe5ed0c6f299bd13 100644 (file)
@@ -3,29 +3,31 @@
 <H2>Functions - I</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - I</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#995_16" TARGET="main">IDC_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#983_16" TARGET="main">IDL_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm#47_12" TARGET="main">IIO</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1019_16" TARGET="main">Immedok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2197_16" TARGET="main">Initcolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2143_16" TARGET="main">Initpair</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#131_16" TARGET="main">Initscr</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53" TARGET="main">IntField</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#875_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-forms-field_types-ipv4_address__ads.htm#41_53" TARGET="main">IPV4_Address</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#154_16" TARGET="main">Isendwin</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-menus__adb.htm#53_12" TARGET="main">I_Array</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#48_12" TARGET="main">ICS</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1042_16" TARGET="main">IDC_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1030_16" TARGET="main">IDL_Ok</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm#48_12" TARGET="main">IIO</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1066_16" TARGET="main">Immedok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2226_16" TARGET="main">Initcolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2172_16" TARGET="main">Initpair</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#153_16" TARGET="main">Initscr</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#42_53" TARGET="main">IntField</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#922_16" TARGET="main">Intrflush</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#68_13" TARGET="main">IOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#42_53" TARGET="main">IPV4_Address</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#176_16" TARGET="main">Isendwin</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#51_13" TARGET="main">Is_MinusOne_Pointer</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1119_16" TARGET="main">Is_New</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#128_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:128</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#253_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:253</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#261_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:261</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#860_16" TARGET="main">Item_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#234_16" TARGET="main">Item_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#214_16" TARGET="main">Item_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#211_16" TARGET="main">Item_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#868_16" TARGET="main">Item_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#65_16" TARGET="main">Item_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#168_16" TARGET="main">Item_Val</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#181_16" TARGET="main">Item_Vis</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#54_12" TARGET="main">I_Array</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index d09ddcdc1059e3e37aecabbf152870111d0a9920..0e8e47f2057bbdf3a0db2340e1db5f632cca3ac4 100644 (file)
@@ -3,8 +3,8 @@
 <H2>Functions - K</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - K</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#95_16" TARGET="main">Keyname</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1985_16" TARGET="main">Keyok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#853_16" TARGET="main">Keypad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2067_16" TARGET="main">Killchar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#117_16" TARGET="main">Keyname</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2015_16" TARGET="main">Keyok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#893_16" TARGET="main">Keypad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2096_16" TARGET="main">Killchar</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 456daf8cc5d51127f8d9875e6b33d5e72824b479..4bf37daec5e70eb5da37107d4735cca4d076acf8 100644 (file)
@@ -3,12 +3,12 @@
 <H2>Functions - L</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - L</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1007_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__adb.htm#1054_16" TARGET="main">Leave_Ok</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#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#103_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:103</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-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#2109_16" TARGET="main">Longname -  terminal_interface-curses.adb:2109</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2117_16" TARGET="main">Longname -  terminal_interface-curses.adb:2117</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#79_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:79</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#172_16" TARGET="main">Lnk_Field</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2138_16" TARGET="main">Longname -  terminal_interface-curses.adb:2138</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2146_16" TARGET="main">Longname -  terminal_interface-curses.adb:2146</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index c2b7878b304329c9bb92a1e450f4354106da04f6..dda915480f376af88bf12af1c3b401b904be5e22 100644 (file)
@@ -3,42 +3,42 @@
 <H2>Functions - M</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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#842_16" TARGET="main">Meta</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm#47_12" TARGET="main">MIO</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#381_16" TARGET="main">Mvderwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#207_16" TARGET="main">mvwaddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1572_16" TARGET="main">Mvwdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#367_16" TARGET="main">Mvwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1596_16" TARGET="main">Mvwinch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1621_16" TARGET="main">Mvwinsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1662_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-forms-field_types-enumeration__ads.htm#74_13" TARGET="main">Make_Enumeration_Type</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#608_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:608</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#618_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:618</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#787_16" TARGET="main">Menu_Fmt</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#569_16" TARGET="main">Menu_Fore -  terminal_interface-curses-menus.adb:569</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#579_16" TARGET="main">Menu_Fore -  terminal_interface-curses-menus.adb:579</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#647_16" TARGET="main">Menu_Grey -  terminal_interface-curses-menus.adb:647</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#657_16" TARGET="main">Menu_Grey -  terminal_interface-curses-menus.adb:657</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#876_16" TARGET="main">Menu_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#414_16" TARGET="main">Menu_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#394_16" TARGET="main">Menu_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#391_16" TARGET="main">Menu_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#682_16" TARGET="main">Menu_Pad</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#470_16" TARGET="main">Menu_Sub</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#884_16" TARGET="main">Menu_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#64_16" TARGET="main">Menu_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#446_16" TARGET="main">Menu_Win</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#882_16" TARGET="main">Meta</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm#48_12" TARGET="main">MIO</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#113_16" TARGET="main">MMask</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#60_13" TARGET="main">MOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#209_16" TARGET="main">Mouseinterval</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#55_16" TARGET="main">Mouse_Avail</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#786_16" TARGET="main">Move -  terminal_interface-curses-forms.adb:786</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#132_16" TARGET="main">Move -  terminal_interface-curses-panels.adb:132</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#403_16" TARGET="main">Mvderwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#229_16" TARGET="main">mvwaddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1609_16" TARGET="main">Mvwdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#389_16" TARGET="main">Mvwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1633_16" TARGET="main">Mvwinch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1658_16" TARGET="main">Mvwinsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1697_16" TARGET="main">Mvwinsnstr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#916_16" TARGET="main">M_Post -  terminal_interface-curses-forms.adb:916</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#354_16" TARGET="main">M_Post -  terminal_interface-curses-menus.adb:354</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#643_16" TARGET="main">M_Scale -  terminal_interface-curses-forms.adb:643</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#483_16" TARGET="main">M_Scale -  terminal_interface-curses-menus.adb:483</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#918_16" TARGET="main">M_Unpost -  terminal_interface-curses-forms.adb:918</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#356_16" TARGET="main">M_Unpost -  terminal_interface-curses-menus.adb:356</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 09ba03fec1738bdaa7e6fe4851224f8a662e4053..ca3036390248bb08b34c32beb33d281e801d6134 100644 (file)
@@ -3,26 +3,26 @@
 <H2>Functions - N</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - N</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2328_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#1419_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#265_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__adb.htm#2357_16" TARGET="main">Napms</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#116_16" TARGET="main">Newfield</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#804_16" TARGET="main">NewForm</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#98_16" TARGET="main">Newitem</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#939_16" TARGET="main">Newmenu</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1456_16" TARGET="main">Newpad</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#51_16" TARGET="main">Newpanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#287_16" TARGET="main">Newwin</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#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#88_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:88</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-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#950_16" TARGET="main">NL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#786_16" TARGET="main">NoCbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#903_16" TARGET="main">Nodelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#824_16" TARGET="main">NoEcho</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#952_16" TARGET="main">NoNL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#805_16" TARGET="main">NoRaw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#938_16" TARGET="main">Notimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#889_17" TARGET="main">No_Qiflush</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53" TARGET="main">Numeric</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#91_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:91</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#61_13" TARGET="main">Next</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#997_16" TARGET="main">NL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#826_16" TARGET="main">NoCbreak</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#950_16" TARGET="main">Nodelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#864_16" TARGET="main">NoEcho</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#999_16" TARGET="main">NoNL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#845_16" TARGET="main">NoRaw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#985_16" TARGET="main">Notimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#936_17" TARGET="main">No_Qiflush</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#42_53" TARGET="main">Numeric</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index d5ec406ceac8bf3f57890fc36ed85d28529c3473..ec2e133836f2c7b7fbd99a679e87c0bd6446803a 100644 (file)
@@ -3,7 +3,7 @@
 <H2>Functions - O</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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#1323_16" TARGET="main">Overlay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1311_16" TARGET="main">Overwrite</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#59_17" TARGET="main">Output</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1360_16" TARGET="main">Overlay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1348_16" TARGET="main">Overwrite</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 79eae2a7f637054f9a46f16a19d57b0c244bde86..c0f4120da90bd7779536ae14a59250bed36995d8 100644 (file)
@@ -3,37 +3,42 @@
 <H2>Functions - P</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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-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#2165_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#1523_16" TARGET="main">Pechochar</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1498_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#1468_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#82_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:82</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2194_16" TARGET="main">Paircontent</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#144_16" TARGET="main">Panel_Hidden</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#66_16" TARGET="main">Panel_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#105_16" TARGET="main">Panel_Win</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1560_16" TARGET="main">Pechochar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1535_16" TARGET="main">Pnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#941_16" TARGET="main">Pos_Form_Cursor</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#499_16" TARGET="main">Pos_Menu_Cursor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1505_16" TARGET="main">Prefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#68_13" TARGET="main">Previous</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#55_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#62_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:62</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#51_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#58_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:58</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#56_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:56</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#51_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#58_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:58</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#51_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#58_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:58</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#56_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:56</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#56_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:56</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#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#110_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:110</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-text_io__ads.htm#116_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:116</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-text_io__ads.htm#117_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:117</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#144_16" TARGET="main">putp</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#44_35" TARGET="main">PutWin</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#54_16" TARGET="main">putwin</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#48_14" TARGET="main">Put_Buf</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#119_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:119</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#123_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:123</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#77_14" TARGET="main">Put_String</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#46_14" TARGET="main">Put_Window</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 51ad35bd2ca3568899e2ac2054d808a6647fa424..ae7d42c701a6643e1c0b758929acd2b1e1084d50 100644 (file)
@@ -3,5 +3,5 @@
 <H2>Functions - Q</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - Q</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#887_17" TARGET="main">Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#934_17" TARGET="main">Qiflush</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 213a13cb4c839710c4c05bf39e55a531464c845b..fd066825f630533c557bc0888efda281302c311d 100644 (file)
@@ -3,18 +3,18 @@
 <H2>Functions - R</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - R</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#803_16" TARGET="main">Raw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1105_16" TARGET="main">Redrawwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53" TARGET="main">RegExp</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#2293_16" TARGET="main">Resetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2265_16" TARGET="main">Reset_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2267_16" TARGET="main">Reset_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2304_16" TARGET="main">Ripoffline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#843_16" TARGET="main">Raw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1142_16" TARGET="main">Redrawwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#42_53" TARGET="main">RegExp</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_14" TARGET="main">Release -  terminal_interface-curses-forms-field_types-enumeration.ads:78</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1134_17" TARGET="main">Release -  terminal_interface-curses-forms.adb:1134</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#995_17" TARGET="main">Release -  terminal_interface-curses-menus.adb:995</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#53_17" TARGET="main">Release_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#119_16" TARGET="main">Replace_Pan</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#80_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:80</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#88_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:88</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2322_16" TARGET="main">Resetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2294_16" TARGET="main">Reset_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2296_16" TARGET="main">Reset_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2333_16" TARGET="main">Ripoffline</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index f0e02042c1978cf6c19ec608244ab68565b0887f..b9850c9daf85e7e38e2522e7c5e9f30863c2a5c8 100644 (file)
@@ -3,91 +3,95 @@
 <H2>Functions - S</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - S</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2283_16" TARGET="main">Savetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1031_16" TARGET="main">Scrollok</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__adb.htm#2312_16" TARGET="main">Savetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1078_16" TARGET="main">Scrollok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2494_16" TARGET="main">scr_dump</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2520_16" TARGET="main">scr_init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2507_16" TARGET="main">scr_restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2533_16" TARGET="main">scr_set</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-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#94_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:94</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1026_16" TARGET="main">Set_Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#287_16" TARGET="main">Set_Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#448_16" TARGET="main">Set_Field_Back</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#404_16" TARGET="main">Set_Field_Fore</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#665_16" TARGET="main">Set_Field_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#196_16" TARGET="main">Set_Field_Just</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#310_16" TARGET="main">Set_Field_Max</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#330_16" TARGET="main">Set_Field_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#490_16" TARGET="main">Set_Field_Pad</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#681_16" TARGET="main">Set_Field_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#50_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alpha.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alphanumeric.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-enumeration.ads:85</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#52_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-intfield.ads:52</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-ipv4_address.ads:48</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#52_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-numeric.ads:52</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#52_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-regexp.ads:52</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#71_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-user.ads:71</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#58_16" TARGET="main">Set_Field_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#231_16" TARGET="main">Set_Fld_Buffer</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#278_16" TARGET="main">Set_Fld_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#55_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alpha.adb:55</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#55_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alphanumeric.adb:55</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#98_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-enumeration.adb:98</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#55_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-intfield.adb:55</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#55_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-ipv4_address.adb:55</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#57_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-numeric.adb:57</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#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#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#697_16" TARGET="main">Set_Form_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#845_16" TARGET="main">Set_Form_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#613_16" TARGET="main">Set_Form_Sub</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#713_16" TARGET="main">Set_Form_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#59_16" TARGET="main">Set_Form_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#585_16" TARGET="main">Set_Form_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#733_16" TARGET="main">Set_Frm_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1056_16" TARGET="main">Set_Frm_Page</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#55_16" TARGET="main">Set_Ftyp</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#893_16" TARGET="main">Set_Items</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#805_16" TARGET="main">Set_Item_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#194_16" TARGET="main">Set_Item_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#819_16" TARGET="main">Set_Item_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#52_16" TARGET="main">Set_Item_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#155_16" TARGET="main">Set_Item_Val</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-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#1953_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1953</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1963_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1963</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1917_16" TARGET="main">Slk_Attroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1915_16" TARGET="main">Slk_Attron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1939_16" TARGET="main">Slk_Attrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1883_16" TARGET="main">Slk_Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1973_16" TARGET="main">Slk_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1814_16" TARGET="main">Slk_Init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1867_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1867</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1875_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1875</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1856_16" TARGET="main">Slk_Noutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1846_16" TARGET="main">Slk_Refresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1893_16" TARGET="main">Slk_Restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1827_16" TARGET="main">Slk_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1903_16" TARGET="main">Slk_Touch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1438_16" TARGET="main">Subpad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#301_16" TARGET="main">Subwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#394_16" TARGET="main">Syncok</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#97_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:97</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#514_16" TARGET="main">Set_Mark</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#591_16" TARGET="main">Set_Menu_Back</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#768_16" TARGET="main">Set_Menu_Fmt</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#552_16" TARGET="main">Set_Menu_Fore</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#629_16" TARGET="main">Set_Menu_Grey</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#833_16" TARGET="main">Set_Menu_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#374_16" TARGET="main">Set_Menu_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#667_16" TARGET="main">Set_Menu_Pad</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#457_16" TARGET="main">Set_Menu_Sub</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#847_16" TARGET="main">Set_Menu_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#51_16" TARGET="main">Set_Menu_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#433_16" TARGET="main">Set_Menu_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1105_16" TARGET="main">Set_Page</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#55_16" TARGET="main">Set_Panel_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#736_16" TARGET="main">Set_Pattern</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#693_16" TARGET="main">Set_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#314_16" TARGET="main">Set_Toprow</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#60_14" TARGET="main">Set_Window</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#85_16" TARGET="main">Showpanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1983_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1983</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1993_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1993</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1947_16" TARGET="main">Slk_Attroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1945_16" TARGET="main">Slk_Attron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1969_16" TARGET="main">Slk_Attrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1913_16" TARGET="main">Slk_Clear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2003_16" TARGET="main">Slk_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1847_16" TARGET="main">Slk_Init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1897_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1897</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1905_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1905</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1886_16" TARGET="main">Slk_Noutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1876_16" TARGET="main">Slk_Refresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1923_16" TARGET="main">Slk_Restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1859_16" TARGET="main">Slk_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1933_16" TARGET="main">Slk_Touch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1475_16" TARGET="main">Subpad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#323_16" TARGET="main">Subwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#416_16" TARGET="main">Syncok</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 817d22b024d692f559f99729004ec58c8eac0c4a..a02ce1a50cb55ec79cc89721f7d92164e7b051b5 100644 (file)
@@ -3,17 +3,32 @@
 <H2>Functions - T</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - T</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2099_16" TARGET="main">Termattrs</A>
-<LI><A HREF="../terminal_interface__ads.htm#41_9" TARGET="main">Terminal_Interface</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2125_16" TARGET="main">Termname -  terminal_interface-curses.adb:2125</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2133_16" TARGET="main">Termname -  terminal_interface-curses.adb:2133</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#44_35" TARGET="main">Text_IO</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__adb.htm#2392_16" TARGET="main">Transform</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2128_16" TARGET="main">Termattrs</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#43_35" TARGET="main">Termcap</A>
+<LI><A HREF="../terminal_interface__ads.htm#42_9" TARGET="main">Terminal_Interface</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#45_35" TARGET="main">Terminfo</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2154_16" TARGET="main">Termname -  terminal_interface-curses.adb:2154</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2162_16" TARGET="main">Termname -  terminal_interface-curses.adb:2162</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#45_35" TARGET="main">Text_IO</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#51_16" TARGET="main">tgetent</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#71_16" TARGET="main">tgetflag</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#89_16" TARGET="main">tgetnum</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#108_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:108</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#129_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:129</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#54_13" TARGET="main">TGoto</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#151_16" TARGET="main">tgoto</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#70_16" TARGET="main">tigetflag</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#88_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:88</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#109_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:109</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#128_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:128</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#75_16" TARGET="main">Toppanel</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#327_16" TARGET="main">Toprow</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#107_16" TARGET="main">To_Access</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm#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#81_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types-user.adb:81</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#56_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types.adb:56</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#76_16" TARGET="main">To_Pointer</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#56_16" TARGET="main">To_Weird</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#141_16" TARGET="main">tputs</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2421_16" TARGET="main">Transform</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 135f3fb2989589a97c6c57e7f1a3115f363b012d..1c66bf8a61bb13abcb1fc8f6f5866b5598096a55 100644 (file)
@@ -3,9 +3,10 @@
 <H2>Functions - U</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - U</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2015_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2015</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2023_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2023</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#570_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-forms-field_types-user__ads.htm#43_53" TARGET="main">User</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2044_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2044</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2052_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2052</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#590_16" TARGET="main">Ungetch</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#184_16" TARGET="main">Ungetmouse</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#44_53" TARGET="main">User</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2479_16" TARGET="main">use_extended_namesC</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 21bebc2947b17a3b53a9152424396b6fec82637b..f30d7515505ce5a2aaaa6d26290e36c90f9a061a 100644 (file)
@@ -3,5 +3,5 @@
 <H2>Functions - V</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <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#54_13" TARGET="main">Value</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 5016fb75b427c6f6453b7904a6663950661821e3..01a72e1501a09ad9c6a065d0bb5f45b209e53429 100644 (file)
@@ -3,49 +3,52 @@
 <H2>Functions - W</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <H2>Functions - W</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#182_16" TARGET="main">Waddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#440_16" TARGET="main">Waddchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#408_16" TARGET="main">Waddnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#668_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:668</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#691_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:691</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#627_16" TARGET="main">Wattroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#624_16" TARGET="main">Wattron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#652_16" TARGET="main">Wattrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1174_17" TARGET="main">WBackground</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#481_16" TARGET="main">Wborder</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1184_16" TARGET="main">WChangeBkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#732_16" TARGET="main">Wchgat</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1142_16" TARGET="main">Wclear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1152_16" TARGET="main">Wclearbot</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1162_16" TARGET="main">Wcleareol</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1559_16" TARGET="main">Wdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#285_16" TARGET="main">Wdelwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#239_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#1132_16" TARGET="main">Werase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1195_16" TARGET="main">Wgetbkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#556_16" TARGET="main">Wgetch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1774_16" TARGET="main">Wgetnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#523_16" TARGET="main">Whline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1585_16" TARGET="main">Winch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1727_16" TARGET="main">Winchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1684_16" TARGET="main">Winnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1607_16" TARGET="main">Winsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1336_16" TARGET="main">Winsdelln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1640_16" TARGET="main">Winsnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1248_16" TARGET="main">WLineTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#168_16" TARGET="main">Wmove</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1095_16" TARGET="main">Wnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1118_16" TARGET="main">Wredrawln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1084_16" TARGET="main">Wrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1547_16" TARGET="main">Wscrl</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1061_16" TARGET="main">Wsetscrreg</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#714_16" TARGET="main">Wset_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#915_16" TARGET="main">Wtimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1206_16" TARGET="main">Wtouchln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#540_16" TARGET="main">Wvline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1261_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#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#204_16" TARGET="main">Waddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#460_16" TARGET="main">Waddchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#429_16" TARGET="main">Waddnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#708_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:708</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#731_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:731</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#667_16" TARGET="main">Wattroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#664_16" TARGET="main">Wattron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#692_16" TARGET="main">Wattrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1211_17" TARGET="main">WBackground</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#501_16" TARGET="main">Wborder</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1221_16" TARGET="main">WChangeBkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#772_16" TARGET="main">Wchgat</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1179_16" TARGET="main">Wclear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1189_16" TARGET="main">Wclearbot</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1199_16" TARGET="main">Wcleareol</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1596_16" TARGET="main">Wdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#307_16" TARGET="main">Wdelwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#261_16" TARGET="main">Wechochar</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#195_16" TARGET="main">Wenclose</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1169_16" TARGET="main">Werase</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1232_16" TARGET="main">Wgetbkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#576_16" TARGET="main">Wgetch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1807_16" TARGET="main">Wgetnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#543_16" TARGET="main">Whline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1622_16" TARGET="main">Winch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1760_16" TARGET="main">Winchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1718_16" TARGET="main">Winnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1644_16" TARGET="main">Winsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1373_16" TARGET="main">Winsdelln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1676_16" TARGET="main">Winsnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1285_16" TARGET="main">WLineTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#190_16" TARGET="main">Wmove</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1132_16" TARGET="main">Wnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1155_16" TARGET="main">Wredrawln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1121_16" TARGET="main">Wrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#2547_16" TARGET="main">wresize</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1584_16" TARGET="main">Wscrl</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1098_16" TARGET="main">Wsetscrreg</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#754_16" TARGET="main">Wset_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#644_16" TARGET="main">wstandend</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#642_16" TARGET="main">wstandout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#962_16" TARGET="main">Wtimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1243_16" TARGET="main">Wtouchln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#560_16" TARGET="main">Wvline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#1298_16" TARGET="main">WWinTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#91_13" TARGET="main">W_Get_Byte</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#89_13" TARGET="main">W_Get_Int</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#90_13" TARGET="main">W_Get_Short</A>
 </UL></BODY></HTML>
\ No newline at end of file
 </UL></BODY></HTML>
\ No newline at end of file
index 2a403dc6f8a4ffe43a33128757468ee6c2cb0ddc..464a4f85747f5e124a6e4f7e0f6f4cb2520eb1c0 100644 (file)
@@ -52,6 +52,9 @@ You should start your browsing with one of these files:
 <LI><A HREF="terminal_interface-curses-mouse__ads.htm">terminal_interface-curses-mouse.ads</A>
 <LI><A HREF="terminal_interface-curses-panels-user_data__ads.htm">terminal_interface-curses-panels-user_data.ads</A>
 <LI><A HREF="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</A>
 <LI><A HREF="terminal_interface-curses-mouse__ads.htm">terminal_interface-curses-mouse.ads</A>
 <LI><A HREF="terminal_interface-curses-panels-user_data__ads.htm">terminal_interface-curses-panels-user_data.ads</A>
 <LI><A HREF="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</A>
+<LI><A HREF="terminal_interface-curses-putwin__ads.htm">terminal_interface-curses-putwin.ads</A>
+<LI><A HREF="terminal_interface-curses-termcap__ads.htm">terminal_interface-curses-termcap.ads</A>
+<LI><A HREF="terminal_interface-curses-terminfo__ads.htm">terminal_interface-curses-terminfo.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-aux__ads.htm">terminal_interface-curses-text_io-aux.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm">terminal_interface-curses-text_io-complex_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm">terminal_interface-curses-text_io-decimal_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-aux__ads.htm">terminal_interface-curses-text_io-aux.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm">terminal_interface-curses-text_io-complex_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm">terminal_interface-curses-text_io-decimal_io.ads</A>
@@ -61,6 +64,7 @@ You should start your browsing with one of these files:
 <LI><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm">terminal_interface-curses-text_io-integer_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm">terminal_interface-curses-text_io-modular_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm">terminal_interface-curses-text_io-integer_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm">terminal_interface-curses-text_io-modular_io.ads</A>
 <LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
+<LI><A HREF="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</A>
 <LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
 <LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
 </BODY></HTML>
\ No newline at end of file
 <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
index e185a8bfa47aeeb2ea1daf93723fa38fd87d48b9..a71e143a3a0248e586cea83356548b0b31f4df39 100644 (file)
@@ -10,33 +10,36 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TABLE ALIGN=CENTER BORDER>
 <TR ALIGN=LEFT>
 <TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
 <TABLE ALIGN=CENTER BORDER>
 <TR ALIGN=LEFT>
 <TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
-<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+<TR><TD>_tracef()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_2">Trace_Put</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Assume_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
+<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
 <TR><TD>bottom_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_3">Bottom</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 <TR><TD>bottom_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_3">Bottom</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
 <TR><TD>current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_58">Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_14">Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_58">Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_14">Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_152">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
 <TR><TD>data_ahead()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_54">Data_Ahead</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
 <TR><TD>data_behind()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_55">Data_Behind</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
 <TR><TD>data_ahead()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_54">Data_Ahead</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
 <TR><TD>data_behind()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_55">Data_Behind</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
-<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
+<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
 <TR><TD>del_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_15">Delete</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>del_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_15">Delete</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
 <TR><TD>dup_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_4">Duplicate</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>dynamic_field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_26">Dynamic_Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
 <TR><TD>dup_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_4">Duplicate</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>dynamic_field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_26">Dynamic_Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
-<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
 <TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_21">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_22">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_9">Get_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_21">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_22">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_9">Get_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
@@ -56,8 +59,8 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_Type</A></TD><TD><A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
 <TR><TD>field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_Type</A></TD><TD><A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
-<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
-<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_127">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>form_driver()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_56">Driver</A></TD><TD><A HREF="../man/form_driver.3x.html">form_driver.3x</A></TD></TR>
 <TR><TD>form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_42">Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
 <TR><TD>form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_38">Get_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
 <TR><TD>form_driver()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_56">Driver</A></TD><TD><A HREF="../man/form_driver.3x.html">form_driver.3x</A></TD></TR>
 <TR><TD>form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_42">Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
 <TR><TD>form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_38">Get_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
@@ -74,27 +77,27 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>free_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_47">Delete</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
 <TR><TD>free_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
 <TR><TD>free_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_60">Delete</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
 <TR><TD>free_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_47">Delete</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
 <TR><TD>free_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
 <TR><TD>free_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_60">Delete</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
-<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
 <TR><TD>getmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_2">Get_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>getmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_2">Get_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>hide_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_7">Hide</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>hide_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_7">Hide</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_139">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
 <TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
 <TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>item_count()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_58">Item_Count</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
 <TR><TD>item_description();</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_12">Description</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
 <TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>item_count()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_58">Item_Count</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
 <TR><TD>item_description();</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_12">Description</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
@@ -109,18 +112,18 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
 <TR><TD>item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_5">Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
 <TR><TD>item_visible()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_6">Visible</A></TD><TD><A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></TD></TR>
 <TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
 <TR><TD>item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_5">Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
 <TR><TD>item_visible()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_6">Visible</A></TD><TD><A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></TD></TR>
-<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_120">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
-<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_125">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
+<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
 <TR><TD>link_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_5">Link</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>link_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_5">Link</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
-<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_137">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_driver()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_61">Driver</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
+<TR><TD>menu_driver()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_61">Driver</A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
 <TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_47">Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
 <TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_47">Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
@@ -134,13 +137,14 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
 <TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_45">Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
 <TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
 <TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
 <TR><TD>menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_45">Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
+<TR><TD>menu_requestname.3x</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_62"></A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
 <TR><TD>menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_43">Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
 <TR><TD>menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_26">Get_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
 <TR><TD>menu_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_55">Get_Menu_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_24">Get_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
 <TR><TD>menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_43">Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
 <TR><TD>menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_26">Get_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
 <TR><TD>menu_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_55">Get_Menu_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_24">Get_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
 <TR><TD>mouseinterval()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_5">Mouse_Interval</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>mousemask()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_1">Start_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>move_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_44">Move</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
 <TR><TD>mouseinterval()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_5">Mouse_Interval</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>mousemask()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_1">Start_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>move_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_44">Move</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
@@ -149,15 +153,16 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
 <TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
 <TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
 <TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
-<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
 <TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
-<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
-<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
-<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Insert</A></TD><TD><A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></TD></TR>
-<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></TD></TR>
-<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
+<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_2">New_Field</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_45">Create</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_2">New_Field</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_45">Create</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
@@ -168,14 +173,14 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_63">Is_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_2">New_Panel</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_63">Is_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_2">New_Panel</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
 <TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
-<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
-<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
 <TR><TD>panel_above()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_13">Above</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_below()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_14">Below</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_hidden()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_12">Is_Hidden</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_above()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_13">Above</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_below()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_14">Below</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_hidden()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_12">Is_Hidden</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
@@ -183,24 +188,28 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_8">Get_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_9">Panel_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_8">Get_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_9">Panel_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
 <TR><TD>pos_form_cursor()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_53">Position_Cursor</A></TD><TD><A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></TD></TR>
 <TR><TD>pos_menu_cursor()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_28">Position_Cursor</A></TD><TD><A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></TD></TR>
 <TR><TD>post_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_52">Post</A></TD><TD><A HREF="../man/form_post.3x.html">form_post.3x</A></TD></TR>
 <TR><TD>post_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_18">Post</A></TD><TD><A HREF="../man/menu_post.3x.html">menu_post.3x</A></TD></TR>
 <TR><TD>pos_form_cursor()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_53">Position_Cursor</A></TD><TD><A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></TD></TR>
 <TR><TD>pos_menu_cursor()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_28">Position_Cursor</A></TD><TD><A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></TD></TR>
 <TR><TD>post_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_52">Post</A></TD><TD><A HREF="../man/form_post.3x.html">form_post.3x</A></TD></TR>
 <TR><TD>post_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_18">Post</A></TD><TD><A HREF="../man/menu_post.3x.html">menu_post.3x</A></TD></TR>
-<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
 <TR><TD>replace_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_10">Replace</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>replace_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_10">Replace</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
 <TR><TD>scale_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_31">Scale</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
 <TR><TD>scale_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_27">Scale</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
 <TR><TD>scale_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_31">Scale</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
 <TR><TD>scale_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_27">Scale</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
 <TR><TD>set_current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_57">Set_Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>set_current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_13">Set_Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>set_field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_20">Set_Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>set_current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_57">Set_Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>set_current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_13">Set_Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>set_field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_20">Set_Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
@@ -248,78 +257,83 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <TR><TD>set_panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>set_top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_15">Set_Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>show_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_5">Show</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>set_panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>set_top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_15">Set_Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>show_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_5">Show</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_113">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_120">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_113">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>standout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Standout</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
 <TR><TD>stdscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_1">Standard_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>stdscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_1">Standard_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
 <TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_137">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_139">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>top_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_4">Top</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_16">Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>top_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_4">Top</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_16">Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_125">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>trace()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_1">Trace_on</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_127">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>ungetmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_3">Unget_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>ungetmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_3">Unget_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
 <TR><TD>update_panels()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_6">Update_Panels</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>update_panels()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_6">Update_Panels</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Use_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
+<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
 <TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
 <TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
 <TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
 <TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
 <TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 <TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
-<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
 <TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>wenclose()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_4">Enclosed_In_Window</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>wenclose()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_4">Enclosed_In_Window</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
 <TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
-<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
+<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
 <TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 <TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
-<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
-<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
-<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Insert</A></TD><TD><A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></TD></TR>
-<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
-<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
-<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></TD></TR>
+<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
 <TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
 <TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
-<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
-<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wresize()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Resize</A></TD><TD><A HREF="../man/wresize.3x.html">wresize.3x</A></TD></TR>
+<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
+<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
 <TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
 <TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 </TABLE></BODY></HTML>
 <TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 </TABLE></BODY></HTML>
index f931ca618d1a3d8d610a0fdb4bd750fff5ed911c..748102006c128455b8e000f880effcaaefb17fd9 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A><FONT COLOR=red><A NAME="41_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A><FONT COLOR=red><A NAME="42_40"></A></FONT> <b>is</b>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Some helpers</EM></FONT>
    <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> <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A><FONT COLOR=red><A NAME="45_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Cp</A>  : <b>in</b>  chars_ptr;
+                          <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A> : <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>
    <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="51_7">Len</A></FONT> : Natural;
    <b>begin</b>
    <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#117_27">Cp</A> /= Null_Ptr <b>then</b>
+         <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Cp</A>));
+         <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'Length &lt; <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A> <b>then</b>
             <b>raise</b> Constraint_Error;
          <b>end</b> <b>if</b>;
          <b>declare</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="59_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A>);
          <b>begin</b>
          <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#59_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Cp</A>);
+            <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#59_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#59_13">S</A>'<b>Range</b>);
          <b>end</b>;
       <b>else</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#51_7">Len</A> := 0;
       <b>end</b> <b>if</b>;
 
       <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#51_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#118_27">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
 
    <b>end</b> Fill_String;
 
       <b>end</b> <b>if</b>;
 
    <b>end</b> Fill_String;
 
-   <b>function</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A><FONT COLOR=red><A NAME="73_13"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> : chars_ptr) <b>return</b> String
+   <b>function</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A><FONT COLOR=red><A NAME="74_13"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#122_26">Cp</A> : chars_ptr) <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="75_7">Len</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="76_7">Len</A></FONT> : Natural;
    <b>begin</b>
    <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#122_26">Cp</A> /= Null_Ptr <b>then</b>
+         <A HREF="terminal_interface-curses-aux__adb.htm#76_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#122_26">Cp</A>));
+         <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#76_7">Len</A> = 0 <b>then</b>
             <b>return</b> "";
          <b>else</b>
             <b>declare</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="84_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#76_7">Len</A>);
             <b>begin</b>
             <b>begin</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>, <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#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#122_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#84_16">S</A>);
+               <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#84_16">S</A>;
             <b>end</b>;
          <b>end</b> <b>if</b>;
       <b>else</b>
             <b>end</b>;
          <b>end</b> <b>if</b>;
       <b>else</b>
       <b>end</b> <b>if</b>;
    <b>end</b> Fill_String;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Fill_String;
 
-   <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> <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A><FONT COLOR=red><A NAME="95_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#97_29">Code</A> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>)
    <b>is</b>
    <b>begin</b>
    <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#387_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#388_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#389_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#390_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#391_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#392_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#393_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#394_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#395_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#396_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#397_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#398_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#399_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#400_4">Eti_Current</A>;
+      <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#97_29">Code</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A>              =&gt; <b>null</b>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#82_4">E_System_Error</A>    =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#389_4">Eti_System_Error</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#83_4">E_Bad_Argument</A>    =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#390_4">Eti_Bad_Argument</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#84_4">E_Posted</A>          =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#391_4">Eti_Posted</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#85_4">E_Connected</A>       =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#392_4">Eti_Connected</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#86_4">E_Bad_State</A>       =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#393_4">Eti_Bad_State</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#87_4">E_No_Room</A>         =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#394_4">Eti_No_Room</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Not_Posted</A>      =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#395_4">Eti_Not_Posted</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#396_4">Eti_Unknown_Command</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_No_Match</A>        =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#397_4">Eti_No_Match</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#91_4">E_Not_Selectable</A>  =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#398_4">Eti_Not_Selectable</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Not_Connected</A>   =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#399_4">Eti_Not_Connected</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Request_Denied</A>  =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#400_4">Eti_Request_Denied</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#94_4">E_Invalid_Field</A>   =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#401_4">Eti_Invalid_Field</A>;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#95_4">E_Current</A>         =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#402_4">Eti_Current</A>;
       <b>end</b> <b>case</b>;
    <b>end</b> Eti_Exception;
 
       <b>end</b> <b>case</b>;
    <b>end</b> Eti_Exception;
 
index 3b10c650b9f49929fa103a24d4dc4a7652df50c5..ab7112157b47b54a85f4bf75a5228a9168655a2e 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.14 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  curses binding.</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>
 
    <b>use</b> <b>type</b> Interfaces.C.int;
 
 
    <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> <FONT COLOR=red><A NAME="62_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
-   <b>type</b>    <FONT COLOR=red><A NAME="63_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#60_12">System</A>.Address;
-   <b>type</b>    <FONT COLOR=red><A NAME="64_12">C_Chtype</A></FONT>   <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="57_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="58_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="59_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="60_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="61_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="62_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_long;
+   <b>subtype</b> <FONT COLOR=red><A NAME="63_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
+   <b>type</b>    <FONT COLOR=red><A NAME="64_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#61_12">System</A>.Address;
+   <b>type</b>    <FONT COLOR=red><A NAME="65_12">C_Chtype</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#61_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>
    <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=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="73_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := 0;
    Curses_Err   : <b>constant</b> C_Int := -1;
 
    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="76_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_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;
 
    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="82_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := 0;
+   <FONT COLOR=red><A NAME="83_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -1;
+   <FONT COLOR=red><A NAME="84_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -2;
+   <FONT COLOR=red><A NAME="85_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -3;
+   <FONT COLOR=red><A NAME="86_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -4;
+   <FONT COLOR=red><A NAME="87_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -5;
+   <FONT COLOR=red><A NAME="88_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -6;
+   <FONT COLOR=red><A NAME="89_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -7;
+   <FONT COLOR=red><A NAME="90_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -8;
+   <FONT COLOR=red><A NAME="91_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -9;
+   <FONT COLOR=red><A NAME="92_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -10;
+   <FONT COLOR=red><A NAME="93_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -11;
+   <FONT COLOR=red><A NAME="94_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -12;
+   <FONT COLOR=red><A NAME="95_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := -13;
    E_Current          : <b>constant</b> Eti_Error := -14;
 
    <b>procedure</b> Eti_Exception (Code : Eti_Error);
    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>
    <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#350_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#352_9">C_Chtype</A>,
+            <FONT COLOR=red><A NAME="105_13"> </A></FONT>              Target =&gt; Attributed_Character);
    <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
    <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
-     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#63_12">Attributed_Character</A>,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#64_12">Attributed_Character</A>,
                            Target =&gt; C_Chtype);
 
    <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
                            Target =&gt; C_Chtype);
 
    <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
-     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#64_12">Attributed_Character</A>,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#65_12">Attributed_Character</A>,
                            Target =&gt; C_AttrType);
 
    <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
                            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#350_9">C_AttrType</A>,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#352_9">C_AttrType</A>,
                            Target =&gt; Attributed_Character);
 
                            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="118_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>
                           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 74d986bf12fd94e78d00695e605a148bdac817d2..a43d75190b44bd04a397fa2990c5e1a8db11a447 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.6 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.7 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#42_53">Alpha</A><FONT COLOR=red><A NAME="45_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#44_9">Alpha_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#51_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#45_9">Alpha_Field</A>)
    <b>is</b>
    <b>is</b>
-      C_Alpha_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_Alpha_Field_Type, "TYPE_ALPHA");
+      <FONT COLOR=red><A NAME="52_7">C_Alpha_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#52_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>;
-                             Cft  : C_Field_Type := C_Alpha_Field_Type;
-                             <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="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#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="56_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#52_7">C_Alpha_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="57_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#55_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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#60_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#55_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#57_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#47_9">Minimum_Field_Width</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#60_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#60_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#51_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
index 87c2ce0654c60b74dd02e0daa6bf0660a4ead918..521c5fd208a0400d6afd0350d15e8116740ef3d2 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#44_58">Alpha</A><FONT COLOR=red><A NAME="41_53"></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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#45_58">Alpha</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#42_53">Alpha</A>);
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">Alpha_Field</A></FONT> <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="45_9">Alpha_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A>
      <b>with</b> <b>record</b>
      <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="47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
      <b>end</b> <b>record</b>;
 
      <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> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#44_9">Alpha_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#49_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#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="51_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#45_9">Alpha_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
 </PRE></BODY></HTML>
\ No newline at end of file
index ffe72eb64623deb23857e4bbb9987fa4f9a46a2c..727d1eec18820768ef8c578b1eeb0521a09c3f9e 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.6 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.7 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#42_53">AlphaNumeric</A><FONT COLOR=red><A NAME="45_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#45_9">AlphaNumeric_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#52_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#46_9">AlphaNumeric_Field</A>)
    <b>is</b>
    <b>is</b>
-      C_AlphaNumeric_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_AlphaNumeric_Field_Type, "TYPE_ALNUM");
+      <FONT COLOR=red><A NAME="52_7">C_AlphaNumeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#52_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>;
-                             Cft  : C_Field_Type := C_AlphaNumeric_Field_Type;
-                             <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="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#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="56_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#52_7">C_AlphaNumeric_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="57_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#55_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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#60_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#55_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#57_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#48_9">Minimum_Field_Width</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#60_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#60_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#52_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
index 9b3c527ebb20990c97903129be30362cb1e47143..98ce0d67883aa66d01600f128a9937d211888183 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#44_58">AlphaNumeric</A><FONT COLOR=red><A NAME="41_53"></A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#45_58">AlphaNumeric</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
    <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#42_53">AlphaNumeric</A>);
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="45_9">AlphaNumeric_Field</A></FONT> <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="46_9">AlphaNumeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A>
      <b>with</b> <b>record</b>
      <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="48_9">Minimum_Field_Width</A></FONT> : Natural := 0;
      <b>end</b> <b>record</b>;
 
      <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> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#45_9">AlphaNumeric_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#49_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#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#46_9">AlphaNumeric_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
 </PRE></BODY></HTML>
\ No newline at end of file
index b5b9b02acf81bb1d59f27e5f48e077cc93ae9072..d65b81d33ebfc927cc7b8edd595608d5eb781da5 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.6 @</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;
 
 <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> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#45_65">Ada</A> <b>is</b>
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">Create</A><FONT COLOR=red><A NAME="45_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_13">Create</A><FONT COLOR=red><A NAME="46_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Set</A>            : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_46">Mixed_Case</A>;
+                    <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Case_Sensitive</A> : Boolean  := False;
+                    <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#51_21">Must_Be_Unique</A> : Boolean  := False)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>
    <b>is</b>
    <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="51_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'First) + 1);
+      <FONT COLOR=red><A NAME="52_7">J</A></FONT> : Positive := 1;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">Case_Sensitive</A> := <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>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">Match_Must_Be_Unique</A> := <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#51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Case_Sensitive</A>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#51_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="57_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'<b>Range</b> <b>loop</b>
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#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>
          <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#49_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_34">Upper_Case</A> <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>).<b>all</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_46">Mixed_Case</A> <b>then</b>
+               <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>).<b>all</b>'First) :=
+                 To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A>).<b>all</b>'First));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <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#52_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#52_7">J</A> + 1;
       <b>end</b> <b>loop</b>;
 
       <b>end</b> <b>loop</b>;
 
-      <b>return</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__adb.htm#50_7">I</A>, True);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">I</A>, True);
    <b>end</b> Create;
 
    <b>end</b> Create;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">Value</A><FONT COLOR=red><A NAME="73_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_13">Value</A><FONT COLOR=red><A NAME="74_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                   <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#55_20">Buf</A> : <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>
    <b>is</b>
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#371_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#55_20">Buf</A>));
    <b>end</b> Value;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
    <b>end</b> Value;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
index 8a667b7c32152270d8f560effaff3cab6e7c5413..c1028268b33bc30ea0a6bebce937c71d7dd240a9 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_53">Enumeration</A>.<FONT COLOR=red><A NAME="45_65">Ada</A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
    <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#45_65">Ada</A>);
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#45_13">Create</A><FONT COLOR=red><A NAME="48_13"></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> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#46_13">Create</A><FONT COLOR=red><A NAME="49_13"></A></FONT> (<FONT COLOR=red><A NAME="49_21">Set</A></FONT>            : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#51_46">Mixed_Case</A>;
+                    <FONT COLOR=red><A NAME="50_21">Case_Sensitive</A></FONT> : Boolean  := False;
+                    <FONT COLOR=red><A NAME="51_21">Must_Be_Unique</A></FONT> : Boolean  := False)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#73_13">Value</A><FONT COLOR=red><A NAME="53_13"></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> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#74_13">Value</A><FONT COLOR=red><A NAME="54_13"></A></FONT> (<FONT COLOR=red><A NAME="54_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                   <FONT COLOR=red><A NAME="55_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#43_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>
    <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>
index 6e4ce4306cf50234de11d7efa07f2f565fcd0898..c737619532e9388fb2db6291c2703fa3a0c3fbc7 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.6 @</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="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;
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A><FONT COLOR=red><A NAME="46_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_53">Enumeration</A><FONT COLOR=red><A NAME="47_58"></A></FONT> <b>is</b>
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A><FONT COLOR=red><A NAME="48_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_13">Create</A><FONT COLOR=red><A NAME="49_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>               : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_9">Enumeration_Info</A>;
+                    <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#66_21">Auto_Release_Names</A> : Boolean := False)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>
    <b>is</b>
    <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="53_17">Release_String</A></FONT> <b>is</b>
         <b>new</b> Ada.Unchecked_Deallocation (String,
         <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> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>;
-      <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#48_9">String_Access</A>);
+      <FONT COLOR=red><A NAME="56_7">E</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>;
+      <FONT COLOR=red><A NAME="57_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_27">C</A>);
+      <FONT COLOR=red><A NAME="58_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#48_9">String_Access</A>;
    <b>begin</b>
    <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__adb.htm#55_7">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__adb.htm#55_7">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__adb.htm#55_7">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#56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">Case_Sensitive</A>       := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Case_Sensitive</A>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#60_10">Match_Must_Be_Unique</A>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">L</A>);
+      <b>for</b> <FONT COLOR=red><A NAME="63_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">L</A> - 1) <b>loop</b>
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#58_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#63_11">I</A>) = <b>null</b> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>end</b> <b>if</b>;
          <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#56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#63_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#58_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#63_11">I</A>).<b>all</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#66_21">Auto_Release_Names</A> <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#58_7">S</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#58_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#63_11">I</A>);
+            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#53_17">Release_String</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#58_7">S</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
          <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>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">L</A>) := Null_Ptr;
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">E</A>;
    <b>end</b> Create;
 
    <b>end</b> Create;
 
-   <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#62_9">Enumeration_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_14">Release</A><FONT COLOR=red><A NAME="77_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_23">Enum</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>)
    <b>is</b>
    <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="79_7">I</A></FONT> : size_t := 0;
+      <FONT COLOR=red><A NAME="80_7">P</A></FONT> : chars_ptr;
    <b>begin</b>
       <b>loop</b>
    <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;
-         <A HREF="terminal_interface-curses-forms__ads.htm#137_14">Free</A> (<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#80_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">I</A>);
+         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#80_7">P</A> = Null_Ptr;
+         Free (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#80_7">P</A>);
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">I</A>) := Null_Ptr;
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">I</A> + 1;
       <b>end</b> <b>loop</b>;
       <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>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> := <b>null</b>;
    <b>end</b> Release;
 
    <b>end</b> Release;
 
-   <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#62_9">Enumeration_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_14">Set_Field_Type</A><FONT COLOR=red><A NAME="92_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#86_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>)
    <b>is</b>
    <b>is</b>
-      C_Enum_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_Enum_Type, "TYPE_ENUM");
+      <FONT COLOR=red><A NAME="95_7">C_Enum_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#95_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>;
-                             Cft  : C_Field_Type := C_Enum_Type;
-                             <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="98_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="98_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="99_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#95_7">C_Enum_Type</A>;
+                             <FONT COLOR=red><A NAME="100_30">Arg1</A></FONT> : chars_ptr_array;
+                             <FONT COLOR=red><A NAME="101_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+                             <FONT COLOR=red><A NAME="102_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#98_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="105_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A> = <b>null</b> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <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#105_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#98_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#100_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#96_10">Arr</A>.<b>all</b>,
+                           <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#101_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#94_10">Case_Sensitive</A>)),
+                           <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#102_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (Boolean'Pos
+                                          (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Match_Must_Be_Unique</A>)));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#105_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#105_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#86_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#150_13">C_Choice_Router</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
index 0aff774583e0a2b82275be4b17f78f148bd2844b..c7d2901c151688d58ce0a1775522183aa89cf0ac 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
 
 <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>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__adb.htm#46_58">Enumeration</A><FONT COLOR=red><A NAME="43_53"></A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#47_58">Enumeration</A><FONT COLOR=red><A NAME="44_53"></A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
    <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#44_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="48_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>
 
    <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> (Lower_Case, Upper_Case, Mixed_Case);
+   <b>type</b> <FONT COLOR=red><A NAME="51_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="51_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="51_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="51_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="53_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#48_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="56_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="56_27">C</A></FONT> : Positive) <b>is</b>
       <b>record</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;
+         <FONT COLOR=red><A NAME="58_10">Names</A></FONT>                : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#53_9">Enum_Array</A> (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_27">C</A>);
+         <FONT COLOR=red><A NAME="59_10">Case_Sensitive</A></FONT>       : Boolean := False;
+         <FONT COLOR=red><A NAME="60_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
       <b>end</b> <b>record</b>;
 
       <b>end</b> <b>record</b>;
 
-   <b>type</b> <FONT COLOR=red><A NAME="62_9">Enumeration_Field</A></FONT> <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="63_9">Enumeration_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A> <b>with</b> <b>private</b>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#48_13">Create</A><FONT COLOR=red><A NAME="64_13"></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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#49_13">Create</A><FONT COLOR=red><A NAME="65_13"></A></FONT> (<FONT COLOR=red><A NAME="65_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_9">Enumeration_Info</A>;
+                    <FONT COLOR=red><A NAME="66_21">Auto_Release_Names</A></FONT> : Boolean := False)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_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>
 
    <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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="74_13">Make_Enumeration_Type</A></FONT> (<FONT COLOR=red><A NAME="74_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#56_9">Enumeration_Info</A>;
+                                   <FONT COLOR=red><A NAME="75_36">Auto_Release_Names</A></FONT> : Boolean := False)
+                                   <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#77_14">Release</A><FONT COLOR=red><A NAME="78_14"></A></FONT> (<FONT COLOR=red><A NAME="78_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_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>
 
    <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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#92_14">Set_Field_Type</A><FONT COLOR=red><A NAME="85_14"></A></FONT> (<FONT COLOR=red><A NAME="85_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="86_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#63_9">Enumeration_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>private</b>
 
 <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="90_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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A> <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#63_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A> <b>with</b>
       <b>record</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="94_10">Case_Sensitive</A></FONT>       : Boolean := False;
+         <FONT COLOR=red><A NAME="95_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
+         <FONT COLOR=red><A NAME="96_10">Arr</A></FONT>                  : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#90_9">CPA_Access</A> := <b>null</b>;
       <b>end</b> <b>record</b>;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
       <b>end</b> <b>record</b>;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
index 1f98bd71c9ed8b3ac091e52225b7897b98b639ea..19df103ad8e87cbce39122f2b62672f8b85b9bed 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.6 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.7 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#42_53">IntField</A><FONT COLOR=red><A NAME="45_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#44_9">Integer_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#53_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#45_9">Integer_Field</A>)
    <b>is</b>
    <b>is</b>
-      C_Integer_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_Integer_Field_Type, "TYPE_INTEGER");
+      <FONT COLOR=red><A NAME="52_7">C_Integer_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#52_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>;
-                             Cft  : C_Field_Type := C_Integer_Field_Type;
-                             <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="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#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="56_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#52_7">C_Integer_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="57_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+                             <FONT COLOR=red><A NAME="58_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#58_12">C_Long_Int</A>;
+                             <FONT COLOR=red><A NAME="59_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#58_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#55_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="62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#62_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#55_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#57_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#47_10">Precision</A>),
+                           <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#58_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#58_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#48_10">Lower_Limit</A>),
+                           <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#59_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#58_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#49_10">Upper_Limit</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#62_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#53_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
index d72b8b80658ec0a8915f7aa924bda2cb24bf1b48..fa224d7e5f0e2071aa3e67b3f914ac179d7be15d 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#44_58">IntField</A><FONT COLOR=red><A NAME="41_53"></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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#45_58">IntField</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#42_53">IntField</A>);
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">Integer_Field</A></FONT> <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="45_9">Integer_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A> <b>with</b>
       <b>record</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="47_10">Precision</A></FONT>   : Natural;
+         <FONT COLOR=red><A NAME="48_10">Lower_Limit</A></FONT> : Integer;
+         <FONT COLOR=red><A NAME="49_10">Upper_Limit</A></FONT> : Integer;
       <b>end</b> <b>record</b>;
 
       <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> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#44_9">Integer_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="52_14"></A></FONT> (<FONT COLOR=red><A NAME="52_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="53_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#45_9">Integer_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
 </PRE></BODY></HTML>
\ No newline at end of file
index dc79cc7192ec1d1260e5dcd84327b4c91f368804..aa09c515c4cca973c215958a5f27b410d683da26 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.6 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.7 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#42_53">IPV4_Address</A><FONT COLOR=red><A NAME="45_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#45_9">Internet_V4_Address_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#49_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#46_9">Internet_V4_Address_Field</A>)
    <b>is</b>
    <b>is</b>
-      C_IPV4_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_IPV4_Field_Type, "TYPE_IPV4");
+      <FONT COLOR=red><A NAME="52_7">C_IPV4_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#52_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>;
-                             Cft  : C_Field_Type := C_IPV4_Field_Type)
-                             <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="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#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="56_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#52_7">C_IPV4_Field_Type</A>)
+                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#55_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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#60_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#55_16">Set_Fld_Type</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#60_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#60_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#49_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
index f270ad6eb86e7b795d4959ff90e0cde6cb5a5971..04f89d70ba5a03389ac46067c30bbff6c2cac226 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#44_58">IPV4_Address</A><FONT COLOR=red><A NAME="41_53"></A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#45_58">IPV4_Address</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
    <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#42_53">IPV4_Address</A>);
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="45_9">Internet_V4_Address_Field</A></FONT> <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="46_9">Internet_V4_Address_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_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> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#45_9">Internet_V4_Address_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<FONT COLOR=red><A NAME="48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#46_9">Internet_V4_Address_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
 </PRE></BODY></HTML>
\ No newline at end of file
index e6d074243b4ab468db0f5caa6b0355947ce6e8bb..d3671e5f8d41f1706457fb9b5957fdb5c8bab1b2 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.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;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#42_53">Numeric</A><FONT COLOR=red><A NAME="45_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#44_9">Numeric_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#53_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#45_9">Numeric_Field</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="51_12">Double</A></FONT> <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="52_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.double;
 
 
-      C_Numeric_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_Numeric_Field_Type, "TYPE_NUMERIC");
+      <FONT COLOR=red><A NAME="54_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#54_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>;
-                             Cft  : C_Field_Type := C_Numeric_Field_Type;
-                             <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> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#51_12">Double</A>;
-                             <FONT COLOR=red><A NAME="60_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#51_12">Double</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-numeric__adb.htm#56_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="57_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="57_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="58_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#54_7">C_Numeric_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="59_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+                             <FONT COLOR=red><A NAME="60_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#52_12">Double</A>;
+                             <FONT COLOR=red><A NAME="61_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#52_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#57_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="64_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#51_12">Double</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#47_10">Lower_Limit</A>),
-                           <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#60_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#51_12">Double</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#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#64_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#57_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#59_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#47_10">Precision</A>),
+                           <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#60_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#52_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#48_10">Lower_Limit</A>),
+                           <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#61_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#52_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#49_10">Upper_Limit</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#64_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#64_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#53_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
index 2f1edfd9116443370c302b46464b6d136a5ff62a..f44d8c70c030167ac74074a7f66af013ac203b82 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#44_58">Numeric</A><FONT COLOR=red><A NAME="41_53"></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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#45_58">Numeric</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#42_53">Numeric</A>);
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">Numeric_Field</A></FONT> <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="45_9">Numeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A> <b>with</b>
       <b>record</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="47_10">Precision</A></FONT>   : Natural;
+         <FONT COLOR=red><A NAME="48_10">Lower_Limit</A></FONT> : Float;
+         <FONT COLOR=red><A NAME="49_10">Upper_Limit</A></FONT> : Float;
       <b>end</b> <b>record</b>;
 
       <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> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#44_9">Numeric_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="52_14"></A></FONT> (<FONT COLOR=red><A NAME="52_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="53_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#45_9">Numeric_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
 </PRE></BODY></HTML>
\ No newline at end of file
index 44d8860251ad0f42b34bd5719cba944dc262013b..2f39185f63913ca065834fda36c01702270c2481 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.6 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.7 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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;
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#42_53">RegExp</A><FONT COLOR=red><A NAME="45_58"></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> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#46_9">Regular_Expression_Field</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_14">Set_Field_Type</A><FONT COLOR=red><A NAME="47_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#53_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#47_9">Regular_Expression_Field</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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="50_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;
 
 
-      C_Regexp_Field_Type : C_Field_Type;
-      <b>pragma</b> Import (C, C_Regexp_Field_Type, "TYPE_REGEXP");
+      <FONT COLOR=red><A NAME="52_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#52_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>;
-                         Cft  : C_Field_Type := C_Regexp_Field_Type;
-                         Arg1 : Char_Ptr) <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="55_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="55_26">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Fld</A>;
+                         <FONT COLOR=red><A NAME="56_26">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#52_7">C_Regexp_Field_Type</A>;
+                         <FONT COLOR=red><A NAME="57_26">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#50_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#55_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="60_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#49_10">Regular_Expression</A>.<b>all</b>'Length);
+      <FONT COLOR=red><A NAME="61_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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> (Arg1 =&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#53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#49_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#60_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Len</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#62_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#55_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#57_26">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#60_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#60_7">Txt</A>'First)'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#62_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#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>);
+      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#53_30">Typ</A>);
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
    <b>end</b> Set_Field_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
index e716502f743fe35d1d2ec44d1b0589945e0b1794..41829d94f29ca44fbc3844f0a735f93979438eb0 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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>.<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#44_58">RegExp</A><FONT COLOR=red><A NAME="41_53"></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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#45_58">RegExp</A><FONT COLOR=red><A NAME="42_53"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#42_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="45_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="46_9">Regular_Expression_Field</A></FONT> <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="47_9">Regular_Expression_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A> <b>with</b>
       <b>record</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="49_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#45_9">String_Access</A>;
       <b>end</b> <b>record</b>;
 
       <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> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#46_9">Regular_Expression_Field</A>);
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">Set_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#47_14">Set_Field_Type</A><FONT COLOR=red><A NAME="52_14"></A></FONT> (<FONT COLOR=red><A NAME="52_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="53_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#47_9">Regular_Expression_Field</A>);
+   <b>pragma</b> Inline (Set_Field_Type);
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
 </PRE></BODY></HTML>
\ No newline at end of file
index d9a59b24de6c8b684e82f6fc2dd6fa6052ead949..7b00744796a5ef6b0dc0d8f5bde57f03995d0021 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Unchecked_Conversion;
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.User.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A><FONT COLOR=red><A NAME="45_63"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#44_58">Choice</A><FONT COLOR=red><A NAME="46_63"></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#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, Argument_Access);
+   <b>function</b> <FONT COLOR=red><A NAME="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#217_9">Argument_Access</A>);
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A><FONT COLOR=red><A NAME="52_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_13">Generic_Next</A><FONT COLOR=red><A NAME="53_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#84_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="55_7">Result</A></FONT> : Boolean;
-      Udf    : User_Defined_Field_Type_With_Choice_Access :=
-        User_Defined_Field_Type_With_Choice_Access
-        (<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>).Typ);
+      <FONT COLOR=red><A NAME="56_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="57_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#58_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+        <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#58_9">User_Defined_Field_Type_With_Choice_Access</A>
+        (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#84_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A>);
    <b>begin</b>
    <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>, Udf.<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>));
+      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#56_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#61_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#57_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#56_7">Result</A>));
    <b>end</b> Generic_Next;
 
    <b>end</b> Generic_Next;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A><FONT COLOR=red><A NAME="64_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_13">Generic_Prev</A><FONT COLOR=red><A NAME="65_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#91_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="67_7">Result</A></FONT> : Boolean;
-      Udf    : User_Defined_Field_Type_With_Choice_Access :=
-        User_Defined_Field_Type_With_Choice_Access
-        (<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>).Typ);
+      <FONT COLOR=red><A NAME="68_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="69_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#58_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+        <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#58_9">User_Defined_Field_Type_With_Choice_Access</A>
+        (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#91_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A>);
    <b>begin</b>
    <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>, Udf.<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>));
+      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#68_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#68_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#69_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#68_7">Result</A>));
    <b>end</b> Generic_Prev;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>end</b> Generic_Prev;
 
    <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><FONT COLOR=red><A NAME="78_13"></A></FONT> <b>return</b> C_Field_Type
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#81_13">C_Generic_Choice</A><FONT COLOR=red><A NAME="79_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>
    <b>is</b>
    <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>;
-      T   : C_Field_Type;
+      <FONT COLOR=red><A NAME="81_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="82_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> M_Generic_Choice = Null_Field_Type <b>then</b>
-         T := <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> T = Null_Field_Type <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#143_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#82_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_13">Generic_Field_Check</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_13">Generic_Char_Check</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#82_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>else</b>
          <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> (T,
-                                      <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#81_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#82_7">T</A>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_13">Make_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Copy_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Free_Arg</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">Res</A>);
             <b>end</b> <b>if</b>;
 
             <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> (T,
-                                         <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#81_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#82_7">T</A>,
+                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_13">Generic_Next</A>'<b>Access</b>,
+                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_13">Generic_Prev</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         M_Generic_Choice := T;
+         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#82_7">T</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (M_Generic_Choice /= Null_Field_Type);
-      <b>return</b> M_Generic_Choice;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Generic_Choice</A>;
    <b>end</b> C_Generic_Choice;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
    <b>end</b> C_Generic_Choice;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
index dde056ec2ac8bbe47f0f139702e16538e03bfe5b..081d8c6ea92f1680bdfbe977d3f715dabfa19d86 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 
 <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>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>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#45_63">Choice</A><FONT COLOR=red><A NAME="43_58"></A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#46_63">Choice</A><FONT COLOR=red><A NAME="44_58"></A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
    <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#44_58">Choice</A>);
 
    <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#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>subtype</b> <FONT COLOR=red><A NAME="49_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="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#48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="51_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#49_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>
 
    <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> User_Defined_Field_Type_With_Choice_Access <b>is</b> <b>access</b> <b>all</b>
-     <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#50_9">User_Defined_Field_Type_With_Choice</A>'Class;
+   <b>type</b> <FONT COLOR=red><A NAME="58_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#51_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> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="61_13">Next</A></FONT>
+     (<FONT COLOR=red><A NAME="62_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <FONT COLOR=red><A NAME="63_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#51_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>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> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="68_13">Previous</A></FONT>
+     (<FONT COLOR=red><A NAME="69_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <FONT COLOR=red><A NAME="70_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#51_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>
       <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>
 <b>private</b>
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
 <b>private</b>
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#78_13">C_Generic_Choice</A><FONT COLOR=red><A NAME="80_13"></A></FONT> <b>return</b> C_Field_Type;
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#79_13">C_Generic_Choice</A><FONT COLOR=red><A NAME="81_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#52_13">Generic_Next</A><FONT COLOR=red><A NAME="82_13"></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> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#53_13">Generic_Next</A><FONT COLOR=red><A NAME="83_13"></A></FONT> (<FONT COLOR=red><A NAME="83_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="84_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_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>
 
    <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> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#64_13">Generic_Prev</A><FONT COLOR=red><A NAME="89_13"></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> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#65_13">Generic_Prev</A><FONT COLOR=red><A NAME="90_13"></A></FONT> (<FONT COLOR=red><A NAME="90_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="91_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#49_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_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>
    <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>
index 95dfeda820a5d21dc3de571440bb76d1d5e77516..bbc6e1f896d741eb549a79594262f8a03156c6d0 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Unchecked_Conversion;
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.Field_Types.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A><FONT COLOR=red><A NAME="45_58"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#44_53">User</A><FONT COLOR=red><A NAME="46_58"></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#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> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_14">Set_Field_Type</A><FONT COLOR=red><A NAME="50_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#72_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_9">User_Defined_Field_Type</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#63_16">Allocate_Arg</A><FONT COLOR=red><A NAME="52_16"></A></FONT> (<FONT COLOR=red><A NAME="52_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>'Class)
-                             <b>return</b> Argument_Access;
+      <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#64_16">Allocate_Arg</A><FONT COLOR=red><A NAME="53_16"></A></FONT> (<FONT COLOR=red><A NAME="53_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_9">User_Defined_Field_Type</A>'Class)
+                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_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>;
-                             Cft  : C_Field_Type := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A>;
-                             Arg1 : Argument_Access)
-                             <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="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#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="57_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#82_13">C_Generic_Type</A>;
+                             <FONT COLOR=red><A NAME="58_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>)
+                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#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="62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
 
 
-      <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A><FONT COLOR=red><A NAME="63_16"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_30">T</A> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>'Class)
-                             <b>return</b> Argument_Access
+      <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#53_16">Allocate_Arg</A><FONT COLOR=red><A NAME="64_16"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#53_30">T</A> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_9">User_Defined_Field_Type</A>'Class)
+                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>
       <b>is</b>
       <b>is</b>
-         Ptr : Field_Type_Access := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_30">T</A>);
+         <FONT COLOR=red><A NAME="67_10">Ptr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#64_9">Field_Type_Access</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#53_30">T</A>);
       <b>begin</b>
       <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; Ptr,
-                              Cft =&gt; Null_Field_Type);
+         <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_9">Argument</A>'(Usr =&gt; System.Null_Address,
+                              Typ =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#67_10">Ptr</A>,
+                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
       <b>end</b> Allocate_Arg;
 
    <b>begin</b>
       <b>end</b> Allocate_Arg;
 
    <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> (Arg1 =&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#62_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#58_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#53_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#72_30">Typ</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#62_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Type;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Type;
 
-   <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, Argument_Access);
+   <b>function</b> <FONT COLOR=red><A NAME="81_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#217_9">Argument_Access</A>);
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A><FONT COLOR=red><A NAME="83_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_13">Generic_Field_Check</A><FONT COLOR=red><A NAME="84_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                 <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#85_34">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="86_7">Result</A></FONT> : Boolean;
-      Udf    : User_Defined_Field_Type_Access :=
-        User_Defined_Field_Type_Access (<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>).Typ);
+      <FONT COLOR=red><A NAME="87_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="88_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#54_9">User_Defined_Field_Type_Access</A> :=
+        <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#54_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#81_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#85_34">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A>);
    <b>begin</b>
    <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>, Udf.<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>));
+      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#87_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#57_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#88_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#87_7">Result</A>));
    <b>end</b> Generic_Field_Check;
 
    <b>end</b> Generic_Field_Check;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A><FONT COLOR=red><A NAME="94_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_13">Generic_Char_Check</A><FONT COLOR=red><A NAME="95_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Ch</A>  : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>;
+                                <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#92_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="97_7">Result</A></FONT> : Boolean;
-      Udf    : User_Defined_Field_Type_Access :=
-        User_Defined_Field_Type_Access (<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>).Typ);
+      <FONT COLOR=red><A NAME="98_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="99_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#54_9">User_Defined_Field_Type_Access</A> :=
+        <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#54_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#81_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#92_33">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A>);
    <b>begin</b>
    <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>), Udf.<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>));
+      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#98_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#64_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#99_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#98_7">Result</A>));
    <b>end</b> Generic_Char_Check;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>end</b> Generic_Char_Check;
 
    <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><FONT COLOR=red><A NAME="107_13"></A></FONT> <b>return</b> C_Field_Type
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#82_13">C_Generic_Type</A><FONT COLOR=red><A NAME="108_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>
    <b>is</b>
    <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>;
-      T   : C_Field_Type;
+      <FONT COLOR=red><A NAME="110_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="111_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> M_Generic_Type = Null_Field_Type <b>then</b>
-         T := <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> T = Null_Field_Type <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#142_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#111_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_13">Generic_Field_Check</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_13">Generic_Char_Check</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#111_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>else</b>
          <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> (T,
-                                      <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#110_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#111_7">T</A>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_13">Make_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Copy_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Free_Arg</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         M_Generic_Type := T;
+         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#111_7">T</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (M_Generic_Type /= Null_Field_Type);
-      <b>return</b> M_Generic_Type;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Type</A>;
    <b>end</b> C_Generic_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User;
    <b>end</b> C_Generic_Type;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User;
index 9be4226a63ffd606c66fa57d97096d25cd7929da..2cb7d858e6302636379751e8a2f2d9a5c8a3b07b 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 
 <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>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__adb.htm#45_58">User</A><FONT COLOR=red><A NAME="43_53"></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>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#46_58">User</A><FONT COLOR=red><A NAME="44_53"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#44_53">User</A>);
    <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#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>subtype</b> <FONT COLOR=red><A NAME="47_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
 
-   <b>type</b> <FONT COLOR=red><A NAME="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#52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="49_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#53_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>
 
    <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> User_Defined_Field_Type_Access <b>is</b> <b>access</b> <b>all</b>
-     <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>'Class;
+   <b>type</b> <FONT COLOR=red><A NAME="54_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#49_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> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="57_13">Field_Check</A></FONT>
+     (<FONT COLOR=red><A NAME="58_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <FONT COLOR=red><A NAME="59_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_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>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> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="64_13">Character_Check</A></FONT>
+     (<FONT COLOR=red><A NAME="65_7">Ch</A></FONT>  : Character;
+      <FONT COLOR=red><A NAME="66_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_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>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> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#50_14">Set_Field_Type</A><FONT COLOR=red><A NAME="71_14"></A></FONT> (<FONT COLOR=red><A NAME="71_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="72_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#49_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>--  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>
 
 <b>private</b>
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
 <b>private</b>
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#107_13">C_Generic_Type</A><FONT COLOR=red><A NAME="81_13"></A></FONT>   <b>return</b> C_Field_Type;
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#108_13">C_Generic_Type</A><FONT COLOR=red><A NAME="82_13"></A></FONT>   <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#83_13">Generic_Field_Check</A><FONT COLOR=red><A NAME="83_13"></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> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#84_13">Generic_Field_Check</A><FONT COLOR=red><A NAME="84_13"></A></FONT> (<FONT COLOR=red><A NAME="84_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                 <FONT COLOR=red><A NAME="85_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_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>
 
    <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> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#94_13">Generic_Char_Check</A><FONT COLOR=red><A NAME="90_13"></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> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#95_13">Generic_Char_Check</A><FONT COLOR=red><A NAME="91_13"></A></FONT> (<FONT COLOR=red><A NAME="91_33">Ch</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>;
+                                <FONT COLOR=red><A NAME="92_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#47_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_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>
    <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>
index 48c7ee4dac1c382ff7b1f82af571a000b9cb6c2c..d258ff293a720987827befbfdb1a3d5cbd20cbbe 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 <b>with</b> Ada.Unchecked_Deallocation;
 <b>with</b> Ada.Unchecked_Conversion;
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <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>
 <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> Terminal_Interface.Curses.Forms.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A><FONT COLOR=red><A NAME="50_46"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#44_41">Field_Types</A><FONT COLOR=red><A NAME="51_46"></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> System.Address;
 
 
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#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, Argument_Access);
+   <b>function</b> <FONT COLOR=red><A NAME="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#217_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> C_Field_Type;
-   <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="59_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="59_28">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#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="62_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="62_22">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> System.Address;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#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>--  | man page form_field_validation.3x</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <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><FONT COLOR=red><A NAME="70_13"></A></FONT> (<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> Field_Type_Access
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#80_13">Get_Type</A><FONT COLOR=red><A NAME="71_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#80_23">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#64_9">Field_Type_Access</A>
    <b>is</b>
    <b>is</b>
-      Low_Level : <b>constant</b> C_Field_Type := <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>);
-      Arg : Argument_Access;
+      <FONT COLOR=red><A NAME="73_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#80_23">Fld</A>);
+      <FONT COLOR=red><A NAME="74_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> Low_Level = Null_Field_Type <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
          <b>return</b> <b>null</b>;
       <b>else</b>
          <b>return</b> <b>null</b>;
       <b>else</b>
-         <b>if</b> Low_Level = M_Builtin_Router <b>or</b> <b>else</b>
-           Low_Level = M_Generic_Type <b>or</b> <b>else</b>
-           Low_Level = M_Choice_Router <b>or</b> <b>else</b>
-           Low_Level = M_Generic_Choice <b>then</b>
-            Arg := <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> Arg = <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#73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
+           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Type</A> <b>or</b> <b>else</b>
+           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#145_4">M_Choice_Router</A> <b>or</b> <b>else</b>
+           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Generic_Choice</A> <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#74_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#80_23">Fld</A>));
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#74_7">Arg</A> = <b>null</b> <b>then</b>
+               <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
             <b>else</b>
             <b>else</b>
-               <b>return</b> Arg.Typ;
+               <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#74_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A>;
             <b>end</b> <b>if</b>;
          <b>else</b>
             <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#289_4">Form_Exception</A>;
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Type;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Type;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A><FONT COLOR=red><A NAME="94_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A> : System.Address) <b>return</b> System.Address
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_13">Make_Arg</A><FONT COLOR=red><A NAME="95_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_23">Args</A> : 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>
    <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>
       <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> V <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,
-                                                          V);
+      <b>type</b> <FONT COLOR=red><A NAME="106_12">V</A></FONT> <b>is</b> <b>access</b> <b>all</b> System.Address;
+      <b>function</b> <FONT COLOR=red><A NAME="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#106_12">V</A>);
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_23">Args</A>).<b>all</b>).<b>all</b>;
    <b>end</b> Make_Arg;
 
    <b>end</b> Make_Arg;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A><FONT COLOR=red><A NAME="112_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A> : System.Address) <b>return</b> System.Address
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Copy_Arg</A><FONT COLOR=red><A NAME="113_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_23">Usr</A> : System.Address) <b>return</b> System.Address
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_23">Usr</A>;
    <b>end</b> Copy_Arg;
 
    <b>end</b> Copy_Arg;
 
-   <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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Free_Arg</A><FONT COLOR=red><A NAME="119_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_24">Usr</A> : <b>in</b> System.Address)
    <b>is</b>
    <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, Field_Type_Access);
-      <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>, Argument_Access);
+      <b>procedure</b> <FONT COLOR=red><A NAME="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#53_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#64_9">Field_Type_Access</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="123_17">Freeargs</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>);
 
 
-      To_Be_Free : Argument_Access := <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>);
-      Low_Level  : C_Field_Type;
+      <FONT COLOR=red><A NAME="126_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_24">Usr</A>);
+      <FONT COLOR=red><A NAME="127_7">Low_Level</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> To_Be_Free /= <b>null</b> <b>then</b>
-         <b>if</b> To_Be_Free.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> /= System.Null_Address <b>then</b>
-            Low_Level := To_Be_Free.Cft;
-            <b>if</b> Low_Level.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> /= <b>null</b> <b>then</b>
-               Low_Level.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> (To_Be_Free.<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#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#126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A> /= System.Null_Address <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#127_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>;
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#127_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Freearg</A> /= <b>null</b> <b>then</b>
+               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#127_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <b>if</b> To_Be_Free.Typ /= <b>null</b> <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#120_17">Free_Type</A> (To_Be_Free.Typ);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A> /= <b>null</b> <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#121_17">Free_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Typ</A>);
          <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#122_17">Freeargs</A> (To_Be_Free);
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#123_17">Freeargs</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">To_Be_Free</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Free_Arg;
 
 
       <b>end</b> <b>if</b>;
    <b>end</b> Free_Arg;
 
 
-   <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>;
-                           <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Typ</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class;
-                           Cft : C_Field_Type := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_14">Wrap_Builtin</A><FONT COLOR=red><A NAME="144_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                           <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Typ</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A>'Class;
+                           <A HREF="terminal_interface-curses-forms-field_types__ads.htm#154_28">Cft</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Builtin_Router</A>)
    <b>is</b>
    <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>);
-      Low_Level : <b>constant</b> C_Field_Type := <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>);
-      Arg : Argument_Access;
-      <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>;
-                             Cf   : C_Field_Type := Cft;
-                             Arg1 : Argument_Access) <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="148_7">Usr_Arg</A></FONT>   : System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Fld</A>);
+      <FONT COLOR=red><A NAME="149_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Fld</A>);
+      <FONT COLOR=red><A NAME="150_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>;
+      <FONT COLOR=red><A NAME="151_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="152_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="152_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Fld</A>;
+                             <FONT COLOR=red><A NAME="153_30">Cf</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#154_28">Cft</A>;
+                             <FONT COLOR=red><A NAME="154_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#152_16">Set_Fld_Type</A>, "set_field_type");
 
    <b>begin</b>
 
    <b>begin</b>
-      <b>pragma</b> Assert (Low_Level /= Null_Field_Type);
-      <b>if</b> Cft /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> Cft /= <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#149_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#150_13">C_Choice_Router</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>else</b>
       <b>else</b>
-         Arg := <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'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Typ</A>),
-                              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> Low_Level.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#125_10">Copyarg</A> /= <b>null</b> <b>then</b>
-               Arg.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> := Low_Level.<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#150_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_9">Argument</A>'(Usr =&gt; System.Null_Address,
+                              Typ =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Typ</A>),
+                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#152_28">Fld</A>));
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Copyarg</A> /= <b>null</b> <b>then</b>
+               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Usr_Arg</A>);
             <b>else</b>
             <b>else</b>
-               Arg.<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#150_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Usr_Arg</A>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
 
             <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> (Arg1 =&gt; Arg);
-         <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#151_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#152_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#154_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Arg</A>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+            <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_7">Res</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Wrap_Builtin;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Wrap_Builtin;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A><FONT COLOR=red><A NAME="179_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_13">Field_Check_Router</A><FONT COLOR=red><A NAME="180_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                <A HREF="terminal_interface-curses-forms-field_types__ads.htm#179_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      Arg  : <b>constant</b> Argument_Access := <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="183_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#179_33">Usr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Arg /= <b>null</b> <b>and</b> <b>then</b> Arg.Cft /= Null_Field_Type
-                     <b>and</b> <b>then</b> Arg.Typ /= <b>null</b>);
-      <b>if</b> Arg.Cft.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Fcheck</A> /= <b>null</b> <b>then</b>
-         <b>return</b> Arg.Cft.<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>, Arg.<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#183_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>
+                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A> /= <b>null</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Fcheck</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A>);
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Field_Check_Router;
 
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Field_Check_Router;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A><FONT COLOR=red><A NAME="193_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_13">Char_Check_Router</A><FONT COLOR=red><A NAME="194_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Ch</A>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>;
+                               <A HREF="terminal_interface-curses-forms-field_types__ads.htm#187_32">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      Arg  : <b>constant</b> Argument_Access := <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="197_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#187_32">Usr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Arg /= <b>null</b> <b>and</b> <b>then</b> Arg.Cft /= Null_Field_Type
-                     <b>and</b> <b>then</b> Arg.Typ /= <b>null</b>);
-      <b>if</b> Arg.Cft.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Ccheck</A> /= <b>null</b> <b>then</b>
-         <b>return</b> Arg.Cft.<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>, Arg.<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#197_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>
+                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A> /= <b>null</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Ccheck</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A>);
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Char_Check_Router;
 
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Char_Check_Router;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A><FONT COLOR=red><A NAME="207_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_13">Next_Router</A><FONT COLOR=red><A NAME="208_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#195_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      Arg  : <b>constant</b> Argument_Access := <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="211_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#195_26">Usr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Arg /= <b>null</b> <b>and</b> <b>then</b> Arg.Cft /= Null_Field_Type
-                     <b>and</b> <b>then</b> Arg.Typ /= <b>null</b>);
-      <b>if</b> Arg.Cft.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Next</A> /= <b>null</b> <b>then</b>
-         <b>return</b> Arg.Cft.<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>, Arg.<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#211_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>
+                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A> /= <b>null</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#130_10">Next</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#130_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A>);
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Next_Router;
 
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
    <b>end</b> Next_Router;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A><FONT COLOR=red><A NAME="221_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_13">Prev_Router</A><FONT COLOR=red><A NAME="222_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#203_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12">C_Int</A>
    <b>is</b>
    <b>is</b>
-      Arg  : <b>constant</b> Argument_Access := <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="225_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#217_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#203_26">Usr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Arg /= <b>null</b> <b>and</b> <b>then</b> Arg.Cft /= Null_Field_Type
-                     <b>and</b> <b>then</b> Arg.Typ /= <b>null</b>);
-      <b>if</b> Arg.Cft.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_16">Prev</A> /= <b>null</b> <b>then</b>
-         <b>return</b> Arg.Cft.<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>, Arg.<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#225_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>
+                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Typ</A> /= <b>null</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#130_16">Prev</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#215_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#130_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Usr</A>);
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
       <b>else</b>
          <b>return</b> 1;
       <b>end</b> <b>if</b>;
 
    <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-field_types__ads.htm#148_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="237_13"></A></FONT> <b>return</b> C_Field_Type
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="238_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>
    <b>is</b>
    <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>;
-      T   : C_Field_Type;
+      <FONT COLOR=red><A NAME="240_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="241_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> M_Builtin_Router = Null_Field_Type <b>then</b>
-         T := <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> T = Null_Field_Type <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#144_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#241_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_13">Field_Check_Router</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_13">Char_Check_Router</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#241_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>else</b>
          <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> (T,
-                                      <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#240_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#241_7">T</A>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_13">Make_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Copy_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Free_Arg</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         M_Builtin_Router := T;
+         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#241_7">T</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (M_Builtin_Router /= Null_Field_Type);
-      <b>return</b> M_Builtin_Router;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Builtin_Router</A>;
    <b>end</b> C_Builtin_Router;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>end</b> C_Builtin_Router;
 
    <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><FONT COLOR=red><A NAME="264_13"></A></FONT> <b>return</b> C_Field_Type
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#150_13">C_Choice_Router</A><FONT COLOR=red><A NAME="265_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>
    <b>is</b>
    <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>;
-      T   : C_Field_Type;
+      <FONT COLOR=red><A NAME="267_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="268_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> M_Choice_Router = Null_Field_Type <b>then</b>
-         T := <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> T = Null_Field_Type <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#145_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#268_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_13">Field_Check_Router</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_13">Char_Check_Router</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#268_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>else</b>
          <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> (T,
-                                      <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#267_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#268_7">T</A>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#163_13">Make_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Copy_Arg</A>'<b>Access</b>,
+                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Free_Arg</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">Res</A>);
             <b>end</b> <b>if</b>;
 
             <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> (T,
-                                         <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#267_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#268_7">T</A>,
+                                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_13">Next_Router</A>'<b>Access</b>,
+                                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_13">Prev_Router</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+               <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         M_Choice_Router := T;
+         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#145_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#268_7">T</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (M_Choice_Router /= Null_Field_Type);
-      <b>return</b> M_Choice_Router;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#145_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#135_4">Null_Field_Type</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#145_4">M_Choice_Router</A>;
    <b>end</b> C_Choice_Router;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
    <b>end</b> C_Choice_Router;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
index e11c2564b70d872686b06b9ac8acb29552e513ac..a835f274b631ea0b618226d21eecf49819502600 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Interfaces.C;
 
 <b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Interfaces.C;
 
 <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="47_12"> </A></FONT>Interfaces.C.int;
    <b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <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>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="68_30">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_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>
                              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>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="106_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>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="110_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#109_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>
    <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=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="123_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
+         <FONT COLOR=red><A NAME="124_10">Ref_Count</A></FONT> :           Interfaces.C.long;
+         <FONT COLOR=red><A NAME="125_10">Left</A></FONT>, Right :         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#93_9">System</A>.Address;
+         <FONT COLOR=red><A NAME="126_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#97_9">Makearg_Function</A>;
+         <FONT COLOR=red><A NAME="127_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#101_9">Copyarg_Function</A>;
+         <FONT COLOR=red><A NAME="128_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#105_9">Freearg_Function</A>;
+         <FONT COLOR=red><A NAME="129_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#109_9">Field_Check_Function</A>;
+         <FONT COLOR=red><A NAME="130_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="130_16"> </A></FONT>:              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#113_9">Char_Check_Function</A>;
          Next, Prev :          Choice_Function;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Low_Level_Field_Type);
          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=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>
-   M_Generic_Type   : C_Field_Type := <b>null</b>;
-   M_Generic_Choice : C_Field_Type := <b>null</b>;
-   M_Builtin_Router : C_Field_Type := <b>null</b>;
+   <FONT COLOR=red><A NAME="143_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="144_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="145_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_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>
    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> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#264_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="149_13"></A></FONT> <b>return</b> C_Field_Type;
+   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#265_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="150_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
    <b>function</b> C_Choice_Router  <b>return</b> C_Field_Type;
 
    <b>function</b> C_Choice_Router  <b>return</b> C_Field_Type;
 
-   <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="152_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
-                           Typ : Field_Type'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+   <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="153_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field</A>;
+                           <FONT COLOR=red><A NAME="154_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_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>
                            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>
 
    <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#168_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>
    <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>
 
    <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="179_33">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_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>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="187_32">Ch</A></FONT> : C_Int;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_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>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="195_26">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_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>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="203_26">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_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>
    <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=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>
-      Usr : System.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
+      <FONT COLOR=red><A NAME="214_7">Typ</A></FONT> : Field_Type_Access;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
+      <FONT COLOR=red><A NAME="215_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_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;
       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>
    <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>;
-                           Ccheck : Char_Check_Function)
+   <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="224_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#109_9">Field_Check_Function</A>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9"> </A>              Ccheck : Char_Check_Function)
      <b>return</b> C_Field_Type;
    <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
 
      <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="229_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#93_9">C_Field_Type</A>;
+                               <FONT COLOR=red><A NAME="230_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#97_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Make_Arg</A>'<b>Access</b>;
+                               <FONT COLOR=red><A NAME="231_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#101_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Copy_Arg</A>'<b>Access</b>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_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>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="236_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="236_41">C_Field_Type</A></FONT>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12"> </A>                     Next, Prev : Choice_Function)
      <b>return</b> C_Int;
    <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
 
      <b>return</b> C_Int;
    <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
 
index c5fd816a185a6b2b0ae6bb460e3990a8e87be598..a281121b76941c870aebfd87d149421a291bb3ae 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.11 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b>  <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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>
 
 <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> Terminal_Interface.Curses.Forms.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#46_41">Field_User_Data</A> <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;
 
    <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>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> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_14">Set_User_Data</A><FONT COLOR=red><A NAME="55_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Fld</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                            <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#55_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <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="58_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="58_35">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                  <FONT COLOR=red><A NAME="59_35">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#58_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="62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#58_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#55_29">Data</A>);
    <b>begin</b>
    <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#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#62_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
    <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><FONT COLOR=red><A NAME="70_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#65_13">Get_User_Data</A><FONT COLOR=red><A NAME="71_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#65_28">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_9">User_Access</A>
    <b>is</b>
    <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="73_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="73_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#73_16">Field_Userptr</A>, "field_userptr");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#73_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#65_28">Fld</A>);
    <b>end</b> Get_User_Data;
 
    <b>end</b> Get_User_Data;
 
-   <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> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_14">Get_User_Data</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                            <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#61_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#61_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Fld</A>);
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
index 07e564362472a85a268c397e509b3118043e79a5..3cfc919f9068f88b1a99482d8b8ae063337561bb 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.14 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
 <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="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="45_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#49_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);
 
 <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>
    <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="55_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_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>
                             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="61_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_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>
 
                             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 46d298a5dfdac65378e16029f50b7bab634f0d7c..ec9dc995cfb7397716c9afcb327296d35e1a1b95 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.11 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  | man page form__userptr.3x</EM></FONT>
 <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Forms.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#46_41">Form_User_Data</A> <b>is</b>
 
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#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>use</b> <b>type</b> <A HREF="interfac__ads.htm#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> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_14">Set_User_Data</A><FONT COLOR=red><A NAME="56_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                            <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#55_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <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="59_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="59_34">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="60_34">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#59_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="63_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#59_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#55_29">Data</A>);
    <b>begin</b>
    <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#63_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#63_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
    <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><FONT COLOR=red><A NAME="71_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#65_13">Get_User_Data</A><FONT COLOR=red><A NAME="72_13"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#65_28">Frm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_9">User_Access</A>
    <b>is</b>
    <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="74_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="74_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#74_16">Form_Userptr</A>, "form_userptr");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#74_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#65_28">Frm</A>);
    <b>end</b> Get_User_Data;
 
    <b>end</b> Get_User_Data;
 
-   <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> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_14">Get_User_Data</A><FONT COLOR=red><A NAME="80_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Frm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                            <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#61_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#61_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Frm</A>);
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
index 3f03f43cd9188c5fd8fd733e0e8436d0f1a98513..8f7485293c7e477c897dcb7383405a17aa6d6cc0 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
 <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="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="45_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#49_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);
 
 <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>
    <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="55_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_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>
                             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="61_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_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>
 
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
 
index 087bf5597ad14edf467ed4cea358f1b85135d908..345432293186d240a8a44ccfc3b6b3916de25fef 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.20 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.21 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Deallocation;
 <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.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#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#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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A><FONT COLOR=red><A NAME="50_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#49_35">Forms</A><FONT COLOR=red><A NAME="51_40"></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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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="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#56_9">Field</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="56_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#56_9">Field</A>, <A HREF="terminal_interface-curses-forms__adb.htm#55_9">C_Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</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="65_13">FOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#56_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="69_13">CInt_2_FOS</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>,
+                               <A HREF="terminal_interface-curses-forms__ads.htm#68_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="73_13">FrmOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#56_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="77_13">CInt_2_FrmOS</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>,
+                               <A HREF="terminal_interface-curses-forms__ads.htm#108_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> <A HREF="terminal_interface-curses-forms__ads.htm#279_14">Request_Name</A><FONT COLOR=red><A NAME="81_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#279_28">Key</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A>;
+                                <A HREF="terminal_interface-curses-forms__ads.htm#280_28">Name</A> : <b>out</b> String)
    <b>is</b>
    <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="84_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="84_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#84_16">Form_Request_Name</A>, "form_request_name");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#279_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#280_28">Name</A>);
    <b>end</b> Request_Name;
 
    <b>end</b> Request_Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#281_14">Request_Name</A><FONT COLOR=red><A NAME="89_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#282_14">Request_Name</A><FONT COLOR=red><A NAME="90_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#282_28">Key</A> : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A>) <b>return</b> String
    <b>is</b>
    <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="92_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="92_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#92_16">Form_Request_Name</A>, "form_request_name");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#92_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#282_28">Key</A>)));
    <b>end</b> Request_Name;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Request_Name;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#295_13">Create</A><FONT COLOR=red><A NAME="107_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#296_13">Create</A><FONT COLOR=red><A NAME="108_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#296_21">Height</A>       : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#297_21">Width</A>        : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#298_21">Top</A>          : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#299_21">Left</A>         : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#300_21">Off_Screen</A>   : Natural := 0;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#301_21">More_Buffers</A> : <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>
    <b>is</b>
    <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="116_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="116_26">H</A></FONT>, <FONT COLOR=red><A NAME="116_29">W</A></FONT>, <FONT COLOR=red><A NAME="116_32">T</A></FONT>, <FONT COLOR=red><A NAME="116_35">L</A></FONT>, <FONT COLOR=red><A NAME="116_38">O</A></FONT>, <FONT COLOR=red><A NAME="116_41">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#116_16">Newfield</A>, "new_field");
+      <FONT COLOR=red><A NAME="118_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#116_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#296_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#297_21">Width</A>),
+                                        <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#298_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#299_21">Left</A>),
+                                        <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#300_21">Off_Screen</A>),
+                                        <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#301_21">More_Buffers</A>));
    <b>begin</b>
    <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#118_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_7">Fld</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#118_7">Fld</A>;
    <b>end</b> Create;
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Create;
 <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> <A HREF="terminal_interface-curses-forms__ads.htm#318_14">Delete</A><FONT COLOR=red><A NAME="131_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#318_22">Fld</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>)
    <b>is</b>
    <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="133_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="133_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="136_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#318_22">Fld</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#136_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#136_7">Res</A>);
       <b>end</b> <b>if</b>;
       <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>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#318_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>;
    <b>end</b> Delete;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Delete;
    <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><FONT COLOR=red><A NAME="146_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#324_13">Duplicate</A><FONT COLOR=red><A NAME="147_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#324_24">Fld</A>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                       <A HREF="terminal_interface-curses-forms__ads.htm#325_24">Top</A>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                       <A HREF="terminal_interface-curses-forms__ads.htm#326_24">Left</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>
    <b>is</b>
    <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="151_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="151_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="152_27">Top</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                          <FONT COLOR=red><A NAME="153_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#151_16">Dup_Field</A>, "dup_field");
+
+      <FONT COLOR=red><A NAME="156_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#151_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#324_24">Fld</A>,
+                                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#325_24">Top</A>),
+                                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#326_24">Left</A>));
    <b>begin</b>
    <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#156_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_7">F</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#156_7">F</A>;
    <b>end</b> Duplicate;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Duplicate;
    <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><FONT COLOR=red><A NAME="167_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#331_13">Link</A><FONT COLOR=red><A NAME="168_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#331_19">Fld</A>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                  <A HREF="terminal_interface-curses-forms__ads.htm#332_19">Top</A>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                  <A HREF="terminal_interface-curses-forms__ads.htm#333_19">Left</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>
    <b>is</b>
    <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="172_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="172_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="173_27">Top</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                          <FONT COLOR=red><A NAME="174_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#172_16">Lnk_Field</A>, "link_field");
+
+      <FONT COLOR=red><A NAME="177_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#172_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#331_19">Fld</A>,
+                                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#332_19">Top</A>),
+                                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#333_19">Left</A>));
    <b>begin</b>
    <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#177_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#177_7">F</A>;
    <b>end</b> Link;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Link;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#342_14">Set_Justification</A><FONT COLOR=red><A NAME="193_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#342_33">Fld</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                <A HREF="terminal_interface-curses-forms__ads.htm#343_33">Just</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#62_33">None</A>)
    <b>is</b>
    <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="196_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="196_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="197_32">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="200_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> :=
+        <A HREF="terminal_interface-curses-forms__adb.htm#196_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#342_33">Fld</A>,
+                        <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#62_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#343_33">Just</A>)));
    <b>begin</b>
    <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#200_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#200_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Justification;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Justification;
    <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><FONT COLOR=red><A NAME="210_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#348_13">Get_Justification</A><FONT COLOR=red><A NAME="211_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#348_32">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#62_9">Field_Justification</A>
    <b>is</b>
    <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="213_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="213_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#213_16">Field_Just</A>, "field_just");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#62_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#213_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#348_32">Fld</A>));
    <b>end</b> Get_Justification;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Get_Justification;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#357_14">Set_Buffer</A><FONT COLOR=red><A NAME="225_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-forms__ads.htm#358_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#359_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First;
+      <A HREF="terminal_interface-curses-forms__ads.htm#360_7">Str</A>    : <b>in</b> String)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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>;
-                                 S      : Char_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-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="230_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="231_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="231_32">Fld</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                 <FONT COLOR=red><A NAME="232_34">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                                 <FONT COLOR=red><A NAME="233_34">S</A></FONT>      : <A HREF="terminal_interface-curses-forms__adb.htm#230_12">Char_Ptr</A>)
+        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#231_16">Set_Fld_Buffer</A>, "set_field_buffer");
+
+      <FONT COLOR=red><A NAME="237_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#360_7">Str</A>'Length);
+      <FONT COLOR=red><A NAME="238_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#360_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#237_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#238_7">Len</A>);
+      <A HREF="terminal_interface-curses-forms__adb.htm#239_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#231_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#358_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#359_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#237_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#237_7">Txt</A>'First)'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#239_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Buffer;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Buffer;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#365_14">Get_Buffer</A><FONT COLOR=red><A NAME="250_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-forms__ads.htm#366_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#367_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First;
+      <A HREF="terminal_interface-curses-forms__ads.htm#368_7">Str</A>    : <b>out</b> String)
    <b>is</b>
    <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="255_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="255_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="256_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#255_16">Field_Buffer</A>, "field_buffer");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#366_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#367_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#368_7">Str</A>);
    <b>end</b> Get_Buffer;
 
    <b>end</b> Get_Buffer;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A><FONT COLOR=red><A NAME="261_13"></A></FONT>
-     (<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> <A HREF="terminal_interface-curses-forms__ads.htm#371_13">Get_Buffer</A><FONT COLOR=red><A NAME="262_13"></A></FONT>
+     (<A HREF="terminal_interface-curses-forms__ads.htm#372_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#373_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>'First) <b>return</b> String
    <b>is</b>
    <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="266_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="266_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="267_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#266_16">Field_Buffer</A>, "field_buffer");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#266_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#372_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#373_7">Buffer</A>)));
    <b>end</b> Get_Buffer;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Buffer;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#379_14">Set_Status</A><FONT COLOR=red><A NAME="275_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#379_26">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#380_26">Status</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <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="278_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="278_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="279_32">St</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="282_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#278_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#379_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#380_26">Status</A>));
    <b>begin</b>
    <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#282_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Status;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Status;
    <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><FONT COLOR=red><A NAME="290_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#385_13">Changed</A><FONT COLOR=red><A NAME="291_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#385_22">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> Boolean
    <b>is</b>
    <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="293_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="293_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="296_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#293_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#385_22">Fld</A>);
    <b>begin</b>
    <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#296_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#76_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
    <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>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> <A HREF="terminal_interface-curses-forms__ads.htm#390_14">Set_Maximum_Size</A><FONT COLOR=red><A NAME="307_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#390_32">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <A HREF="terminal_interface-curses-forms__ads.htm#391_32">Max</A> : <b>in</b> Natural := 0)
    <b>is</b>
    <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="310_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="310_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                              <FONT COLOR=red><A NAME="311_31">M</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="314_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#310_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#390_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#391_32">Max</A>));
    <b>begin</b>
    <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#314_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#314_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Maximum_Size;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Maximum_Size;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#400_14">Set_Options</A><FONT COLOR=red><A NAME="327_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#400_27">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <A HREF="terminal_interface-curses-forms__ads.htm#401_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>)
    <b>is</b>
    <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="330_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="330_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="331_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="334_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#401_27">Options</A>);
+      <FONT COLOR=red><A NAME="335_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#400_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#334_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#335_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#335_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#406_14">Switch_Options</A><FONT COLOR=red><A NAME="345_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#406_30">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                             <A HREF="terminal_interface-curses-forms__ads.htm#407_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>;
+                             <A HREF="terminal_interface-curses-forms__ads.htm#408_30">On</A>      : Boolean := True)
    <b>is</b>
    <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="349_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="349_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                              <FONT COLOR=red><A NAME="350_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#349_16">Field_Opts_On</A>, "field_opts_on");
+      <b>function</b> <FONT COLOR=red><A NAME="352_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="352_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="353_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#352_16">Field_Opts_Off</A>, "field_opts_off");
+
+      <FONT COLOR=red><A NAME="356_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="357_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#407_30">Options</A>);
    <b>begin</b>
    <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#408_30">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms__adb.htm#356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#349_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#406_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#357_7">Opt</A>);
       <b>else</b>
       <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#356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#406_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#357_7">Opt</A>);
       <b>end</b> <b>if</b>;
       <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#356_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#356_7">Err</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#414_14">Get_Options</A><FONT COLOR=red><A NAME="371_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#414_27">Fld</A>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                          <A HREF="terminal_interface-curses-forms__ads.htm#415_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>)
    <b>is</b>
    <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="374_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="374_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="377_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#374_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#414_27">Fld</A>);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-forms__ads.htm#415_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#69_13">CInt_2_FOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#377_7">Res</A>);
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Options;
    <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><FONT COLOR=red><A NAME="383_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#419_13">Get_Options</A><FONT COLOR=red><A NAME="384_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#419_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>
    <b>is</b>
    <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="387_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>;
    <b>begin</b>
    <b>begin</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__adb.htm#386_7">Fos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#386_7">Fos</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#414_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#419_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#387_7">Fos</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#387_7">Fos</A>;
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_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#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#429_14">Set_Foreground</A><FONT COLOR=red><A NAME="399_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fld</A>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Fore</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#432_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <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#350_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="404_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="404_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="405_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#404_16">Set_Field_Fore</A>, "set_field_fore");
+
+      <FONT COLOR=red><A NAME="408_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#432_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Fore</A>);
+      <FONT COLOR=red><A NAME="411_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> :=
+        <A HREF="terminal_interface-curses-forms__adb.htm#404_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#408_7">Ch</A>));
    <b>begin</b>
    <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#411_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#411_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Foreground;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Foreground;
    <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#304_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#437_14">Foreground</A><FONT COLOR=red><A NAME="421_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#438_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>)
    <b>is</b>
    <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="424_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="424_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#424_16">Field_Fore</A>, "field_fore");
    <b>begin</b>
    <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#352_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#438_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Foreground;
 
    <b>end</b> Foreground;
 
-   <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#304_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#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#442_14">Foreground</A><FONT COLOR=red><A NAME="430_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fld</A>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Fore</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#444_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <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="434_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="434_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#434_16">Field_Fore</A>, "field_fore");
    <b>begin</b>
    <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#352_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#353_10">Color</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#444_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Foreground;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Foreground;
    <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#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_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#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#449_14">Set_Background</A><FONT COLOR=red><A NAME="443_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-forms__ads.htm#450_7">Fld</A>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Back</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#452_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <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#350_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="448_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="448_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="449_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#448_16">Set_Field_Back</A>, "set_field_back");
+
+      <FONT COLOR=red><A NAME="452_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#452_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Back</A>);
+      <FONT COLOR=red><A NAME="455_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> :=
+        <A HREF="terminal_interface-curses-forms__adb.htm#448_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#450_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#452_7">Ch</A>));
    <b>begin</b>
    <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#455_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#455_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Background;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Background;
    <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#304_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#457_14">Background</A><FONT COLOR=red><A NAME="465_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#457_26">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#458_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>)
    <b>is</b>
    <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="468_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="468_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#468_16">Field_Back</A>, "field_back");
    <b>begin</b>
    <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#352_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#458_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#457_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Background;
 
    <b>end</b> Background;
 
-   <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#304_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#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#462_14">Background</A><FONT COLOR=red><A NAME="474_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#462_26">Fld</A>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Back</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#464_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <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="478_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="478_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#478_16">Field_Back</A>, "field_back");
    <b>begin</b>
    <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#352_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#353_10">Color</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#462_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#464_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#462_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Background;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Background;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#469_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="487_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#469_33">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                                <A HREF="terminal_interface-curses-forms__ads.htm#470_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-forms__ads.htm#54_4">Space</A>)
    <b>is</b>
    <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="490_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="490_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                              <FONT COLOR=red><A NAME="491_31">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="494_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#490_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#469_33">Fld</A>,
+                                                 <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#470_33">Pad</A>)));
    <b>begin</b>
    <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#494_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#494_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Pad_Character;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Pad_Character;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#475_14">Pad_Character</A><FONT COLOR=red><A NAME="504_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#475_29">Fld</A> : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                            <A HREF="terminal_interface-curses-forms__ads.htm#476_29">Pad</A> : <b>out</b> Character)
    <b>is</b>
    <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="507_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="507_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#507_16">Field_Pad</A>, "field_pad");
    <b>begin</b>
    <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>));
+      <A HREF="terminal_interface-curses-forms__ads.htm#476_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#507_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#475_29">Fld</A>));
    <b>end</b> Pad_Character;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Pad_Character;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#485_14">Info</A><FONT COLOR=red><A NAME="519_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#485_20">Fld</A>                : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#486_20">Lines</A>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#487_20">Columns</A>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Row</A>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#489_20">First_Column</A>       : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Off_Screen</A>         : <b>out</b> Natural;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#491_20">Additional_Buffers</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>;
-                         L, C, Fr, Fc, Os, Ab : C_Int_Access)
-                         <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="527_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="528_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="528_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="529_26">L</A></FONT>, <FONT COLOR=red><A NAME="529_29">C</A></FONT>, <FONT COLOR=red><A NAME="529_32">Fr</A></FONT>, <FONT COLOR=red><A NAME="529_36">Fc</A></FONT>, <FONT COLOR=red><A NAME="529_40">Os</A></FONT>, <FONT COLOR=red><A NAME="529_44">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#527_12">C_Int_Access</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#528_16">Fld_Info</A>, "field_info");
+
+      <FONT COLOR=red><A NAME="533_7">L</A></FONT>, <FONT COLOR=red><A NAME="533_10">C</A></FONT>, <FONT COLOR=red><A NAME="533_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="533_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="533_21">Os</A></FONT>, <FONT COLOR=red><A NAME="533_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="534_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#528_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#485_20">Fld</A>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#533_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#533_10">C</A>'<b>Access</b>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#533_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#533_17">Fc</A>'<b>Access</b>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#533_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#533_25">Ab</A>'<b>Access</b>);
    <b>begin</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#534_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#534_7">Res</A>);
       <b>else</b>
       <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#486_20">Lines</A>              := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_7">L</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#487_20">Columns</A>            := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_10">C</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Row</A>          := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_13">Fr</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#489_20">First_Column</A>       := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_17">Fc</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Off_Screen</A>         := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#533_21">Os</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#491_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_25">Ab</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Info;
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Info;
 <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> <A HREF="terminal_interface-curses-forms__ads.htm#496_14">Dynamic_Info</A><FONT COLOR=red><A NAME="553_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#496_28">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                           <A HREF="terminal_interface-curses-forms__ads.htm#497_28">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                           <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+                           <A HREF="terminal_interface-curses-forms__ads.htm#499_28">Max</A>     : <b>out</b> Natural)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>; L, C, M : C_Int_Access) <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="558_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="559_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="559_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>; <FONT COLOR=red><A NAME="559_39">L</A></FONT>, <FONT COLOR=red><A NAME="559_42">C</A></FONT>, <FONT COLOR=red><A NAME="559_45">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#558_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#559_16">Dyn_Info</A>, "dynamic_field_info");
+
+      <FONT COLOR=red><A NAME="562_7">L</A></FONT>, <FONT COLOR=red><A NAME="562_10">C</A></FONT>, <FONT COLOR=red><A NAME="562_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="563_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#559_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#496_28">Fld</A>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#562_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#562_10">C</A>'<b>Access</b>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#562_13">M</A>'<b>Access</b>);
    <b>begin</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#563_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#563_7">Res</A>);
       <b>else</b>
       <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#497_28">Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#562_7">L</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#562_10">C</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#499_28">Max</A>     := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#562_13">M</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Dynamic_Info;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Dynamic_Info;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#508_14">Set_Window</A><FONT COLOR=red><A NAME="582_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#508_26">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                         <A HREF="terminal_interface-curses-forms__ads.htm#509_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <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="585_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="585_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                             <FONT COLOR=red><A NAME="586_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="589_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#585_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#508_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#509_26">Win</A>);
    <b>begin</b>
    <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#589_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#589_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Window;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Window;
    <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><FONT COLOR=red><A NAME="597_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#514_13">Get_Window</A><FONT COLOR=red><A NAME="598_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#514_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <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="600_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="600_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="603_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#600_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#514_25">Frm</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#602_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#603_7">W</A>;
    <b>end</b> Get_Window;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Window;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#519_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="610_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#519_30">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                             <A HREF="terminal_interface-curses-forms__ads.htm#520_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <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="613_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="613_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                             <FONT COLOR=red><A NAME="614_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="617_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#613_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#519_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#520_30">Win</A>);
    <b>begin</b>
    <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#617_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#617_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Sub_Window;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Sub_Window;
    <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><FONT COLOR=red><A NAME="625_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#525_13">Get_Sub_Window</A><FONT COLOR=red><A NAME="626_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#525_29">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <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="628_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="628_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="631_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#628_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#525_29">Frm</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#630_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#631_7">W</A>;
    <b>end</b> Get_Sub_Window;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Sub_Window;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#530_14">Scale</A><FONT COLOR=red><A NAME="638_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#530_21">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#532_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>; Yp, Xp : C_Int_Access) <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="642_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="643_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="643_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>; <FONT COLOR=red><A NAME="643_37">Yp</A></FONT>, <FONT COLOR=red><A NAME="643_41">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#642_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="646_7">X</A></FONT>, <FONT COLOR=red><A NAME="646_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="647_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#643_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#530_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#646_7">X</A>'<b>Access</b>);
    <b>begin</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#647_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#647_7">Res</A>);
       <b>end</b> <b>if</b>;
       <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>);
+      <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#646_10">Y</A>);
+      <A HREF="terminal_interface-curses-forms__ads.htm#532_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#646_7">X</A>);
    <b>end</b> Scale;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Scale;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#544_14">Set_Field_Init_Hook</A><FONT COLOR=red><A NAME="662_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#544_35">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                                  <A HREF="terminal_interface-curses-forms__ads.htm#545_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>)
    <b>is</b>
    <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="665_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="665_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                               <FONT COLOR=red><A NAME="666_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="669_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#665_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#544_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#545_35">Proc</A>);
    <b>begin</b>
    <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#669_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#669_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Init_Hook;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Init_Hook;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#550_14">Set_Field_Term_Hook</A><FONT COLOR=red><A NAME="678_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#550_35">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                                  <A HREF="terminal_interface-curses-forms__ads.htm#551_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>)
    <b>is</b>
    <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="681_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="681_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                               <FONT COLOR=red><A NAME="682_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="685_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#681_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#550_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#551_35">Proc</A>);
    <b>begin</b>
    <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#685_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#685_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Term_Hook;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Field_Term_Hook;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#556_14">Set_Form_Init_Hook</A><FONT COLOR=red><A NAME="694_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#556_34">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                                 <A HREF="terminal_interface-curses-forms__ads.htm#557_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>)
    <b>is</b>
    <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="697_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="697_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                              <FONT COLOR=red><A NAME="698_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="701_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#697_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#556_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#557_34">Proc</A>);
    <b>begin</b>
    <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#701_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#701_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Form_Init_Hook;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Form_Init_Hook;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#562_14">Set_Form_Term_Hook</A><FONT COLOR=red><A NAME="710_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#562_34">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                                 <A HREF="terminal_interface-curses-forms__ads.htm#563_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>)
    <b>is</b>
    <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="713_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="713_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                              <FONT COLOR=red><A NAME="714_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#540_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#713_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#562_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#563_34">Proc</A>);
    <b>begin</b>
    <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#717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#717_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Form_Term_Hook;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Form_Term_Hook;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#592_14">Redefine</A><FONT COLOR=red><A NAME="730_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                       <A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#136_9">Field_Array_Access</A>)
    <b>is</b>
    <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="733_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="733_32">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                               <FONT COLOR=red><A NAME="734_32">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="737_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Flds (Flds'Last) = Null_Field);
-      <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#593_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>else</b>
       <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#737_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#733_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#593_24">Flds</A>'First)'Address);
+         <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#737_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+            <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#737_7">Res</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redefine;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redefine;
    <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><FONT COLOR=red><A NAME="751_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#604_13">Fields</A><FONT COLOR=red><A NAME="752_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#604_21">Frm</A>   : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#605_21">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>
    <b>is</b>
    <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#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="757_16">C_Fields</A></FONT> (<FONT COLOR=red><A NAME="757_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> Pointer;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#757_16">C_Fields</A>, "form_fields");
 
 
-      P : 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="760_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-forms__adb.htm#757_16">C_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#604_21">Frm</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> P = <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#760_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#605_21">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-forms__ads.htm#610_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#604_21">Frm</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>else</b>
       <b>else</b>
-         P := P + 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> P.<b>all</b>;
+         <A HREF="terminal_interface-curses-forms__adb.htm#760_7">P</A> := <A HREF="terminal_interface-curses-forms__adb.htm#760_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#605_21">Index</A>) - 1);
+         <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#760_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Fields;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Fields;
    <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><FONT COLOR=red><A NAME="771_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#610_13">Field_Count</A><FONT COLOR=red><A NAME="772_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#610_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> Natural
    <b>is</b>
    <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="774_16">Count</A></FONT> (<FONT COLOR=red><A NAME="774_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#774_16">Count</A>, "field_count");
    <b>begin</b>
    <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>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#610_26">Frm</A>));
    <b>end</b> Field_Count;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Field_Count;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#615_14">Move</A><FONT COLOR=red><A NAME="782_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#615_20">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#616_20">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#617_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <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="786_16">Move</A></FONT> (<FONT COLOR=red><A NAME="786_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>; <FONT COLOR=red><A NAME="786_35">L</A></FONT>, <FONT COLOR=red><A NAME="786_38">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="789_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#786_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#615_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#616_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#617_20">Column</A>));
    <b>begin</b>
    <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#789_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#789_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Move;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Move;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_13">Create</A><FONT COLOR=red><A NAME="801_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#626_13">Create</A><FONT COLOR=red><A NAME="802_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A> : <A HREF="terminal_interface-curses-forms__ads.htm#136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>
    <b>is</b>
    <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="804_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="804_25">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="807_7">M</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Fields (Fields'Last) = Null_Field);
-      <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#626_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>else</b>
       <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#807_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#804_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#626_21">Fields</A>'First)'Address);
+         <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#807_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#60_4">Null_Form</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
          <b>end</b> <b>if</b>;
          <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#807_7">M</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Create;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Create;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#637_14">Delete</A><FONT COLOR=red><A NAME="823_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#637_22">Frm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>)
    <b>is</b>
    <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="825_16">Free</A></FONT> (<FONT COLOR=red><A NAME="825_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="828_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#825_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#637_22">Frm</A>);
    <b>begin</b>
    <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#828_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#828_7">Res</A>);
       <b>end</b> <b>if</b>;
       <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>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#637_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#60_4">Null_Form</A>;
    <b>end</b> Delete;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Delete;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#647_14">Set_Options</A><FONT COLOR=red><A NAME="842_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#647_27">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                          <A HREF="terminal_interface-curses-forms__ads.htm#648_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>)
    <b>is</b>
    <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="845_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="845_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                              <FONT COLOR=red><A NAME="846_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="849_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#648_27">Options</A>);
+      <FONT COLOR=red><A NAME="850_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#647_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#849_7">Opt</A>);
+      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#850_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#653_14">Switch_Options</A><FONT COLOR=red><A NAME="860_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#653_30">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                             <A HREF="terminal_interface-curses-forms__ads.htm#654_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>;
+                             <A HREF="terminal_interface-curses-forms__ads.htm#655_30">On</A>      : Boolean := True)
    <b>is</b>
    <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="864_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="864_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                             <FONT COLOR=red><A NAME="865_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#864_16">Form_Opts_On</A>, "form_opts_on");
+      <b>function</b> <FONT COLOR=red><A NAME="867_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="867_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                              <FONT COLOR=red><A NAME="868_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#867_16">Form_Opts_Off</A>, "form_opts_off");
+
+      <FONT COLOR=red><A NAME="871_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="872_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#654_30">Options</A>);
    <b>begin</b>
    <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#655_30">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms__adb.htm#871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#864_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#653_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#872_7">Opt</A>);
       <b>else</b>
       <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#871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#653_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#872_7">Opt</A>);
       <b>end</b> <b>if</b>;
       <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#871_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#871_7">Err</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#661_14">Get_Options</A><FONT COLOR=red><A NAME="886_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#661_27">Frm</A>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                          <A HREF="terminal_interface-curses-forms__ads.htm#662_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>)
    <b>is</b>
    <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="889_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="889_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="892_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#889_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#661_27">Frm</A>);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-forms__ads.htm#662_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#77_13">CInt_2_FrmOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#892_7">Res</A>);
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Options;
    <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><FONT COLOR=red><A NAME="898_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#666_13">Get_Options</A><FONT COLOR=red><A NAME="899_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#666_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>
    <b>is</b>
    <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="901_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>;
    <b>begin</b>
    <b>begin</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__adb.htm#900_7">Fos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#900_7">Fos</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#661_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#666_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#901_7">Fos</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#901_7">Fos</A>;
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>end</b> Get_Options;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#675_14">Post</A><FONT COLOR=red><A NAME="913_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#675_20">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#676_20">Post</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <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="916_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="916_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#916_16">M_Post</A>, "post_form");
+      <b>function</b> <FONT COLOR=red><A NAME="918_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="918_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="921_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#676_20">Post</A> <b>then</b>
+         <A HREF="terminal_interface-curses-forms__adb.htm#921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#916_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#675_20">Frm</A>);
       <b>else</b>
       <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#921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#675_20">Frm</A>);
       <b>end</b> <b>if</b>;
       <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#921_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#921_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Post;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Post;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#686_14">Position_Cursor</A><FONT COLOR=red><A NAME="939_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#686_31">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>)
    <b>is</b>
    <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="941_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="941_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="944_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#941_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#686_31">Frm</A>);
    <b>begin</b>
    <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#944_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#944_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Position_Cursor;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Position_Cursor;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#694_13">Data_Ahead</A><FONT COLOR=red><A NAME="956_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#695_13">Data_Ahead</A><FONT COLOR=red><A NAME="957_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#695_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> Boolean
    <b>is</b>
    <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="959_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="959_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="962_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#959_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#695_25">Frm</A>);
    <b>begin</b>
    <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#962_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#76_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
    <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#699_13">Data_Behind</A><FONT COLOR=red><A NAME="972_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#700_13">Data_Behind</A><FONT COLOR=red><A NAME="973_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#700_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> Boolean
    <b>is</b>
    <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="975_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="975_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="978_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#975_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#700_26">Frm</A>);
    <b>begin</b>
    <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#978_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#76_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
    <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#713_13">Driver</A><FONT COLOR=red><A NAME="992_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#714_13">Driver</A><FONT COLOR=red><A NAME="993_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#714_21">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                    <A HREF="terminal_interface-curses-forms__ads.htm#715_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#708_9">Driver_Result</A>
    <b>is</b>
    <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="996_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="996_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>; <FONT COLOR=red><A NAME="996_40">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="999_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#996_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#714_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#715_21">Key</A>));
    <b>begin</b>
    <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#999_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_Unknown_Command</A> <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#710_27">Unknown_Request</A>;
+         <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#94_4">E_Invalid_Field</A> <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#711_27">Invalid_Field</A>;
+         <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Request_Denied</A> <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#709_27">Request_Denied</A>;
          <b>else</b>
          <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#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#999_7">R</A>);
+            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#708_27">Form_Ok</A>;
          <b>end</b> <b>if</b>;
       <b>else</b>
          <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#708_27">Form_Ok</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Driver;
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Driver;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#726_14">Set_Current</A><FONT COLOR=red><A NAME="1023_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#726_27">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                          <A HREF="terminal_interface-curses-forms__ads.htm#727_27">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>)
    <b>is</b>
    <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="1026_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1026_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>; <FONT COLOR=red><A NAME="1026_45">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1029_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1026_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#726_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#727_27">Fld</A>);
    <b>begin</b>
    <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#1029_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1029_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Current;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Current;
    <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><FONT COLOR=red><A NAME="1037_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#732_13">Current</A><FONT COLOR=red><A NAME="1038_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#732_22">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>
    <b>is</b>
    <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="1040_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1040_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1043_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1040_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#732_22">Frm</A>);
    <b>begin</b>
    <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#1043_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_7">Fld</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#1043_7">Fld</A>;
    <b>end</b> Current;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Current;
    <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> <A HREF="terminal_interface-curses-forms__ads.htm#737_14">Set_Page</A><FONT COLOR=red><A NAME="1053_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#737_24">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
+                       <A HREF="terminal_interface-curses-forms__ads.htm#738_24">Page</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#723_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#723_9">Page_Number</A>'First)
    <b>is</b>
    <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="1056_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="1056_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>; <FONT COLOR=red><A NAME="1056_42">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1059_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1056_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#737_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#738_24">Page</A>));
    <b>begin</b>
    <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#1059_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1059_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Page;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Page;
    <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><FONT COLOR=red><A NAME="1067_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#743_13">Page</A><FONT COLOR=red><A NAME="1068_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#743_19">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#723_9">Page_Number</A>
    <b>is</b>
    <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="1070_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="1070_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1073_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1070_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#743_19">Frm</A>);
    <b>begin</b>
    <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#1073_7">P</A> &lt; 0 <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>else</b>
       <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#723_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1073_7">P</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Page;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Page;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#747_13">Get_Index</A><FONT COLOR=red><A NAME="1081_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#748_13">Get_Index</A><FONT COLOR=red><A NAME="1082_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#748_24">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> Positive
    <b>is</b>
    <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="1084_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="1084_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1087_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1084_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#748_24">Fld</A>);
    <b>begin</b>
    <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#1087_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#289_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#1087_7">Res</A>) + Positive'First);
    <b>end</b> Get_Index;
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>end</b> Get_Index;
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</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> <A HREF="terminal_interface-curses-forms__ads.htm#760_14">Set_New_Page</A><FONT COLOR=red><A NAME="1102_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#760_28">Fld</A>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+                           <A HREF="terminal_interface-curses-forms__ads.htm#761_28">New_Page</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <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="1105_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="1105_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>; <FONT COLOR=red><A NAME="1105_39">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1108_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1105_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#760_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#761_28">New_Page</A>));
    <b>begin</b>
    <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#1108_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1108_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_New_Page;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_New_Page;
    <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><FONT COLOR=red><A NAME="1116_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-forms__ads.htm#766_13">Is_New_Page</A><FONT COLOR=red><A NAME="1117_13"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#766_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> Boolean
    <b>is</b>
    <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="1119_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="1119_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#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="1122_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1119_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#766_26">Fld</A>);
    <b>begin</b>
    <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#1122_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#76_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> Is_New_Page;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_New_Page;
 
-   <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> <A HREF="terminal_interface-curses-forms__ads.htm#138_14">Free</A><FONT COLOR=red><A NAME="1131_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A>          : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#136_9">Field_Array_Access</A>;
+                   <A HREF="terminal_interface-curses-forms__ads.htm#139_20">Free_Fields</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <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="1134_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-forms__ads.htm#133_9">Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#136_9">Field_Array_Access</A>);
    <b>begin</b>
    <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#636_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#138_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#139_20">Free_Fields</A> <b>then</b>
+         <b>for</b> <FONT COLOR=red><A NAME="1138_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A>'Last - 1) <b>loop</b>
+            <b>if</b> (<A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>) <b>then</b>
+               <A HREF="terminal_interface-curses-forms__ads.htm#318_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1138_14">I</A>));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>loop</b>;
       <b>end</b> <b>if</b>;
             <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>);
+      <A HREF="terminal_interface-curses-forms__adb.htm#1134_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#138_20">FA</A>);
    <b>end</b> Free;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>end</b> Free;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#102_13">Default_Field_Options</A><FONT COLOR=red><A NAME="1148_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#103_13">Default_Field_Options</A><FONT COLOR=red><A NAME="1149_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field_Option_Set</A>
    <b>is</b>
    <b>begin</b>
    <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#58_4">Null_Field</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#419_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A>);
    <b>end</b> Default_Field_Options;
 
    <b>end</b> Default_Field_Options;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#126_13">Default_Form_Options</A><FONT COLOR=red><A NAME="1154_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#127_13">Default_Form_Options</A><FONT COLOR=red><A NAME="1155_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form_Option_Set</A>
    <b>is</b>
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#666_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#60_4">Null_Form</A>);
    <b>end</b> Default_Form_Options;
 
 <b>end</b> Terminal_Interface.Curses.Forms;
    <b>end</b> Default_Form_Options;
 
 <b>end</b> Terminal_Interface.Curses.Forms;
index a28c4ece7f85309cbbfbaecefaf5545e1b21756d..b3e25ece74629c96f2f895f5ad1e6b675a9760f1 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.24 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.26 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  form binding.</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  form binding.</EM></FONT>
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
 
    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="57_9">Field</A></FONT>        <b>is</b> <b>private</b>;
    <b>type</b> Form         <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="60_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Field</A>;
    Null_Form         : <b>constant</b> Form;
 
    Null_Form         : <b>constant</b> Form;
 
-   <b>type</b> Field_Justification <b>is</b> (None,
-                                Left,
-                                Center,
+   <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="63_33">None</A></FONT>,
+                                <FONT COLOR=red><A NAME="64_33">Left</A></FONT>,
+                                <FONT COLOR=red><A NAME="65_33">Center</A></FONT>,
                                 Right);
 
    <b>pragma</b> Warnings (Off);
    <b>type</b> Field_Option_Set <b>is</b>
       <b>record</b>
                                 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;
+         <FONT COLOR=red><A NAME="71_10">Visible</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="72_10">Active</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="73_10">Public</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="74_10">Edit</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="75_10">Wrap</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="76_10">Blank</A></FONT>       : Boolean;
+         <FONT COLOR=red><A NAME="77_10">Auto_Skip</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="78_10">Null_Ok</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="79_10">Pass_Ok</A></FONT>     : Boolean;
          Static      : Boolean;
          Static      : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#67_9">;</A>
+      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#68_9">;</A>
    <b>pragma</b> Pack (Field_Option_Set);
    <b>pragma</b> Convention (C, Field_Option_Set);
 
    <b>pragma</b> Pack (Field_Option_Set);
    <b>pragma</b> Convention (C, Field_Option_Set);
 
    <b>pragma</b> Warnings (Off);
    <b>type</b> Form_Option_Set <b>is</b>
       <b>record</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="111_10">NL_Overload</A></FONT> : Boolean;
          BS_Overload : Boolean;
          BS_Overload : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#107_9">;</A>
+      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#108_9">;</A>
    <b>pragma</b> Pack (Form_Option_Set);
    <b>pragma</b> Convention (C, Form_Option_Set);
 
    <b>pragma</b> Pack (Form_Option_Set);
    <b>pragma</b> Convention (C, Form_Option_Set);
 
 
    <b>type</b> Field_Array_Access <b>is</b> <b>access</b> Field_Array;
 
 
    <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="139_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>
                    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>
    <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="148_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 1;
+   <FONT COLOR=red><A NAME="149_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 2;
+   <FONT COLOR=red><A NAME="150_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 3;
    F_Last_Page                : <b>constant</b> Form_Request_Code := Key_Max + 4;
 
    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="153_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 5;
+   <FONT COLOR=red><A NAME="154_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 6;
+   <FONT COLOR=red><A NAME="155_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 7;
+   <FONT COLOR=red><A NAME="156_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 8;
+   <FONT COLOR=red><A NAME="157_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 9;
+   <FONT COLOR=red><A NAME="158_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 10;
+   <FONT COLOR=red><A NAME="159_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 11;
+   <FONT COLOR=red><A NAME="160_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 12;
+   <FONT COLOR=red><A NAME="161_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 13;
+   <FONT COLOR=red><A NAME="162_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 14;
+   <FONT COLOR=red><A NAME="163_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 15;
    F_Down_Field               : <b>constant</b> Form_Request_Code := Key_Max + 16;
 
    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="166_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 17;
+   <FONT COLOR=red><A NAME="167_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 18;
+   <FONT COLOR=red><A NAME="168_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 19;
+   <FONT COLOR=red><A NAME="169_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 20;
+   <FONT COLOR=red><A NAME="170_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 21;
+   <FONT COLOR=red><A NAME="171_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 22;
+   <FONT COLOR=red><A NAME="172_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 23;
+   <FONT COLOR=red><A NAME="173_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 24;
+   <FONT COLOR=red><A NAME="174_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 25;
+   <FONT COLOR=red><A NAME="175_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 26;
+   <FONT COLOR=red><A NAME="176_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 27;
+   <FONT COLOR=red><A NAME="177_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 28;
+   <FONT COLOR=red><A NAME="178_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 29;
    F_Down_Char                : <b>constant</b> Form_Request_Code := Key_Max + 30;
 
    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="181_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 31;
+   <FONT COLOR=red><A NAME="182_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 32;
+   <FONT COLOR=red><A NAME="183_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 33;
+   <FONT COLOR=red><A NAME="184_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 34;
+   <FONT COLOR=red><A NAME="185_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 35;
+   <FONT COLOR=red><A NAME="186_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 36;
+   <FONT COLOR=red><A NAME="187_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 37;
+   <FONT COLOR=red><A NAME="188_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 38;
+   <FONT COLOR=red><A NAME="189_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 39;
+   <FONT COLOR=red><A NAME="190_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 40;
+   <FONT COLOR=red><A NAME="191_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_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>
    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="195_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 43;
+   <FONT COLOR=red><A NAME="196_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 44;
+   <FONT COLOR=red><A NAME="197_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 45;
+   <FONT COLOR=red><A NAME="198_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 46;
+   <FONT COLOR=red><A NAME="199_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_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>
    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="203_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 49;
+   <FONT COLOR=red><A NAME="204_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 50;
+   <FONT COLOR=red><A NAME="205_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 51;
+   <FONT COLOR=red><A NAME="206_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 52;
+   <FONT COLOR=red><A NAME="207_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 53;
    F_HScrollBackward_HalfLine : <b>constant</b> Form_Request_Code := Key_Max + 54;
 
    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="210_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 55;
+   <FONT COLOR=red><A NAME="211_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_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>
    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>;
+   <FONT COLOR=red><A NAME="215_4">REQ_NEXT_PAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#148_4">F_Next_Page</A>;
+   <FONT COLOR=red><A NAME="216_4">REQ_PREV_PAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#149_4">F_Previous_Page</A>;
+   <FONT COLOR=red><A NAME="217_4">REQ_FIRST_PAGE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#150_4">F_First_Page</A>;
    REQ_LAST_PAGE    : Form_Request_Code <b>renames</b> F_Last_Page;
 
    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>;
+   <FONT COLOR=red><A NAME="220_4">REQ_NEXT_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#153_4">F_Next_Field</A>;
+   <FONT COLOR=red><A NAME="221_4">REQ_PREV_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#154_4">F_Previous_Field</A>;
+   <FONT COLOR=red><A NAME="222_4">REQ_FIRST_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#155_4">F_First_Field</A>;
+   <FONT COLOR=red><A NAME="223_4">REQ_LAST_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#156_4">F_Last_Field</A>;
+   <FONT COLOR=red><A NAME="224_4">REQ_SNEXT_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#157_4">F_Sorted_Next_Field</A>;
+   <FONT COLOR=red><A NAME="225_4">REQ_SPREV_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#158_4">F_Sorted_Previous_Field</A>;
+   <FONT COLOR=red><A NAME="226_4">REQ_SFIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#159_4">F_Sorted_First_Field</A>;
+   <FONT COLOR=red><A NAME="227_4">REQ_SLAST_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#160_4">F_Sorted_Last_Field</A>;
+   <FONT COLOR=red><A NAME="228_4">REQ_LEFT_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#161_4">F_Left_Field</A>;
+   <FONT COLOR=red><A NAME="229_4">REQ_RIGHT_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#162_4">F_Right_Field</A>;
+   <FONT COLOR=red><A NAME="230_4">REQ_UP_FIELD</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#163_4">F_Up_Field</A>;
    REQ_DOWN_FIELD   : Form_Request_Code <b>renames</b> F_Down_Field;
 
    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>;
+   <FONT COLOR=red><A NAME="233_4">REQ_NEXT_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#166_4">F_Next_Char</A>;
+   <FONT COLOR=red><A NAME="234_4">REQ_PREV_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#167_4">F_Previous_Char</A>;
+   <FONT COLOR=red><A NAME="235_4">REQ_NEXT_LINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#168_4">F_Next_Line</A>;
+   <FONT COLOR=red><A NAME="236_4">REQ_PREV_LINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#169_4">F_Previous_Line</A>;
+   <FONT COLOR=red><A NAME="237_4">REQ_NEXT_WORD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#170_4">F_Next_Word</A>;
+   <FONT COLOR=red><A NAME="238_4">REQ_PREV_WORD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#171_4">F_Previous_Word</A>;
+   <FONT COLOR=red><A NAME="239_4">REQ_BEG_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#172_4">F_Begin_Field</A>;
+   <FONT COLOR=red><A NAME="240_4">REQ_END_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#173_4">F_End_Field</A>;
+   <FONT COLOR=red><A NAME="241_4">REQ_BEG_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#174_4">F_Begin_Line</A>;
+   <FONT COLOR=red><A NAME="242_4">REQ_END_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#175_4">F_End_Line</A>;
+   <FONT COLOR=red><A NAME="243_4">REQ_LEFT_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#176_4">F_Left_Char</A>;
+   <FONT COLOR=red><A NAME="244_4">REQ_RIGHT_CHAR</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#177_4">F_Right_Char</A>;
+   <FONT COLOR=red><A NAME="245_4">REQ_UP_CHAR</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#178_4">F_Up_Char</A>;
    REQ_DOWN_CHAR    : Form_Request_Code <b>renames</b> F_Down_Char;
 
    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>;
+   <FONT COLOR=red><A NAME="248_4">REQ_NEW_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#181_4">F_New_Line</A>;
+   <FONT COLOR=red><A NAME="249_4">REQ_INS_CHAR</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#182_4">F_Insert_Char</A>;
+   <FONT COLOR=red><A NAME="250_4">REQ_INS_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#183_4">F_Insert_Line</A>;
+   <FONT COLOR=red><A NAME="251_4">REQ_DEL_CHAR</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#184_4">F_Delete_Char</A>;
+   <FONT COLOR=red><A NAME="252_4">REQ_DEL_PREV</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#185_4">F_Delete_Previous</A>;
+   <FONT COLOR=red><A NAME="253_4">REQ_DEL_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#186_4">F_Delete_Line</A>;
+   <FONT COLOR=red><A NAME="254_4">REQ_DEL_WORD</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#187_4">F_Delete_Word</A>;
+   <FONT COLOR=red><A NAME="255_4">REQ_CLR_EOL</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#188_4">F_Clear_EOL</A>;
+   <FONT COLOR=red><A NAME="256_4">REQ_CLR_EOF</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#189_4">F_Clear_EOF</A>;
+   <FONT COLOR=red><A NAME="257_4">REQ_CLR_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#190_4">F_Clear_Field</A>;
+   <FONT COLOR=red><A NAME="258_4">REQ_OVL_MODE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#191_4">F_Overlay_Mode</A>;
    REQ_INS_MODE     : Form_Request_Code <b>renames</b> F_Insert_Mode;
 
    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>;
+   <FONT COLOR=red><A NAME="261_4">REQ_SCR_FLINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#195_4">F_ScrollForward_Line</A>;
+   <FONT COLOR=red><A NAME="262_4">REQ_SCR_BLINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#196_4">F_ScrollBackward_Line</A>;
+   <FONT COLOR=red><A NAME="263_4">REQ_SCR_FPAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#197_4">F_ScrollForward_Page</A>;
+   <FONT COLOR=red><A NAME="264_4">REQ_SCR_BPAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#198_4">F_ScrollBackward_Page</A>;
+   <FONT COLOR=red><A NAME="265_4">REQ_SCR_FHPAGE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#199_4">F_ScrollForward_HalfPage</A>;
    REQ_SCR_BHPAGE   : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
 
    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>;
+   <FONT COLOR=red><A NAME="268_4">REQ_SCR_FCHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#203_4">F_HScrollForward_Char</A>;
+   <FONT COLOR=red><A NAME="269_4">REQ_SCR_BCHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#204_4">F_HScrollBackward_Char</A>;
+   <FONT COLOR=red><A NAME="270_4">REQ_SCR_HFLINE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#205_4">F_HScrollForward_Line</A>;
+   <FONT COLOR=red><A NAME="271_4">REQ_SCR_HBLINE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#206_4">F_HScrollBackward_Line</A>;
+   <FONT COLOR=red><A NAME="272_4">REQ_SCR_HFHALF</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#207_4">F_HScrollForward_HalfLine</A>;
    REQ_SCR_HBHALF   : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
 
    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>;
+   <FONT COLOR=red><A NAME="275_4">REQ_VALIDATION</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#210_4">F_Validate_Field</A>;
+   <FONT COLOR=red><A NAME="276_4">REQ_NEXT_CHOICE</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#211_4">F_Next_Choice</A>;
    REQ_PREV_CHOICE  : Form_Request_Code <b>renames</b> F_Previous_Choice;
 
 
    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="280_28">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;
                            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>
    <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="297_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="298_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+                    <FONT COLOR=red><A NAME="299_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="300_21">Left</A></FONT>         : Column_Position;
+                    <FONT COLOR=red><A NAME="301_21">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#131_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>
                     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="308_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+                       <FONT COLOR=red><A NAME="309_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+                       <FONT COLOR=red><A NAME="310_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                       <FONT COLOR=red><A NAME="311_24">Left</A></FONT>         : Column_Position;
+                       <FONT COLOR=red><A NAME="312_24">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#131_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>
                        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>
    <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="325_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Field</A>;
+                       <FONT COLOR=red><A NAME="326_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#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>
                        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="332_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Field</A>;
+                  <FONT COLOR=red><A NAME="333_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#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);
                   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>
    <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="343_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#62_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);
                                 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=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="359_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Field</A>;
+      <FONT COLOR=red><A NAME="360_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
       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="367_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_9">Field</A>;
+      <FONT COLOR=red><A NAME="368_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
       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="373_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_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>
       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="380_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);
                          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>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="391_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);
                                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>
    <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="401_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_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>
                           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="407_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#68_9">Field</A>;
+                             <FONT COLOR=red><A NAME="408_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>
                              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="415_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#68_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>
 
                           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=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#304_9">Field</A>;
-      <FONT COLOR=red><A NAME="431_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="431_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Field</A>;
+      <FONT COLOR=red><A NAME="432_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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#304_9">Field</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="438_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_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>
                          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#304_9">Field</A>;
-                         <FONT COLOR=red><A NAME="443_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="443_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_9">Field</A>;
+                         <FONT COLOR=red><A NAME="444_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_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
                          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#304_9">Field</A>;
-      <FONT COLOR=red><A NAME="451_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="451_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Field</A>;
+      <FONT COLOR=red><A NAME="452_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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#304_9">Field</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="458_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_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>
                          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#304_9">Field</A>;
-                         <FONT COLOR=red><A NAME="463_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="463_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_9">Field</A>;
+                         <FONT COLOR=red><A NAME="464_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
                          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="470_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>
                                 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="476_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);
                             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>
    <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="486_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#63_12">Field</A>;
+                   <FONT COLOR=red><A NAME="487_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+                   <FONT COLOR=red><A NAME="488_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+                   <FONT COLOR=red><A NAME="489_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="490_20">First_Column</A></FONT>       : <b>out</b> Column_Position;
+                   <FONT COLOR=red><A NAME="491_20">Off_Screen</A></FONT>         : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#131_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>
                    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="497_28">Fld</A></FONT>     : <b>in</b> Field;
+                           <FONT COLOR=red><A NAME="498_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+                           <FONT COLOR=red><A NAME="499_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);
                            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>
    <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="509_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                          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>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="520_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                              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>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="531_21">Frm</A></FONT>     : <b>in</b> Form;
+                    <FONT COLOR=red><A NAME="532_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
                     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>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="545_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_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>
                                   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="551_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_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>
                                   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="557_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_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>
                                  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="563_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#540_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);
                                  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>
    <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="593_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#136_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>
                        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="599_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#136_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>
                          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="605_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);
                     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>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="616_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Field</A>;
+                   <FONT COLOR=red><A NAME="617_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                    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>
    <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="648_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_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>
                           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="654_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#108_9">Form</A>;
+                             <FONT COLOR=red><A NAME="655_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>
                              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="662_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#108_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>
 
                           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>
    <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="676_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>
                    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>
 
    <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="709_27">Form_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="710_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="711_27">Unknown_Request</A></FONT>,
                           Invalid_Field);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></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="715_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#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>
                     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>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="727_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_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);
                           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>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="738_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#723_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);
                        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>
    <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="761_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);
                            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>--  AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
    <b>pragma</b> Inline (Is_New_Page);
 
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
    <b>pragma</b> Inline (Is_New_Page);
 
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not Implemented: form_request_name, form_request_by_name</EM></FONT>
+
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
 <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#57_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;
 
    <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#60_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Field</A> := 0;
    Null_Form  : <b>constant</b> Form  := 0;
 
 <b>end</b> Terminal_Interface.Curses.Forms;
    Null_Form  : <b>constant</b> Form  := 0;
 
 <b>end</b> Terminal_Interface.Curses.Forms;
index fc3aa7985d31d16178d35ddbc76431ed04543b3a..3dbd6248bbc048db2ca188edcb448569e4e07e8c 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Menus.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#46_41">Item_User_Data</A> <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#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> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_14">Set_User_Data</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Itm</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                            <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#59_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <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="52_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="52_34">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                                 <FONT COLOR=red><A NAME="53_34">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#52_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="56_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#52_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#59_29">Data</A>);
    <b>begin</b>
    <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#56_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#56_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A><FONT COLOR=red><A NAME="62_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#69_13">Get_User_Data</A><FONT COLOR=red><A NAME="63_13"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#69_28">Itm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_9">User_Access</A>
    <b>is</b>
    <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="65_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="65_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#65_16">Item_Userptr</A>, "item_userptr");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#65_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#69_28">Itm</A>);
    <b>end</b> Get_User_Data;
 
    <b>end</b> Get_User_Data;
 
-   <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> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_14">Get_User_Data</A><FONT COLOR=red><A NAME="71_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Itm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                            <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#65_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#65_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#69_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Itm</A>);
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
index 92499022ee49d7a854f8d2ef7d21cb65c52dcdd8..df6d8d0786425c2abfe6085131b9e58aa790e700 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
 <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="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="45_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#49_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);
 
 <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>
    <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="59_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_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>
                             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="65_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_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>
 
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
 
index 5bd10d35d9530f224c3df499fe796c3035f8ae1e..ad50af7ae8fc15c1f7bd5b8463005270a4a85499 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.11 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Menus.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#46_41">Menu_User_Data</A> <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#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> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_14">Set_User_Data</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#55_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <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="51_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="51_34">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="52_34">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#51_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="55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#51_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#55_29">Data</A>);
    <b>begin</b>
    <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#55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#55_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A><FONT COLOR=red><A NAME="61_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#65_13">Get_User_Data</A><FONT COLOR=red><A NAME="62_13"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#65_28">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_9">User_Access</A>
    <b>is</b>
    <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="64_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="64_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#64_16">Menu_Userptr</A>, "menu_userptr");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#64_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#65_28">Men</A>);
    <b>end</b> Get_User_Data;
 
    <b>end</b> Get_User_Data;
 
-   <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> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_14">Get_User_Data</A><FONT COLOR=red><A NAME="70_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#61_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#61_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Men</A>);
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
index a522b71ae970ebd2a6e99b298c5f3c3232bcd388..988b44e55dcec0c0d0a62cf4e041614575d81ff8 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
 <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="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="45_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#49_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);
 
 <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>
    <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="55_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_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>
                             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="61_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_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>
 
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
 
index 7bb3b0ee0f0061a15a5ae8d406575e50146f0386..f1338438f3b02e1c8fe4613819067ffd4672218e 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.20 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.21 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Deallocation;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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; <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> Ada.Unchecked_Conversion;
 
 
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A><FONT COLOR=red><A NAME="50_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#49_35">Menus</A><FONT COLOR=red><A NAME="51_40"></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="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#56_9">Item</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="54_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#56_9">Item</A>, <A HREF="terminal_interface-curses-menus__adb.htm#53_9">C_Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>);
 
    <b>use</b> <b>type</b> System.Bit_Order;
 
    <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="58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#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="60_13">MOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#56_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="64_13">CInt_2_MOS</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>,
+                               <A HREF="terminal_interface-curses-menus__ads.htm#121_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="68_13">IOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#56_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="72_13">CInt_2_IOS</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>,
+                               <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#106_14">Request_Name</A><FONT COLOR=red><A NAME="77_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#106_28">Key</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A>;
+                           <A HREF="terminal_interface-curses-menus__ads.htm#107_28">Name</A> : <b>out</b> String)
    <b>is</b>
    <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="80_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="80_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#80_16">Request_Name</A>, "menu_request_name");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#80_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#106_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#107_28">Name</A>);
    <b>end</b> Request_Name;
 
    <b>end</b> Request_Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#108_14">Request_Name</A><FONT COLOR=red><A NAME="85_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#109_14">Request_Name</A><FONT COLOR=red><A NAME="86_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#109_28">Key</A> : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A>) <b>return</b> String
    <b>is</b>
    <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="88_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="88_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#88_16">Request_Name</A>, "menu_request_name");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#88_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#109_28">Key</A>)));
    <b>end</b> Request_Name;
 
    <b>end</b> Request_Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#192_13">Create</A><FONT COLOR=red><A NAME="93_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#193_13">Create</A><FONT COLOR=red><A NAME="94_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#193_21">Name</A>        : String;
+                    <A HREF="terminal_interface-curses-menus__ads.htm#194_21">Description</A> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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> (Name, Desc : Char_Ptr) <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="97_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="98_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="98_25">Name</A></FONT>, <FONT COLOR=red><A NAME="98_31">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#98_16">Newitem</A>, "new_item");
 
 
-      <b>type</b> <FONT COLOR=red><A NAME="100_12">Name_String</A></FONT> <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> <A HREF="terminal_interface-curses-menus__adb.htm#100_12">Name_String</A>;
-      <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="101_12">Name_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#193_21">Name</A>'Length);
+      <b>type</b> <FONT COLOR=red><A NAME="102_12">Name_String_Ptr</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__adb.htm#101_12">Name_String</A>;
+      <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#102_12">Name_String_Ptr</A>);
 
 
-      <b>type</b> <FONT COLOR=red><A NAME="104_12">Desc_String</A></FONT> <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> <A HREF="terminal_interface-curses-menus__adb.htm#104_12">Desc_String</A>;
-      <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="105_12">Desc_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#194_21">Description</A>'Length);
+      <b>type</b> <FONT COLOR=red><A NAME="106_12">Desc_String_Ptr</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__adb.htm#105_12">Desc_String</A>;
+      <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#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> <A HREF="terminal_interface-curses-menus__adb.htm#100_12">Name_String</A>;
-      <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> <A HREF="terminal_interface-curses-menus__adb.htm#104_12">Desc_String</A>;
-      <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="109_7">Name_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#102_12">Name_String_Ptr</A> := <b>new</b> <A HREF="terminal_interface-curses-menus__adb.htm#101_12">Name_String</A>;
+      <FONT COLOR=red><A NAME="110_7">Desc_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#106_12">Desc_String_Ptr</A> := <b>new</b> <A HREF="terminal_interface-curses-menus__adb.htm#105_12">Desc_String</A>;
+      <FONT COLOR=red><A NAME="111_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="111_17">Desc_Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="112_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
    <b>begin</b>
    <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#387_4">Eti_System_Error</A>;
+      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#193_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#109_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Name_Len</A>);
+      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#194_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#110_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#111_17">Desc_Len</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#112_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#98_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#109_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#109_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
+                         <A HREF="terminal_interface-curses-menus__adb.htm#110_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#110_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#112_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#389_4">Eti_System_Error</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#112_7">Result</A>;
    <b>end</b> Create;
 
    <b>end</b> Create;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#205_14">Delete</A><FONT COLOR=red><A NAME="124_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#205_22">Itm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>)
    <b>is</b>
    <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="126_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="126_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#126_16">Descname</A>, "item_description");
+      <b>function</b> <FONT COLOR=red><A NAME="128_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="128_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="131_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="131_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="134_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="135_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
    <b>begin</b>
    <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#135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#205_22">Itm</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#135_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#135_7">Ptr</A>);
       <b>end</b> <b>if</b>;
       <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#135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#205_22">Itm</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#135_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#135_7">Ptr</A>);
       <b>end</b> <b>if</b>;
       <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#134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#205_22">Itm</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#134_7">Res</A>);
       <b>end</b> <b>if</b>;
       <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>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#205_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>;
    <b>end</b> Delete;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Delete;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#214_14">Set_Value</A><FONT COLOR=red><A NAME="152_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#214_25">Itm</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                        <A HREF="terminal_interface-curses-menus__ads.htm#215_25">Value</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <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="155_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="155_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                             <FONT COLOR=red><A NAME="156_30">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="159_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#155_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#214_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#215_25">Value</A>));
    <b>begin</b>
    <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#159_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#159_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Value;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Value;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#219_13">Value</A><FONT COLOR=red><A NAME="165_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#220_13">Value</A><FONT COLOR=red><A NAME="166_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#220_20">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> Boolean
    <b>is</b>
    <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="168_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="168_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#168_16">Item_Val</A>, "item_value");
    <b>begin</b>
    <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#168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#220_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#76_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
    <b>end</b> Value;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Value;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#228_13">Visible</A><FONT COLOR=red><A NAME="178_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#229_13">Visible</A><FONT COLOR=red><A NAME="179_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#229_22">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> Boolean
    <b>is</b>
    <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="181_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="181_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#181_16">Item_Vis</A>, "item_visible");
    <b>begin</b>
    <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#181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#229_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#76_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> Visible;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Visible;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#238_14">Set_Options</A><FONT COLOR=red><A NAME="191_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#238_27">Itm</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#239_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>)
    <b>is</b>
    <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="194_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="194_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                              <FONT COLOR=red><A NAME="195_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="198_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#239_27">Options</A>);
+      <FONT COLOR=red><A NAME="199_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#238_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#198_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#199_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#244_14">Switch_Options</A><FONT COLOR=red><A NAME="207_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#244_30">Itm</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                             <A HREF="terminal_interface-curses-menus__ads.htm#245_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>;
+                             <A HREF="terminal_interface-curses-menus__ads.htm#246_30">On</A>      : Boolean := True)
    <b>is</b>
    <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="211_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="211_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                             <FONT COLOR=red><A NAME="212_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#211_16">Item_Opts_On</A>, "item_opts_on");
+      <b>function</b> <FONT COLOR=red><A NAME="214_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="214_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                              <FONT COLOR=red><A NAME="215_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="218_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#245_30">Options</A>);
+      <FONT COLOR=red><A NAME="219_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#246_30">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses-menus__adb.htm#219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#211_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#244_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Opt</A>);
       <b>else</b>
       <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#219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#244_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Opt</A>);
       <b>end</b> <b>if</b>;
       <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#219_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#219_7">Err</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#253_14">Get_Options</A><FONT COLOR=red><A NAME="231_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#253_27">Itm</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#254_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>)
    <b>is</b>
    <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="234_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="234_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="237_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#234_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#253_27">Itm</A>);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-menus__ads.htm#254_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#72_13">CInt_2_IOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#237_7">Res</A>);
    <b>end</b> Get_Options;
 
    <b>end</b> Get_Options;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A><FONT COLOR=red><A NAME="241_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#258_13">Get_Options</A><FONT COLOR=red><A NAME="242_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#258_26">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>
    <b>is</b>
    <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="244_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>;
    <b>begin</b>
    <b>begin</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__adb.htm#243_7">Ios</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#243_7">Ios</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#253_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#258_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#244_7">Ios</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#244_7">Ios</A>;
    <b>end</b> Get_Options;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get_Options;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#267_14">Name</A><FONT COLOR=red><A NAME="250_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#267_20">Itm</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#268_20">Name</A> : <b>out</b> String)
    <b>is</b>
    <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="253_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="253_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#253_16">Itemname</A>, "item_name");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#267_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#268_20">Name</A>);
    <b>end</b> Name;
 
    <b>end</b> Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#269_14">Name</A><FONT COLOR=red><A NAME="258_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#270_14">Name</A><FONT COLOR=red><A NAME="259_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#270_20">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> String
    <b>is</b>
    <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="261_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="261_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#261_16">Itemname</A>, "item_name");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#270_20">Itm</A>));
    <b>end</b> Name;
 
    <b>end</b> Name;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#276_14">Description</A><FONT COLOR=red><A NAME="267_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#276_27">Itm</A>         : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#277_27">Description</A> : <b>out</b> String)
    <b>is</b>
    <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="270_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="270_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#270_16">Descname</A>, "item_description");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#276_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#277_27">Description</A>);
    <b>end</b> Description;
 
    <b>end</b> Description;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#279_14">Description</A><FONT COLOR=red><A NAME="275_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#280_14">Description</A><FONT COLOR=red><A NAME="276_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#280_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> String
    <b>is</b>
    <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="278_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="278_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#278_16">Descname</A>, "item_description");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#280_27">Itm</A>));
    <b>end</b> Description;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Description;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#290_14">Set_Current</A><FONT COLOR=red><A NAME="284_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#290_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#291_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>)
    <b>is</b>
    <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="287_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="287_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="288_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="291_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#287_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#290_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#291_27">Itm</A>);
    <b>begin</b>
    <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#291_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#291_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Current;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Current;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#295_13">Current</A><FONT COLOR=red><A NAME="297_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#296_13">Current</A><FONT COLOR=red><A NAME="298_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#296_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>
    <b>is</b>
    <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="300_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="300_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="303_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#300_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#296_22">Men</A>);
    <b>begin</b>
    <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#303_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#303_7">Res</A>;
    <b>end</b> Current;
 
    <b>end</b> Current;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#301_14">Set_Top_Row</A><FONT COLOR=red><A NAME="311_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#301_27">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#302_27">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>)
    <b>is</b>
    <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="314_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="314_28">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                           <FONT COLOR=red><A NAME="315_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="318_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#314_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#301_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#302_27">Line</A>));
    <b>begin</b>
    <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#318_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#318_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Top_Row;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Top_Row;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#306_13">Top_Row</A><FONT COLOR=red><A NAME="324_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#307_13">Top_Row</A><FONT COLOR=red><A NAME="325_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#307_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>
    <b>is</b>
    <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="327_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="327_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="330_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#327_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#307_22">Men</A>);
    <b>begin</b>
    <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#330_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#330_7">Res</A>);
    <b>end</b> Top_Row;
 
    <b>end</b> Top_Row;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#311_13">Get_Index</A><FONT COLOR=red><A NAME="337_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#312_13">Get_Index</A><FONT COLOR=red><A NAME="338_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#312_24">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> Positive
    <b>is</b>
    <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="340_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="340_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="343_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#340_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#312_24">Itm</A>);
    <b>begin</b>
    <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#343_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#343_7">Res</A>) + Positive'First);
    <b>end</b> Get_Index;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get_Index;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#324_14">Post</A><FONT COLOR=red><A NAME="351_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#324_20">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#325_20">Post</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <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="354_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="354_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#354_16">M_Post</A>, "post_menu");
+      <b>function</b> <FONT COLOR=red><A NAME="356_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="356_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="359_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#325_20">Post</A> <b>then</b>
+         <A HREF="terminal_interface-curses-menus__adb.htm#359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#354_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#324_20">Men</A>);
       <b>else</b>
       <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#359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#324_20">Men</A>);
       <b>end</b> <b>if</b>;
       <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#359_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#359_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Post;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Post;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#335_14">Set_Options</A><FONT COLOR=red><A NAME="371_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#335_27">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#336_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>)
    <b>is</b>
    <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="374_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="374_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="375_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="378_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#336_27">Options</A>);
+      <FONT COLOR=red><A NAME="379_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#335_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#378_7">Opt</A>);
+      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#379_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#379_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Options;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#341_14">Switch_Options</A><FONT COLOR=red><A NAME="387_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#341_30">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <A HREF="terminal_interface-curses-menus__ads.htm#342_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>;
+                             <A HREF="terminal_interface-curses-menus__ads.htm#343_30">On</A>      : <b>in</b> Boolean := True)
    <b>is</b>
    <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="391_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="391_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="392_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#391_16">Menu_Opts_On</A>, "menu_opts_on");
+      <b>function</b> <FONT COLOR=red><A NAME="394_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="394_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="395_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="398_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#342_30">Options</A>);
+      <FONT COLOR=red><A NAME="399_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <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#343_30">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses-menus__adb.htm#399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#391_16">Menu_Opts_On</A>  (<A HREF="terminal_interface-curses-menus__ads.htm#341_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Opt</A>);
       <b>else</b>
       <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#399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#341_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Opt</A>);
       <b>end</b> <b>if</b>;
       <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#399_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#399_7">Err</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Options;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#349_14">Get_Options</A><FONT COLOR=red><A NAME="411_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#349_27">Men</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                               <A HREF="terminal_interface-curses-menus__ads.htm#350_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>)
    <b>is</b>
    <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="414_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="414_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="417_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#414_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#349_27">Men</A>);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-menus__ads.htm#350_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#64_13">CInt_2_MOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#417_7">Res</A>);
    <b>end</b> Get_Options;
 
    <b>end</b> Get_Options;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A><FONT COLOR=red><A NAME="421_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#354_13">Get_Options</A><FONT COLOR=red><A NAME="422_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#354_26">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>
    <b>is</b>
    <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="424_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>;
    <b>begin</b>
    <b>begin</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__adb.htm#423_7">Mos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#423_7">Mos</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#349_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#354_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#424_7">Mos</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#424_7">Mos</A>;
    <b>end</b> Get_Options;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get_Options;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#363_14">Set_Window</A><FONT COLOR=red><A NAME="430_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#363_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#364_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <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="433_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="433_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="434_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="437_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#433_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#363_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#364_26">Win</A>);
    <b>begin</b>
    <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#437_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#437_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Window;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#368_13">Get_Window</A><FONT COLOR=red><A NAME="443_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#369_13">Get_Window</A><FONT COLOR=red><A NAME="444_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#369_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <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="446_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="446_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="449_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#446_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#369_25">Men</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#448_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#449_7">W</A>;
    <b>end</b> Get_Window;
 
    <b>end</b> Get_Window;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#374_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="454_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#374_30">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <A HREF="terminal_interface-curses-menus__ads.htm#375_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <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="457_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="457_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="458_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="461_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#457_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#374_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#375_30">Win</A>);
    <b>begin</b>
    <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#461_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#461_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Sub_Window;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Sub_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#379_13">Get_Sub_Window</A><FONT COLOR=red><A NAME="467_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#380_13">Get_Sub_Window</A><FONT COLOR=red><A NAME="468_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#380_29">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <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="470_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="470_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="473_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#470_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#380_29">Men</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#472_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#473_7">W</A>;
    <b>end</b> Get_Sub_Window;
 
    <b>end</b> Get_Sub_Window;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#385_14">Scale</A><FONT COLOR=red><A NAME="478_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#385_21">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                    <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                    <A HREF="terminal_interface-curses-menus__ads.htm#387_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>;
-                        Yp, Xp : C_Int_Access) <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="482_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="483_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="483_25">Men</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                        <FONT COLOR=red><A NAME="484_25">Yp</A></FONT>, <FONT COLOR=red><A NAME="484_29">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#482_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="487_7">X</A></FONT>, <FONT COLOR=red><A NAME="487_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="488_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#483_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#385_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#487_7">X</A>'<b>Access</b>);
    <b>begin</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#488_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#488_7">Res</A>);
       <b>end</b> <b>if</b>;
       <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>);
+      <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#487_10">Y</A>);
+      <A HREF="terminal_interface-curses-menus__ads.htm#387_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#487_7">X</A>);
    <b>end</b> Scale;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Scale;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#396_14">Position_Cursor</A><FONT COLOR=red><A NAME="497_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#396_31">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>)
    <b>is</b>
    <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="499_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="499_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="502_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#499_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#396_31">Men</A>);
    <b>begin</b>
    <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#502_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#502_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Position_Cursor;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Position_Cursor;
 
 <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> Char_Ptr <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>;
-                         Mark : Char_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-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> <A HREF="terminal_interface-curses-menus__ads.htm#405_14">Set_Mark</A><FONT COLOR=red><A NAME="510_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#405_24">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                       <A HREF="terminal_interface-curses-menus__ads.htm#406_24">Mark</A> : <b>in</b> String)
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="513_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="514_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="514_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="515_26">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#514_16">Set_Mark</A>, "set_menu_mark");
+
+      <FONT COLOR=red><A NAME="518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#406_24">Mark</A>'Length);
+      <FONT COLOR=red><A NAME="519_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="520_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#406_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#518_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#519_7">Len</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#520_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#514_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#405_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#518_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#518_7">Txt</A>'First)'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#520_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#520_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Mark;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Mark;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#411_14">Mark</A><FONT COLOR=red><A NAME="529_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#411_20">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#412_20">Mark</A> : <b>out</b> String)
    <b>is</b>
    <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="532_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="532_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#532_16">Get_Menu_Mark</A>, "menu_mark");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#411_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#412_20">Mark</A>);
    <b>end</b> Mark;
 
    <b>end</b> Mark;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#414_14">Mark</A><FONT COLOR=red><A NAME="537_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-menus__ads.htm#415_14">Mark</A><FONT COLOR=red><A NAME="538_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#415_20">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> String
    <b>is</b>
    <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="540_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="540_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#540_16">Get_Menu_Mark</A>, "menu_mark");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#415_20">Men</A>));
    <b>end</b> Mark;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Mark;
 
 <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#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_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#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_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#350_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> <A HREF="terminal_interface-curses-menus__ads.htm#425_14">Set_Foreground</A><FONT COLOR=red><A NAME="547_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-menus__ads.htm#426_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Fore</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#428_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="552_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="552_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="553_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#552_16">Set_Menu_Fore</A>, "set_menu_fore");
+
+      <FONT COLOR=red><A NAME="556_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#428_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Fore</A>);
+      <FONT COLOR=red><A NAME="559_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#552_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#426_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#556_7">Ch</A>));
+   <b>begin</b>
+      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#559_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#559_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Foreground;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Foreground;
 
-   <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#304_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#433_14">Foreground</A><FONT COLOR=red><A NAME="566_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#433_26">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#434_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>)
    <b>is</b>
    <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="569_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="569_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#569_16">Menu_Fore</A>, "menu_fore");
    <b>begin</b>
    <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#352_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#434_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#433_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Foreground;
 
    <b>end</b> Foreground;
 
-   <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#304_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#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#438_14">Foreground</A><FONT COLOR=red><A NAME="575_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#438_26">Men</A>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Fore</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#440_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <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="579_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="579_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#579_16">Menu_Fore</A>, "menu_fore");
    <b>begin</b>
    <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#352_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#353_10">Color</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#438_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#440_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#438_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Foreground;
 
    <b>end</b> Foreground;
 
-   <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#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_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#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#445_14">Set_Background</A><FONT COLOR=red><A NAME="586_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-menus__ads.htm#446_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Back</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#448_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <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="591_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="591_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="592_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#350_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="595_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#448_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Back</A>);
+      <FONT COLOR=red><A NAME="598_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#591_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#446_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#595_7">Ch</A>));
    <b>begin</b>
    <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#598_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#598_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Background;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Background;
 
-   <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#304_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#453_14">Background</A><FONT COLOR=red><A NAME="605_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#453_26">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#454_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>)
    <b>is</b>
    <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="608_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="608_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#608_16">Menu_Back</A>, "menu_back");
    <b>begin</b>
    <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#352_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#454_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#453_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Background;
 
    <b>end</b> Background;
 
-   <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#304_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#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#458_14">Background</A><FONT COLOR=red><A NAME="614_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#458_26">Men</A>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Back</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#460_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <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="618_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="618_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#618_16">Menu_Back</A>, "menu_back");
    <b>begin</b>
    <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#352_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#353_10">Color</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#458_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#460_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#458_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Background;
 
    <b>end</b> Background;
 
-   <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#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_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#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#465_14">Set_Grey</A><FONT COLOR=red><A NAME="625_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#466_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                       <A HREF="terminal_interface-curses-menus__ads.htm#467_7">Grey</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+                       <A HREF="terminal_interface-curses-menus__ads.htm#468_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <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="629_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="629_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="630_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#350_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="633_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#468_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#467_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="637_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#629_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#466_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#633_7">Ch</A>));
    <b>begin</b>
    <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#637_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#637_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Grey;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Grey;
 
-   <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#304_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#473_14">Grey</A><FONT COLOR=red><A NAME="644_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#473_20">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#474_20">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>)
    <b>is</b>
    <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="647_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="647_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#647_16">Menu_Grey</A>, "menu_grey");
    <b>begin</b>
    <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#352_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#474_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#647_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#473_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Grey;
 
    <b>end</b> Grey;
 
-   <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#304_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#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#478_14">Grey</A><FONT COLOR=red><A NAME="653_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#479_7">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#481_7">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <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="657_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="657_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#657_16">Menu_Grey</A>, "menu_grey");
    <b>begin</b>
    <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#352_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#353_10">Color</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Grey</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#479_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#481_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#479_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Grey;
 
    <b>end</b> Grey;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#486_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="664_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#486_33">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                <A HREF="terminal_interface-curses-menus__ads.htm#487_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-menus__ads.htm#54_4">Space</A>)
    <b>is</b>
    <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="667_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="667_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="668_30">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="671_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#667_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#486_33">Men</A>,
+                                                <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#487_33">Pad</A>)));
    <b>begin</b>
    <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#671_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#671_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Pad_Character;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Pad_Character;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#492_14">Pad_Character</A><FONT COLOR=red><A NAME="679_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#492_29">Men</A> : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <A HREF="terminal_interface-curses-menus__ads.htm#493_29">Pad</A> : <b>out</b> Character)
    <b>is</b>
    <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="682_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="682_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#682_16">Menu_Pad</A>, "menu_pad");
    <b>begin</b>
    <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>));
+      <A HREF="terminal_interface-curses-menus__ads.htm#493_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#682_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#492_29">Men</A>));
    <b>end</b> Pad_Character;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Pad_Character;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#502_14">Set_Spacing</A><FONT COLOR=red><A NAME="688_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#502_27">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#503_27">Descr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> := 0;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#504_27">Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>   := 0;
+                          <A HREF="terminal_interface-curses-menus__ads.htm#505_27">Col</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> := 0)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="693_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="693_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="694_29">D</A></FONT>, <FONT COLOR=red><A NAME="694_32">R</A></FONT>, <FONT COLOR=red><A NAME="694_35">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#693_16">Set_Spacing</A>, "set_menu_spacing");
+
+      <FONT COLOR=red><A NAME="697_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#693_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#502_27">Men</A>,
+                                               <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#503_27">Descr</A>),
+                                               <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#504_27">Row</A>),
+                                               <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#505_27">Col</A>));
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#697_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#697_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Spacing;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Spacing;
 
-   <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>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#510_14">Spacing</A><FONT COLOR=red><A NAME="707_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#510_23">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                      <A HREF="terminal_interface-curses-menus__ads.htm#511_23">Descr</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                      <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Row</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                      <A HREF="terminal_interface-curses-menus__ads.htm#513_23">Col</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>;
-                            D, R, C : C_Int_Access) <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");
+      <b>type</b> <FONT COLOR=red><A NAME="712_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="713_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="713_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="714_29">D</A></FONT>, <FONT COLOR=red><A NAME="714_32">R</A></FONT>, <FONT COLOR=red><A NAME="714_35">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#713_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>);
+      <FONT COLOR=red><A NAME="717_7">D</A></FONT>, <FONT COLOR=red><A NAME="717_10">R</A></FONT>, <FONT COLOR=red><A NAME="717_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="718_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#713_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#510_23">Men</A>,
+                                               <A HREF="terminal_interface-curses-menus__adb.htm#717_7">D</A>'<b>Access</b>,
+                                               <A HREF="terminal_interface-curses-menus__adb.htm#717_10">R</A>'<b>Access</b>,
+                                               <A HREF="terminal_interface-curses-menus__adb.htm#717_13">C</A>'<b>Access</b>);
    <b>begin</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>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#718_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#718_7">Res</A>);
       <b>else</b>
       <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#511_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_7">D</A>);
+         <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Row</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_10">R</A>);
+         <A HREF="terminal_interface-curses-menus__ads.htm#513_23">Col</A>   := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_13">C</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Spacing;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Spacing;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#521_13">Set_Pattern</A><FONT COLOR=red><A NAME="731_13"></A></FONT> (<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> Char_Ptr <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>;
-                            Pattern : Char_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-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> <A HREF="terminal_interface-curses-menus__ads.htm#522_13">Set_Pattern</A><FONT COLOR=red><A NAME="732_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#522_26">Men</A>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#523_26">Text</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="735_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="736_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="736_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="737_29">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#736_16">Set_Pattern</A>, "set_menu_pattern");
+
+      <FONT COLOR=red><A NAME="740_7">S</A></FONT>   : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#523_26">Text</A>'Length);
+      <FONT COLOR=red><A NAME="741_7">L</A></FONT>   : size_t;
+      <FONT COLOR=red><A NAME="742_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#523_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#740_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#741_7">L</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#742_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#736_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#522_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#740_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#740_7">S</A>'First)'<b>Access</b>);
+      <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#742_7">Res</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_No_Match</A> =&gt; <b>return</b> False;
+         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A>       =&gt; <b>return</b> True;
          <b>when</b> <b>others</b> =&gt;
          <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#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#742_7">Res</A>);
             <b>return</b> False;
       <b>end</b> <b>case</b>;
    <b>end</b> Set_Pattern;
 
             <b>return</b> False;
       <b>end</b> <b>case</b>;
    <b>end</b> Set_Pattern;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#529_14">Pattern</A><FONT COLOR=red><A NAME="755_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#529_23">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                      <A HREF="terminal_interface-curses-menus__ads.htm#530_23">Text</A> : <b>out</b> String)
    <b>is</b>
    <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="758_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="758_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#758_16">Get_Pattern</A>, "menu_pattern");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">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>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#529_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#530_23">Text</A>);
    <b>end</b> Pattern;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Pattern;
 <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> <A HREF="terminal_interface-curses-menus__ads.htm#539_14">Set_Format</A><FONT COLOR=red><A NAME="764_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#539_26">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#540_26">Lines</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                         <A HREF="terminal_interface-curses-menus__ads.htm#541_26">Columns</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>)
    <b>is</b>
    <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="768_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="768_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="769_30">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                             <FONT COLOR=red><A NAME="770_30">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="773_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#768_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#539_26">Men</A>,
+                                                <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#540_26">Lines</A>),
+                                                <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#541_26">Columns</A>));
    <b>begin</b>
    <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#773_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#773_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Format;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Format;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#545_14">Format</A><FONT COLOR=red><A NAME="781_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#545_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#546_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#547_22">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#553_14">Format</A><FONT COLOR=red><A NAME="782_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#553_22">Men</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                     <A HREF="terminal_interface-curses-menus__ads.htm#554_22">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                     <A HREF="terminal_interface-curses-menus__ads.htm#555_22">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Int_Access <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>;
-                         Y, X : C_Int_Access) <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="786_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="787_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="787_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="788_26">Y</A></FONT>, <FONT COLOR=red><A NAME="788_29">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#545_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="791_7">L</A></FONT>, <FONT COLOR=red><A NAME="791_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="792_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#787_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#553_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#791_10">C</A>'<b>Access</b>);
    <b>begin</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#792_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#792_7">Res</A>);
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__ads.htm#546_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#547_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#554_22">Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#791_7">L</A>);
+         <A HREF="terminal_interface-curses-menus__ads.htm#555_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#791_10">C</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Format;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Format;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#559_14">Set_Item_Init_Hook</A><FONT COLOR=red><A NAME="801_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#559_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#560_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#567_14">Set_Item_Init_Hook</A><FONT COLOR=red><A NAME="802_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#567_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                 <A HREF="terminal_interface-curses-menus__ads.htm#568_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>)
    <b>is</b>
    <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#555_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="805_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="805_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="806_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#559_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#560_34">Proc</A>);
+      <FONT COLOR=red><A NAME="809_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#805_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#567_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#568_34">Proc</A>);
    <b>begin</b>
    <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#809_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#809_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Item_Init_Hook;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Item_Init_Hook;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#565_14">Set_Item_Term_Hook</A><FONT COLOR=red><A NAME="815_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#565_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#566_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#573_14">Set_Item_Term_Hook</A><FONT COLOR=red><A NAME="816_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#573_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                 <A HREF="terminal_interface-curses-menus__ads.htm#574_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>)
    <b>is</b>
    <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#555_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="819_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="819_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="820_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#565_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#566_34">Proc</A>);
+      <FONT COLOR=red><A NAME="823_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#819_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#573_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#574_34">Proc</A>);
    <b>begin</b>
    <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#823_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#823_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Item_Term_Hook;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Item_Term_Hook;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#571_14">Set_Menu_Init_Hook</A><FONT COLOR=red><A NAME="829_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#571_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#572_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#579_14">Set_Menu_Init_Hook</A><FONT COLOR=red><A NAME="830_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#579_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                 <A HREF="terminal_interface-curses-menus__ads.htm#580_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>)
    <b>is</b>
    <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#555_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="833_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="833_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="834_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#571_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#572_34">Proc</A>);
+      <FONT COLOR=red><A NAME="837_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#833_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#579_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#580_34">Proc</A>);
    <b>begin</b>
    <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#837_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#837_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Menu_Init_Hook;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Menu_Init_Hook;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#577_14">Set_Menu_Term_Hook</A><FONT COLOR=red><A NAME="843_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#577_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#578_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#585_14">Set_Menu_Term_Hook</A><FONT COLOR=red><A NAME="844_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#585_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                                 <A HREF="terminal_interface-curses-menus__ads.htm#586_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>)
    <b>is</b>
    <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#555_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="847_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="847_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="848_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#577_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#578_34">Proc</A>);
+      <FONT COLOR=red><A NAME="851_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#847_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#585_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#586_34">Proc</A>);
    <b>begin</b>
    <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#851_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#851_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Menu_Term_Hook;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Menu_Term_Hook;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#583_13">Get_Item_Init_Hook</A><FONT COLOR=red><A NAME="857_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#583_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#555_9">Menu_Hook_Function</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#591_13">Get_Item_Init_Hook</A><FONT COLOR=red><A NAME="858_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#591_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>
    <b>is</b>
    <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#555_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="860_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="860_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#860_16">Item_Init</A>, "item_init");
    <b>begin</b>
    <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#583_33">Men</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#591_33">Men</A>);
    <b>end</b> Get_Item_Init_Hook;
 
    <b>end</b> Get_Item_Init_Hook;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#588_13">Get_Item_Term_Hook</A><FONT COLOR=red><A NAME="865_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#588_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#555_9">Menu_Hook_Function</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#596_13">Get_Item_Term_Hook</A><FONT COLOR=red><A NAME="866_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#596_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>
    <b>is</b>
    <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#555_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="868_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="868_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#868_16">Item_Term</A>, "item_term");
    <b>begin</b>
    <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#588_33">Men</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#596_33">Men</A>);
    <b>end</b> Get_Item_Term_Hook;
 
    <b>end</b> Get_Item_Term_Hook;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#593_13">Get_Menu_Init_Hook</A><FONT COLOR=red><A NAME="873_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#593_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#555_9">Menu_Hook_Function</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#601_13">Get_Menu_Init_Hook</A><FONT COLOR=red><A NAME="874_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#601_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>
    <b>is</b>
    <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#555_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="876_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="876_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#876_16">Menu_Init</A>, "menu_init");
    <b>begin</b>
    <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#593_33">Men</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#601_33">Men</A>);
    <b>end</b> Get_Menu_Init_Hook;
 
    <b>end</b> Get_Menu_Init_Hook;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#598_13">Get_Menu_Term_Hook</A><FONT COLOR=red><A NAME="881_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#598_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#555_9">Menu_Hook_Function</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#606_13">Get_Menu_Term_Hook</A><FONT COLOR=red><A NAME="882_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#606_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>
    <b>is</b>
    <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#555_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="884_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="884_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#884_16">Menu_Term</A>, "menu_term");
    <b>begin</b>
    <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#598_33">Men</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#606_33">Men</A>);
    <b>end</b> Get_Menu_Term_Hook;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get_Menu_Term_Hook;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#607_14">Redefine</A><FONT COLOR=red><A NAME="889_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#607_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#608_24">Items</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#615_14">Redefine</A><FONT COLOR=red><A NAME="890_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                       <A HREF="terminal_interface-curses-menus__ads.htm#616_24">Items</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#180_9">Item_Array_Access</A>)
    <b>is</b>
    <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="893_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="893_27">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="894_27">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="897_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Items (Items'Last) = Null_Item);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#608_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#608_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#616_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#616_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#616_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#616_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>else</b>
       <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#607_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#608_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#897_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#893_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#616_24">Items</A>.<b>all</b>'Address);
+         <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#897_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+            <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#897_7">Res</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redefine;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redefine;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#623_13">Item_Count</A><FONT COLOR=red><A NAME="909_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#623_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#631_13">Item_Count</A><FONT COLOR=red><A NAME="910_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#631_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> Natural
    <b>is</b>
    <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="912_16">Count</A></FONT> (<FONT COLOR=red><A NAME="912_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#912_16">Count</A>, "item_count");
    <b>begin</b>
    <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#623_25">Men</A>));
+      <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#631_25">Men</A>));
    <b>end</b> Item_Count;
 
    <b>end</b> Item_Count;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#617_13">Items</A><FONT COLOR=red><A NAME="917_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#617_20">Men</A>   : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#618_20">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#625_13">Items</A><FONT COLOR=red><A NAME="918_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#625_20">Men</A>   : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#626_20">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>
    <b>is</b>
    <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#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="923_16">C_Mitems</A></FONT> (<FONT COLOR=red><A NAME="923_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> Pointer;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#923_16">C_Mitems</A>, "menu_items");
 
 
-      P : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#922_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#617_20">Men</A>);
+      <FONT COLOR=red><A NAME="926_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#923_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#625_20">Men</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#618_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#623_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#617_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#926_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#626_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#631_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#625_20">Men</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>else</b>
       <b>else</b>
-         P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#618_20">Index</A>) - 1);
-         <b>return</b> P.<b>all</b>;
+         <A HREF="terminal_interface-curses-menus__adb.htm#926_7">P</A> := <A HREF="terminal_interface-curses-menus__adb.htm#926_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#626_20">Index</A>) - 1);
+         <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#926_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Items;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Items;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#632_13">Create</A><FONT COLOR=red><A NAME="936_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#632_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> <A HREF="terminal_interface-curses-menus__ads.htm#640_13">Create</A><FONT COLOR=red><A NAME="937_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#640_21">Items</A> : <A HREF="terminal_interface-curses-menus__ads.htm#180_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>
    <b>is</b>
    <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="939_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="939_25">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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="942_7">M</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>pragma</b> Assert (Items (Items'Last) = Null_Item);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#632_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#632_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#640_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#640_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#640_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#640_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
       <b>else</b>
       <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#632_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#942_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#939_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#640_21">Items</A>.<b>all</b>'Address);
+         <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#942_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#63_4">Null_Menu</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#116_4">Menu_Exception</A>;
          <b>end</b> <b>if</b>;
          <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#942_7">M</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Create;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Create;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_14">Delete</A><FONT COLOR=red><A NAME="955_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#639_22">Men</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#647_14">Delete</A><FONT COLOR=red><A NAME="956_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#647_22">Men</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>)
    <b>is</b>
    <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="958_16">Free</A></FONT> (<FONT COLOR=red><A NAME="958_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#639_22">Men</A>);
+      <FONT COLOR=red><A NAME="961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#958_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#647_22">Men</A>);
    <b>begin</b>
    <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#961_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#961_7">Res</A>);
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#639_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#647_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#63_4">Null_Menu</A>;
    <b>end</b> Delete;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Delete;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#654_13">Driver</A><FONT COLOR=red><A NAME="969_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#654_21">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                    <A HREF="terminal_interface-curses-menus__ads.htm#655_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#648_9">Driver_Result</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#662_13">Driver</A><FONT COLOR=red><A NAME="970_13"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#662_21">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                    <A HREF="terminal_interface-curses-menus__ads.htm#663_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#656_9">Driver_Result</A>
    <b>is</b>
    <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="973_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="973_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="974_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#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#654_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#655_21">Key</A>));
+      <FONT COLOR=red><A NAME="977_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#973_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#662_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#663_21">Key</A>));
    <b>begin</b>
    <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#650_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#651_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#649_27">Request_Denied</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#977_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_Ok</A> <b>then</b>
+         <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#977_7">R</A> <b>is</b>
+            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_Unknown_Command</A>  =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#658_27">Unknown_Request</A>;
+            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_No_Match</A>         =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#659_27">No_Match</A>;
+            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Request_Denied</A> |
+                 <A HREF="terminal_interface-curses-aux__ads.htm#91_4">E_Not_Selectable</A>   =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#657_27">Request_Denied</A>;
             <b>when</b> <b>others</b> =&gt;
             <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#97_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#977_7">R</A>);
          <b>end</b> <b>case</b>;
       <b>end</b> <b>if</b>;
          <b>end</b> <b>case</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#648_27">Menu_Ok</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#656_27">Menu_Ok</A>;
    <b>end</b> Driver;
 
    <b>end</b> Driver;
 
-   <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> <A HREF="terminal_interface-curses-menus__ads.htm#182_14">Free</A><FONT COLOR=red><A NAME="992_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A>         : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#180_9">Item_Array_Access</A>;
+                   <A HREF="terminal_interface-curses-menus__ads.htm#183_20">Free_Items</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <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="995_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-menus__ads.htm#177_9">Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#180_9">Item_Array_Access</A>);
    <b>begin</b>
    <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#639_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#182_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#183_20">Free_Items</A> <b>then</b>
+         <b>for</b> <FONT COLOR=red><A NAME="999_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A>'Last - 1) <b>loop</b>
+            <b>if</b> (<A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>) <b>then</b>
+               <A HREF="terminal_interface-curses-menus__ads.htm#205_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#999_14">I</A>));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>loop</b>;
       <b>end</b> <b>if</b>;
             <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>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#995_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#182_20">IA</A>);
    <b>end</b> Free;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Free;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#146_13">Default_Menu_Options</A><FONT COLOR=red><A NAME="1008_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#147_13">Default_Menu_Options</A><FONT COLOR=red><A NAME="1009_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu_Option_Set</A>
    <b>is</b>
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#354_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#63_4">Null_Menu</A>);
    <b>end</b> Default_Menu_Options;
 
    <b>end</b> Default_Menu_Options;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#169_13">Default_Item_Options</A><FONT COLOR=red><A NAME="1014_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#170_13">Default_Item_Options</A><FONT COLOR=red><A NAME="1015_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item_Option_Set</A>
    <b>is</b>
    <b>begin</b>
    <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#61_4">Null_Item</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#258_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A>);
    <b>end</b> Default_Item_Options;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 
    <b>end</b> Default_Item_Options;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 
index 5a591dae1f57232176f6b5a84c2703abd8d1cb92..b34529bebe39df15625981fdc22ebc4a9a154cba 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.21 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.23 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  menu binding.</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  menu binding.</EM></FONT>
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
 
    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="57_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>
    <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="63_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_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>
    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="70_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 1;
+   <FONT COLOR=red><A NAME="71_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 2;
+   <FONT COLOR=red><A NAME="72_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 3;
+   <FONT COLOR=red><A NAME="73_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 4;
+   <FONT COLOR=red><A NAME="74_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 5;
+   <FONT COLOR=red><A NAME="75_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 6;
+   <FONT COLOR=red><A NAME="76_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 7;
+   <FONT COLOR=red><A NAME="77_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 8;
+   <FONT COLOR=red><A NAME="78_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 9;
+   <FONT COLOR=red><A NAME="79_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 10;
+   <FONT COLOR=red><A NAME="80_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 11;
+   <FONT COLOR=red><A NAME="81_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 12;
+   <FONT COLOR=red><A NAME="82_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 13;
+   <FONT COLOR=red><A NAME="83_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 14;
+   <FONT COLOR=red><A NAME="84_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_4">Key_Max</A> + 15;
+   <FONT COLOR=red><A NAME="85_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#206_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>
    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>;
+   <FONT COLOR=red><A NAME="89_4">REQ_LEFT_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#70_4">M_Left_Item</A>;
+   <FONT COLOR=red><A NAME="90_4">REQ_RIGHT_ITEM</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#71_4">M_Right_Item</A>;
+   <FONT COLOR=red><A NAME="91_4">REQ_UP_ITEM</A></FONT>       : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#72_4">M_Up_Item</A>;
+   <FONT COLOR=red><A NAME="92_4">REQ_DOWN_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#73_4">M_Down_Item</A>;
+   <FONT COLOR=red><A NAME="93_4">REQ_SCR_ULINE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#74_4">M_ScrollUp_Line</A>;
+   <FONT COLOR=red><A NAME="94_4">REQ_SCR_DLINE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#75_4">M_ScrollDown_Line</A>;
+   <FONT COLOR=red><A NAME="95_4">REQ_SCR_DPAGE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#76_4">M_ScrollDown_Page</A>;
+   <FONT COLOR=red><A NAME="96_4">REQ_SCR_UPAGE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#77_4">M_ScrollUp_Page</A>;
+   <FONT COLOR=red><A NAME="97_4">REQ_FIRST_ITEM</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#78_4">M_First_Item</A>;
+   <FONT COLOR=red><A NAME="98_4">REQ_LAST_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#79_4">M_Last_Item</A>;
+   <FONT COLOR=red><A NAME="99_4">REQ_NEXT_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#80_4">M_Next_Item</A>;
+   <FONT COLOR=red><A NAME="100_4">REQ_PREV_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#81_4">M_Previous_Item</A>;
+   <FONT COLOR=red><A NAME="101_4">REQ_TOGGLE_ITEM</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#82_4">M_Toggle_Item</A>;
+   <FONT COLOR=red><A NAME="102_4">REQ_CLEAR_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#83_4">M_Clear_Pattern</A>;
+   <FONT COLOR=red><A NAME="103_4">REQ_BACK_PATTERN</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#84_4">M_Back_Pattern</A>;
+   <FONT COLOR=red><A NAME="104_4">REQ_NEXT_MATCH</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#85_4">M_Next_Match</A>;
    REQ_PREV_MATCH    : Menu_Request_Code <b>renames</b> M_Previous_Match;
 
    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="107_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;
                            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>
    <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="124_10">One_Valued</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="125_10">Show_Descriptions</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="126_10">Row_Major_Order</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="127_10">Ignore_Case</A></FONT>       : Boolean;
+         <FONT COLOR=red><A NAME="128_10">Show_Matches</A></FONT>      : Boolean;
          Non_Cyclic        : Boolean;
          Non_Cyclic        : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#120_9">;</A>
+      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#121_9">;</A>
    <b>pragma</b> Pack (Menu_Option_Set);
    <b>pragma</b> Convention (C, Menu_Option_Set);
 
    <b>pragma</b> Pack (Menu_Option_Set);
    <b>pragma</b> Convention (C, Menu_Option_Set);
 
    <b>type</b> Item_Option_Set <b>is</b>
       <b>record</b>
          Selectable  : Boolean;
    <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>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#154_9">;</A>
    <b>pragma</b> Pack (Item_Option_Set);
    <b>pragma</b> Convention (C, Item_Option_Set);
 
    <b>pragma</b> Pack (Item_Option_Set);
    <b>pragma</b> Convention (C, Item_Option_Set);
 
 
    <b>type</b> Item_Array_Access <b>is</b> <b>access</b> Item_Array;
 
 
    <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="183_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>
                    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>
    <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="194_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>
                     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="200_23">Name</A></FONT>        : String;
+             <A HREF="terminal_interface-curses-menus__ads.htm#193_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>
 
      <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>
    <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="215_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);
                         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>
    <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="239_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_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>
                           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="245_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#154_9">Item</A>;
+                             <FONT COLOR=red><A NAME="246_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>
                              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>
    <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="254_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#154_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>
 
                           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>
    <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="268_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;
                    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>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="277_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>
 
                           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>
    <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="291_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_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);
                           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>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="302_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                           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>
    <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="325_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>
                    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>
    <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="336_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_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>
                           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="342_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#121_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="343_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>
                              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="350_27">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#121_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>
 
                           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>
    <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="364_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                          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>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="375_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                              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>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="386_21">Men</A></FONT>     : <b>in</b> Menu;
+                    <FONT COLOR=red><A NAME="387_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
                     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>
    <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="406_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>
                        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="412_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>
 
                    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=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#304_9">Menu</A>;
-      <FONT COLOR=red><A NAME="427_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="427_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+      <FONT COLOR=red><A NAME="428_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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#304_9">Menu</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="434_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_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>
                          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#304_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="439_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="439_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="440_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_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
                          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#304_9">Menu</A>;
-      <FONT COLOR=red><A NAME="447_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="447_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+      <FONT COLOR=red><A NAME="448_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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#304_9">Menu</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="454_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_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>
 
                          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#304_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="459_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="459_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="460_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_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
                          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#304_9">Menu</A>;
-      <FONT COLOR=red><A NAME="467_7">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="467_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+      <FONT COLOR=red><A NAME="468_7">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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#304_9">Menu</A>;
+   <b>procedure</b> Grey (<FONT COLOR=red><A NAME="474_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_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
                    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#304_9">Menu</A>;
-      <FONT COLOR=red><A NAME="480_7">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
+     (<FONT COLOR=red><A NAME="480_7">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#306_9">Menu</A>;
+      <FONT COLOR=red><A NAME="481_7">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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="487_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>
                                 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="493_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);
                             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>
    <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="503_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="504_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := 0;
+                          <FONT COLOR=red><A NAME="505_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                           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="511_23">Men</A></FONT>   : <b>in</b> Menu;
+                      <FONT COLOR=red><A NAME="512_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+                      <FONT COLOR=red><A NAME="513_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
                       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>
    <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="523_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>
                          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="530_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);
                       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>
    <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="540_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Menu</A>;
+                         <FONT COLOR=red><A NAME="541_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
                          Columns : <b>in</b> Column_Count);
                          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>
+   <FONT COLOR=green><EM>--      The  default    is  16  rows,  1  column.    Calling</EM></FONT>
+   <FONT COLOR=green><EM>--      set_menu_format  with a null menu pointer will change this</EM></FONT>
+   <FONT COLOR=green><EM>--      default.  A zero row or column argument to set_menu_format</EM></FONT>
+   <FONT COLOR=green><EM>--      is  interpreted  as  a  request  not to change the current</EM></FONT>
+   <FONT COLOR=green><EM>--      value.</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Format);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></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="546_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#62_12">Menu</A>;
-                     <FONT COLOR=red><A NAME="547_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="554_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#63_12">Menu</A>;
+                     <FONT COLOR=red><A NAME="555_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
                      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>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="560_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu</A>;
+   <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="568_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_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>
                                  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="566_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu</A>;
+   <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="574_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_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>
                                  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="572_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu</A>;
+   <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="580_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_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>
                                  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="578_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#555_9">Menu</A>;
+   <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="586_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#563_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);
                                  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>
    <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="608_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="616_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#180_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);
 
                        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="613_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#612_14"> </A>     Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
+   <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="621_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#180_9">Menu</A>;
+                  <A HREF="terminal_interface-curses-menus__ads.htm#620_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>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="618_20">Men</A></FONT>   : Menu;
+   <b>function</b> Items (<FONT COLOR=red><A NAME="626_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);
                    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>--  Not inlined</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="649_27">Menu_Ok</A></FONT>,
-                          <FONT COLOR=red><A NAME="650_27">Request_Denied</A></FONT>,
-                          <FONT COLOR=red><A NAME="651_27">Unknown_Request</A></FONT>,
+   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="657_27">Menu_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="658_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="659_27">Unknown_Request</A></FONT>,
                           No_Match);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
                           No_Match);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
-   <b>function</b> Driver (<FONT COLOR=red><A NAME="655_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#67_9">Menu</A>;
+   <b>function</b> Driver (<FONT COLOR=red><A NAME="663_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#68_9">Menu</A>;
                     Key : Key_Code) <b>return</b> Driver_Result;
                     Key : Key_Code) <b>return</b> Driver_Result;
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_new.3x.html">menu_driver()</A></EM></FONT>
+   <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>--  Driver is not inlined</EM></FONT>
 
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
 <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#57_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;
 
    <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#63_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Item</A> := 0;
    Null_Menu : <b>constant</b> Menu := 0;
 
 <b>end</b> Terminal_Interface.Curses.Menus;
    Null_Menu : <b>constant</b> Menu := 0;
 
 <b>end</b> Terminal_Interface.Curses.Menus;
index f6eeaeefa6ff3c7abf115992399906328cd2afd2..a8137c43a80d141bc49d7672b6e05e1ff6606ffe 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.16 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.17 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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="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>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-mouse__ads.htm#47_35">Mouse</A><FONT COLOR=red><A NAME="47_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#48_35">Mouse</A><FONT COLOR=red><A NAME="48_40"></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> System.Bit_Order;
    <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_13">Has_Mouse</A><FONT COLOR=red><A NAME="52_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#98_13">Has_Mouse</A><FONT COLOR=red><A NAME="53_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <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="55_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#55_16">Mouse_Avail</A>, "_nc_has_mouse");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#737_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#761_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#203_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#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> Has_Mouse;
 
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
       <b>end</b> <b>if</b>;
    <b>end</b> Has_Mouse;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#124_13">Get_Mouse</A><FONT COLOR=red><A NAME="64_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Event</A>
+   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#133_13">Get_Mouse</A><FONT COLOR=red><A NAME="65_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>
    <b>is</b>
    <b>is</b>
-      <b>type</b> Event_Access <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Event</A>;
+      <b>type</b> <FONT COLOR=red><A NAME="67_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>;
 
 
-      <b>function</b> <FONT COLOR=red><A NAME="68_16">Getmouse</A></FONT> (Ev : Event_Access) <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="69_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="69_26">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#67_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#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#85_9">Mouse_Event</A>;
+      <FONT COLOR=red><A NAME="72_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>;
    <b>begin</b>
    <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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#69_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#72_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#72_7">Event</A>;
    <b>end</b> Get_Mouse;
 
    <b>end</b> Get_Mouse;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#94_14">Register_Reportable_Event</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#95_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Mouse_Button</A>;
-                                        <A HREF="terminal_interface-curses-mouse__ads.htm#96_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Button_State</A>;
-                                        <A HREF="terminal_interface-curses-mouse__ads.htm#97_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#101_14">Register_Reportable_Event</A><FONT COLOR=red><A NAME="80_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#102_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>;
+                                        <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Button_State</A>;
+                                        <A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>)
    <b>is</b>
    <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#61_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#95_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#72_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#96_7">State</A>);
+      <FONT COLOR=red><A NAME="84_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#102_7">Button</A>);
+      <FONT COLOR=red><A NAME="85_7">State_Nr</A></FONT>  : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#103_7">State</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#95_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#70_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#96_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#73_26">Pressed</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#77_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#80_26">Pressed</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>else</b>
       <b>else</b>
-         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#95_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#69_12">Real_Buttons</A> <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__ads.htm#97_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#97_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#102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#76_12">Real_Buttons</A> <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#84_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#85_7">State_Nr</A>);
          <b>else</b>
          <b>else</b>
-            <A HREF="terminal_interface-curses-mouse__ads.htm#97_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#97_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#206_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#104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#217_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#84_7">Button_Nr</A> - 4));
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Register_Reportable_Event;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Register_Reportable_Event;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#103_14">Register_Reportable_Events</A><FONT COLOR=red><A NAME="97_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Mouse_Button</A>;
-                                         <A HREF="terminal_interface-curses-mouse__ads.htm#105_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_States</A>;
-                                         <A HREF="terminal_interface-curses-mouse__ads.htm#106_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#110_14">Register_Reportable_Events</A><FONT COLOR=red><A NAME="98_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#111_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>;
+                                         <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Button_States</A>;
+                                         <A HREF="terminal_interface-curses-mouse__ads.htm#113_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>)
    <b>is</b>
    <b>begin</b>
    <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#78_9">Button_States</A>'<b>Range</b> <b>loop</b>
-         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#105_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#94_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#104_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#102_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#106_7">Mask</A>);
+      <b>for</b> <FONT COLOR=red><A NAME="103_11">S</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Button_States</A>'<b>Range</b> <b>loop</b>
+         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#103_11">S</A>) <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__ads.htm#101_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#111_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#103_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#113_7">Mask</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
    <b>end</b> Register_Reportable_Events;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
    <b>end</b> Register_Reportable_Events;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#114_13">Start_Mouse</A><FONT COLOR=red><A NAME="109_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#114_26">Mask</A> : <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#59_4">All_Events</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>
+   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#123_13">Start_Mouse</A><FONT COLOR=red><A NAME="110_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#123_26">Mask</A> : <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#66_4">All_Events</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>
    <b>is</b>
    <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#57_9">Event_Mask</A>;
-                      O : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_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#57_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#57_9">Event_Mask</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="113_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="113_23">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
+                      <FONT COLOR=red><A NAME="114_23">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#113_16">MMask</A>, "mousemask");
+      <FONT COLOR=red><A NAME="116_7">R</A></FONT>   : <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
+      <FONT COLOR=red><A NAME="117_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
    <b>begin</b>
    <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#114_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>;
+      <A HREF="terminal_interface-curses-mouse__adb.htm#116_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#113_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#123_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#117_7">Old</A>'<b>Access</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#117_7">Old</A>;
    <b>end</b> Start_Mouse;
 
    <b>end</b> Start_Mouse;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#119_14">End_Mouse</A><FONT COLOR=red><A NAME="122_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#119_25">Mask</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#58_4">No_Events</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#128_14">End_Mouse</A><FONT COLOR=red><A NAME="123_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#128_25">Mask</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#65_4">No_Events</A>)
    <b>is</b>
    <b>begin</b>
       <b>null</b>;
    <b>end</b> End_Mouse;
 
    <b>is</b>
    <b>begin</b>
       <b>null</b>;
    <b>end</b> End_Mouse;
 
-   <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#57_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#61_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#72_9">Button_State</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#133_14">Dispatch_Event</A><FONT COLOR=red><A NAME="129_14"></A></FONT> (<FONT COLOR=red><A NAME="129_30">Mask</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
+                             <FONT COLOR=red><A NAME="130_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>;
+                             <FONT COLOR=red><A NAME="131_30">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#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#57_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#61_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#72_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#57_9">Event_Mask</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#129_14">Dispatch_Event</A><FONT COLOR=red><A NAME="133_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
+                             <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>;
+                             <A HREF="terminal_interface-curses-mouse__adb.htm#131_30">State</A>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Button_State</A>) <b>is</b>
+      <FONT COLOR=red><A NAME="136_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#67_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#210_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#61_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#211_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#62_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#212_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#63_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#213_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#64_26">Button4</A>;
+      <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#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#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#222_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#68_26">Left</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#223_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#69_26">Middle</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#224_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#70_26">Right</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#225_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#71_26">Button4</A>;
       <b>end</b> <b>if</b>;
       <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#69_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#61_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#72_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#130_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#76_12">Real_Buttons</A> <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#136_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A>));
+         <b>for</b> <FONT COLOR=red><A NAME="150_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Button_State</A>'<b>Range</b> <b>loop</b>
+            <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#136_7">L</A>) /= 0 <b>then</b>
+               <A HREF="terminal_interface-curses-mouse__adb.htm#131_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#150_14">I</A>;
                <b>exit</b>;
             <b>end</b> <b>if</b>;
                <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#136_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#136_7">L</A>;
          <b>end</b> <b>loop</b>;
       <b>else</b>
          <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#73_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#206_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#65_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#207_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#66_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#208_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#67_26">Alt</A>;
+         <A HREF="terminal_interface-curses-mouse__adb.htm#131_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#80_26">Pressed</A>;
+         <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#217_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#72_26">Control</A>;
+         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#218_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#73_26">Shift</A>;
+         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#219_4">BUTTON_ALT</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#74_26">Alt</A>;
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Dispatch_Event;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Dispatch_Event;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#128_14">Get_Event</A><FONT COLOR=red><A NAME="168_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#128_25">Event</A>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Event</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#129_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#130_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#131_25">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Mouse_Button</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#132_25">State</A>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Button_State</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#137_14">Get_Event</A><FONT COLOR=red><A NAME="169_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Event</A>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>;
+                        <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">Y</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                        <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">X</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                        <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A>;
+                        <A HREF="terminal_interface-curses-mouse__ads.htm#141_25">State</A>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Button_State</A>)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="174_7">Mask</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#128_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#163_10">Bstate</A>;
+      <FONT COLOR=red><A NAME="175_7">Mask</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#174_10">Bstate</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-mouse__ads.htm#130_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#128_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#161_10">X</A>);
-      <A HREF="terminal_interface-curses-mouse__ads.htm#129_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>   (<A HREF="terminal_interface-curses-mouse__ads.htm#128_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#161_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#131_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#132_25">State</A>);
+      <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#172_10">X</A>);
+      <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>   (<A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#172_13">Y</A>);
+      <A HREF="terminal_interface-curses-mouse__adb.htm#129_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#175_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#141_25">State</A>);
    <b>end</b> Get_Event;
 
    <b>end</b> Get_Event;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#138_14">Unget_Mouse</A><FONT COLOR=red><A NAME="181_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#138_27">Event</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Event</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#149_14">Unget_Mouse</A><FONT COLOR=red><A NAME="182_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#149_27">Event</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>)
    <b>is</b>
    <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#85_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="184_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="184_28">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#184_16">Ungetmouse</A>, "ungetmouse");
    <b>begin</b>
    <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#138_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#184_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#149_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Unget_Mouse;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Unget_Mouse;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#143_13">Enclosed_In_Window</A><FONT COLOR=red><A NAME="191_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#143_33">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                                <A HREF="terminal_interface-curses-mouse__ads.htm#144_33">Event</A>  : <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Event</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#154_13">Enclosed_In_Window</A><FONT COLOR=red><A NAME="192_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                                <A HREF="terminal_interface-curses-mouse__ads.htm#155_33">Event</A>  : <A HREF="terminal_interface-curses-mouse__ads.htm#92_9">Mouse_Event</A>) <b>return</b> Boolean
    <b>is</b>
    <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#1735_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="195_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="195_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="195_40">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>; <FONT COLOR=red><A NAME="195_51">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#195_16">Wenclose</A>, "wenclose");
    <b>begin</b>
    <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#143_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#144_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#161_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#144_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#161_10">X</A>))
-        = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#195_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#172_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#172_10">X</A>))
+        = <A HREF="terminal_interface-curses__ads.htm#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> Enclosed_In_Window;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Enclosed_In_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#150_13">Mouse_Interval</A><FONT COLOR=red><A NAME="206_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#150_29">Msec</A> : Natural := 200) <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#161_13">Mouse_Interval</A><FONT COLOR=red><A NAME="207_13"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#161_29">Msec</A> : Natural := 200) <b>return</b> Natural
    <b>is</b>
    <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="209_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="209_31">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#209_16">Mouseinterval</A>, "mouseinterval");
    <b>begin</b>
    <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#150_29">Msec</A>)));
+      <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#209_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#161_29">Msec</A>)));
    <b>end</b> Mouse_Interval;
 
 <b>end</b> Terminal_Interface.Curses.Mouse;
    <b>end</b> Mouse_Interval;
 
 <b>end</b> Terminal_Interface.Curses.Mouse;
index bfd6fe9f880887c4676ddcb6099b2c2517381a67..d562e906d289c93ce2ee3c042d8add5e8dbac00d 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.19 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.21 @</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>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  mouse binding.</EM></FONT>
    <FONT COLOR=green><EM>--  is still marked as experimental. So also this binding will change</EM></FONT>
    <FONT COLOR=green><EM>--  if the ncurses methods change.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  is still marked as experimental. So also this binding will change</EM></FONT>
    <FONT COLOR=green><EM>--  if the ncurses methods change.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
+   <FONT COLOR=green><EM>--  mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></FONT>
+   <FONT COLOR=green><EM>--  in the parent package.</EM></FONT>
+   <FONT COLOR=green><EM>--</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented:</EM></FONT>
+   <FONT COLOR=green><EM>--  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT>
+   <FONT COLOR=green><EM>--  or Start_Mouse)</EM></FONT>
    <b>type</b> Event_Mask <b>is</b> <b>private</b>;
    <b>type</b> Event_Mask <b>is</b> <b>private</b>;
-   <FONT COLOR=red><A NAME="59_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A>;
+   <FONT COLOR=red><A NAME="66_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A>;
    All_Events : <b>constant</b> Event_Mask;
 
    All_Events : <b>constant</b> Event_Mask;
 
-   <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="62_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
-                         <FONT COLOR=red><A NAME="63_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
-                         <FONT COLOR=red><A NAME="64_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
-                         <FONT COLOR=red><A NAME="65_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
-                         <FONT COLOR=red><A NAME="66_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
-                         <FONT COLOR=red><A NAME="67_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="69_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+                         <FONT COLOR=red><A NAME="70_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+                         <FONT COLOR=red><A NAME="71_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+                         <FONT COLOR=red><A NAME="72_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+                         <FONT COLOR=red><A NAME="73_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+                         <FONT COLOR=red><A NAME="74_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
                          Alt);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
 
                          Alt);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
 
-   <b>subtype</b> <FONT COLOR=red><A NAME="70_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#65_26">Left</A> .. Button4;
+   <b>subtype</b> <FONT COLOR=red><A NAME="77_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_26">Left</A> .. Button4;
    <b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
 
    <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="73_26">Released</A></FONT>,
-                         <FONT COLOR=red><A NAME="74_26">Pressed</A></FONT>,
-                         Clicked,
-                         <FONT COLOR=red><A NAME="76_26">Double_Clicked</A></FONT>,
+   <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="80_26">Released</A></FONT>,
+                         <FONT COLOR=red><A NAME="81_26">Pressed</A></FONT>,
+                         <FONT COLOR=red><A NAME="82_26">Clicked</A></FONT>,
+                         <FONT COLOR=red><A NAME="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,
                          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="83_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#78_9"> </A>                 <b>others</b> =&gt; False);
+   <FONT COLOR=red><A NAME="90_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#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>;
    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=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="96_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Mouse_Button</A>;
-      <FONT COLOR=red><A NAME="97_7">State</A></FONT>  : <b>in</b> Button_State;
+     (<FONT COLOR=red><A NAME="103_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#79_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="104_7">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>
       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
    <b>pragma</b> Inline (Register_Reportable_Event);
 
    <b>procedure</b> Register_Reportable_Events
-     (<FONT COLOR=red><A NAME="105_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="106_7">State</A></FONT>  : <b>in</b> Button_States;
+     (<FONT COLOR=red><A NAME="112_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="113_7">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>
       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>--  #1A NAME="AFU_1"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  There is one difference to mousmask(): we return the value of the</EM></FONT>
    <FONT COLOR=green><EM>--  old mask, that means the event mask value before this call.</EM></FONT>
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  There is one difference to mousmask(): we return the value of the</EM></FONT>
    <FONT COLOR=green><EM>--  old mask, that means the event mask value before this call.</EM></FONT>
-   <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := All_Events)
+   <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#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);
                          <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);
 
    <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="129_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Mouse_Event</A>;
-                        <FONT COLOR=red><A NAME="130_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                        <FONT COLOR=red><A NAME="131_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#61_9">Column_Position</A>;
-                        <FONT COLOR=red><A NAME="132_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#72_9">Mouse_Button</A>;
+   <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="138_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Mouse_Event</A>;
+                        <FONT COLOR=red><A NAME="139_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                        <FONT COLOR=red><A NAME="140_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#68_9">Column_Position</A>;
+                        <FONT COLOR=red><A NAME="141_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#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>
                         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>
+   <FONT COLOR=green><EM>--  Not Implemented: Get_Event only reports one event, the C library</EM></FONT>
+   <FONT COLOR=green><EM>--  version supports multiple events, e.g. {click-1, click-3}</EM></FONT>
    <b>pragma</b> Inline (Get_Event);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
    <b>pragma</b> Inline (Get_Event);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
    <b>pragma</b> Inline (Unget_Mouse);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</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="144_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#85_9">Window</A> := Standard_Window;
+   <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="155_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#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>
                                 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) ..
    <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="161_10"> </A></FONT>  <FONT COLOR=red><A NAME="161_13"> </A></FONT>  <FONT COLOR=red><A NAME="161_16"> </A></FONT>                 Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short'Last);
+         <FONT COLOR=red><A NAME="172_10"> </A></FONT>  <FONT COLOR=red><A NAME="172_13"> </A></FONT>  <FONT COLOR=red><A NAME="172_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) ..
          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="163_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#57_9"> </A>             Integer (Interfaces.C.int'Last);
+         <FONT COLOR=red><A NAME="174_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#64_9"> </A>             Integer (Interfaces.C.int'Last);
          Bstate  : Event_Mask;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Mouse_Event);
          Bstate  : Event_Mask;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Mouse_Event);
    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>
 
    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="183_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000001#;
-   <FONT COLOR=red><A NAME="184_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000002#;
-   <FONT COLOR=red><A NAME="185_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000004#;
-   <FONT COLOR=red><A NAME="186_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000010#;
-   <FONT COLOR=red><A NAME="187_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000020#;
-   <FONT COLOR=red><A NAME="188_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000040#;
-   <FONT COLOR=red><A NAME="189_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000100#;
-   <FONT COLOR=red><A NAME="190_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000200#;
-   <FONT COLOR=red><A NAME="191_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000400#;
-   <FONT COLOR=red><A NAME="192_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000001000#;
-   <FONT COLOR=red><A NAME="193_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000002000#;
-   <FONT COLOR=red><A NAME="194_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000004000#;
-   <FONT COLOR=red><A NAME="195_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000010000#;
-   <FONT COLOR=red><A NAME="196_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000020000#;
-   <FONT COLOR=red><A NAME="197_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000040000#;
-   <FONT COLOR=red><A NAME="198_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000100000#;
-   <FONT COLOR=red><A NAME="199_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000200000#;
-   <FONT COLOR=red><A NAME="200_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000400000#;
-   <FONT COLOR=red><A NAME="201_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00001000000#;
-   <FONT COLOR=red><A NAME="202_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00002000000#;
-   <FONT COLOR=red><A NAME="203_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00004000000#;
-   <FONT COLOR=red><A NAME="204_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00010000000#;
-   <FONT COLOR=red><A NAME="205_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00020000000#;
-   <FONT COLOR=red><A NAME="206_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00040000000#;
-   <FONT COLOR=red><A NAME="207_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00100000000#;
-   <FONT COLOR=red><A NAME="208_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00200000000#;
-   <FONT COLOR=red><A NAME="209_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00400000000#;
-   <FONT COLOR=red><A NAME="210_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00777777777#;
-   <FONT COLOR=red><A NAME="211_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000000077#;
-   <FONT COLOR=red><A NAME="212_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000007700#;
-   <FONT COLOR=red><A NAME="213_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := 8#00000770000#;
+   <FONT COLOR=red><A NAME="194_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000001#;
+   <FONT COLOR=red><A NAME="195_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000002#;
+   <FONT COLOR=red><A NAME="196_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000004#;
+   <FONT COLOR=red><A NAME="197_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000010#;
+   <FONT COLOR=red><A NAME="198_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000020#;
+   <FONT COLOR=red><A NAME="199_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000040#;
+   <FONT COLOR=red><A NAME="200_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000100#;
+   <FONT COLOR=red><A NAME="201_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000200#;
+   <FONT COLOR=red><A NAME="202_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000400#;
+   <FONT COLOR=red><A NAME="203_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000001000#;
+   <FONT COLOR=red><A NAME="204_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000002000#;
+   <FONT COLOR=red><A NAME="205_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000004000#;
+   <FONT COLOR=red><A NAME="206_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000010000#;
+   <FONT COLOR=red><A NAME="207_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000020000#;
+   <FONT COLOR=red><A NAME="208_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000040000#;
+   <FONT COLOR=red><A NAME="209_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000100000#;
+   <FONT COLOR=red><A NAME="210_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000200000#;
+   <FONT COLOR=red><A NAME="211_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000400000#;
+   <FONT COLOR=red><A NAME="212_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00001000000#;
+   <FONT COLOR=red><A NAME="213_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00002000000#;
+   <FONT COLOR=red><A NAME="214_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00004000000#;
+   <FONT COLOR=red><A NAME="215_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00010000000#;
+   <FONT COLOR=red><A NAME="216_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00020000000#;
+   <FONT COLOR=red><A NAME="217_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00040000000#;
+   <FONT COLOR=red><A NAME="218_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00100000000#;
+   <FONT COLOR=red><A NAME="219_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00200000000#;
+   <FONT COLOR=red><A NAME="220_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00400000000#;
+   <FONT COLOR=red><A NAME="221_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#01000000000#;
+   <FONT COLOR=red><A NAME="222_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00777777777#;
+   <FONT COLOR=red><A NAME="223_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000000077#;
+   <FONT COLOR=red><A NAME="224_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000007700#;
+   <FONT COLOR=red><A NAME="225_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := 8#00000770000#;
    BUTTON4_EVENTS            : <b>constant</b> Event_Mask := 8#00077000000#;
 
 
    BUTTON4_EVENTS            : <b>constant</b> Event_Mask := 8#00077000000#;
 
 
-   <A HREF="terminal_interface-curses-mouse__ads.htm#59_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#209_4">0</A>;
+   <A HREF="terminal_interface-curses-mouse__ads.htm#66_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#221_4">0</A>;
    All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
 
 <b>end</b> Terminal_Interface.Curses.Mouse;
    All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
 
 <b>end</b> Terminal_Interface.Curses.Mouse;
index 3e77b2e703a634974790fd9b291f582214f0ffca..dedbdb7f5a06f351b3dc5e4cde9231f65e264d53 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
+<b>use</b>  <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#44_35">Panels</A>;
+<b>use</b>  <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#44_35">Panels</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Panels.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#46_42">User_Data</A> <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#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>;
-                            Data : <b>in</b> User_Access)
+   <b>procedure</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_14">Set_User_Data</A><FONT COLOR=red><A NAME="52_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Pan</A>  : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                            <A HREF="terminal_interface-curses-panels-user_data__ads.htm#55_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <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>;
-                                  Addr : User_Access) <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="55_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="55_35">Pan</A></FONT>  : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                                  <FONT COLOR=red><A NAME="56_35">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#55_16">Set_Panel_Userptr</A>, "set_panel_userptr");
    <b>begin</b>
    <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>, Data) = <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#55_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#55_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_User_Data;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A><FONT COLOR=red><A NAME="63_13"></A></FONT> (<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> User_Access
+   <b>function</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#65_13">Get_User_Data</A><FONT COLOR=red><A NAME="64_13"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#65_28">Pan</A>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_9">User_Access</A>
    <b>is</b>
    <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> User_Access;
-      <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="66_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="66_31">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#66_16">Panel_Userptr</A>, "panel_userptr");
    <b>begin</b>
    <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>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#66_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#65_28">Pan</A>);
    <b>end</b> Get_User_Data;
 
    <b>end</b> Get_User_Data;
 
-   <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>;
-                            Data : <b>out</b> User_Access)
+   <b>procedure</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_14">Get_User_Data</A><FONT COLOR=red><A NAME="72_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Pan</A>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                            <A HREF="terminal_interface-curses-panels-user_data__ads.htm#61_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      Data := <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>);
+      <A HREF="terminal_interface-curses-panels-user_data__ads.htm#61_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Pan</A>);
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Panels.User_Data;
    <b>end</b> Get_User_Data;
 
 <b>end</b> Terminal_Interface.Curses.Panels.User_Data;
index 27e8d5b290e898df143bef1bb014a3829e3d2fff..90810b6857dc705c885db74a0d19b024c8bc6850 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> User <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="45_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#42_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#44_35">User</A>;
+<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#44_35"> </A><b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <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>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (Pan  : <b>in</b> Panel;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="55_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_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>
                             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 (Pan  : <b>in</b>  Panel;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="61_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_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>
 
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
 
index e3dca5e766a9df47a6d1dc6483f09e3c4b72e54c..d7214638b7ad5197d3f5fa1abc94e0249904c67c 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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>
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 
 <b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A><FONT COLOR=red><A NAME="44_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#44_35">Panels</A><FONT COLOR=red><A NAME="45_40"></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#23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#66_13">Create</A><FONT COLOR=red><A NAME="48_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-panels__ads.htm#67_13">Create</A><FONT COLOR=red><A NAME="49_13"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#67_21">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>
    <b>is</b>
    <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="51_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="51_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#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="54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
    <b>begin</b>
    <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#54_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#51_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#67_21">Win</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#54_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#54_4">Null_Panel</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#54_7">Pan</A>;
    <b>end</b> Create;
 
    <b>end</b> Create;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#77_14">Bottom</A><FONT COLOR=red><A NAME="63_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#77_22">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>)
    <b>is</b>
    <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="65_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="65_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#65_16">Bottompanel</A>, "bottom_panel");
    <b>begin</b>
    <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#65_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#77_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Bottom;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Bottom;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#82_14">Top</A><FONT COLOR=red><A NAME="73_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#82_19">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>)
    <b>is</b>
    <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="75_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="75_26">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#75_16">Toppanel</A>, "top_panel");
    <b>begin</b>
    <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#75_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#82_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Top;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Top;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#87_14">Show</A><FONT COLOR=red><A NAME="83_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#87_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>)
    <b>is</b>
    <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="85_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="85_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#85_16">Showpanel</A>, "show_panel");
    <b>begin</b>
    <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#85_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#87_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Show;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Show;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#97_14">Hide</A><FONT COLOR=red><A NAME="93_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#97_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>)
    <b>is</b>
    <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="95_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="95_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#95_16">Hidepanel</A>, "hide_panel");
    <b>begin</b>
    <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#95_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#97_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Hide;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Hide;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#101_13">Get_Window</A><FONT COLOR=red><A NAME="102_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-panels__ads.htm#102_13">Get_Window</A><FONT COLOR=red><A NAME="103_13"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#102_25">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <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="105_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="105_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#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="108_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#102_25">Pan</A>);
    <b>begin</b>
    <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#108_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#107_7">Win</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#108_7">Win</A>;
    <b>end</b> Get_Window;
 
    <b>end</b> Get_Window;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#111_14">Replace</A><FONT COLOR=red><A NAME="116_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#111_23">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                      <A HREF="terminal_interface-curses-panels__ads.htm#112_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <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="119_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="119_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                            <FONT COLOR=red><A NAME="120_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#119_16">Replace_Pan</A>, "replace_panel");
    <b>begin</b>
    <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#119_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#111_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#112_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Replace;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Replace;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#117_14">Move</A><FONT COLOR=red><A NAME="128_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#117_20">Pan</A>    : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                   <A HREF="terminal_interface-curses-panels__ads.htm#118_20">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                   <A HREF="terminal_interface-curses-panels__ads.htm#119_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <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="132_16">Move</A></FONT> (<FONT COLOR=red><A NAME="132_22">Pan</A></FONT>    : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
+                     <FONT COLOR=red><A NAME="133_22">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                     <FONT COLOR=red><A NAME="134_22">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#132_16">Move</A>, "move_panel");
    <b>begin</b>
    <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#132_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#117_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#118_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#119_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Move;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Move;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#123_13">Is_Hidden</A><FONT COLOR=red><A NAME="141_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-panels__ads.htm#124_13">Is_Hidden</A><FONT COLOR=red><A NAME="142_13"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#124_24">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> Boolean
    <b>is</b>
    <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="144_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="144_30">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#144_16">Panel_Hidden</A>, "panel_hidden");
    <b>begin</b>
    <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#144_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#124_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#76_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> Is_Hidden;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_Hidden;
 
-   <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> <A HREF="terminal_interface-curses-panels__ads.htm#139_14">Delete</A><FONT COLOR=red><A NAME="154_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#139_22">Pan</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>)
    <b>is</b>
    <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="156_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="156_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#156_16">Del_Panel</A>, "del_panel");
    <b>begin</b>
    <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#156_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#139_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#60_4">Panel_Exception</A>;
       <b>end</b> <b>if</b>;
       <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>;
+      <A HREF="terminal_interface-curses-panels__ads.htm#139_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#54_4">Null_Panel</A>;
    <b>end</b> Delete;
 
 <b>end</b> Terminal_Interface.Curses.Panels;
    <b>end</b> Delete;
 
 <b>end</b> Terminal_Interface.Curses.Panels;
index 5e5c6df969d5d050e407d071aabc3da3ac9fcd93..c7790ae811625ae57d116014e69b5764a305e9a0 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.15 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.16 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
    <b>pragma</b> Inline (Panel_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
    <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="112_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                       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="118_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Panel</A>;
+                   <FONT COLOR=red><A NAME="119_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                    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);
diff --git a/doc/html/ada/terminal_interface-curses-putwin__adb.htm b/doc/html/ada/terminal_interface-curses-putwin__adb.htm
new file mode 100644 (file)
index 0000000..1e857b3
--- /dev/null
@@ -0,0 +1,83 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                    Terminal_Interface.Curses.PutWin                      --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.2 @</EM></FONT>
+<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>;
+
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#44_35">PutWin</A><FONT COLOR=red><A NAME="46_40"></A></FONT> <b>is</b>
+
+   <b>package</b> <FONT COLOR=red><A NAME="48_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="49_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#56_12">C_Int</A>;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses-putwin__ads.htm#46_14">Put_Window</A><FONT COLOR=red><A NAME="52_14"></A></FONT> (<A HREF="terminal_interface-curses-putwin__ads.htm#46_26">Win</A>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <A HREF="terminal_interface-curses-putwin__ads.htm#47_26">File</A> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="54_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="54_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="54_38">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#54_16">putwin</A>, "putwin");
+
+      <FONT COLOR=red><A NAME="57_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#54_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#46_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#49_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#47_26">File</A>));
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#57_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Ok</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Put_Window;
+
+   <b>function</b> <A HREF="terminal_interface-curses-putwin__ads.htm#49_13">Get_Window</A><FONT COLOR=red><A NAME="64_13"></A></FONT> (<A HREF="terminal_interface-curses-putwin__ads.htm#49_25">File</A> : Ada.Streams.Stream_IO.File_Type)
+                        <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="66_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="66_24">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#66_16">getwin</A>, "getwin");
+
+      <FONT COLOR=red><A NAME="69_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#66_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#49_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#49_25">File</A>));
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#69_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>else</b>
+         <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#69_7">W</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Get_Window;
+
+<b>end</b> Terminal_Interface.Curses.PutWin;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-putwin__ads.htm b/doc/html/ada/terminal_interface-curses-putwin__ads.htm
new file mode 100644 (file)
index 0000000..8358e0e
--- /dev/null
@@ -0,0 +1,56 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                    Terminal_Interface.Curses.PutWin                      --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.2 @</EM></FONT>
+<FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+
+<b>with</b> Ada.Streams.Stream_IO;
+
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__adb.htm#46_40">PutWin</A><FONT COLOR=red><A NAME="44_35"></A></FONT> <b>is</b>
+
+   <b>procedure</b> <A HREF="terminal_interface-curses-putwin__adb.htm#52_14">Put_Window</A><FONT COLOR=red><A NAME="46_14"></A></FONT> (<FONT COLOR=red><A NAME="46_26">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="47_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type);
+
+   <b>function</b> <A HREF="terminal_interface-curses-putwin__adb.htm#64_13">Get_Window</A><FONT COLOR=red><A NAME="49_13"></A></FONT> (<FONT COLOR=red><A NAME="49_25">File</A></FONT>  : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+
+<b>end</b> Terminal_Interface.Curses.PutWin;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-termcap__adb.htm b/doc/html/ada/terminal_interface-curses-termcap__adb.htm
new file mode 100644 (file)
index 0000000..47ab7bd
--- /dev/null
@@ -0,0 +1,169 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                    Terminal_Interface.Curses.Termcap                     --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.4 @</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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#43_35">Termcap</A><FONT COLOR=red><A NAME="47_40"></A></FONT> <b>is</b>
+
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#60_13">Get_Entry</A><FONT COLOR=red><A NAME="49_13"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#60_24">Name</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="51_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="51_25">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="51_44">val</A></FONT> : char_array)
+                        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#51_16">tgetent</A>, "tgetent");
+      <FONT COLOR=red><A NAME="54_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#60_24">Name</A>'Length);
+      <FONT COLOR=red><A NAME="55_7">Length</A></FONT>  : size_t;
+      <FONT COLOR=red><A NAME="56_7">ignored</A></FONT> : char_array (0 .. 0) := (0 =&gt; nul);
+      <FONT COLOR=red><A NAME="57_7">result</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#60_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#54_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#55_7">Length</A>);
+      <A HREF="terminal_interface-curses-termcap__adb.htm#57_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#51_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#56_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#54_7">NameTxt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#57_7">result</A> = -1 <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>else</b>
+         <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#57_7">result</A>);
+      <b>end</b> <b>if</b>;
+   <b>end</b> Get_Entry;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#64_13">Get_Flag</A><FONT COLOR=red><A NAME="69_13"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#64_23">Name</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="71_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="71_26">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#71_16">tgetflag</A>, "tgetflag");
+      <FONT COLOR=red><A NAME="73_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#64_23">Name</A>'Length);
+      <FONT COLOR=red><A NAME="74_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#64_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#73_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#74_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#71_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#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> Get_Flag;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses-termcap__ads.htm#68_14">Get_Number</A><FONT COLOR=red><A NAME="85_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Name</A>   : <b>in</b>  String;
+                         <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Value</A>  : <b>out</b> Integer;
+                         <A HREF="terminal_interface-curses-termcap__ads.htm#70_26">Result</A> : <b>out</b> Boolean)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="89_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="89_25">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#89_16">tgetnum</A>, "tgetnum");
+      <FONT COLOR=red><A NAME="91_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Name</A>'Length);
+      <FONT COLOR=red><A NAME="92_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#91_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#92_7">Length</A>);
+      <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#89_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#91_7">Txt</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Value</A> = -1 <b>then</b>
+         <A HREF="terminal_interface-curses-termcap__ads.htm#70_26">Result</A> := False;
+      <b>else</b>
+         <A HREF="terminal_interface-curses-termcap__ads.htm#70_26">Result</A> :=  True;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Get_Number;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses-termcap__ads.htm#74_14">Get_String</A><FONT COLOR=red><A NAME="104_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Name</A>   : String;
+                         <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Value</A>  : <b>out</b> String;
+                         <A HREF="terminal_interface-curses-termcap__ads.htm#76_26">Result</A> : <b>out</b> Boolean)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="108_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="108_25">id</A></FONT>  : char_array;
+                        <FONT COLOR=red><A NAME="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#108_16">tgetstr</A>, "tgetstr");
+      <FONT COLOR=red><A NAME="111_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Name</A>'Length);
+      <FONT COLOR=red><A NAME="112_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="113_7">Txt2</A></FONT>   : chars_ptr;
+      <b>type</b> <FONT COLOR=red><A NAME="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="115_7">Return_Buffer</A></FONT> : <A HREF="terminal_interface-curses-termcap__adb.htm#114_12">t</A> := (0 =&gt; nul);
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#111_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Length</A>);
+      <A HREF="terminal_interface-curses-termcap__adb.htm#113_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#108_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#111_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#115_7">Return_Buffer</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#113_7">Txt2</A> = Null_Ptr <b>then</b>
+         <A HREF="terminal_interface-curses-termcap__ads.htm#76_26">Result</A> := False;
+      <b>else</b>
+         <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#113_7">Txt2</A>);
+         <A HREF="terminal_interface-curses-termcap__ads.htm#76_26">Result</A> := True;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Get_String;
+
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#77_13">Get_String</A><FONT COLOR=red><A NAME="127_13"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#77_25">Name</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="129_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="129_25">Id</A></FONT>  : char_array;
+                        <FONT COLOR=red><A NAME="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#129_16">tgetstr</A>, "tgetstr");
+      <FONT COLOR=red><A NAME="132_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#77_25">Name</A>'Length);
+      <FONT COLOR=red><A NAME="133_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="134_7">Txt2</A></FONT>   : chars_ptr;
+      <b>type</b> <FONT COLOR=red><A NAME="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="136_7">Phony_Txt</A></FONT> : <A HREF="terminal_interface-curses-termcap__adb.htm#135_12">t</A> := (0 =&gt; nul);
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#77_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#132_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#133_7">Length</A>);
+      <A HREF="terminal_interface-curses-termcap__adb.htm#134_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#129_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#132_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#136_7">Phony_Txt</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#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> Get_String;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#54_13">TGoto</A><FONT COLOR=red><A NAME="148_13"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Cap</A> : String;
+                   <A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Col</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                   <A HREF="terminal_interface-curses-termcap__ads.htm#56_20">Row</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#51_9">Termcap_String</A> <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="151_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="151_23">cap</A></FONT> : char_array;
+                      <FONT COLOR=red><A NAME="152_23">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="153_23">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#151_16">tgoto</A>);
+      <FONT COLOR=red><A NAME="155_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Cap</A>'Length);
+      <FONT COLOR=red><A NAME="156_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#155_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#156_7">Length</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#51_9">Termcap_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A>
+                             (<A HREF="terminal_interface-curses-termcap__adb.htm#151_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#155_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#56_20">Row</A>))));
+   <b>end</b> TGoto;
+
+
+<b>end</b> Terminal_Interface.Curses.Termcap;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-termcap__ads.htm b/doc/html/ada/terminal_interface-curses-termcap__ads.htm
new file mode 100644 (file)
index 0000000..a601a0f
--- /dev/null
@@ -0,0 +1,86 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                     Terminal_Interface.Curses.Termcap                    --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.2 @</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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__adb.htm#47_40">Termcap</A><FONT COLOR=red><A NAME="43_35"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#43_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="51_9">Termcap_String</A></FONT> <b>is</b> <b>new</b> String;
+
+   <FONT COLOR=green><EM>--  |</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__adb.htm#148_13">TGoto</A><FONT COLOR=red><A NAME="54_13"></A></FONT> (<FONT COLOR=red><A NAME="54_20">Cap</A></FONT> : String;
+                   <FONT COLOR=red><A NAME="55_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="56_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#51_9">Termcap_String</A>;
+   <FONT COLOR=green><EM>--  AKA: tgoto()</EM></FONT>
+
+   <FONT COLOR=green><EM>--  |</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__adb.htm#49_13">Get_Entry</A><FONT COLOR=red><A NAME="60_13"></A></FONT> (<FONT COLOR=red><A NAME="60_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> <A HREF="terminal_interface-curses-termcap__adb.htm#69_13">Get_Flag</A><FONT COLOR=red><A NAME="64_13"></A></FONT> (<FONT COLOR=red><A NAME="64_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#85_14">Get_Number</A><FONT COLOR=red><A NAME="68_14"></A></FONT> (<FONT COLOR=red><A NAME="68_26">Name</A></FONT>   : String;
+                         <FONT COLOR=red><A NAME="69_26">Value</A></FONT>  : <b>out</b> Integer;
+                         <FONT COLOR=red><A NAME="70_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#104_14">Get_String</A><FONT COLOR=red><A NAME="74_14"></A></FONT> (<FONT COLOR=red><A NAME="74_26">Name</A></FONT>   : String;
+                         <FONT COLOR=red><A NAME="75_26">Value</A></FONT>  : <b>out</b> String;
+                         <FONT COLOR=red><A NAME="76_26">Result</A></FONT> : <b>out</b> Boolean);
+   <b>function</b> <A HREF="terminal_interface-curses-termcap__adb.htm#127_13">Get_String</A><FONT COLOR=red><A NAME="77_13"></A></FONT> (<FONT COLOR=red><A NAME="77_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> Terminal_Interface.Curses.Termcap;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__adb.htm b/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
new file mode 100644 (file)
index 0000000..0e6979a
--- /dev/null
@@ -0,0 +1,167 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                    Terminal_Interface.Curses.Terminfo                    --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.2 @</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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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> Ada.Unchecked_Conversion;
+
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#45_35">Terminfo</A><FONT COLOR=red><A NAME="48_40"></A></FONT> <b>is</b>
+
+
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#53_13">Is_MinusOne_Pointer</A><FONT COLOR=red><A NAME="51_13"></A></FONT> (<FONT COLOR=red><A NAME="51_34">P</A></FONT> : <b>in</b> chars_ptr) <b>return</b> Boolean;
+
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#51_13">Is_MinusOne_Pointer</A><FONT COLOR=red><A NAME="53_13"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__adb.htm#51_34">P</A> : <b>in</b> chars_ptr) <b>return</b> Boolean <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="54_12">Weird_Address</A></FONT> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+      <FONT COLOR=red><A NAME="55_7">Invalid_Pointer</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#54_12">Weird_Address</A> := -1;
+      <b>function</b> <FONT COLOR=red><A NAME="56_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#54_12">Weird_Address</A>);
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#56_16">To_Weird</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#51_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#55_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> Is_MinusOne_Pointer;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#51_13">Is_MinusOne_Pointer</A>);
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#65_13">Get_Flag</A><FONT COLOR=red><A NAME="68_13"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#65_23">Name</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="70_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="70_27">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#70_16">tigetflag</A>);
+      <FONT COLOR=red><A NAME="72_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#65_23">Name</A>'Length);
+      <FONT COLOR=red><A NAME="73_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#65_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#72_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#73_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#70_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#72_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#75_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> Get_Flag;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#58_14">Get_String</A><FONT COLOR=red><A NAME="84_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Name</A>   : String;
+                         <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Value</A>  : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#55_9">Terminfo_String</A>;
+                         <A HREF="terminal_interface-curses-terminfo__ads.htm#60_26">Result</A> : <b>out</b> Boolean)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="88_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="88_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#88_16">tigetstr</A>, "tigetstr");
+      <FONT COLOR=red><A NAME="90_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Name</A>'Length);
+      <FONT COLOR=red><A NAME="91_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="92_7">Txt2</A></FONT> : chars_ptr;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#90_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Length</A>);
+      <A HREF="terminal_interface-curses-terminfo__adb.htm#92_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#88_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#90_7">Txt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#92_7">Txt2</A> = Null_Ptr <b>then</b>
+         <A HREF="terminal_interface-curses-terminfo__ads.htm#60_26">Result</A> := False;
+      <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#51_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#92_7">Txt2</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>else</b>
+         <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Value</A>  := <A HREF="terminal_interface-curses-terminfo__ads.htm#55_9">Terminfo_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#92_7">Txt2</A>));
+         <A HREF="terminal_interface-curses-terminfo__ads.htm#60_26">Result</A> := True;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Get_String;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#61_13">Has_String</A><FONT COLOR=red><A NAME="107_13"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#61_25">Name</A> : String) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="109_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="109_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#109_16">tigetstr</A>, "tigetstr");
+      <FONT COLOR=red><A NAME="111_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#61_25">Name</A>'Length);
+      <FONT COLOR=red><A NAME="112_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="113_7">Txt2</A></FONT> : chars_ptr;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#61_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#111_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Length</A>);
+      <A HREF="terminal_interface-curses-terminfo__adb.htm#113_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#109_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#111_7">Txt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#113_7">Txt2</A> = Null_Ptr <b>then</b>
+         <b>return</b> False;
+      <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#51_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#113_7">Txt2</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>else</b>
+         <b>return</b> True;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Has_String;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#69_13">Get_Number</A><FONT COLOR=red><A NAME="127_13"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#69_25">Name</A> : String) <b>return</b> Integer <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="128_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="128_26">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#128_16">tigetstr</A>);
+      <FONT COLOR=red><A NAME="130_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#69_25">Name</A>'Length);
+      <FONT COLOR=red><A NAME="131_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#69_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#130_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#131_7">Length</A>);
+      <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#128_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#130_7">Txt</A>));
+   <b>end</b> Get_Number;
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#77_14">Put_String</A><FONT COLOR=red><A NAME="138_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">Str</A>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#55_9">Terminfo_String</A>;
+                         <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">affcnt</A> : Natural := 1;
+                         <A HREF="terminal_interface-curses-terminfo__ads.htm#79_26">putc</A>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#72_9">putctype</A> := <b>null</b>) <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="141_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="141_23">str</A></FONT>    : char_array;
+                      <FONT COLOR=red><A NAME="142_23">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="143_23">putc</A></FONT>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#72_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="144_16">putp</A></FONT> (<FONT COLOR=red><A NAME="144_22">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#141_16">tputs</A>);
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#144_16">putp</A>);
+      <FONT COLOR=red><A NAME="147_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">Str</A>'Length);
+      <FONT COLOR=red><A NAME="148_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="149_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+   <b>begin</b>
+      To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#147_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#79_26">putc</A> = <b>null</b> <b>then</b>
+         <A HREF="terminal_interface-curses-terminfo__adb.htm#149_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#144_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#147_7">Txt</A>);
+      <b>else</b>
+         <A HREF="terminal_interface-curses-terminfo__adb.htm#149_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#141_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#147_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#79_26">putc</A>);
+      <b>end</b> <b>if</b>;
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#149_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Put_String;
+
+<b>end</b> Terminal_Interface.Curses.Terminfo;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__ads.htm b/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
new file mode 100644 (file)
index 0000000..b75149e
--- /dev/null
@@ -0,0 +1,87 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                     Terminal_Interface.Curses.Terminfo                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.2 @</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>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__adb.htm#48_40">Terminfo</A><FONT COLOR=red><A NAME="45_35"></A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#45_35">Terminfo</A>);
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page curs_terminfo.3x</EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented:  setupterm, setterm, set_curterm, del_curterm,</EM></FONT>
+   <FONT COLOR=green><EM>--                    restartterm, tparm, putp, vidputs,  vidattr,</EM></FONT>
+   <FONT COLOR=green><EM>--                    mvcur</EM></FONT>
+
+   <b>type</b> <FONT COLOR=red><A NAME="55_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#84_14">Get_String</A><FONT COLOR=red><A NAME="58_14"></A></FONT> (<FONT COLOR=red><A NAME="58_26">Name</A></FONT>   : String;
+                         <FONT COLOR=red><A NAME="59_26">Value</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#55_9">Terminfo_String</A>;
+                         <FONT COLOR=red><A NAME="60_26">Result</A></FONT> : <b>out</b> Boolean);
+   <b>function</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#107_13">Has_String</A><FONT COLOR=red><A NAME="61_13"></A></FONT> (<FONT COLOR=red><A NAME="61_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> <A HREF="terminal_interface-curses-terminfo__adb.htm#68_13">Get_Flag</A><FONT COLOR=red><A NAME="65_13"></A></FONT> (<FONT COLOR=red><A NAME="65_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> <A HREF="terminal_interface-curses-terminfo__adb.htm#127_13">Get_Number</A><FONT COLOR=red><A NAME="69_13"></A></FONT> (<FONT COLOR=red><A NAME="69_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="72_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="72_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#72_9">putctype</A>);
+
+   <FONT COLOR=green><EM>--  |</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#138_14">Put_String</A><FONT COLOR=red><A NAME="77_14"></A></FONT> (<FONT COLOR=red><A NAME="77_26">Str</A></FONT>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#55_9">Terminfo_String</A>;
+                         <FONT COLOR=red><A NAME="78_26">affcnt</A></FONT> : Natural := 1;
+                         <FONT COLOR=red><A NAME="79_26">putc</A></FONT>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#72_9">putctype</A> := <b>null</b>);
+   <FONT COLOR=green><EM>--  AKA: tputs()</EM></FONT>
+
+<b>end</b> Terminal_Interface.Curses.Terminfo;
+</PRE></BODY></HTML>
\ No newline at end of file
index 14797f8fc533e458681859526c748ab4c2038906..ac4415cdb27bc1f51c97e447d5683fbcb4111a97 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A><FONT COLOR=red><A NAME="41_48"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A><FONT COLOR=red><A NAME="42_48"></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> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A><FONT COLOR=red><A NAME="44_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>    : <b>in</b> String;
+      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Width</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>;
+      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Signal</A> : <b>in</b> Boolean := True;
+      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#53_7">Ljust</A>  : <b>in</b> Boolean := False)
    <b>is</b>
    <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="51_7">L</A></FONT>   : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>;
+      <FONT COLOR=red><A NAME="52_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>;
+      <FONT COLOR=red><A NAME="53_7">W</A></FONT>   : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Width</A>;
+      <FONT COLOR=red><A NAME="54_7">LC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="55_7">CC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="56_7">Y</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="57_7">X</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#61_17">Output</A><FONT COLOR=red><A NAME="59_17"></A></FONT> (<FONT COLOR=red><A NAME="59_25">From</A></FONT>, <FONT COLOR=red><A NAME="59_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_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> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_17">Output</A><FONT COLOR=red><A NAME="61_17"></A></FONT> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_25">From</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_31">To</A> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>)
       <b>is</b>
       <b>begin</b>
       <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#52_7">Len</A> &gt; 0 <b>then</b>
+            <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> = 0 <b>then</b>
+               <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>;
             <b>end</b> <b>if</b>;
             <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#52_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> <b>then</b>
                <FONT COLOR=green><EM>--  LRM A10.6 (7) says this</EM></FONT>
                <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#53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>;
             <b>end</b> <b>if</b>;
 
             <b>end</b> <b>if</b>;
 
-            <b>pragma</b> Assert (Len &lt;= W);
-            <A HREF="terminal_interface-curses__ads.htm#1157_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#52_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A>);
+            <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#55_7">CC</A>);
+            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#55_7">CC</A> <b>then</b>
+               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Signal</A> <b>then</b>
+                  <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#135_4">Layout_Error</A>;
                <b>else</b>
                   <b>return</b>;
                <b>end</b> <b>if</b>;
             <b>else</b>
                <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#52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#53_7">Ljust</A> <b>then</b>
                   <b>declare</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="84_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>))
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
-                     <A HREF="terminal_interface-curses-text_io__ads.htm#116_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#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#84_22">Filler</A>);
                   <b>end</b>;
                <b>end</b> <b>if</b>;
                   <b>end</b>;
                <b>end</b> <b>if</b>;
-               <A HREF="terminal_interface-curses__ads.htm#1173_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#87_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#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#57_7">X</A>);
+               <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#55_7">CC</A> <b>then</b>
+                  <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>);
                <b>end</b> <b>if</b>;
                <b>end</b> <b>if</b>;
-               <A HREF="terminal_interface-curses-text_io__ads.htm#116_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#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_31">To</A>));
+               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#53_7">Ljust</A> <b>then</b>
                   <b>declare</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="97_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>))
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
-                     <A HREF="terminal_interface-curses-text_io__ads.htm#116_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#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#97_22">Filler</A>);
                   <b>end</b>;
                <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
                   <b>end</b>;
                <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
       <b>end</b> Output;
 
    <b>begin</b>
       <b>end</b> Output;
 
    <b>begin</b>
-      <b>pragma</b> Assert (Win /= Null_Window);
-      <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#49_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#53_7">Ljust</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> := 1;
+         <b>for</b> <FONT COLOR=red><A NAME="111_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>'Length <b>loop</b>
+            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A>) = ' ';
+            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> + 1;
          <b>end</b> <b>loop</b>;
          <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#52_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> - 1;
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">Len</A>);
       <b>else</b>  <FONT COLOR=green><EM>-- input buffer is not left justified</EM></FONT>
       <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#51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>'Length;
+         <b>for</b> <FONT COLOR=red><A NAME="119_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>'Length <b>loop</b>
+            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A>) = ' ';
+            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> - 1;
          <b>end</b> <b>loop</b>;
          <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#52_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A>;
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#59_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Buf</A>'Length);
       <b>end</b> <b>if</b>;
    <b>end</b> Put_Buf;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Put_Buf;
 
index 32e2e743f7a86d2516eebae8bdbacb2b4ebf713f..31b6806dbae782ded7563e1341497069d295a3a8 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.11 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</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>.<A HREF="terminal_interface-curses-text_io-aux__adb.htm#41_48">Aux</A><FONT COLOR=red><A NAME="41_51"></A></FONT> <b>is</b>
+<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__adb.htm#42_48">Aux</A><FONT COLOR=red><A NAME="42_51"></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>
    <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> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#44_14">Put_Buf</A><FONT COLOR=red><A NAME="48_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="49_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;               <FONT COLOR=green><EM>-- The output window</EM></FONT>
+      <FONT COLOR=red><A NAME="50_7">Buf</A></FONT>    : <b>in</b> String;               <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
+      <FONT COLOR=red><A NAME="51_7">Width</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>;                <FONT COLOR=green><EM>-- The width of the output field</EM></FONT>
+      <FONT COLOR=red><A NAME="52_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="53_7">Ljust</A></FONT>  : <b>in</b> Boolean := False);    <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Aux;
 
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Aux;
 
index 67b5976ce28c24e9ce5b80a9ca60cebe0d5ebfe2..8aed31a15aa069bf4fd3dba763455631e56d1071 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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>
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#45_43">Float_IO</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#47_43">Complex_IO</A> <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="46_12">FIO</A></FONT> <b>is</b> <b>new</b>
+     <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#45_43">Float_IO</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#45_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> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Item</A> : <b>in</b> Complex;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#60_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#53_4">Default_Exp</A>)
    <b>is</b>
    <b>begin</b>
    <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-complex_io__ads.htm#55_7">Win</A>, '(');
-      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#45_12">FIO</A>.Put (<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-complex_io__ads.htm#54_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>.Put (<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-complex_io__ads.htm#54_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__ads.htm#109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>, '(');
+      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#46_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Item</A>.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#60_7">Exp</A>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>, ',');
+      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#46_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Item</A>.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#60_7">Exp</A>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Win</A>, ')');
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#62_14">Put</A><FONT COLOR=red><A NAME="64_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Item</A> : <b>in</b> Complex;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#66_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#53_4">Default_Exp</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_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>);
+      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Item</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#66_7">Exp</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
index 03753a83838ccdf80426ccf01fb3fa2792455f50..2d9149e00d3112442088de9fabbe47975f1cd93c 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Numerics.Generic_Complex_Types;
 
 <b>generic</b>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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="45_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="47_43">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#45_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="51_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := 2;
+   <FONT COLOR=red><A NAME="52_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := Real'<b>Digits</b> - 1;
+   <FONT COLOR=red><A NAME="53_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_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> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="56_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="57_7">Item</A></FONT> : <b>in</b> Complex;
+      <FONT COLOR=red><A NAME="58_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="59_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="60_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#53_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> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#64_14">Put</A><FONT COLOR=red><A NAME="62_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="63_7">Item</A></FONT> : <b>in</b> Complex;
+      <FONT COLOR=red><A NAME="64_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="65_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="66_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#53_4">Default_Exp</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index e458ec2a42628e094432415dc8877d29a9c5333f..9cfb1ab3bf56d3442f7282973a206145985c7a79 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#45_43">Decimal_IO</A> <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="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="48_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#43_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> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#56_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#49_4">Default_Exp</A>)
    <b>is</b>
    <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="57_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
+      <FONT COLOR=red><A NAME="58_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Aft</A>;
    <b>begin</b>
    <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#56_7">Exp</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#56_7">Exp</A>;
       <b>end</b> <b>if</b>;
       <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);
+      <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#48_12">DIO</A>.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#56_7">Exp</A>);
+      <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#58_7">Len</A>, False);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#58_14">Put</A><FONT COLOR=red><A NAME="67_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#62_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#49_4">Default_Exp</A>) <b>is</b>
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_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>);
+      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#62_7">Exp</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
index ee9138e956e2353339ea5953024ef6a8f64c8b0b..53122850e4c26bfa92e6cb46819202e764d3c77d 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>'Fore;
+   <FONT COLOR=red><A NAME="48_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>'Aft;
+   <FONT COLOR=red><A NAME="49_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_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> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#50_14">Put</A><FONT COLOR=red><A NAME="51_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="52_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="53_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="54_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="55_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="56_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#49_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> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#67_14">Put</A><FONT COLOR=red><A NAME="58_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="59_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="60_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="61_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="62_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#49_4">Default_Exp</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index 14d2332483de668ee5f269e1aeeab634ffb2686e..12fc55553f7e964f6286dc8f4d225379be860c35 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
 <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> 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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#45_43">Enumeration_IO</A> <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="48_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="49_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#43_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> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="51_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#43_9">Enum</A>;
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#54_7">Set</A>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#48_4">Default_Setting</A>)
    <b>is</b>
    <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="57_7">Buf</A></FONT>  : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
+      <FONT COLOR=red><A NAME="58_7">Tset</A></FONT> : Ada.Text_IO.Type_Set;
    <b>begin</b>
    <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#54_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#54_46">Mixed_Case</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#58_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#54_7">Set</A>));
       <b>else</b>
       <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#58_7">Tset</A> := Ada.Text_IO.Lower_Case;
       <b>end</b> <b>if</b>;
       <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#49_12">EIO</A>.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#58_7">Tset</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#54_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#54_46">Mixed_Case</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A>'First));
       <b>end</b> <b>if</b>;
       <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);
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Width</A>, True, True);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#56_14">Put</A><FONT COLOR=red><A NAME="72_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#43_9">Enum</A>;
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#59_7">Set</A>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#48_4">Default_Setting</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_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>);
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#59_7">Set</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
index 8bb95d8c6741dbe72c440876e6199c3133f6fb57..5b0bdaa0ea0c8b9a8a933c892a1eb82b51e17169 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := 0;
+   <FONT COLOR=red><A NAME="48_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#54_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> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#51_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#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="52_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#43_9">Enum</A>;
+      <FONT COLOR=red><A NAME="53_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="54_7">Set</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#48_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> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#72_14">Put</A><FONT COLOR=red><A NAME="56_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="57_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#43_9">Enum</A>;
+      <FONT COLOR=red><A NAME="58_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="59_7">Set</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#48_4">Default_Setting</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index 7e81c22c6083a8991058d9adfda91b6a78f7f423..75efa9206657ba51d48a2dbe8f5319cfb897bbbb 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#45_43">Fixed_IO</A> <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="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="48_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#43_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> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#56_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#49_4">Default_Exp</A>)
    <b>is</b>
    <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="57_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
+      <FONT COLOR=red><A NAME="58_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Aft</A>;
    <b>begin</b>
    <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#56_7">Exp</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#56_7">Exp</A>;
       <b>end</b> <b>if</b>;
       <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);
+      <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#48_12">FIXIO</A>.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#56_7">Exp</A>);
+      <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#58_7">Len</A>, False);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#58_14">Put</A><FONT COLOR=red><A NAME="67_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#62_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#49_4">Default_Exp</A>) <b>is</b>
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_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>);
+      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#62_7">Exp</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
index f5ac1251cf23bb408b36397c04a15c3a800c9b0e..fd159a186e61fa2b19c1853afca48403b52ccbe1 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>'Fore;
+   <FONT COLOR=red><A NAME="48_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>'Aft;
+   <FONT COLOR=red><A NAME="49_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_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> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#50_14">Put</A><FONT COLOR=red><A NAME="51_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="52_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="53_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="54_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="55_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="56_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#49_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> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#67_14">Put</A><FONT COLOR=red><A NAME="58_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="59_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="60_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="61_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="62_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#49_4">Default_Exp</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index d344cece7c0ed9f4c6b32b5bd9b9b9064cec0453..8e0b28b30f3901023401b467d89216f75d93a73d 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#45_43">Float_IO</A> <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="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="48_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#43_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> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#56_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#49_4">Default_Exp</A>)
    <b>is</b>
    <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="57_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
+      <FONT COLOR=red><A NAME="58_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Aft</A>;
    <b>begin</b>
    <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#56_7">Exp</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#56_7">Exp</A>;
       <b>end</b> <b>if</b>;
       <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);
+      <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#48_12">FIO</A>.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#56_7">Exp</A>);
+      <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#58_7">Len</A>, False);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_14">Put</A><FONT COLOR=red><A NAME="67_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Fore</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Aft</A>;
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#62_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#49_4">Default_Exp</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_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>);
+      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#62_7">Exp</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
index 3e5a7f091415dd966e8c7288b85217d4cdf7fad5..39d1358dfdd1ad57e646d88157f1c8f17f23da44 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := 2;
+   <FONT COLOR=red><A NAME="48_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#43_9">Num</A>'<b>Digits</b> - 1;
+   <FONT COLOR=red><A NAME="49_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_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> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#50_14">Put</A><FONT COLOR=red><A NAME="51_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="52_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="53_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="54_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="55_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="56_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#49_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> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#67_14">Put</A><FONT COLOR=red><A NAME="58_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="59_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="60_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Fore</A>;
+      <FONT COLOR=red><A NAME="61_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Aft</A>;
+      <FONT COLOR=red><A NAME="62_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#49_4">Default_Exp</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index 0264fa5d1bf5b50308e186398f0c358fabd2cb3d..1ef1b4ba78056e718169ceb01f84a6a8043b7199 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#45_43">Integer_IO</A> <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="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="48_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#43_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> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#54_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#48_4">Default_Base</A>)
    <b>is</b>
    <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="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#48_12">IIO</A>.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#54_7">Base</A>);
+      <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Width</A>);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#56_14">Put</A><FONT COLOR=red><A NAME="62_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#59_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#48_4">Default_Base</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_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>);
+      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#59_7">Base</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
index 9816bd2eff2da9bef8d51ccdeb382d92e0115606..fa07b6377e4105251ca919c8bbf1718257307c80 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#43_9">Num</A>'Width;
+   <FONT COLOR=red><A NAME="48_4">Default_Base</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#52_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> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#50_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#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="52_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="53_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="54_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#48_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> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#62_14">Put</A><FONT COLOR=red><A NAME="56_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="57_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="58_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="59_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#48_4">Default_Base</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index a2535ebaf9cbd1dd47bd0cc62cdfdadefb05b8e6..e7a9085f3306f99fd7e2ae1df0c1d4c8369ccbd5 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.8 @</EM></FONT>
+<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> Ada.Text_IO;
 <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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
 
 
-<b>package</b> <b>body</b> Terminal_Interface.Curses.Text_IO.<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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#45_43">Modular_IO</A> <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="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#42_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="48_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#43_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> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#54_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#48_4">Default_Base</A>)
    <b>is</b>
    <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="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A>'Last);
    <b>begin</b>
    <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>);
+      <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#48_12">MIO</A>.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#54_7">Base</A>);
+      <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Width</A>);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#56_14">Put</A><FONT COLOR=red><A NAME="62_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#43_9">Num</A>;
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Width</A>;
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#59_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#48_4">Default_Base</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_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>);
+      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#59_7">Base</A>);
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
    <b>end</b> Put;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
index 84bc5eae17249920c36fd10f1fd1a838ba9e9230..f63b9bd509f63cda9542448a4999aee0f9166b8e 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
 <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="43_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#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A>.<FONT COLOR=red><A NAME="45_43">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="47_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#43_9">Num</A>'Width;
+   <FONT COLOR=red><A NAME="48_4">Default_Base</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#52_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> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#50_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#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="52_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="53_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="54_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#48_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> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#62_14">Put</A><FONT COLOR=red><A NAME="56_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="57_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#43_9">Num</A>;
+      <FONT COLOR=red><A NAME="58_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Width</A>;
+      <FONT COLOR=red><A NAME="59_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#48_4">Default_Base</A>);
 
 <b>private</b>
 
 <b>private</b>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A>);
+   <b>pragma</b> Inline (Put);
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
index f38ec16866c11d7cd357302e089714e59f3eb13c..0166ab4686d74dc9c3ede4f44ebd0a48182ed278 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.13 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> Terminal_Interface.Curses.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A><FONT COLOR=red><A NAME="41_40"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#45_35">Text_IO</A><FONT COLOR=red><A NAME="42_40"></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="44_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#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> <A HREF="terminal_interface-curses-text_io__ads.htm#60_14">Set_Window</A><FONT COLOR=red><A NAME="46_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#60_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
    <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>;
+      <A HREF="terminal_interface-curses-text_io__adb.htm#44_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#60_26">Win</A>;
    <b>end</b> Set_Window;
 
    <b>end</b> Set_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A><FONT COLOR=red><A NAME="51_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A><FONT COLOR=red><A NAME="52_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <b>begin</b>
    <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#473_13">Standard_Window</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
       <b>else</b>
       <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#44_4">Default_Window</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Window;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Window;
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#63_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> <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A><FONT COLOR=red><A NAME="63_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#66_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1212_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#65_21">Win</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1039_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#66_21">Win</A>);
    <b>end</b> Flush;
 
    <b>end</b> Flush;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#67_14">Flush</A><FONT COLOR=red><A NAME="69_14"></A></FONT>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> Flush;
 
    <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
    <b>end</b> Flush;
 
    <FONT COLOR=green><EM>--------------------------------------------</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>
 
    <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><FONT COLOR=red><A NAME="83_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A><FONT COLOR=red><A NAME="84_13"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#78_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>
    <b>is</b>
    <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="86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="87_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1157_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>;
+      <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#78_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#87_7">N_Cols</A>);
+      <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#87_7">N_Cols</A>) &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>'Last) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#135_4">Layout_Error</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#87_7">N_Cols</A>);
    <b>end</b> Line_Length;
 
    <b>end</b> Line_Length;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A><FONT COLOR=red><A NAME="95_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#79_13">Line_Length</A><FONT COLOR=red><A NAME="96_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> Line_Length;
 
    <b>end</b> Line_Length;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A><FONT COLOR=red><A NAME="101_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A><FONT COLOR=red><A NAME="102_13"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#81_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>
    <b>is</b>
    <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="104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="105_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#967_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#1016_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#81_26">Win</A>) <b>then</b>
          <b>return</b> 0;
       <b>else</b>
          <b>return</b> 0;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1157_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>;
+         <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#81_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#105_7">N_Cols</A>);
+         <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#104_7">N_Lines</A>) &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>'Last) <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#135_4">Layout_Error</A>;
          <b>end</b> <b>if</b>;
          <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>);
+         <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#104_7">N_Lines</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Page_Length;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Page_Length;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A><FONT COLOR=red><A NAME="117_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#82_13">Page_Length</A><FONT COLOR=red><A NAME="118_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> Page_Length;
 
    <FONT COLOR=green><EM>------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT>
    <FONT COLOR=green><EM>------------------------------------</EM></FONT>
    <b>end</b> Page_Length;
 
    <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> <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A><FONT COLOR=red><A NAME="127_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#87_41">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> := 1)
    <b>is</b>
    <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#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>);
+      <FONT COLOR=red><A NAME="129_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Win</A>);
    <b>begin</b>
    <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#87_41">Spacing</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</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#102_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#90_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="135_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#87_41">Spacing</A> <b>loop</b>
+         <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#129_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#129_7">P_Size</A> <b>then</b>
+            <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Win</A>);
          <b>else</b>
          <b>else</b>
-            <A HREF="terminal_interface-curses__ads.htm#665_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#522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Win</A>, ASCII.LF);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
    <b>end</b> New_Line;
 
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
    <b>end</b> New_Line;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#88_14">New_Line</A><FONT COLOR=red><A NAME="144_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#88_24">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> := 1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#87_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#88_24">Spacing</A>);
    <b>end</b> New_Line;
 
    <b>end</b> New_Line;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A><FONT COLOR=red><A NAME="150_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#90_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1022_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#89_24">Win</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1074_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#90_24">Win</A>);
    <b>end</b> New_Page;
 
    <b>end</b> New_Page;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#91_14">New_Page</A><FONT COLOR=red><A NAME="156_14"></A></FONT>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> New_Page;
 
    <b>end</b> New_Page;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A><FONT COLOR=red><A NAME="162_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;  <A HREF="terminal_interface-curses-text_io__ads.htm#93_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>)
    <b>is</b>
    <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="164_7">Y</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="165_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="166_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="167_7">N</A></FONT>  : Natural;
    <b>begin</b>
    <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#93_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#1173_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#87_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#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X1</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#167_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#93_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#167_7">N</A> - 1;
+      <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#167_7">N</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">X2</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">Win</A>, 1);
+         <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X1</A> := 0;
       <b>end</b> <b>if</b>;
       <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#165_7">X1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">X2</A> <b>then</b>
          <b>declare</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="182_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#166_7">X2</A>) - 1))
               := (<b>others</b> =&gt; ' ');
          <b>begin</b>
               := (<b>others</b> =&gt; ' ');
          <b>begin</b>
-            <A HREF="terminal_interface-curses-text_io__ads.htm#116_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#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#182_13">Filler</A>);
          <b>end</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Col;
 
          <b>end</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Col;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#94_14">Set_Col</A><FONT COLOR=red><A NAME="190_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#94_23">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#93_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#94_23">To</A>);
    <b>end</b> Set_Col;
 
    <b>end</b> Set_Col;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A><FONT COLOR=red><A NAME="196_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#96_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>)
    <b>is</b>
    <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="198_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="199_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="200_7">X</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="201_7">N</A></FONT>  : Natural;
    <b>begin</b>
    <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#96_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#1173_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#90_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#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#201_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#96_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#201_7">N</A> - 1;
+      <A HREF="terminal_interface-curses-text_io__adb.htm#199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#201_7">N</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#199_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y1</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">Win</A>);
+         <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y1</A> := 0;
       <b>end</b> <b>if</b>;
       <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#87_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#198_7">Y1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#199_7">Y2</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#199_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y1</A>));
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Line;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Line;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#97_14">Set_Line</A><FONT COLOR=red><A NAME="219_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#97_24">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#96_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#97_24">To</A>);
    <b>end</b> Set_Line;
 
    <b>end</b> Set_Line;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A><FONT COLOR=red><A NAME="224_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A><FONT COLOR=red><A NAME="225_13"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#99_18">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>
    <b>is</b>
    <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="227_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="228_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="229_7">N</A></FONT> : Natural;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1173_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>;
+      <A HREF="terminal_interface-curses__ads.htm#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#99_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#229_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#228_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#229_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#229_7">N</A> + 1;
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#229_7">N</A> &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>'Last) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#135_4">Layout_Error</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#229_7">N</A>);
    <b>end</b> Col;
 
    <b>end</b> Col;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A><FONT COLOR=red><A NAME="238_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#100_13">Col</A><FONT COLOR=red><A NAME="239_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> Col;
 
    <b>end</b> Col;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A><FONT COLOR=red><A NAME="244_13"></A></FONT> (<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> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A><FONT COLOR=red><A NAME="245_13"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#102_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>
    <b>is</b>
    <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="247_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="248_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="249_7">N</A></FONT> : Natural;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1173_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>;
+      <A HREF="terminal_interface-curses__ads.htm#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#102_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#249_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#247_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#249_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#249_7">N</A> + 1;
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#249_7">N</A> &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>'Last) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#135_4">Layout_Error</A>;
       <b>end</b> <b>if</b>;
       <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>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#249_7">N</A>);
    <b>end</b> Line;
 
    <b>end</b> Line;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A><FONT COLOR=red><A NAME="258_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#103_13">Line</A><FONT COLOR=red><A NAME="259_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>);
    <b>end</b> Line;
 
    <FONT COLOR=green><EM>-----------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Characters Output --</EM></FONT>
    <FONT COLOR=green><EM>-----------------------</EM></FONT>
 
    <b>end</b> Line;
 
    <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> <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A><FONT COLOR=red><A NAME="269_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#109_37">Item</A> : <b>in</b> Character)
    <b>is</b>
    <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#81_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="271_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>);
+      <FONT COLOR=red><A NAME="272_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="273_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="274_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="275_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
    <b>begin</b>
    <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#1173_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#1157_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#90_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#271_7">P_Size</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#273_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#275_7">C</A>);
+         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#272_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#273_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#275_7">C</A> <b>then</b>
+            <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#665_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>);
+      <A HREF="terminal_interface-curses__ads.htm#522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#109_37">Item</A>);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#110_14">Put</A><FONT COLOR=red><A NAME="287_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#110_19">Item</A> : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#109_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#110_19">Item</A>);
    <b>end</b> Put;
 
    <FONT COLOR=green><EM>--------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
    <FONT COLOR=green><EM>--------------------</EM></FONT>
 
    <b>end</b> Put;
 
    <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> <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A><FONT COLOR=red><A NAME="297_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#116_37">Item</A> : <b>in</b> String)
    <b>is</b>
    <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#81_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="299_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>);
+      <FONT COLOR=red><A NAME="300_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="301_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="302_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="303_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
    <b>begin</b>
    <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#1173_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#1157_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#90_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#299_7">P_Size</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#301_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#303_7">C</A>);
+         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#300_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#301_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#116_37">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#303_7">C</A> <b>then</b>
+            <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#665_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>);
+      <A HREF="terminal_interface-curses__ads.htm#647_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#116_37">Item</A>);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#117_14">Put</A><FONT COLOR=red><A NAME="315_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#117_19">Item</A> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#116_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#117_19">Item</A>);
    <b>end</b> Put;
 
    <b>end</b> Put;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#119_14">Put_Line</A><FONT COLOR=red><A NAME="321_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses-text_io__ads.htm#121_7">Item</A> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#116_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#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>, 1);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#121_7">Item</A>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Win</A>, 1);
    <b>end</b> Put_Line;
 
    <b>end</b> Put_Line;
 
-   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#123_14">Put_Line</A><FONT COLOR=red><A NAME="330_14"></A></FONT>
+     (<A HREF="terminal_interface-curses-text_io__ads.htm#124_7">Item</A> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#122_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>);
+      <A HREF="terminal_interface-curses-text_io__ads.htm#119_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#124_7">Item</A>);
    <b>end</b> Put_Line;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO;
    <b>end</b> Put_Line;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO;
index 4e19b4bca177b8a2d67ddf46bfc9c6da4e24fdb7..07797d8f8ba0df2d8fad854e4a58ad2741ead95a 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.11 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.12 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
 <b>with</b> Ada.IO_Exceptions;
 
 <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> 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>.<A HREF="terminal_interface-curses-text_io__adb.htm#41_40">Text_IO</A><FONT COLOR=red><A NAME="44_35"></A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__adb.htm#42_40">Text_IO</A><FONT COLOR=red><A NAME="45_35"></A></FONT> <b>is</b>
 
    <b>use</b> <b>type</b> Ada.Text_IO.Count;
 
    <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="48_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count;
+   <b>subtype</b> <FONT COLOR=red><A NAME="49_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#48_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="51_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field;
+   <b>subtype</b> <FONT COLOR=red><A NAME="52_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> (Lower_Case, Upper_Case, Mixed_Case);
+   <b>type</b> <FONT COLOR=red><A NAME="54_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="54_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="54_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="54_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>
 
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#46_14">Set_Window</A><FONT COLOR=red><A NAME="60_14"></A></FONT> (<FONT COLOR=red><A NAME="60_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>);
    <FONT COLOR=green><EM>--  Set Win as the default window</EM></FONT>
 
    <FONT COLOR=green><EM>--  Set Win as the default window</EM></FONT>
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#51_13">Get_Window</A><FONT COLOR=red><A NAME="62_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#52_13">Get_Window</A><FONT COLOR=red><A NAME="63_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
    <FONT COLOR=green><EM>--  Get the current default window</EM></FONT>
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#63_14">Flush</A><FONT COLOR=red><A NAME="66_14"></A></FONT> (<FONT COLOR=red><A NAME="66_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#69_14">Flush</A><FONT COLOR=red><A NAME="67_14"></A></FONT>;
 
    <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
 
    <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>-- 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>
 
    <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__adb.htm#83_13">Line_Length</A><FONT COLOR=red><A NAME="77_13"></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> <A HREF="terminal_interface-curses-text_io__adb.htm#95_13">Line_Length</A><FONT COLOR=red><A NAME="78_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#84_13">Line_Length</A><FONT COLOR=red><A NAME="78_13"></A></FONT> (<FONT COLOR=red><A NAME="78_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#96_13">Line_Length</A><FONT COLOR=red><A NAME="79_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#101_13">Page_Length</A><FONT COLOR=red><A NAME="80_13"></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> <A HREF="terminal_interface-curses-text_io__adb.htm#117_13">Page_Length</A><FONT COLOR=red><A NAME="81_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#102_13">Page_Length</A><FONT COLOR=red><A NAME="81_13"></A></FONT> (<FONT COLOR=red><A NAME="81_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#118_13">Page_Length</A><FONT COLOR=red><A NAME="82_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_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>
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#127_14">New_Line</A><FONT COLOR=red><A NAME="87_14"></A></FONT> (<FONT COLOR=red><A NAME="87_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="87_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A> := 1);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#144_14">New_Line</A><FONT COLOR=red><A NAME="88_14"></A></FONT> (<FONT COLOR=red><A NAME="88_24">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_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> <A HREF="terminal_interface-curses-text_io__adb.htm#150_14">New_Page</A><FONT COLOR=red><A NAME="90_14"></A></FONT> (<FONT COLOR=red><A NAME="90_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#156_14">New_Page</A><FONT COLOR=red><A NAME="91_14"></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> <A HREF="terminal_interface-curses-text_io__adb.htm#162_14">Set_Col</A><FONT COLOR=red><A NAME="93_14"></A></FONT> (<FONT COLOR=red><A NAME="93_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;  <FONT COLOR=red><A NAME="93_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#190_14">Set_Col</A><FONT COLOR=red><A NAME="94_14"></A></FONT> (<FONT COLOR=red><A NAME="94_23">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_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> <A HREF="terminal_interface-curses-text_io__adb.htm#196_14">Set_Line</A><FONT COLOR=red><A NAME="96_14"></A></FONT> (<FONT COLOR=red><A NAME="96_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="96_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#219_14">Set_Line</A><FONT COLOR=red><A NAME="97_14"></A></FONT> (<FONT COLOR=red><A NAME="97_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>);
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#224_13">Col</A><FONT COLOR=red><A NAME="98_13"></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> <A HREF="terminal_interface-curses-text_io__adb.htm#238_13">Col</A><FONT COLOR=red><A NAME="99_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#225_13">Col</A><FONT COLOR=red><A NAME="99_13"></A></FONT> (<FONT COLOR=red><A NAME="99_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#239_13">Col</A><FONT COLOR=red><A NAME="100_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>;
 
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#244_13">Line</A><FONT COLOR=red><A NAME="101_13"></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> <A HREF="terminal_interface-curses-text_io__adb.htm#258_13">Line</A><FONT COLOR=red><A NAME="102_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#245_13">Line</A><FONT COLOR=red><A NAME="102_13"></A></FONT> (<FONT COLOR=red><A NAME="102_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>;
+   <b>function</b> <A HREF="terminal_interface-curses-text_io__adb.htm#259_13">Line</A><FONT COLOR=red><A NAME="103_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#49_12">Positive_Count</A>;
 
    <FONT COLOR=green><EM>-----------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Characters-Output --</EM></FONT>
    <FONT COLOR=green><EM>-----------------------</EM></FONT>
 
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#269_14">Put</A><FONT COLOR=red><A NAME="109_14"></A></FONT> (<FONT COLOR=red><A NAME="109_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="109_37">Item</A></FONT> : <b>in</b> Character);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#287_14">Put</A><FONT COLOR=red><A NAME="110_14"></A></FONT> (<FONT COLOR=red><A NAME="110_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>
 
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#297_14">Put</A><FONT COLOR=red><A NAME="116_14"></A></FONT> (<FONT COLOR=red><A NAME="116_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="116_37">Item</A></FONT> : <b>in</b> String);
+   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#315_14">Put</A><FONT COLOR=red><A NAME="117_14"></A></FONT> (<FONT COLOR=red><A NAME="117_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> <A HREF="terminal_interface-curses-text_io__adb.htm#321_14">Put_Line</A><FONT COLOR=red><A NAME="119_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="120_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="121_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> <A HREF="terminal_interface-curses-text_io__adb.htm#330_14">Put_Line</A><FONT COLOR=red><A NAME="123_14"></A></FONT>
+     (<FONT COLOR=red><A NAME="124_7">Item</A></FONT> : <b>in</b> String);
 
    <FONT COLOR=green><EM>--  Exceptions</EM></FONT>
 
 
    <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="128_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
+   <FONT COLOR=red><A NAME="129_4">Mode_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
+   <FONT COLOR=red><A NAME="130_4">Name_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
+   <FONT COLOR=red><A NAME="131_4">Use_Error</A></FONT>    : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
+   <FONT COLOR=red><A NAME="132_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
+   <FONT COLOR=red><A NAME="133_4">End_Error</A></FONT>    : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
+   <FONT COLOR=red><A NAME="134_4">Data_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
+   <FONT COLOR=red><A NAME="135_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
 
 <b>end</b> Terminal_Interface.Curses.Text_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
 
 <b>end</b> Terminal_Interface.Curses.Text_IO;
 </PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-trace__adb.htm b/doc/html/ada/terminal_interface-curses-trace__adb.htm
new file mode 100644 (file)
index 0000000..6ff73fe
--- /dev/null
@@ -0,0 +1,60 @@
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                      Terminal_Interface.Curses.Trace                     --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.3 @</EM></FONT>
+<FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#42_35">Trace</A><FONT COLOR=red><A NAME="43_40"></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="45_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>begin</b>
+      <b>null</b>;
+   <b>end</b> Trace_On;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses-trace__ads.htm#107_14">Trace_Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT> (<A HREF="terminal_interface-curses-trace__ads.htm#107_25">str</A> : String) <b>is</b>
+   <b>begin</b>
+      <b>null</b>;
+   <b>end</b> Trace_Put;
+
+<b>end</b> Terminal_Interface.Curses.Trace;
+</PRE></BODY></HTML>
\ No newline at end of file
diff --git a/doc/html/ada/terminal_interface-curses-trace__ads.htm b/doc/html/ada/terminal_interface-curses-trace__ads.htm
new file mode 100644 (file)
index 0000000..e741efd
--- /dev/null
@@ -0,0 +1,119 @@
+<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>
+<PRE>
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                      Terminal_Interface.Curses.Trace                     --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including      --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish,      --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell       --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is    --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions:                 --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included  --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software.                   --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --</EM></FONT>
+<FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright   --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the     --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>--  Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></FONT>
+<FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.1 @</EM></FONT>
+<FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+
+<b>package</b> Terminal_Interface.Curses.Trace <b>is</b>
+   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Trace);
+
+   <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;
+         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>pragma</b> Convention (C, Trace_Attribute_Set);
+
+   <b>for</b> Trace_Attribute_Set <b>use</b>
+      <b>record</b>
+         Times            <b>at</b> 0 <b>range</b>  0 ..  0;
+         Tputs            <b>at</b> 0 <b>range</b>  1 ..  1;
+         Update           <b>at</b> 0 <b>range</b>  2 ..  2;
+         Cursor_Move      <b>at</b> 0 <b>range</b>  3 ..  3;
+         Character_Output <b>at</b> 0 <b>range</b>  4 ..  4;
+         Calls            <b>at</b> 0 <b>range</b>  5 ..  5;
+         Virtual_Puts     <b>at</b> 0 <b>range</b>  6 ..  6;
+         Input_Events     <b>at</b> 0 <b>range</b>  7 ..  7;
+         TTY_State        <b>at</b> 0 <b>range</b>  8 ..  8;
+         Internal_Calls   <b>at</b> 0 <b>range</b>  9 ..  9;
+         Character_Calls  <b>at</b> 0 <b>range</b> 10 .. 10;
+         Termcap_TermInfo <b>at</b> 0 <b>range</b> 11 .. 11;
+      <b>end</b> <b>record</b>;
+   <b>for</b> Trace_Attribute_Set'Size <b>use</b> 32;
+   <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+   <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+
+   <b>pragma</b> Warnings (On);
+
+   Trace_Disable  : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; False);
+
+   Trace_Ordinary : <b>constant</b> Trace_Attribute_Set :=
+     (Times            =&gt; True,
+      Tputs            =&gt; True,
+      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);
+   Trace_Maximum : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; True);
+
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+   <b>procedure</b> Trace_On (x : Trace_Attribute_Set);
+   <FONT COLOR=green><EM>--  The debugging library has trace.</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+   <b>procedure</b> Trace_Put (str : String);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT>
+
+   Current_Trace_Setting : Trace_Attribute_Set;
+   <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
index a0be638f131c603c966e81fedb8d7eadb53f29fc..6d548853a0138d148934541aa9b335d07b99b1fd 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author: <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.26 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.28 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 
 <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="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#51_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#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> Ada.Strings.Fixed;
 <b>with</b> Ada.Unchecked_Conversion;
 
 <b>with</b> Ada.Strings.Fixed;
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> Terminal_Interface.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A><FONT COLOR=red><A NAME="51_33"></A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#49_28">Curses</A><FONT COLOR=red><A NAME="52_33"></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#51_35">Aux</A>;
    <b>use</b> <b>type</b> System.Bit_Order;
 
    <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="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#350_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="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#352_9">Attributed_Character</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#59_9">chtype_array</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>generic</b>
 
 <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="65_12">Element</A></FONT> <b>is</b> (&lt;&gt;);
+   <b>function</b> <FONT COLOR=red><A NAME="66_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="66_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="67_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#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> <A HREF="terminal_interface-curses__adb.htm#66_13">W_Get_Element</A> (<FONT COLOR=red><A NAME="69_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="70_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#65_12">Element</A> <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="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#65_12">Element</A>;
+      <b>package</b> <FONT COLOR=red><A NAME="72_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#65_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#71_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#65_12">Element</A>'Val (0));
+      <b>use</b> <A HREF="terminal_interface-curses__adb.htm#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="76_16">To_Pointer</A></FONT> <b>is</b> <b>new</b>
+        Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>, Pointer);
 
 
-      P : 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="79_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses__adb.htm#76_16">To_Pointer</A> (<A HREF="terminal_interface-curses__adb.htm#66_28">Win</A>);
    <b>begin</b>
    <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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#66_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>else</b>
       <b>else</b>
-         P := P + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#66_28">Offset</A>);
-         <b>return</b> P.<b>all</b>;
+         <A HREF="terminal_interface-curses__adb.htm#79_7">P</A> := <A HREF="terminal_interface-curses__adb.htm#79_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#67_28">Offset</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#79_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> W_Get_Element;
 
       <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="89_13">W_Get_Int</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="90_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="91_13">W_Get_Byte</A></FONT>  <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#66_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_char);
+
+   <b>function</b> <A HREF="terminal_interface-curses__adb.htm#96_13">Get_Flag</A><FONT COLOR=red><A NAME="93_13"></A></FONT> (<FONT COLOR=red><A NAME="93_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="94_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
+
+   <b>function</b> <A HREF="terminal_interface-curses__adb.htm#93_13">Get_Flag</A><FONT COLOR=red><A NAME="96_13"></A></FONT> (<A HREF="terminal_interface-curses__adb.htm#93_23">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                      <A HREF="terminal_interface-curses__adb.htm#94_23">Offset</A> : Natural) <b>return</b> Boolean
+   <b>is</b>
+      <FONT COLOR=red><A NAME="99_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+   <b>begin</b>
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1928_4">Sizeof_bool</A> <b>is</b>
+         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#91_13">W_Get_Byte</A>  (<A HREF="terminal_interface-curses__adb.htm#93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#94_23">Offset</A>));
+         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__adb.htm#93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#94_23">Offset</A>));
+         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Int</A>   (<A HREF="terminal_interface-curses__adb.htm#93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#94_23">Offset</A>));
+         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>case</b>;
+
+      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#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> Get_Flag;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1510_13">Key_Name</A><FONT COLOR=red><A NAME="93_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1510_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> <A HREF="terminal_interface-curses__ads.htm#1610_13">Key_Name</A><FONT COLOR=red><A NAME="115_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1610_23">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>) <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="95_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="95_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#95_16">Keyname</A>, "keyname");
+      <b>function</b> <FONT COLOR=red><A NAME="117_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="117_25">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#117_16">Keyname</A>, "keyname");
 
 
-      <FONT COLOR=red><A NAME="98_7">Ch</A></FONT> : Character;
+      <FONT COLOR=red><A NAME="120_7">Ch</A></FONT> : Character;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1510_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#98_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#1510_23">Key</A>);
-         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#98_7">Ch</A>) <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1521_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__adb.htm#98_7">Ch</A>,
-                                                     Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                                                     Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
-         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#98_7">Ch</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1610_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#120_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#1610_23">Key</A>);
+         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#120_7">Ch</A>) <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1621_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__adb.htm#120_7">Ch</A>,
+                                                     Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                                                     Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
+         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#120_7">Ch</A>) <b>then</b>
             <b>declare</b>
             <b>declare</b>
-               <FONT COLOR=red><A NAME="108_16">S</A></FONT> : String (1 .. 1);
+               <FONT COLOR=red><A NAME="130_16">S</A></FONT> : String (1 .. 1);
             <b>begin</b>
             <b>begin</b>
-               <A HREF="terminal_interface-curses__adb.htm#108_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#98_7">Ch</A>;
-               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#108_16">S</A>;
+               <A HREF="terminal_interface-curses__adb.htm#130_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#120_7">Ch</A>;
+               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#130_16">S</A>;
             <b>end</b>;
          <b>else</b>
             <b>return</b> "";
          <b>end</b> <b>if</b>;
       <b>else</b>
             <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#95_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1510_23">Key</A>)));
+         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#117_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1610_23">Key</A>)));
       <b>end</b> <b>if</b>;
    <b>end</b> Key_Name;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Key_Name;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1504_14">Key_Name</A><FONT COLOR=red><A NAME="121_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1504_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#1505_24">Name</A> : <b>out</b> String)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1604_14">Key_Name</A><FONT COLOR=red><A NAME="143_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1604_24">Key</A>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>;
+                       <A HREF="terminal_interface-curses__ads.htm#1605_24">Name</A> : <b>out</b> String)
    <b>is</b>
    <b>begin</b>
    <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#1510_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1504_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1505_24">Name</A>);
+      <A HREF="terminal_interface-curses__adb.htm#57_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#1610_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1604_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1605_24">Name</A>);
    <b>end</b> Key_Name;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Key_Name;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#478_14">Init_Screen</A><FONT COLOR=red><A NAME="129_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#480_14">Init_Screen</A><FONT COLOR=red><A NAME="151_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="131_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#131_16">Initscr</A>, "initscr");
+      <b>function</b> <FONT COLOR=red><A NAME="153_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#153_16">Initscr</A>, "initscr");
 
 
-      <FONT COLOR=red><A NAME="134_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+      <FONT COLOR=red><A NAME="156_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#134_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#131_16">Initscr</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#134_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#381_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#156_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#153_16">Initscr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#156_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Screen;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Screen;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#487_14">End_Windows</A><FONT COLOR=red><A NAME="142_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#489_14">End_Windows</A><FONT COLOR=red><A NAME="164_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="144_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#144_16">Endwin</A>, "endwin");
+      <b>function</b> <FONT COLOR=red><A NAME="166_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#166_16">Endwin</A>, "endwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#144_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#166_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> End_Windows;
 
       <b>end</b> <b>if</b>;
    <b>end</b> End_Windows;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#494_13">Is_End_Window</A><FONT COLOR=red><A NAME="152_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#496_13">Is_End_Window</A><FONT COLOR=red><A NAME="174_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="154_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#154_16">Isendwin</A>, "isendwin");
+      <b>function</b> <FONT COLOR=red><A NAME="176_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#176_16">Isendwin</A>, "isendwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#154_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#176_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#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> Is_End_Window;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_End_Window;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A><FONT COLOR=red><A NAME="164_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#503_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#504_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#505_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A><FONT COLOR=red><A NAME="186_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#505_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                          <A HREF="terminal_interface-curses__ads.htm#506_27">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                          <A HREF="terminal_interface-curses__ads.htm#507_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="168_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="168_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <FONT COLOR=red><A NAME="169_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="170_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#168_16">Wmove</A>, "wmove");
+      <b>function</b> <FONT COLOR=red><A NAME="190_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="190_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="191_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="192_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>
+                     ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#190_16">Wmove</A>, "wmove");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#168_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#503_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#504_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#505_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#190_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#505_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#506_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#507_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Cursor;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Cursor;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#514_14">Add</A><FONT COLOR=red><A NAME="179_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#514_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#515_19">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#517_14">Add</A><FONT COLOR=red><A NAME="201_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#517_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                  <A HREF="terminal_interface-curses__ads.htm#518_19">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="182_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="182_24">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="183_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#182_16">Waddch</A>, "waddch");
+      <b>function</b> <FONT COLOR=red><A NAME="204_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="204_24">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="205_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#204_16">Waddch</A>, "waddch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#182_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#514_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#515_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#204_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#517_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#518_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#518_14">Add</A><FONT COLOR=red><A NAME="191_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#518_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#519_19">Ch</A>  : <b>in</b> Character)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#522_14">Add</A><FONT COLOR=red><A NAME="213_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#522_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                  <A HREF="terminal_interface-curses__ads.htm#523_19">Ch</A>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#518_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#518_19">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#519_19">Ch</A>,
-                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
+      <A HREF="terminal_interface-curses__ads.htm#517_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#522_19">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#523_19">Ch</A>,
+                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
    <b>end</b> Add;
 
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#524_14">Add</A><FONT COLOR=red><A NAME="201_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#525_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#526_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#527_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#528_7">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#528_14">Add</A><FONT COLOR=red><A NAME="223_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#529_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#530_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#531_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#532_7">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="207_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="207_26">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="208_26">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="209_26">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="210_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#207_16">mvwaddch</A>, "mvwaddch");
+      <b>function</b> <FONT COLOR=red><A NAME="229_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="229_26">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="230_26">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="231_26">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="232_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#229_16">mvwaddch</A>, "mvwaddch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#207_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#525_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#526_7">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#527_7">Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#528_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#229_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#529_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#530_7">Line</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#531_7">Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#532_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#531_14">Add</A><FONT COLOR=red><A NAME="220_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#532_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#533_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#534_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#535_7">Ch</A>     : <b>in</b> Character)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#536_14">Add</A><FONT COLOR=red><A NAME="242_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#537_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#538_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#539_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#540_7">Ch</A>     : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#531_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#532_7">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#533_7">Line</A>,
-           <A HREF="terminal_interface-curses__ads.htm#534_7">Column</A>,
-           <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#535_7">Ch</A>,
-                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
+      <A HREF="terminal_interface-curses__ads.htm#528_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#537_7">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#538_7">Line</A>,
+           <A HREF="terminal_interface-curses__ads.htm#539_7">Column</A>,
+           <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#540_7">Ch</A>,
+                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
    <b>end</b> Add;
 
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#540_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="235_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#541_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#542_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#545_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="257_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#546_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#547_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="239_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="239_27">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <FONT COLOR=red><A NAME="240_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#239_16">Wechochar</A>, "wechochar");
+      <b>function</b> <FONT COLOR=red><A NAME="261_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="261_27">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="262_27">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#261_16">Wechochar</A>, "wechochar");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#239_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#541_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#542_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#261_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#546_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#547_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add_With_Immediate_Echo;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add_With_Immediate_Echo;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#545_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="248_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#546_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#547_7">Ch</A>  : <b>in</b> Character)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#551_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="270_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#552_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#553_7">Ch</A>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
       <A HREF="terminal_interface-curses__ads.htm#545_14">Add_With_Immediate_Echo</A>
    <b>is</b>
    <b>begin</b>
       <A HREF="terminal_interface-curses__ads.htm#545_14">Add_With_Immediate_Echo</A>
-        (<A HREF="terminal_interface-curses__ads.htm#546_7">Win</A>,
-         <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#547_7">Ch</A>,
-                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
+        (<A HREF="terminal_interface-curses__ads.htm#552_7">Win</A>,
+         <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#553_7">Ch</A>,
+                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
    <b>end</b> Add_With_Immediate_Echo;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Add_With_Immediate_Echo;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#556_13">Create</A><FONT COLOR=red><A NAME="260_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#557_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#558_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#559_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#560_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="265_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="265_24">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="266_24">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="267_24">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="268_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#265_16">Newwin</A>, "newwin");
-
-      <FONT COLOR=red><A NAME="271_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#271_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#265_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#557_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#558_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#559_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#560_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#271_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#381_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#271_7">W</A>;
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#563_13">Create</A><FONT COLOR=red><A NAME="282_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                    <A HREF="terminal_interface-curses__ads.htm#565_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+                    <A HREF="terminal_interface-curses__ads.htm#566_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                    <A HREF="terminal_interface-curses__ads.htm#567_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="287_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="287_24">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="288_24">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="289_24">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="290_24">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#287_16">Newwin</A>, "newwin");
+
+      <FONT COLOR=red><A NAME="293_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#293_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#287_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#565_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#566_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#567_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#293_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#293_7">W</A>;
    <b>end</b> Create;
 
    <b>end</b> Create;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#573_14">Delete</A><FONT COLOR=red><A NAME="283_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#573_22">Win</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#582_14">Delete</A><FONT COLOR=red><A NAME="305_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#582_22">Win</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="285_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="285_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#285_16">Wdelwin</A>, "delwin");
+      <b>function</b> <FONT COLOR=red><A NAME="307_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="307_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#307_16">Wdelwin</A>, "delwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#285_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#573_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#307_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#582_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#573_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#582_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A>;
    <b>end</b> Delete;
 
    <b>end</b> Delete;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#579_13">Sub_Window</A><FONT COLOR=red><A NAME="294_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#580_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#581_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#582_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#583_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#584_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="301_16">Subwin</A></FONT>
-        (<FONT COLOR=red><A NAME="302_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="303_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="304_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="305_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="306_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#301_16">Subwin</A>, "subwin");
-
-      <FONT COLOR=red><A NAME="309_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#309_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#301_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#580_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#581_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#582_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#583_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#584_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#309_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#381_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#309_7">W</A>;
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#588_13">Sub_Window</A><FONT COLOR=red><A NAME="316_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#589_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#591_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#592_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#593_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="323_16">Subwin</A></FONT>
+        (<FONT COLOR=red><A NAME="324_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+         <FONT COLOR=red><A NAME="325_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="326_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="327_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="328_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#323_16">Subwin</A>, "subwin");
+
+      <FONT COLOR=red><A NAME="331_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#331_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#323_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#589_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#591_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#592_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#593_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#331_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#331_7">W</A>;
    <b>end</b> Sub_Window;
 
    <b>end</b> Sub_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#589_13">Derived_Window</A><FONT COLOR=red><A NAME="322_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#590_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#591_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#592_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#593_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#594_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="329_16">Derwin</A></FONT>
-        (<FONT COLOR=red><A NAME="330_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="331_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="332_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="333_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="334_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#329_16">Derwin</A>, "derwin");
-
-      <FONT COLOR=red><A NAME="337_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#337_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#329_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#590_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#591_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#592_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#593_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#594_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#337_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#381_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#337_7">W</A>;
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#598_13">Derived_Window</A><FONT COLOR=red><A NAME="344_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#599_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#601_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#602_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#603_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="351_16">Derwin</A></FONT>
+        (<FONT COLOR=red><A NAME="352_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+         <FONT COLOR=red><A NAME="353_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="354_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="355_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="356_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#351_16">Derwin</A>, "derwin");
+
+      <FONT COLOR=red><A NAME="359_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#359_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#351_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#599_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#601_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#602_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#603_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#359_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#359_7">W</A>;
    <b>end</b> Derived_Window;
 
    <b>end</b> Derived_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#599_13">Duplicate</A><FONT COLOR=red><A NAME="350_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#599_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> <A HREF="terminal_interface-curses__ads.htm#608_13">Duplicate</A><FONT COLOR=red><A NAME="372_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#608_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="352_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="352_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#352_16">Dupwin</A>, "dupwin");
+      <b>function</b> <FONT COLOR=red><A NAME="374_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="374_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#374_16">Dupwin</A>, "dupwin");
 
 
-      <FONT COLOR=red><A NAME="355_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#352_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#599_24">Win</A>);
+      <FONT COLOR=red><A NAME="377_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#374_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#608_24">Win</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#355_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#377_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#355_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#377_7">W</A>;
    <b>end</b> Duplicate;
 
    <b>end</b> Duplicate;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#604_14">Move_Window</A><FONT COLOR=red><A NAME="363_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#604_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#605_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#606_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#613_14">Move_Window</A><FONT COLOR=red><A NAME="385_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#613_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                          <A HREF="terminal_interface-curses__ads.htm#614_27">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                          <A HREF="terminal_interface-curses__ads.htm#615_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="367_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="367_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <FONT COLOR=red><A NAME="368_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="369_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#367_16">Mvwin</A>, "mvwin");
+      <b>function</b> <FONT COLOR=red><A NAME="389_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="389_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="390_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="391_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#389_16">Mvwin</A>, "mvwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#367_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#604_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#605_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#606_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#389_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#613_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#614_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#615_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Window;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Window;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#611_14">Move_Derived_Window</A><FONT COLOR=red><A NAME="377_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#611_35">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#612_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#613_35">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#620_14">Move_Derived_Window</A><FONT COLOR=red><A NAME="399_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#620_35">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                                  <A HREF="terminal_interface-curses__ads.htm#621_35">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                                  <A HREF="terminal_interface-curses__ads.htm#622_35">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="381_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="381_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="382_26">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="383_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#381_16">Mvderwin</A>, "mvderwin");
+      <b>function</b> <FONT COLOR=red><A NAME="403_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="403_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="404_26">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="405_26">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#403_16">Mvderwin</A>, "mvderwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#381_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#611_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#612_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#613_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#403_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#620_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#621_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#622_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Derived_Window;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Move_Derived_Window;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#628_14">Set_Synch_Mode</A><FONT COLOR=red><A NAME="391_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#628_30">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                             <A HREF="terminal_interface-curses__ads.htm#629_30">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#637_14">Set_Synch_Mode</A><FONT COLOR=red><A NAME="413_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#637_30">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                             <A HREF="terminal_interface-curses__ads.htm#638_30">Mode</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="394_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="394_24">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="395_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#394_16">Syncok</A>, "syncok");
+      <b>function</b> <FONT COLOR=red><A NAME="416_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="416_24">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="417_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#416_16">Syncok</A>, "syncok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#394_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#628_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#629_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#416_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#637_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#638_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Synch_Mode;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Synch_Mode;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#638_14">Add</A><FONT COLOR=red><A NAME="403_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#638_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#639_19">Str</A> : <b>in</b> String;
-                  <A HREF="terminal_interface-curses__ads.htm#640_19">Len</A> : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#647_14">Add</A><FONT COLOR=red><A NAME="425_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#647_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                  <A HREF="terminal_interface-curses__ads.htm#648_19">Str</A> : <b>in</b> String;
+                  <A HREF="terminal_interface-curses__ads.htm#649_19">Len</A> : <b>in</b> Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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="408_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="408_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         Str : Char_Ptr;
-                         <FONT COLOR=red><A NAME="410_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#408_16">Waddnstr</A>, "waddnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="429_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="429_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="430_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="431_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#429_16">Waddnstr</A>, "waddnstr");
 
 
-      <FONT COLOR=red><A NAME="413_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#639_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="414_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="434_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#648_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="435_7">Length</A></FONT> : size_t;
    <b>begin</b>
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#639_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#413_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#414_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#408_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#638_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#413_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#413_7">Txt</A>'First)'<b>Access</b>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#640_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#381_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#648_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#434_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#435_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#429_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#647_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#434_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#649_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#645_14">Add</A><FONT COLOR=red><A NAME="422_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#645_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#646_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#647_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#648_19">Str</A>    : <b>in</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#649_19">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#656_14">Add</A><FONT COLOR=red><A NAME="443_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#656_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#657_19">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#658_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#659_19">Str</A>    : <b>in</b> String;
+      <A HREF="terminal_interface-curses__ads.htm#660_19">Len</A>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#645_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#646_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#647_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#645_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#645_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#648_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#649_19">Len</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#657_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#658_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#647_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#659_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#660_19">Len</A>);
    <b>end</b> Add;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Add;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#658_14">Add</A><FONT COLOR=red><A NAME="434_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#658_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#659_19">Str</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#660_19">Len</A> : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#671_14">Add</A><FONT COLOR=red><A NAME="455_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#671_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#672_19">Str</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Attributed_String</A>;
+      <A HREF="terminal_interface-curses__ads.htm#673_19">Len</A> : <b>in</b> Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Chtype_Ptr <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="440_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="440_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           Str : Chtype_Ptr;
-                           <FONT COLOR=red><A NAME="442_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#440_16">Waddchnstr</A>, "waddchnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="460_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="460_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="461_28">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#59_9">chtype_array</A>;
+                           <FONT COLOR=red><A NAME="462_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#460_16">Waddchnstr</A>, "waddchnstr");
 
 
-      <FONT COLOR=red><A NAME="445_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#659_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="465_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#672_19">Str</A>'Length);
    <b>begin</b>
    <b>begin</b>
-      <b>for</b> <FONT COLOR=red><A NAME="447_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#659_19">Str</A>'Length) <b>loop</b>
-         <A HREF="terminal_interface-curses__adb.htm#445_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#447_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#659_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#447_11">Length</A>));
+      <b>for</b> <FONT COLOR=red><A NAME="467_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#672_19">Str</A>'Length) <b>loop</b>
+         <A HREF="terminal_interface-curses__adb.htm#465_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#467_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#672_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#467_11">Length</A>));
       <b>end</b> <b>loop</b>;
       <b>end</b> <b>loop</b>;
-      <A HREF="terminal_interface-curses__adb.htm#445_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#659_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#440_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#658_19">Win</A>,
-                     <A HREF="terminal_interface-curses__adb.htm#445_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#445_7">Txt</A>'First)'<b>Access</b>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#660_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#381_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#465_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#672_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#460_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#671_19">Win</A>,
+                     <A HREF="terminal_interface-curses__adb.htm#465_7">Txt</A>,
+                     <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#673_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#665_14">Add</A><FONT COLOR=red><A NAME="458_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#665_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#666_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#667_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#668_19">Str</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#669_19">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#680_14">Add</A><FONT COLOR=red><A NAME="478_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#680_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#681_19">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#682_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#683_19">Str</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Attributed_String</A>;
+      <A HREF="terminal_interface-curses__ads.htm#684_19">Len</A>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#665_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#666_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#667_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#665_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#665_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#668_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#669_19">Len</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#681_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#682_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#671_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#683_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#684_19">Len</A>);
    <b>end</b> Add;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Add;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#679_14">Border</A><FONT COLOR=red><A NAME="470_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#680_7">Win</A>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#681_7">Left_Side_Symbol</A>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#682_7">Right_Side_Symbol</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#683_7">Top_Side_Symbol</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#684_7">Bottom_Side_Symbol</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#685_7">Upper_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#686_7">Upper_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#687_7">Lower_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#688_7">Lower_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="481_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="481_25">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="482_25">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="483_25">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="484_25">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="485_25">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="486_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="487_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="488_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="489_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#481_16">Wborder</A>, "wborder");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#481_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#680_7">Win</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#681_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#682_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#683_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#684_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#685_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#686_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#687_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#688_7">Lower_Right_Corner_Symbol</A>)
-                  ) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#698_14">Border</A><FONT COLOR=red><A NAME="490_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#699_7">Win</A>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#700_7">Left_Side_Symbol</A>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#701_7">Right_Side_Symbol</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#702_7">Top_Side_Symbol</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#703_7">Bottom_Side_Symbol</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#705_7">Upper_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#707_7">Lower_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="501_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="501_25">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="502_25">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="503_25">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="504_25">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="505_25">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="506_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="507_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="508_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="509_25">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#501_16">Wborder</A>, "wborder");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#501_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#699_7">Win</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#700_7">Left_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#701_7">Right_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#702_7">Top_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#703_7">Bottom_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#705_7">Upper_Right_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#707_7">Lower_Right_Corner_Symbol</A>)
+                  ) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A>
       <b>then</b>
       <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Border;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Border;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#694_14">Box</A><FONT COLOR=red><A NAME="507_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#695_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#696_7">Vertical_Symbol</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#697_7">Horizontal_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#714_14">Box</A><FONT COLOR=red><A NAME="527_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#715_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#716_7">Vertical_Symbol</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <A HREF="terminal_interface-curses__ads.htm#717_7">Horizontal_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#679_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#695_7">Win</A>,
-              <A HREF="terminal_interface-curses__ads.htm#696_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#696_7">Vertical_Symbol</A>,
-              <A HREF="terminal_interface-curses__ads.htm#697_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#697_7">Horizontal_Symbol</A>);
+      <A HREF="terminal_interface-curses__ads.htm#698_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#715_7">Win</A>,
+              <A HREF="terminal_interface-curses__ads.htm#716_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#716_7">Vertical_Symbol</A>,
+              <A HREF="terminal_interface-curses__ads.htm#717_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#717_7">Horizontal_Symbol</A>);
    <b>end</b> Box;
 
    <b>end</b> Box;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#702_14">Horizontal_Line</A><FONT COLOR=red><A NAME="518_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#703_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#704_7">Line_Size</A>   : <b>in</b> Natural;
-      <A HREF="terminal_interface-curses__ads.htm#705_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#722_14">Horizontal_Line</A><FONT COLOR=red><A NAME="538_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#723_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#724_7">Line_Size</A>   : <b>in</b> Natural;
+      <A HREF="terminal_interface-curses__ads.htm#725_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="523_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="523_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="524_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="525_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#523_16">Whline</A>, "whline");
+      <b>function</b> <FONT COLOR=red><A NAME="543_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="543_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="544_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="545_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#543_16">Whline</A>, "whline");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#523_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#703_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#705_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#704_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#543_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#723_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#725_7">Line_Symbol</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#724_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Horizontal_Line;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Horizontal_Line;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#710_14">Vertical_Line</A><FONT COLOR=red><A NAME="535_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#711_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#712_7">Line_Size</A>   : <b>in</b> Natural;
-      <A HREF="terminal_interface-curses__ads.htm#713_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#731_14">Vertical_Line</A><FONT COLOR=red><A NAME="555_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#732_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#733_7">Line_Size</A>   : <b>in</b> Natural;
+      <A HREF="terminal_interface-curses__ads.htm#734_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="540_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="540_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="541_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="542_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#540_16">Wvline</A>, "wvline");
+      <b>function</b> <FONT COLOR=red><A NAME="560_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="560_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="561_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="562_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#560_16">Wvline</A>, "wvline");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#540_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#711_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#713_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#712_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#560_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#732_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#734_7">Line_Symbol</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#733_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Vertical_Line;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Vertical_Line;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#722_13">Get_Keystroke</A><FONT COLOR=red><A NAME="553_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#722_28">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#745_13">Get_Keystroke</A><FONT COLOR=red><A NAME="573_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#745_28">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="556_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="556_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#556_16">Wgetch</A>, "wgetch");
+      <b>function</b> <FONT COLOR=red><A NAME="576_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="576_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#576_16">Wgetch</A>, "wgetch");
 
 
-      <FONT COLOR=red><A NAME="559_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#556_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#722_28">Win</A>);
+      <FONT COLOR=red><A NAME="579_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#576_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#745_28">Win</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#559_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#579_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#87_4">Key_None</A>;
       <b>else</b>
       <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#559_7">C</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#579_7">C</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Keystroke;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Keystroke;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#732_14">Undo_Keystroke</A><FONT COLOR=red><A NAME="568_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#732_30">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#756_14">Undo_Keystroke</A><FONT COLOR=red><A NAME="588_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#756_30">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="570_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="570_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#570_16">Ungetch</A>, "ungetch");
+      <b>function</b> <FONT COLOR=red><A NAME="590_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="590_25">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#590_16">Ungetch</A>, "ungetch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#570_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#732_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#590_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#756_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Undo_Keystroke;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Undo_Keystroke;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#737_13">Has_Key</A><FONT COLOR=red><A NAME="578_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#737_22">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#761_13">Has_Key</A><FONT COLOR=red><A NAME="598_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#761_22">Key</A> : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="580_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="580_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#580_16">Haskey</A>, "has_key");
+      <b>function</b> <FONT COLOR=red><A NAME="600_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="600_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#600_16">Haskey</A>, "has_key");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#580_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#737_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#600_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#761_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#76_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> Has_Key;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Has_Key;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Is_Function_Key</A><FONT COLOR=red><A NAME="590_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#744_30">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#768_13">Is_Function_Key</A><FONT COLOR=red><A NAME="610_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#768_30">Key</A> : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="592_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#748_12">Function_Key_Number</A>'Last));
+      <FONT COLOR=red><A NAME="612_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#97_4">Key_F0</A>) +
+        Natural (<A HREF="terminal_interface-curses__ads.htm#772_12">Function_Key_Number</A>'Last));
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#744_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#744_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#592_7">L</A>) <b>then</b>
+      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#768_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#97_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#768_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#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> Is_Function_Key;
 
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_Function_Key;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#751_13">Function_Key</A><FONT COLOR=red><A NAME="602_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#751_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#748_12">Function_Key_Number</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#775_13">Function_Key</A><FONT COLOR=red><A NAME="622_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#775_27">Key</A> : <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>)
+                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#772_12">Function_Key_Number</A>
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#751_27">Key</A>) <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#748_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#751_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#768_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#775_27">Key</A>) <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#772_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#775_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#97_4">Key_F0</A>);
       <b>else</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
    <b>end</b> Function_Key;
 
       <b>else</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
    <b>end</b> Function_Key;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#756_13">Function_Key_Code</A><FONT COLOR=red><A NAME="613_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#756_32">Key</A> : <A HREF="terminal_interface-curses__ads.htm#748_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#780_13">Function_Key_Code</A><FONT COLOR=red><A NAME="633_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#780_32">Key</A> : <A HREF="terminal_interface-curses__ads.htm#772_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A>
    <b>is</b>
    <b>begin</b>
    <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#756_32">Key</A>));
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#72_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#97_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#780_32">Key</A>));
    <b>end</b> Function_Key_Code;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Function_Key_Code;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#765_14">Switch_Character_Attribute</A><FONT COLOR=red><A NAME="619_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#766_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#767_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#768_7">On</A>   : <b>in</b> Boolean := True)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="624_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="624_25">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="625_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#624_16">Wattron</A>, "wattr_on");
-      <b>function</b> <FONT COLOR=red><A NAME="627_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="627_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="628_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#627_16">Wattroff</A>, "wattr_off");
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#794_14">Standout</A><FONT COLOR=red><A NAME="639_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#794_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                       <A HREF="terminal_interface-curses__ads.htm#795_24">On</A>  : Boolean := True)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="642_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="642_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#642_16">wstandout</A>, "wstandout");
+      <b>function</b> <FONT COLOR=red><A NAME="644_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="644_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#644_16">wstandend</A>, "wstandend");
+
+      <FONT COLOR=red><A NAME="647_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#795_24">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#642_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#794_24">Win</A>);
+      <b>else</b>
+         <A HREF="terminal_interface-curses__adb.htm#647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#644_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#794_24">Win</A>);
+      <b>end</b> <b>if</b>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#647_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Standout;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#800_14">Switch_Character_Attribute</A><FONT COLOR=red><A NAME="659_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#801_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#802_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses__ads.htm#803_7">On</A>   : <b>in</b> Boolean := True)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="664_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="664_25">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="665_25">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#664_16">Wattron</A>, "wattr_on");
+      <b>function</b> <FONT COLOR=red><A NAME="667_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="667_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="668_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#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=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="632_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="633_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#767_7">Attr</A>);
+      <FONT COLOR=red><A NAME="672_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="673_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#802_7">Attr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#768_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#632_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#624_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#766_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#633_7">AC</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#803_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#664_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#109_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#673_7">AC</A>));
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#632_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#627_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#766_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#633_7">AC</A>));
+         <A HREF="terminal_interface-curses__adb.htm#672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#667_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#109_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#673_7">AC</A>));
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#632_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#672_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Character_Attribute;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Character_Attribute;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#773_14">Set_Character_Attributes</A><FONT COLOR=red><A NAME="647_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#774_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#775_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#776_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#811_14">Set_Character_Attributes</A><FONT COLOR=red><A NAME="687_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#812_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#813_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses__ads.htm#814_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="652_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="652_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="653_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#652_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
+      <b>function</b> <FONT COLOR=red><A NAME="692_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="692_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="693_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#692_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#652_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#774_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#692_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#812_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#109_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'
                                          (Ch    =&gt; Character'First,
                                          (Ch    =&gt; Character'First,
-                                          Color =&gt; <A HREF="terminal_interface-curses__ads.htm#776_7">Color</A>,
-                                          Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#775_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#381_4">Curses_Exception</A>;
+                                          Color =&gt; <A HREF="terminal_interface-curses__ads.htm#814_7">Color</A>,
+                                          Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#813_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Character_Attributes;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Character_Attributes;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#781_13">Get_Character_Attribute</A><FONT COLOR=red><A NAME="665_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#782_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
-                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#820_13">Get_Character_Attribute</A><FONT COLOR=red><A NAME="705_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#821_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="668_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="668_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         Atr : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                         Col : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="671_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#668_16">Wattrget</A>, "wattr_get");
+      <b>function</b> <FONT COLOR=red><A NAME="708_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="708_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="709_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>;
+                         <FONT COLOR=red><A NAME="710_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="711_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#708_16">Wattrget</A>, "wattr_get");
 
 
-      <FONT COLOR=red><A NAME="674_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="675_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="676_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#668_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#782_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#674_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#675_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="714_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>;
+      <FONT COLOR=red><A NAME="715_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="716_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#708_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#821_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#714_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#715_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="678_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="718_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#676_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#678_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#674_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#678_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#352_10">Attr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#716_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#718_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#113_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#714_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#718_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
       <b>else</b>
       <b>else</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Character_Attribute;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Character_Attribute;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#786_13">Get_Character_Attribute</A><FONT COLOR=red><A NAME="688_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#787_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
-                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#826_13">Get_Character_Attribute</A><FONT COLOR=red><A NAME="728_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#827_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="691_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="691_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         Atr : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                         Col : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="694_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#691_16">Wattrget</A>, "wattr_get");
+      <b>function</b> <FONT COLOR=red><A NAME="731_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="731_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="732_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>;
+                         <FONT COLOR=red><A NAME="733_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="734_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#731_16">Wattrget</A>, "wattr_get");
 
 
-      <FONT COLOR=red><A NAME="697_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="698_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="699_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#691_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#787_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#697_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#698_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="737_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>;
+      <FONT COLOR=red><A NAME="738_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="739_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#731_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#737_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#738_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="701_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="741_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#699_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#701_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#697_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#701_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#353_10">Color</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#739_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#741_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#113_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#737_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#741_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
       <b>else</b>
       <b>else</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Character_Attribute;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Character_Attribute;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#792_14">Set_Color</A><FONT COLOR=red><A NAME="711_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#792_25">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                        <A HREF="terminal_interface-curses__ads.htm#793_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#832_14">Set_Color</A><FONT COLOR=red><A NAME="751_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#832_25">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                        <A HREF="terminal_interface-curses__ads.htm#833_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="714_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="714_28">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="715_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                           <FONT COLOR=red><A NAME="716_28">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#62_12">C_Void_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__adb.htm#714_16">Wset_Color</A>, "wcolor_set");
+      <b>function</b> <FONT COLOR=red><A NAME="754_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="754_28">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="755_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                           <FONT COLOR=red><A NAME="756_28">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#754_16">Wset_Color</A>, "wcolor_set");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#714_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#792_25">Win</A>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#793_25">Pair</A>),
-                     <A HREF="terminal_interface-curses-aux__ads.htm#62_12">C_Void_Ptr</A> (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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#754_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#832_25">Win</A>,
+                     <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#833_25">Pair</A>),
+                     <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Color;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Color;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#798_14">Change_Attributes</A><FONT COLOR=red><A NAME="726_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#799_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#800_7">Count</A> : <b>in</b> Integer := -1;
-      <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#802_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#839_14">Change_Attributes</A><FONT COLOR=red><A NAME="766_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#840_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#841_7">Count</A> : <b>in</b> Integer := -1;
+      <A HREF="terminal_interface-curses__ads.htm#842_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses__ads.htm#843_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="732_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="732_24">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="733_24">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="734_24">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                       <FONT COLOR=red><A NAME="735_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                       <FONT COLOR=red><A NAME="736_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#732_16">Wchgat</A>, "wchgat");
+      <b>function</b> <FONT COLOR=red><A NAME="772_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="772_24">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="773_24">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="774_24">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#65_12">C_AttrType</A>;
+                       <FONT COLOR=red><A NAME="775_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                       <FONT COLOR=red><A NAME="776_24">Opts</A></FONT>  : System.Address := System.Null_Address)
+                       <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#772_16">Wchgat</A>, "wchgat");
 
 
-      <FONT COLOR=red><A NAME="740_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> :=
-        (Ch =&gt; Character'First, Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First, Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A>);
+      <FONT COLOR=red><A NAME="780_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> :=
+        (Ch =&gt; Character'First, Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First, Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#842_7">Attr</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#732_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#799_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#800_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#740_7">Ch</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#802_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#772_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#840_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#841_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#109_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#780_7">Ch</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#843_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Attributes;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Attributes;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#806_14">Change_Attributes</A><FONT COLOR=red><A NAME="749_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#807_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#808_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#809_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#810_7">Count</A>  : <b>in</b> Integer := -1;
-      <A HREF="terminal_interface-curses__ads.htm#811_7">Attr</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#812_7">Color</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#848_14">Change_Attributes</A><FONT COLOR=red><A NAME="789_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#849_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#850_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>'First;
+      <A HREF="terminal_interface-curses__ads.htm#851_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>'First;
+      <A HREF="terminal_interface-curses__ads.htm#852_7">Count</A>  : <b>in</b> Integer := -1;
+      <A HREF="terminal_interface-curses__ads.htm#853_7">Attr</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses__ads.htm#854_7">Color</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#807_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#808_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#809_7">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#806_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#807_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#810_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#811_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#812_7">Color</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#850_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#851_7">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#839_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#852_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#853_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#854_7">Color</A>);
    <b>end</b> Change_Attributes;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Change_Attributes;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#821_14">Beep</A><FONT COLOR=red><A NAME="762_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#864_14">Beep</A><FONT COLOR=red><A NAME="802_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="764_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#764_16">Beeper</A>, "beep");
+      <b>function</b> <FONT COLOR=red><A NAME="804_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#804_16">Beeper</A>, "beep");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#764_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#804_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Beep;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Beep;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#826_14">Flash_Screen</A><FONT COLOR=red><A NAME="772_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#869_14">Flash_Screen</A><FONT COLOR=red><A NAME="812_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="774_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#774_16">Flash</A>, "flash");
+      <b>function</b> <FONT COLOR=red><A NAME="814_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#814_16">Flash</A>, "flash");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#774_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#814_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Flash_Screen;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Flash_Screen;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#837_14">Set_Cbreak_Mode</A><FONT COLOR=red><A NAME="782_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#837_31">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#880_14">Set_Cbreak_Mode</A><FONT COLOR=red><A NAME="822_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#880_31">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="784_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#784_16">Cbreak</A>, "cbreak");
-      <b>function</b> <FONT COLOR=red><A NAME="786_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#786_16">NoCbreak</A>, "nocbreak");
+      <b>function</b> <FONT COLOR=red><A NAME="824_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#824_16">Cbreak</A>, "cbreak");
+      <b>function</b> <FONT COLOR=red><A NAME="826_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#826_16">NoCbreak</A>, "nocbreak");
 
 
-      <FONT COLOR=red><A NAME="789_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="829_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#837_31">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#789_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#784_16">Cbreak</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#880_31">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#824_16">Cbreak</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#789_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#786_16">NoCbreak</A>;
+         <A HREF="terminal_interface-curses__adb.htm#829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#826_16">NoCbreak</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#789_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#829_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Cbreak_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Cbreak_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#843_14">Set_Raw_Mode</A><FONT COLOR=red><A NAME="801_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#843_28">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#886_14">Set_Raw_Mode</A><FONT COLOR=red><A NAME="841_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#886_28">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="803_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#803_16">Raw</A>, "raw");
-      <b>function</b> <FONT COLOR=red><A NAME="805_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#805_16">NoRaw</A>, "noraw");
+      <b>function</b> <FONT COLOR=red><A NAME="843_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#843_16">Raw</A>, "raw");
+      <b>function</b> <FONT COLOR=red><A NAME="845_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#845_16">NoRaw</A>, "noraw");
 
 
-      <FONT COLOR=red><A NAME="808_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="848_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#843_28">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#808_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#803_16">Raw</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#886_28">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#843_16">Raw</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#808_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#805_16">NoRaw</A>;
+         <A HREF="terminal_interface-curses__adb.htm#848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#845_16">NoRaw</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#808_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#848_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Raw_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Raw_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#849_14">Set_Echo_Mode</A><FONT COLOR=red><A NAME="820_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#849_29">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#892_14">Set_Echo_Mode</A><FONT COLOR=red><A NAME="860_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#892_29">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="822_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#822_16">Echo</A>, "echo");
-      <b>function</b> <FONT COLOR=red><A NAME="824_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#824_16">NoEcho</A>, "noecho");
+      <b>function</b> <FONT COLOR=red><A NAME="862_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#862_16">Echo</A>, "echo");
+      <b>function</b> <FONT COLOR=red><A NAME="864_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#864_16">NoEcho</A>, "noecho");
 
 
-      <FONT COLOR=red><A NAME="827_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="867_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#849_29">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#827_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#822_16">Echo</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#892_29">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#862_16">Echo</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#827_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#824_16">NoEcho</A>;
+         <A HREF="terminal_interface-curses__adb.htm#867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#864_16">NoEcho</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#827_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#867_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Echo_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Echo_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#855_14">Set_Meta_Mode</A><FONT COLOR=red><A NAME="839_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#855_29">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#856_29">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#898_14">Set_Meta_Mode</A><FONT COLOR=red><A NAME="879_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#898_29">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                            <A HREF="terminal_interface-curses__ads.htm#899_29">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="842_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="842_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="842_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#842_16">Meta</A>, "meta");
+      <b>function</b> <FONT COLOR=red><A NAME="882_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="882_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="882_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#882_16">Meta</A>, "meta");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#842_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#855_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#856_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#882_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#898_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#899_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Meta_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Meta_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#861_14">Set_KeyPad_Mode</A><FONT COLOR=red><A NAME="850_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#861_31">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                              <A HREF="terminal_interface-curses__ads.htm#862_31">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#904_14">Set_KeyPad_Mode</A><FONT COLOR=red><A NAME="890_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#904_31">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                              <A HREF="terminal_interface-curses__ads.htm#905_31">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="853_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="853_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="853_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#853_16">Keypad</A>, "keypad");
+      <b>function</b> <FONT COLOR=red><A NAME="893_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="893_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="893_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#893_16">Keypad</A>, "keypad");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#853_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#861_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#862_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#893_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#904_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#905_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_KeyPad_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_KeyPad_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#869_14">Half_Delay</A><FONT COLOR=red><A NAME="861_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#869_26">Amount</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#866_9">Half_Delay_Amount</A>)
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#909_13">Get_KeyPad_Mode</A><FONT COLOR=red><A NAME="901_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#909_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+                             <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="863_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="863_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#863_16">Halfdelay</A>, "halfdelay");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#863_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#869_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#381_4">Curses_Exception</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#909_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1927_4">Offset_use_keypad</A>);
+   <b>end</b> Get_KeyPad_Mode;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#917_14">Half_Delay</A><FONT COLOR=red><A NAME="908_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#917_26">Amount</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#914_9">Half_Delay_Amount</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="910_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="910_27">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#910_16">Halfdelay</A>, "halfdelay");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#910_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#917_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Half_Delay;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Half_Delay;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#874_14">Set_Flush_On_Interrupt_Mode</A><FONT COLOR=red><A NAME="871_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#875_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#876_7">Mode</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#922_14">Set_Flush_On_Interrupt_Mode</A><FONT COLOR=red><A NAME="918_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#923_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#924_7">Mode</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="875_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="875_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="875_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#875_16">Intrflush</A>, "intrflush");
+      <b>function</b> <FONT COLOR=red><A NAME="922_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="922_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="922_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#922_16">Intrflush</A>, "intrflush");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#875_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#875_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#876_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#922_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#923_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#924_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Flush_On_Interrupt_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Flush_On_Interrupt_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#881_14">Set_Queue_Interrupt_Mode</A><FONT COLOR=red><A NAME="883_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#882_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#883_7">Flush</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#929_14">Set_Queue_Interrupt_Mode</A><FONT COLOR=red><A NAME="930_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#930_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#931_7">Flush</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="887_17">Qiflush</A></FONT>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#887_17">Qiflush</A>, "qiflush");
-      <b>procedure</b> <FONT COLOR=red><A NAME="889_17">No_Qiflush</A></FONT>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#889_17">No_Qiflush</A>, "noqiflush");
+      <b>procedure</b> <FONT COLOR=red><A NAME="934_17">Qiflush</A></FONT>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#934_17">Qiflush</A>, "qiflush");
+      <b>procedure</b> <FONT COLOR=red><A NAME="936_17">No_Qiflush</A></FONT>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#936_17">No_Qiflush</A>, "noqiflush");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#883_7">Flush</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#887_17">Qiflush</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#931_7">Flush</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#934_17">Qiflush</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#889_17">No_Qiflush</A>;
+         <A HREF="terminal_interface-curses__adb.htm#936_17">No_Qiflush</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Queue_Interrupt_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Queue_Interrupt_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#889_14">Set_NoDelay_Mode</A><FONT COLOR=red><A NAME="899_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#890_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#891_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#937_14">Set_NoDelay_Mode</A><FONT COLOR=red><A NAME="946_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#938_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#939_7">Mode</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="903_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="903_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="903_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#903_16">Nodelay</A>, "nodelay");
+      <b>function</b> <FONT COLOR=red><A NAME="950_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="950_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="950_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#950_16">Nodelay</A>, "nodelay");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#903_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#890_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#891_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#950_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#938_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#939_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_NoDelay_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_NoDelay_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#898_14">Set_Timeout_Mode</A><FONT COLOR=red><A NAME="911_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#898_32">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                               <A HREF="terminal_interface-curses__ads.htm#899_32">Mode</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#895_9">Timeout_Mode</A>;
-                               <A HREF="terminal_interface-curses__ads.htm#900_32">Amount</A> : <b>in</b> Natural)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#946_14">Set_Timeout_Mode</A><FONT COLOR=red><A NAME="958_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#946_32">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                               <A HREF="terminal_interface-curses__ads.htm#947_32">Mode</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#943_9">Timeout_Mode</A>;
+                               <A HREF="terminal_interface-curses__ads.htm#948_32">Amount</A> : <b>in</b> Natural)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="915_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="915_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="915_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#915_16">Wtimeout</A>, "wtimeout");
+      <b>function</b> <FONT COLOR=red><A NAME="962_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="962_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="962_40">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#962_16">Wtimeout</A>, "wtimeout");
 
 
-      <FONT COLOR=red><A NAME="918_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="965_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#899_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#895_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#918_7">Time</A> := -1;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#895_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#918_7">Time</A> := 0;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#895_50">Delayed</A>      =&gt;
-            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#900_32">Amount</A> = 0 <b>then</b>
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#947_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#943_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#965_7">Time</A> := -1;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#943_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#965_7">Time</A> := 0;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#943_50">Delayed</A>      =&gt;
+            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#948_32">Amount</A> = 0 <b>then</b>
                <b>raise</b> Constraint_Error;
             <b>end</b> <b>if</b>;
                <b>raise</b> Constraint_Error;
             <b>end</b> <b>if</b>;
-            <A HREF="terminal_interface-curses__adb.htm#918_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#900_32">Amount</A>);
+            <A HREF="terminal_interface-curses__adb.htm#965_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#948_32">Amount</A>);
       <b>end</b> <b>case</b>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#915_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#898_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#918_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#962_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#946_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#965_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Timeout_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Timeout_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#909_14">Set_Escape_Timer_Mode</A><FONT COLOR=red><A NAME="934_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#910_7">Win</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#911_7">Timer_Off</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#958_14">Set_Escape_Timer_Mode</A><FONT COLOR=red><A NAME="981_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#959_7">Win</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#960_7">Timer_Off</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="938_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="938_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="938_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#938_16">Notimeout</A>, "notimeout");
+      <b>function</b> <FONT COLOR=red><A NAME="985_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="985_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="985_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#985_16">Notimeout</A>, "notimeout");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#938_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#910_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#911_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#985_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#959_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#960_7">Timer_Off</A>)))
+        = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Escape_Timer_Mode;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Escape_Timer_Mode;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#920_14">Set_NL_Mode</A><FONT COLOR=red><A NAME="948_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#920_27">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#969_14">Set_NL_Mode</A><FONT COLOR=red><A NAME="995_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#969_27">SwitchOn</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="950_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#950_16">NL</A>, "nl");
-      <b>function</b> <FONT COLOR=red><A NAME="952_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#952_16">NoNL</A>, "nonl");
+      <b>function</b> <FONT COLOR=red><A NAME="997_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#997_16">NL</A>, "nl");
+      <b>function</b> <FONT COLOR=red><A NAME="999_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#999_16">NoNL</A>, "nonl");
 
 
-      <FONT COLOR=red><A NAME="955_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="1002_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#920_27">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#950_16">NL</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#969_27">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#1002_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#997_16">NL</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#952_16">NoNL</A>;
+         <A HREF="terminal_interface-curses__adb.htm#1002_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#999_16">NoNL</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#955_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1002_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_NL_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_NL_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#926_14">Clear_On_Next_Update</A><FONT COLOR=red><A NAME="967_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#927_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#928_7">Do_Clear</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#975_14">Clear_On_Next_Update</A><FONT COLOR=red><A NAME="1014_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#976_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#977_7">Do_Clear</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="971_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="971_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="971_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#971_16">Clear_Ok</A>, "clearok");
+      <b>function</b> <FONT COLOR=red><A NAME="1018_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="1018_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1018_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1018_16">Clear_Ok</A>, "clearok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#971_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#927_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#928_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1018_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#976_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#977_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_On_Next_Update;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_On_Next_Update;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#933_14">Use_Insert_Delete_Line</A><FONT COLOR=red><A NAME="979_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#934_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#935_7">Do_Idl</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#982_14">Use_Insert_Delete_Line</A><FONT COLOR=red><A NAME="1026_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#983_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#984_7">Do_Idl</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="983_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="983_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="983_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#983_16">IDL_Ok</A>, "idlok");
+      <b>function</b> <FONT COLOR=red><A NAME="1030_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="1030_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1030_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1030_16">IDL_Ok</A>, "idlok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#983_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#934_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#935_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1030_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#984_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Use_Insert_Delete_Line;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Use_Insert_Delete_Line;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#940_14">Use_Insert_Delete_Character</A><FONT COLOR=red><A NAME="991_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#941_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#942_7">Do_Idc</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#989_14">Use_Insert_Delete_Character</A><FONT COLOR=red><A NAME="1038_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#990_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#991_7">Do_Idc</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="995_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="995_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="995_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#995_16">IDC_Ok</A>, "idcok");
+      <b>function</b> <FONT COLOR=red><A NAME="1042_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="1042_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1042_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1042_16">IDC_Ok</A>, "idcok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#995_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#941_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#942_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1042_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#991_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Use_Insert_Delete_Character;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Use_Insert_Delete_Character;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#947_14">Leave_Cursor_After_Update</A><FONT COLOR=red><A NAME="1003_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#948_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#949_7">Do_Leave</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#996_14">Leave_Cursor_After_Update</A><FONT COLOR=red><A NAME="1050_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#997_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#998_7">Do_Leave</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1007_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="1007_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1007_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#1007_16">Leave_Ok</A>, "leaveok");
+      <b>function</b> <FONT COLOR=red><A NAME="1054_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="1054_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1054_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1054_16">Leave_Ok</A>, "leaveok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1007_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#948_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#949_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1054_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#998_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Leave_Cursor_After_Update;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Leave_Cursor_After_Update;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#954_14">Immediate_Update_Mode</A><FONT COLOR=red><A NAME="1015_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#955_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#956_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1003_14">Immediate_Update_Mode</A><FONT COLOR=red><A NAME="1062_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1004_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1005_7">Mode</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1019_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="1019_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1019_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#1019_16">Immedok</A>, "immedok");
+      <b>function</b> <FONT COLOR=red><A NAME="1066_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="1066_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1066_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1066_16">Immedok</A>, "immedok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1019_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#955_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#956_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1066_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1005_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Immediate_Update_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Immediate_Update_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#961_14">Allow_Scrolling</A><FONT COLOR=red><A NAME="1027_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#962_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#963_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1010_14">Allow_Scrolling</A><FONT COLOR=red><A NAME="1074_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1011_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1012_7">Mode</A> : <b>in</b> Boolean := False)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1031_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="1031_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1031_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_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#1031_16">Scrollok</A>, "scrollok");
+      <b>function</b> <FONT COLOR=red><A NAME="1078_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="1078_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1078_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1078_16">Scrollok</A>, "scrollok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1031_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#962_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#963_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1078_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1012_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Allow_Scrolling;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Allow_Scrolling;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#967_13">Scrolling_Allowed</A><FONT COLOR=red><A NAME="1039_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#967_32">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1016_13">Scrolling_Allowed</A><FONT COLOR=red><A NAME="1086_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1016_32">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+                               <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1041_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1732_4">Sizeof_bool</A> <b>is</b>
-         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#1041_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__ads.htm#967_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1731_4">Offset_scroll</A>));
-         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#1041_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__ads.htm#967_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1731_4">Offset_scroll</A>));
-         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#1041_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__ads.htm#967_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1731_4">Offset_scroll</A>));
-         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
-      <b>end</b> <b>case</b>;
-
-      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#1041_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>return</b> <A HREF="terminal_interface-curses__adb.htm#93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#1016_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1922_4">Offset_scroll</A>);
    <b>end</b> Scrolling_Allowed;
 
    <b>end</b> Scrolling_Allowed;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#972_14">Set_Scroll_Region</A><FONT COLOR=red><A NAME="1056_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#973_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#974_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#975_7">Bottom_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1021_14">Set_Scroll_Region</A><FONT COLOR=red><A NAME="1093_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1022_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1023_7">Top_Line</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1024_7">Bottom_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1061_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="1061_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="1062_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="1063_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#1061_16">Wsetscrreg</A>, "wsetscrreg");
+      <b>function</b> <FONT COLOR=red><A NAME="1098_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="1098_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="1099_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="1100_28">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1098_16">Wsetscrreg</A>, "wsetscrreg");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1061_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#973_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#974_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#975_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1098_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#1022_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1023_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1024_7">Bottom_Line</A>))
+        = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Scroll_Region;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Scroll_Region;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#984_14">Update_Screen</A><FONT COLOR=red><A NAME="1072_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1034_14">Update_Screen</A><FONT COLOR=red><A NAME="1109_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1074_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#1074_16">Do_Update</A>, "doupdate");
+      <b>function</b> <FONT COLOR=red><A NAME="1111_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1111_16">Do_Update</A>, "doupdate");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1074_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1111_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Update_Screen;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Update_Screen;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#989_14">Refresh</A><FONT COLOR=red><A NAME="1082_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#989_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1039_14">Refresh</A><FONT COLOR=red><A NAME="1119_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1039_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1084_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="1084_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#1084_16">Wrefresh</A>, "wrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="1121_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="1121_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1121_16">Wrefresh</A>, "wrefresh");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1084_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#989_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1121_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1039_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#995_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1092_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#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1046_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1129_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1047_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1095_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="1095_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#1095_16">Wnoutrefresh</A>, "wnoutrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="1132_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="1132_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1132_16">Wnoutrefresh</A>, "wnoutrefresh");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1095_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#996_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1132_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1047_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Without_Update;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Without_Update;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1002_14">Redraw</A><FONT COLOR=red><A NAME="1103_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1002_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1053_14">Redraw</A><FONT COLOR=red><A NAME="1140_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1053_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1105_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="1105_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#1105_16">Redrawwin</A>, "redrawwin");
+      <b>function</b> <FONT COLOR=red><A NAME="1142_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="1142_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1142_16">Redrawwin</A>, "redrawwin");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1105_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#1002_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1142_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#1053_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redraw;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Redraw;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1006_14">Redraw</A><FONT COLOR=red><A NAME="1113_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1006_22">Win</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1007_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#1008_22">Line_Count</A> : <b>in</b> Positive)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1057_14">Redraw</A><FONT COLOR=red><A NAME="1150_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1057_22">Win</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1058_22">Begin_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1059_22">Line_Count</A> : <b>in</b> Positive)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1118_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="1118_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1118_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1118_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#1118_16">Wredrawln</A>, "wredrawln");
+      <b>function</b> <FONT COLOR=red><A NAME="1155_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="1155_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1155_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>; <FONT COLOR=red><A NAME="1155_56">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>)
+                          <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1155_16">Wredrawln</A>, "wredrawln");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1118_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#1006_22">Win</A>,
-                    <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1007_22">Begin_Line</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1008_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1155_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#1057_22">Win</A>,
+                    <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1058_22">Begin_Line</A>),
+                    <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1059_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Redraw;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Redraw;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1017_14">Erase</A><FONT COLOR=red><A NAME="1130_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1017_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1068_14">Erase</A><FONT COLOR=red><A NAME="1167_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1068_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1132_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="1132_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#1132_16">Werase</A>, "werase");
+      <b>function</b> <FONT COLOR=red><A NAME="1169_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="1169_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1169_16">Werase</A>, "werase");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1132_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#1017_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1169_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#1068_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Erase;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Erase;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1022_14">Clear</A><FONT COLOR=red><A NAME="1140_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1023_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1074_14">Clear</A><FONT COLOR=red><A NAME="1177_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1075_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1142_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="1142_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#1142_16">Wclear</A>, "wclear");
+      <b>function</b> <FONT COLOR=red><A NAME="1179_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="1179_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1179_16">Wclear</A>, "wclear");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1142_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#1023_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1179_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#1075_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Clear;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Clear;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1028_14">Clear_To_End_Of_Screen</A><FONT COLOR=red><A NAME="1150_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1029_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1081_14">Clear_To_End_Of_Screen</A><FONT COLOR=red><A NAME="1187_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1082_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1152_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="1152_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#1152_16">Wclearbot</A>, "wclrtobot");
+      <b>function</b> <FONT COLOR=red><A NAME="1189_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="1189_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1189_16">Wclearbot</A>, "wclrtobot");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1152_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#1029_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1189_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_To_End_Of_Screen;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_To_End_Of_Screen;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1034_14">Clear_To_End_Of_Line</A><FONT COLOR=red><A NAME="1160_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1035_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1088_14">Clear_To_End_Of_Line</A><FONT COLOR=red><A NAME="1197_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1089_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1162_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="1162_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#1162_16">Wcleareol</A>, "wclrtoeol");
+      <b>function</b> <FONT COLOR=red><A NAME="1199_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="1199_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1199_16">Wcleareol</A>, "wclrtoeol");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1162_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#1035_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1199_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_To_End_Of_Line;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_To_End_Of_Line;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1044_14">Set_Background</A><FONT COLOR=red><A NAME="1170_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1045_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1046_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1102_14">Set_Background</A><FONT COLOR=red><A NAME="1207_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1103_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1104_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="1174_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="1174_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1174_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#1174_17">WBackground</A>, "wbkgdset");
+      <b>procedure</b> <FONT COLOR=red><A NAME="1211_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="1211_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1211_45">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>);
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1211_17">WBackground</A>, "wbkgdset");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#1174_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#1045_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1046_7">Ch</A>));
+      <A HREF="terminal_interface-curses__adb.htm#1211_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#1103_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1104_7">Ch</A>));
    <b>end</b> Set_Background;
 
    <b>end</b> Set_Background;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1051_14">Change_Background</A><FONT COLOR=red><A NAME="1180_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1052_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1053_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1110_14">Change_Background</A><FONT COLOR=red><A NAME="1217_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1111_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1112_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1184_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="1184_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1184_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#1184_16">WChangeBkgd</A>, "wbkgd");
+      <b>function</b> <FONT COLOR=red><A NAME="1221_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="1221_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1221_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1221_16">WChangeBkgd</A>, "wbkgd");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1184_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1052_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1053_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1221_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1112_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Background;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Background;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1058_13">Get_Background</A><FONT COLOR=red><A NAME="1192_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1058_29">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1119_13">Get_Background</A><FONT COLOR=red><A NAME="1229_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1119_29">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1195_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="1195_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#1195_16">Wgetbkgd</A>, "getbkgd");
+      <b>function</b> <FONT COLOR=red><A NAME="1232_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="1232_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1232_16">Wgetbkgd</A>, "getbkgd");
    <b>begin</b>
    <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#1195_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1058_29">Win</A>));
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1232_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1119_29">Win</A>));
    <b>end</b> Get_Background;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get_Background;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1084_14">Change_Lines_Status</A><FONT COLOR=red><A NAME="1201_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1084_35">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#1085_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#1086_35">Count</A> : <b>in</b> Positive;
-                                  <A HREF="terminal_interface-curses__ads.htm#1087_35">State</A> : <b>in</b> Boolean)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1146_14">Change_Lines_Status</A><FONT COLOR=red><A NAME="1238_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1146_35">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                                  <A HREF="terminal_interface-curses__ads.htm#1147_35">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                                  <A HREF="terminal_interface-curses__ads.htm#1148_35">Count</A> : <b>in</b> Positive;
+                                  <A HREF="terminal_interface-curses__ads.htm#1149_35">State</A> : <b>in</b> Boolean)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1206_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="1206_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1207_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1208_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1209_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#1206_16">Wtouchln</A>, "wtouchln");
+      <b>function</b> <FONT COLOR=red><A NAME="1243_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="1243_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="1244_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="1245_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="1246_26">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1243_16">Wtouchln</A>, "wtouchln");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1206_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#1084_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1085_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1086_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#1087_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1243_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#1146_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1147_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1148_35">Count</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1149_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Lines_Status;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Change_Lines_Status;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1073_14">Touch</A><FONT COLOR=red><A NAME="1218_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1073_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1135_14">Touch</A><FONT COLOR=red><A NAME="1255_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1135_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1220_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1221_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1257_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1258_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1157_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1073_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1220_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1221_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1084_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1073_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1220_7">Y</A>), True);
+      <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1135_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1257_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1258_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1135_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1257_7">Y</A>), True);
    <b>end</b> Touch;
 
    <b>end</b> Touch;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1068_14">Untouch</A><FONT COLOR=red><A NAME="1227_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1068_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1130_14">Untouch</A><FONT COLOR=red><A NAME="1264_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1130_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1229_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1230_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1266_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1267_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1157_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1068_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1229_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1230_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1084_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1068_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1229_7">Y</A>), False);
+      <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1130_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1266_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1267_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1130_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1266_7">Y</A>), False);
    <b>end</b> Untouch;
 
    <b>end</b> Untouch;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1077_14">Touch</A><FONT COLOR=red><A NAME="1236_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1077_21">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#1078_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#1079_21">Count</A> : <b>in</b> Positive)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1139_14">Touch</A><FONT COLOR=red><A NAME="1273_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1139_21">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                    <A HREF="terminal_interface-curses__ads.htm#1140_21">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+                    <A HREF="terminal_interface-curses__ads.htm#1141_21">Count</A> : <b>in</b> Positive)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1084_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1077_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1078_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#1079_21">Count</A>, True);
+      <A HREF="terminal_interface-curses__ads.htm#1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1139_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1140_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#1141_21">Count</A>, True);
    <b>end</b> Touch;
 
    <b>end</b> Touch;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1092_13">Is_Touched</A><FONT COLOR=red><A NAME="1244_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1092_25">Win</A>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1093_25">Line</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1154_13">Is_Touched</A><FONT COLOR=red><A NAME="1281_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1154_25">Win</A>  : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1155_25">Line</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>) <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1248_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="1248_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1248_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#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1248_16">WLineTouched</A>, "is_linetouched");
+      <b>function</b> <FONT COLOR=red><A NAME="1285_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="1285_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1285_42">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1285_16">WLineTouched</A>, "is_linetouched");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1248_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1092_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1093_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1285_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1154_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1155_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#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> Is_Touched;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_Touched;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1097_13">Is_Touched</A><FONT COLOR=red><A NAME="1258_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1097_25">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>) <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1159_13">Is_Touched</A><FONT COLOR=red><A NAME="1295_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1159_25">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>) <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1261_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="1261_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#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1261_16">WWinTouched</A>, "is_wintouched");
+      <b>function</b> <FONT COLOR=red><A NAME="1298_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="1298_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1298_16">WWinTouched</A>, "is_wintouched");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1261_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1097_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1298_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1159_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#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> Is_Touched;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Is_Touched;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1106_14">Copy</A><FONT COLOR=red><A NAME="1271_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1107_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#1108_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#1109_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#1110_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#1111_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#1112_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#1113_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#1114_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#1115_7">Non_Destructive_Mode</A>     : <b>in</b> Boolean := True)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1282_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="1282_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1283_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1284_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1285_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1286_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1287_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1288_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1289_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1290_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#1282_16">Copywin</A>, "copywin");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1282_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#1107_7">Source_Window</A>,
-                  <A HREF="terminal_interface-curses__ads.htm#1108_7">Destination_Window</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1109_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#1110_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#1111_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#1112_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#1113_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#1114_7">Destination_Right_Column</A>),
-                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1115_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#381_4">Curses_Exception</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1168_14">Copy</A><FONT COLOR=red><A NAME="1308_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1169_7">Source_Window</A>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1170_7">Destination_Window</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1172_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1176_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1177_7">Non_Destructive_Mode</A>     : <b>in</b> Boolean := True)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="1319_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="1319_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="1320_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="1321_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1322_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1323_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1324_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1325_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1326_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1327_25">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1319_16">Copywin</A>, "copywin");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1319_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#1169_7">Source_Window</A>,
+                  <A HREF="terminal_interface-curses__ads.htm#1170_7">Destination_Window</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Top_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1172_7">Source_Left_Column</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Top_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Left_Column</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Bottom_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1176_7">Destination_Right_Column</A>),
+                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1177_7">Non_Destructive_Mode</A>)
+                ) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Copy;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Copy;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1120_14">Overwrite</A><FONT COLOR=red><A NAME="1307_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1120_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#1121_25">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1182_14">Overwrite</A><FONT COLOR=red><A NAME="1344_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1182_25">Source_Window</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1183_25">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1311_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="1311_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1311_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#1311_16">Overwrite</A>, "overwrite");
+      <b>function</b> <FONT COLOR=red><A NAME="1348_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="1348_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1348_41">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1348_16">Overwrite</A>, "overwrite");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1311_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#1120_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1121_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1348_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#1182_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1183_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Overwrite;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Overwrite;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1126_14">Overlay</A><FONT COLOR=red><A NAME="1319_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1126_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#1127_23">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1188_14">Overlay</A><FONT COLOR=red><A NAME="1356_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1188_23">Source_Window</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1189_23">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1323_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="1323_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1323_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#1323_16">Overlay</A>, "overlay");
+      <b>function</b> <FONT COLOR=red><A NAME="1360_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="1360_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1360_39">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1360_16">Overlay</A>, "overlay");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1323_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#1126_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1127_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1360_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#1188_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1189_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Overlay;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Overlay;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1136_14">Insert_Delete_Lines</A><FONT COLOR=red><A NAME="1332_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1137_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1138_7">Lines</A> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1198_14">Insert_Delete_Lines</A><FONT COLOR=red><A NAME="1369_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1199_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1200_7">Lines</A> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1336_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="1336_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1336_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#1336_16">Winsdelln</A>, "winsdelln");
+      <b>function</b> <FONT COLOR=red><A NAME="1373_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="1373_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1373_39">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1373_16">Winsdelln</A>, "winsdelln");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1336_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#1137_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1138_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1373_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#1199_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1200_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Insert_Delete_Lines;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Insert_Delete_Lines;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1143_14">Delete_Line</A><FONT COLOR=red><A NAME="1344_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1143_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1206_14">Delete_Line</A><FONT COLOR=red><A NAME="1381_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1206_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1136_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1143_27">Win</A>, -1);
+      <A HREF="terminal_interface-curses__ads.htm#1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1206_27">Win</A>, -1);
    <b>end</b> Delete_Line;
 
    <b>end</b> Delete_Line;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1148_14">Insert_Line</A><FONT COLOR=red><A NAME="1350_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1148_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1212_14">Insert_Line</A><FONT COLOR=red><A NAME="1387_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1212_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1136_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1148_27">Win</A>, 1);
+      <A HREF="terminal_interface-curses__ads.htm#1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1212_27">Win</A>, 1);
    <b>end</b> Insert_Line;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 
    <b>end</b> Insert_Line;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1157_14">Get_Size</A><FONT COLOR=red><A NAME="1358_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1158_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1159_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#1160_7">Number_Of_Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1222_14">Get_Size</A><FONT COLOR=red><A NAME="1395_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1223_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1225_7">Number_Of_Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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>
    <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="1365_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#1158_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1722_4">Offset_maxy</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1733_4">Offset_XY</A>);
-      <FONT COLOR=red><A NAME="1366_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#1158_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1723_4">Offset_maxx</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1733_4">Offset_XY</A>);
+      <FONT COLOR=red><A NAME="1402_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1910_4">Offset_maxy</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1929_4">Offset_XY</A>);
+      <FONT COLOR=red><A NAME="1403_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1911_4">Offset_maxx</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1929_4">Offset_XY</A>);
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1159_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1365_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1160_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1366_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1402_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1225_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1403_7">X</A>);
    <b>end</b> Get_Size;
 
    <b>end</b> Get_Size;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1165_14">Get_Window_Position</A><FONT COLOR=red><A NAME="1372_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1166_7">Win</A>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1167_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#1168_7">Top_Left_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1230_14">Get_Window_Position</A><FONT COLOR=red><A NAME="1409_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1231_7">Win</A>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Line</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1233_7">Top_Left_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1377_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#1166_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1724_4">Offset_begy</A>);
-      <FONT COLOR=red><A NAME="1378_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#1166_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1725_4">Offset_begx</A>);
+      <FONT COLOR=red><A NAME="1414_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1912_4">Offset_begy</A>);
+      <FONT COLOR=red><A NAME="1415_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1913_4">Offset_begx</A>);
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1167_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1377_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1168_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1378_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1414_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1233_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1415_7">X</A>);
    <b>end</b> Get_Window_Position;
 
    <b>end</b> Get_Window_Position;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1173_14">Get_Cursor_Position</A><FONT COLOR=red><A NAME="1384_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1174_7">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1175_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#1176_7">Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1238_14">Get_Cursor_Position</A><FONT COLOR=red><A NAME="1421_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1239_7">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1240_7">Line</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1241_7">Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1389_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#1174_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1726_4">Offset_cury</A>);
-      <FONT COLOR=red><A NAME="1390_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#1174_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1727_4">Offset_curx</A>);
+      <FONT COLOR=red><A NAME="1426_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1914_4">Offset_cury</A>);
+      <FONT COLOR=red><A NAME="1427_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1915_4">Offset_curx</A>);
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1175_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1389_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1176_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1390_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1240_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1426_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1241_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1427_7">X</A>);
    <b>end</b> Get_Cursor_Position;
 
    <b>end</b> Get_Cursor_Position;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1181_14">Get_Origin_Relative_To_Parent</A><FONT COLOR=red><A NAME="1396_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1182_7">Win</A>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1183_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#1184_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#1185_7">Is_Not_A_Subwindow</A> : <b>out</b> Boolean)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1246_14">Get_Origin_Relative_To_Parent</A><FONT COLOR=red><A NAME="1433_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1247_7">Win</A>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Line</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1249_7">Top_Left_Column</A>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1250_7">Is_Not_A_Subwindow</A> : <b>out</b> Boolean)
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="1402_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#1182_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1729_4">Offset_pary</A>);
-      <FONT COLOR=red><A NAME="1403_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#1182_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1730_4">Offset_parx</A>);
+      <FONT COLOR=red><A NAME="1439_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1917_4">Offset_pary</A>);
+      <FONT COLOR=red><A NAME="1440_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1918_4">Offset_parx</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1402_7">Y</A> = -1 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1183_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#1184_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#1185_7">Is_Not_A_Subwindow</A> := True;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1439_7">Y</A> = -1 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>'Last;
+         <A HREF="terminal_interface-curses__ads.htm#1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>'Last;
+         <A HREF="terminal_interface-curses__ads.htm#1250_7">Is_Not_A_Subwindow</A> := True;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1183_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1402_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1184_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1403_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1185_7">Is_Not_A_Subwindow</A> := False;
+         <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1439_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1440_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1250_7">Is_Not_A_Subwindow</A> := False;
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Origin_Relative_To_Parent;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Get_Origin_Relative_To_Parent;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1196_13">New_Pad</A><FONT COLOR=red><A NAME="1416_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1196_22">Lines</A>   : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1197_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>function</b> <A HREF="terminal_interface-curses__ads.htm#1261_13">New_Pad</A><FONT COLOR=red><A NAME="1453_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1261_22">Lines</A>   : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1262_22">Columns</A> : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1419_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="1419_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1419_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#1419_16">Newpad</A>, "newpad");
+      <b>function</b> <FONT COLOR=red><A NAME="1456_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="1456_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>; <FONT COLOR=red><A NAME="1456_39">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1456_16">Newpad</A>, "newpad");
 
 
-      <FONT COLOR=red><A NAME="1422_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+      <FONT COLOR=red><A NAME="1459_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#1422_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1419_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1196_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1197_22">Columns</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1422_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#381_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#1459_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1456_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1261_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1262_22">Columns</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1459_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1422_7">W</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1459_7">W</A>;
    <b>end</b> New_Pad;
 
    <b>end</b> New_Pad;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1202_13">Sub_Pad</A><FONT COLOR=red><A NAME="1431_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1203_7">Pad</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1204_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1205_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1206_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1207_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="1438_16">Subpad</A></FONT>
-        (<FONT COLOR=red><A NAME="1439_10">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1440_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1441_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1442_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1443_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#1438_16">Subpad</A>, "subpad");
-
-      <FONT COLOR=red><A NAME="1446_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#1446_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1438_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#1203_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1204_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#1205_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#1206_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#1207_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1446_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#381_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1446_7">W</A>;
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1267_13">Sub_Pad</A><FONT COLOR=red><A NAME="1468_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1268_7">Pad</A>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1270_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1271_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1272_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="1475_16">Subpad</A></FONT>
+        (<FONT COLOR=red><A NAME="1476_10">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+         <FONT COLOR=red><A NAME="1477_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1478_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1479_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1480_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1475_16">Subpad</A>, "subpad");
+
+      <FONT COLOR=red><A NAME="1483_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#1483_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1475_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#1268_7">Pad</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1270_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1271_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1272_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1483_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1483_7">W</A>;
    <b>end</b> Sub_Pad;
 
    <b>end</b> Sub_Pad;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1212_14">Refresh</A><FONT COLOR=red><A NAME="1459_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1213_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1214_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#1215_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#1216_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#1217_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#1218_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#1219_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="1468_16">Prefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="1469_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1470_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1471_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1472_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1473_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1474_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1475_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#1468_16">Prefresh</A>, "prefresh");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1468_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1213_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1214_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#1215_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#1216_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#1217_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#1218_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#1219_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#381_4">Curses_Exception</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1277_14">Refresh</A><FONT COLOR=red><A NAME="1496_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1278_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1280_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1284_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="1505_16">Prefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="1506_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+         <FONT COLOR=red><A NAME="1507_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1508_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1509_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1510_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1511_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1512_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1505_16">Prefresh</A>, "prefresh");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1505_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1278_7">Pad</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Top_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1280_7">Source_Left_Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Top_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Left_Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Bottom_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1284_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1224_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1489_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1225_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1226_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#1227_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#1228_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#1229_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#1230_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#1231_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="1498_16">Pnoutrefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="1499_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1500_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1501_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1502_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1503_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1504_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1505_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#1498_16">Pnoutrefresh</A>, "pnoutrefresh");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1498_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1225_7">Pad</A>,
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1226_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#1227_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#1228_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#1229_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#1230_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#1231_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#381_4">Curses_Exception</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1289_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1526_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1290_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1292_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1296_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="1535_16">Pnoutrefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="1536_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+         <FONT COLOR=red><A NAME="1537_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1538_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1539_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1540_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1541_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="1542_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1535_16">Pnoutrefresh</A>, "pnoutrefresh");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1535_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1290_7">Pad</A>,
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Top_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1292_7">Source_Left_Column</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Top_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Left_Column</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Bottom_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1296_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Without_Update;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Without_Update;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1236_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1519_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1237_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1238_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1301_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1556_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1302_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1303_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1523_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="1523_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1523_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#1523_16">Pechochar</A>, "pechochar");
+      <b>function</b> <FONT COLOR=red><A NAME="1560_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="1560_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1560_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>)
+                          <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1560_16">Pechochar</A>, "pechochar");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1523_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#1237_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1238_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1560_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#1302_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1303_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Add_Character_To_Pad_And_Echo_It;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Add_Character_To_Pad_And_Echo_It;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1241_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1532_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1242_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1243_7">Ch</A>  : <b>in</b> Character)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1306_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1569_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1307_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1308_7">Ch</A>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1241_14">Add_Character_To_Pad_And_Echo_It</A>
-        (<A HREF="terminal_interface-curses__ads.htm#1242_7">Pad</A>,
-         <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#1243_7">Ch</A>,
-                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
+      <A HREF="terminal_interface-curses__ads.htm#1301_14">Add_Character_To_Pad_And_Echo_It</A>
+        (<A HREF="terminal_interface-curses__ads.htm#1307_7">Pad</A>,
+         <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#1308_7">Ch</A>,
+                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
    <b>end</b> Add_Character_To_Pad_And_Echo_It;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Add_Character_To_Pad_And_Echo_It;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1251_14">Scroll</A><FONT COLOR=red><A NAME="1544_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1251_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1252_22">Amount</A> : <b>in</b> Integer := 1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1316_14">Scroll</A><FONT COLOR=red><A NAME="1581_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1316_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1317_22">Amount</A> : <b>in</b> Integer := 1)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1547_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="1547_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1547_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#1547_16">Wscrl</A>, "wscrl");
+      <b>function</b> <FONT COLOR=red><A NAME="1584_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="1584_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1584_37">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1584_16">Wscrl</A>, "wscrl");
 
    <b>begin</b>
 
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1547_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#1251_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1252_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1584_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#1316_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1317_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Scroll;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Scroll;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1261_14">Delete_Character</A><FONT COLOR=red><A NAME="1557_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1261_32">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1328_14">Delete_Character</A><FONT COLOR=red><A NAME="1594_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1328_32">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1559_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="1559_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#1559_16">Wdelch</A>, "wdelch");
+      <b>function</b> <FONT COLOR=red><A NAME="1596_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="1596_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1596_16">Wdelch</A>, "wdelch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1559_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1261_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1596_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1328_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Delete_Character;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Delete_Character;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1265_14">Delete_Character</A><FONT COLOR=red><A NAME="1567_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1266_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1267_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#1268_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1333_14">Delete_Character</A><FONT COLOR=red><A NAME="1604_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1334_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1335_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1336_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1572_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="1572_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1573_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1574_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#1572_16">Mvwdelch</A>, "mvwdelch");
+      <b>function</b> <FONT COLOR=red><A NAME="1609_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="1609_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="1610_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="1611_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1609_16">Mvwdelch</A>, "mvwdelch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1572_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1266_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1267_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1268_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1609_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1334_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1335_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1336_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Delete_Character;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Delete_Character;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1277_13">Peek</A><FONT COLOR=red><A NAME="1582_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1277_19">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1346_13">Peek</A><FONT COLOR=red><A NAME="1619_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1346_19">Win</A> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1585_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="1585_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#1585_16">Winch</A>, "winch");
+      <b>function</b> <FONT COLOR=red><A NAME="1622_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="1622_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1622_16">Winch</A>, "winch");
    <b>begin</b>
    <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#1585_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#1277_19">Win</A>));
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1622_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#1346_19">Win</A>));
    <b>end</b> Peek;
 
    <b>end</b> Peek;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1282_13">Peek</A><FONT COLOR=red><A NAME="1591_13"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1283_7">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1284_7">Line</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1285_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#350_9">Attributed_Character</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1352_13">Peek</A><FONT COLOR=red><A NAME="1628_13"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1353_7">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1354_7">Line</A>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1355_7">Column</A> : <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1596_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="1596_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1597_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1598_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#1596_16">Mvwinch</A>, "mvwinch");
+      <b>function</b> <FONT COLOR=red><A NAME="1633_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="1633_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="1634_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1635_25">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1633_16">Mvwinch</A>, "mvwinch");
    <b>begin</b>
    <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#1596_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#1283_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1284_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1285_7">Column</A>)));
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1633_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#1353_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1354_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1355_7">Column</A>)));
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1294_14">Insert</A><FONT COLOR=red><A NAME="1604_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1294_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1295_22">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1365_14">Insert</A><FONT COLOR=red><A NAME="1641_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1365_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1366_22">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1607_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="1607_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1607_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#1607_16">Winsch</A>, "winsch");
+      <b>function</b> <FONT COLOR=red><A NAME="1644_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="1644_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>; <FONT COLOR=red><A NAME="1644_38">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1644_16">Winsch</A>, "winsch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1607_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#1294_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1295_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1644_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#1365_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1366_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1299_14">Insert</A><FONT COLOR=red><A NAME="1615_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1299_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1300_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#1301_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#1302_22">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1371_14">Insert</A><FONT COLOR=red><A NAME="1652_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1371_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1372_22">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1373_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1374_22">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1621_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="1621_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1622_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1623_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1624_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#1621_16">Mvwinsch</A>, "mvwinsch");
+      <b>function</b> <FONT COLOR=red><A NAME="1658_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="1658_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="1659_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="1660_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="1661_26">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1658_16">Mvwinsch</A>, "mvwinsch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1621_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#1299_22">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1300_22">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1301_22">Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1302_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1658_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#1371_22">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1372_22">Line</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1373_22">Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1310_14">Insert</A><FONT COLOR=red><A NAME="1635_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1310_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1311_22">Str</A> : <b>in</b> String;
-                     <A HREF="terminal_interface-curses__ads.htm#1312_22">Len</A> : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1383_14">Insert</A><FONT COLOR=red><A NAME="1672_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1383_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1384_22">Str</A> : <b>in</b> String;
+                     <A HREF="terminal_interface-curses__ads.htm#1385_22">Len</A> : <b>in</b> Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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="1640_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="1640_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         Str : Char_Ptr;
-                         <FONT COLOR=red><A NAME="1642_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#1640_16">Winsnstr</A>, "winsnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="1676_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="1676_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="1677_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="1678_26">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1676_16">Winsnstr</A>, "winsnstr");
 
 
-      <FONT COLOR=red><A NAME="1645_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1311_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1646_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="1681_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1384_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="1682_7">Length</A></FONT> : size_t;
    <b>begin</b>
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1311_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1645_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1646_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1640_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1310_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1645_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#1645_7">Txt</A>'First)'<b>Access</b>, <A HREF="terminal_interface-curses__ads.htm#1312_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#381_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1384_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1681_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1682_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1676_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1383_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1681_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1385_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1317_14">Insert</A><FONT COLOR=red><A NAME="1654_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1317_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1318_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#1319_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#1320_22">Str</A>    : <b>in</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1321_22">Len</A>    : <b>in</b> Integer := -1)
-   <b>is</b>
-      <b>type</b> Char_Ptr <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="1662_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="1662_28">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="1663_28">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="1664_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           Str    : Char_Ptr;
-                           <FONT COLOR=red><A NAME="1666_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#1662_16">Mvwinsnstr</A>, "mvwinsnstr");
-
-      <FONT COLOR=red><A NAME="1669_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1320_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1670_7">Length</A></FONT> : size_t;
-   <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1320_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1669_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1670_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1662_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1317_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1318_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1319_22">Column</A>),
-                     <A HREF="terminal_interface-curses__adb.htm#1669_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#1669_7">Txt</A>'First)'<b>Access</b>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1321_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#381_4">Curses_Exception</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1392_14">Insert</A><FONT COLOR=red><A NAME="1690_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1392_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1393_22">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1394_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1395_22">Str</A>    : <b>in</b> String;
+      <A HREF="terminal_interface-curses__ads.htm#1396_22">Len</A>    : <b>in</b> Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="1697_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="1697_28">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="1698_28">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="1699_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="1700_28">Str</A></FONT>    : char_array;
+                           <FONT COLOR=red><A NAME="1701_28">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1697_16">Mvwinsnstr</A>, "mvwinsnstr");
+
+      <FONT COLOR=red><A NAME="1704_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1395_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="1705_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1395_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1704_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1705_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1697_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1392_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1393_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1394_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#1704_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1396_22">Len</A>))
+        = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Insert;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1331_14">Peek</A><FONT COLOR=red><A NAME="1680_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1331_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                   <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A> : <b>out</b> String;
-                   <A HREF="terminal_interface-curses__ads.htm#1333_20">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1408_14">Peek</A><FONT COLOR=red><A NAME="1714_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1408_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                   <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A> : <b>out</b> String;
+                   <A HREF="terminal_interface-curses__ads.htm#1410_20">Len</A> : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1684_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="1684_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1685_25">Str</A></FONT> : char_array;
-                        <FONT COLOR=red><A NAME="1686_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#1684_16">Winnstr</A>, "winnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="1718_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="1718_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="1719_25">Str</A></FONT> : char_array;
+                        <FONT COLOR=red><A NAME="1720_25">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1718_16">Winnstr</A>, "winnstr");
 
 
-      <FONT COLOR=red><A NAME="1689_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1333_20">Len</A>;
-      <FONT COLOR=red><A NAME="1690_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1691_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="1723_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1410_20">Len</A>;
+      <FONT COLOR=red><A NAME="1724_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'Length);
+      <FONT COLOR=red><A NAME="1725_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1689_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1689_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1723_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#1723_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1689_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1723_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#1690_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#1684_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1331_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1690_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1689_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#381_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#1724_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#1718_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1408_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1724_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1723_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1690_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1691_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1691_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1691_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1332_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1724_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1725_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1725_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1725_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1409_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
    <b>end</b> Peek;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Peek;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1338_14">Peek</A><FONT COLOR=red><A NAME="1709_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1338_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1339_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#1340_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#1341_20">Str</A>    : <b>out</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1342_20">Len</A>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1417_14">Peek</A><FONT COLOR=red><A NAME="1743_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1417_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1418_20">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1419_20">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1420_20">Str</A>    : <b>out</b> String;
+      <A HREF="terminal_interface-curses__ads.htm#1421_20">Len</A>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1338_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1339_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1340_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1338_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1338_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1341_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1342_20">Len</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1418_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1419_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1408_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1420_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1421_20">Len</A>);
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1351_14">Peek</A><FONT COLOR=red><A NAME="1721_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1351_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1353_20">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1432_14">Peek</A><FONT COLOR=red><A NAME="1755_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1432_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Attributed_String</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1434_20">Len</A> : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Chtype_Ptr <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="1727_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="1727_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          Str : Chtype_Ptr;
-                          <FONT COLOR=red><A NAME="1729_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#1727_16">Winchnstr</A>, "winchnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="1760_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="1760_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="1761_27">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#59_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
+                          <FONT COLOR=red><A NAME="1762_27">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1760_16">Winchnstr</A>, "winchnstr");
 
 
-      <FONT COLOR=red><A NAME="1732_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1353_20">Len</A>;
-      <FONT COLOR=red><A NAME="1733_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1734_7">Cnt</A></FONT> : Natural := 0;
+      <FONT COLOR=red><A NAME="1765_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1434_20">Len</A>;
+      <FONT COLOR=red><A NAME="1766_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'Length) := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>);
+      <FONT COLOR=red><A NAME="1767_7">Cnt</A></FONT> : Natural := 0;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1732_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1732_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1765_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#1765_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1732_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1765_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1727_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1351_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1733_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#1733_7">Txt</A>'First)'<b>Access</b>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1732_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1760_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1432_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1766_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1765_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>for</b> <FONT COLOR=red><A NAME="1745_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'<b>Range</b> <b>loop</b>
-         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#1733_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-         <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#1745_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#1733_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A>));
-         <A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A> + 1;
+      <b>for</b> <FONT COLOR=red><A NAME="1778_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'<b>Range</b> <b>loop</b>
+         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#1766_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+         <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#1778_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#1766_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A>));
+         <A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A> + 1;
       <b>end</b> <b>loop</b>;
       <b>end</b> <b>loop</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1734_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1352_20">Str</A>'Last) :=
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1767_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1433_20">Str</A>'Last) :=
            (<b>others</b> =&gt; (Ch =&gt; ' ',
            (<b>others</b> =&gt; (Ch =&gt; ' ',
-                       Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First,
-                       Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>));
+                       Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First,
+                       Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>));
       <b>end</b> <b>if</b>;
    <b>end</b> Peek;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Peek;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1358_14">Peek</A><FONT COLOR=red><A NAME="1758_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1358_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1359_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#1360_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#1361_20">Str</A>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1362_20">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1441_14">Peek</A><FONT COLOR=red><A NAME="1791_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1441_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1442_20">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1443_20">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1444_20">Str</A>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Attributed_String</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1445_20">Len</A>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1358_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1359_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1360_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1358_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1358_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1361_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1362_20">Len</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1442_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1443_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1432_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1444_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1445_20">Len</A>);
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Peek;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1372_14">Get</A><FONT COLOR=red><A NAME="1770_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1372_19">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A> : <b>out</b> String;
-                  <A HREF="terminal_interface-curses__ads.htm#1374_19">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1457_14">Get</A><FONT COLOR=red><A NAME="1803_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1457_19">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                  <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A> : <b>out</b> String;
+                  <A HREF="terminal_interface-curses__ads.htm#1459_19">Len</A> : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1774_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="1774_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1775_26">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="1776_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#1774_16">Wgetnstr</A>, "wgetnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="1807_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="1807_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="1808_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="1809_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1807_16">Wgetnstr</A>, "wgetnstr");
 
 
-      <FONT COLOR=red><A NAME="1779_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1374_19">Len</A>;
-      <FONT COLOR=red><A NAME="1780_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1781_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="1812_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1459_19">Len</A>;
+      <FONT COLOR=red><A NAME="1813_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="1814_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1779_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1779_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1812_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#1812_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'Length;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1779_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1812_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#1780_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#1774_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1372_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1780_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1779_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#381_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#1813_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#1807_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1457_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1813_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1812_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1780_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1781_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1781_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1781_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1373_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1813_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1814_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1814_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1814_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1458_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
    <b>end</b> Get;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Get;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1378_14">Get</A><FONT COLOR=red><A NAME="1799_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1378_19">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1379_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#1380_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#1381_19">Str</A>    : <b>out</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1382_19">Len</A>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1468_14">Get</A><FONT COLOR=red><A NAME="1832_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1468_19">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1469_19">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1470_19">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1471_19">Str</A>    : <b>out</b> String;
+      <A HREF="terminal_interface-curses__ads.htm#1472_19">Len</A>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#503_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1378_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1379_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1380_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1378_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#1378_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1381_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1382_19">Len</A>);
+      <A HREF="terminal_interface-curses__ads.htm#505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1469_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1470_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#1457_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1471_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1472_19">Len</A>);
    <b>end</b> Get;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Get;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1400_14">Init_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1811_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1401_7">Format</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1392_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#1392_35">Three_Two_Three</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1493_14">Init_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1844_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1494_7">Format</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1485_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#1485_35">Three_Two_Three</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1814_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="1814_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#1814_16">Slk_Init</A>, "slk_init");
+      <b>function</b> <FONT COLOR=red><A NAME="1847_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="1847_26">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1847_16">Slk_Init</A>, "slk_init");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1814_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#1392_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1401_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1847_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#1485_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1494_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Soft_Label_Keys;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Soft_Label_Keys;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1406_14">Set_Soft_Label_Key</A><FONT COLOR=red><A NAME="1822_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1406_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1396_9">Label_Number</A>;
-                                 <A HREF="terminal_interface-curses__ads.htm#1407_34">Text</A>  : <b>in</b> String;
-                                 <A HREF="terminal_interface-curses__ads.htm#1408_34">Fmt</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1397_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#1397_33">Left</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1499_14">Set_Soft_Label_Key</A><FONT COLOR=red><A NAME="1855_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1499_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Number</A>;
+                                 <A HREF="terminal_interface-curses__ads.htm#1500_34">Text</A>  : <b>in</b> String;
+                                 <A HREF="terminal_interface-curses__ads.htm#1501_34">Fmt</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1490_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#1490_33">Left</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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="1827_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="1827_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        Txt   : Char_Ptr;
-                        <FONT COLOR=red><A NAME="1829_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#1827_16">Slk_Set</A>, "slk_set");
+      <b>function</b> <FONT COLOR=red><A NAME="1859_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="1859_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="1860_25">Txt</A></FONT>   : char_array;
+                        <FONT COLOR=red><A NAME="1861_25">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1859_16">Slk_Set</A>, "slk_set");
 
 
-      <FONT COLOR=red><A NAME="1832_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1407_34">Text</A>'Length);
-      <FONT COLOR=red><A NAME="1833_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="1864_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1500_34">Text</A>'Length);
+      <FONT COLOR=red><A NAME="1865_7">Len</A></FONT> : size_t;
    <b>begin</b>
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1407_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#1832_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1833_7">Len</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1827_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1406_34">Label</A>),
-                  <A HREF="terminal_interface-curses__adb.htm#1832_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#1832_7">Txt</A>'First)'<b>Access</b>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1397_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1408_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#381_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1500_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#1864_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1865_7">Len</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1859_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1499_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#1864_7">Txt</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1490_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1501_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1413_14">Refresh_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1844_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1506_14">Refresh_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1874_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1846_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#1846_16">Slk_Refresh</A>, "slk_refresh");
+      <b>function</b> <FONT COLOR=red><A NAME="1876_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1876_16">Slk_Refresh</A>, "slk_refresh");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1846_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1876_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Soft_Label_Keys;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Soft_Label_Keys;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1418_14">Refresh_Soft_Label_Keys_Without_Update</A><FONT COLOR=red><A NAME="1854_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1511_14">Refresh_Soft_Label_Keys_Without_Update</A><FONT COLOR=red><A NAME="1884_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1856_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#1856_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="1886_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1886_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1856_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1886_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Soft_Label_Keys_Without_Update;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Refresh_Soft_Label_Keys_Without_Update;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1423_14">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1864_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1423_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1396_9">Label_Number</A>;
-                                 <A HREF="terminal_interface-curses__ads.htm#1424_34">Text</A>  : <b>out</b> String)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1516_14">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1894_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1516_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Number</A>;
+                                 <A HREF="terminal_interface-curses__ads.htm#1517_34">Text</A>  : <b>out</b> String)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1867_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1867_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#1867_16">Slk_Label</A>, "slk_label");
+      <b>function</b> <FONT COLOR=red><A NAME="1897_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1897_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1897_16">Slk_Label</A>, "slk_label");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1867_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1423_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#1424_34">Text</A>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1897_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1516_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#1517_34">Text</A>);
    <b>end</b> Get_Soft_Label_Key;
 
    <b>end</b> Get_Soft_Label_Key;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1428_13">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1873_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1428_33">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1396_9">Label_Number</A>) <b>return</b> String
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1521_13">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1903_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1521_33">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Number</A>) <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1875_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1875_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#1875_16">Slk_Label</A>, "slk_label");
+      <b>function</b> <FONT COLOR=red><A NAME="1905_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1905_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1905_16">Slk_Label</A>, "slk_label");
    <b>begin</b>
    <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#1875_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1428_33">Label</A>)));
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1905_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1521_33">Label</A>)));
    <b>end</b> Get_Soft_Label_Key;
 
    <b>end</b> Get_Soft_Label_Key;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1434_14">Clear_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1881_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1527_14">Clear_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1911_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1883_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#1883_16">Slk_Clear</A>, "slk_clear");
+      <b>function</b> <FONT COLOR=red><A NAME="1913_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1913_16">Slk_Clear</A>, "slk_clear");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1883_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1913_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_Soft_Label_Keys;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Clear_Soft_Label_Keys;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1439_14">Restore_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1891_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1532_14">Restore_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1921_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1893_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#1893_16">Slk_Restore</A>, "slk_restore");
+      <b>function</b> <FONT COLOR=red><A NAME="1923_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1923_16">Slk_Restore</A>, "slk_restore");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1893_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1923_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Restore_Soft_Label_Keys;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Restore_Soft_Label_Keys;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1444_14">Touch_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1901_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1537_14">Touch_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1931_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1903_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#1903_16">Slk_Touch</A>, "slk_touch");
+      <b>function</b> <FONT COLOR=red><A NAME="1933_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1933_16">Slk_Touch</A>, "slk_touch");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1903_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1933_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Touch_Soft_Label_Keys;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Touch_Soft_Label_Keys;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1449_14">Switch_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1911_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1450_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1451_7">On</A>   : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1542_14">Switch_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1941_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1543_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1544_7">On</A>   : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1915_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="1915_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#1915_16">Slk_Attron</A>, "slk_attron");
-      <b>function</b> <FONT COLOR=red><A NAME="1917_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="1917_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#1917_16">Slk_Attroff</A>, "slk_attroff");
+      <b>function</b> <FONT COLOR=red><A NAME="1945_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="1945_28">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1945_16">Slk_Attron</A>, "slk_attron");
+      <b>function</b> <FONT COLOR=red><A NAME="1947_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="1947_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1947_16">Slk_Attroff</A>, "slk_attroff");
 
 
-      <FONT COLOR=red><A NAME="1920_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="1921_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1450_7">Attr</A>,
-                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First);
+      <FONT COLOR=red><A NAME="1950_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="1951_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1543_7">Attr</A>,
+                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1451_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1920_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1915_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#1921_7">Ch</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1544_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#1950_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1945_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1951_7">Ch</A>));
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#1920_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1917_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#1921_7">Ch</A>));
+         <A HREF="terminal_interface-curses__adb.htm#1950_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1947_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1951_7">Ch</A>));
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1920_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1950_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Soft_Label_Key_Attributes;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Switch_Soft_Label_Key_Attributes;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1457_14">Set_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1935_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1458_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#348_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1459_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>'First)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1550_14">Set_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1965_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1551_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#350_4">Normal_Video</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1552_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>'First)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1939_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="1939_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#1939_16">Slk_Attrset</A>, "slk_attrset");
+      <b>function</b> <FONT COLOR=red><A NAME="1969_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="1969_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1969_16">Slk_Attrset</A>, "slk_attrset");
 
 
-      <FONT COLOR=red><A NAME="1942_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1458_7">Attr</A>,
-                                             Color =&gt; <A HREF="terminal_interface-curses__ads.htm#1459_7">Color</A>);
+      <FONT COLOR=red><A NAME="1972_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1551_7">Attr</A>,
+                                             Color =&gt; <A HREF="terminal_interface-curses__ads.htm#1552_7">Color</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1939_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#1942_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1969_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1972_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key_Attributes;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key_Attributes;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1464_13">Get_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1951_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1557_13">Get_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1981_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1953_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#1953_16">Slk_Attr</A>, "slk_attr");
+      <b>function</b> <FONT COLOR=red><A NAME="1983_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1983_16">Slk_Attr</A>, "slk_attr");
 
 
-      <FONT COLOR=red><A NAME="1956_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#1953_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="1986_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1983_16">Slk_Attr</A>;
    <b>begin</b>
    <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#1956_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#352_10">Attr</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1986_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Get_Soft_Label_Key_Attributes;
 
    <b>end</b> Get_Soft_Label_Key_Attributes;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1468_13">Get_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1961_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1561_13">Get_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1991_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1963_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#1963_16">Slk_Attr</A>, "slk_attr");
+      <b>function</b> <FONT COLOR=red><A NAME="1993_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1993_16">Slk_Attr</A>, "slk_attr");
 
 
-      <FONT COLOR=red><A NAME="1966_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#1963_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="1996_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1993_16">Slk_Attr</A>;
    <b>begin</b>
    <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#1966_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#353_10">Color</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1996_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#355_10">Color</A>;
    <b>end</b> Get_Soft_Label_Key_Attributes;
 
    <b>end</b> Get_Soft_Label_Key_Attributes;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1473_14">Set_Soft_Label_Key_Color</A><FONT COLOR=red><A NAME="1971_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1473_40">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1566_14">Set_Soft_Label_Key_Color</A><FONT COLOR=red><A NAME="2001_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1566_40">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1973_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="1973_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#1973_16">Slk_Color</A>, "slk_color");
+      <b>function</b> <FONT COLOR=red><A NAME="2003_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="2003_27">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2003_16">Slk_Color</A>, "slk_color");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1973_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1473_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2003_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1566_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key_Color;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Soft_Label_Key_Color;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1482_14">Enable_Key</A><FONT COLOR=red><A NAME="1982_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1482_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#1483_26">Enable</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1580_14">Enable_Key</A><FONT COLOR=red><A NAME="2012_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1580_26">Key</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A>;
+                         <A HREF="terminal_interface-curses__ads.htm#1581_26">Enable</A> : <b>in</b> Boolean := True)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1985_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="1985_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="1986_23">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1735_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#1985_16">Keyok</A>, "keyok");
+      <b>function</b> <FONT COLOR=red><A NAME="2015_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="2015_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="2016_23">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2015_16">Keyok</A>, "keyok");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1985_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1482_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1483_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2015_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1580_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1581_26">Enable</A>)))
+        = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Enable_Key;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Enable_Key;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1492_14">Define_Key</A><FONT COLOR=red><A NAME="1995_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1492_26">Definition</A> : <b>in</b> String;
-                         <A HREF="terminal_interface-curses__ads.htm#1493_26">Key</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1590_14">Define_Key</A><FONT COLOR=red><A NAME="2025_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1590_26">Definition</A> : <b>in</b> String;
+                         <A HREF="terminal_interface-curses__ads.htm#1591_26">Key</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> Char_Ptr <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="1999_16">Defkey</A></FONT> (Def : Char_Ptr;
-                       <FONT COLOR=red><A NAME="2000_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#1999_16">Defkey</A>, "define_key");
+      <b>function</b> <FONT COLOR=red><A NAME="2028_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="2028_24">Def</A></FONT> : char_array;
+                       <FONT COLOR=red><A NAME="2029_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2028_16">Defkey</A>, "define_key");
 
 
-      <FONT COLOR=red><A NAME="2003_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1492_26">Definition</A>'Length);
-      <FONT COLOR=red><A NAME="2004_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="2032_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1590_26">Definition</A>'Length);
+      <FONT COLOR=red><A NAME="2033_7">Length</A></FONT> : size_t;
    <b>begin</b>
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1492_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#2003_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2004_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1999_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#2003_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#2003_7">Txt</A>'First)'<b>Access</b>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1493_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#381_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1590_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#2032_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2033_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2028_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#2032_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1591_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Define_Key;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Define_Key;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1516_14">Un_Control</A><FONT COLOR=red><A NAME="2012_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1516_26">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1517_26">Str</A> : <b>out</b> String)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1616_14">Un_Control</A><FONT COLOR=red><A NAME="2041_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1616_26">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>;
+                         <A HREF="terminal_interface-curses__ads.htm#1617_26">Str</A> : <b>out</b> String)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2015_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2015_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#2015_16">Unctrl</A>, "unctrl");
+      <b>function</b> <FONT COLOR=red><A NAME="2044_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2044_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2044_16">Unctrl</A>, "unctrl");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2015_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1516_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#1517_26">Str</A>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2044_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1616_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#1617_26">Str</A>);
    <b>end</b> Un_Control;
 
    <b>end</b> Un_Control;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1521_13">Un_Control</A><FONT COLOR=red><A NAME="2021_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1521_25">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A>) <b>return</b> String
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1621_13">Un_Control</A><FONT COLOR=red><A NAME="2050_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1621_25">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A>) <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2023_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2023_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#2023_16">Unctrl</A>, "unctrl");
+      <b>function</b> <FONT COLOR=red><A NAME="2052_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2052_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2052_16">Unctrl</A>, "unctrl");
    <b>begin</b>
    <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#2023_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1521_25">Ch</A>)));
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2052_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#105_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1621_25">Ch</A>)));
    <b>end</b> Un_Control;
 
    <b>end</b> Un_Control;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1527_14">Delay_Output</A><FONT COLOR=red><A NAME="2029_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1527_28">Msecs</A> : <b>in</b> Natural)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1627_14">Delay_Output</A><FONT COLOR=red><A NAME="2058_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1627_28">Msecs</A> : <b>in</b> Natural)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2031_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="2031_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#2031_16">Delayoutput</A>, "delay_output");
+      <b>function</b> <FONT COLOR=red><A NAME="2060_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="2060_29">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2060_16">Delayoutput</A>, "delay_output");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2031_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1527_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2060_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1627_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Delay_Output;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Delay_Output;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1532_14">Flush_Input</A><FONT COLOR=red><A NAME="2039_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1632_14">Flush_Input</A><FONT COLOR=red><A NAME="2068_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2041_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#2041_16">Flushinp</A>, "flushinp");
+      <b>function</b> <FONT COLOR=red><A NAME="2070_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2070_16">Flushinp</A>, "flushinp");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2041_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2070_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_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#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Flush_Input;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Flush_Input;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1541_13">Baudrate</A><FONT COLOR=red><A NAME="2049_13"></A></FONT> <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1641_13">Baudrate</A><FONT COLOR=red><A NAME="2078_13"></A></FONT> <b>return</b> Natural
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2051_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#2051_16">Baud</A>, "baudrate");
+      <b>function</b> <FONT COLOR=red><A NAME="2080_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2080_16">Baud</A>, "baudrate");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2051_16">Baud</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2080_16">Baud</A>);
    <b>end</b> Baudrate;
 
    <b>end</b> Baudrate;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1546_13">Erase_Character</A><FONT COLOR=red><A NAME="2057_13"></A></FONT> <b>return</b> Character
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1646_13">Erase_Character</A><FONT COLOR=red><A NAME="2086_13"></A></FONT> <b>return</b> Character
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2059_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#2059_16">Erasechar</A>, "erasechar");
+      <b>function</b> <FONT COLOR=red><A NAME="2088_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2088_16">Erasechar</A>, "erasechar");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2059_16">Erasechar</A>);
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2088_16">Erasechar</A>);
    <b>end</b> Erase_Character;
 
    <b>end</b> Erase_Character;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1551_13">Kill_Character</A><FONT COLOR=red><A NAME="2065_13"></A></FONT> <b>return</b> Character
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1651_13">Kill_Character</A><FONT COLOR=red><A NAME="2094_13"></A></FONT> <b>return</b> Character
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2067_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#2067_16">Killchar</A>, "killchar");
+      <b>function</b> <FONT COLOR=red><A NAME="2096_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2096_16">Killchar</A>, "killchar");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2067_16">Killchar</A>);
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2096_16">Killchar</A>);
    <b>end</b> Kill_Character;
 
    <b>end</b> Kill_Character;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1556_13">Has_Insert_Character</A><FONT COLOR=red><A NAME="2073_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1656_13">Has_Insert_Character</A><FONT COLOR=red><A NAME="2102_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2075_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2075_16">Has_Ic</A>, "has_ic");
+      <b>function</b> <FONT COLOR=red><A NAME="2104_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2104_16">Has_Ic</A>, "has_ic");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2075_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2104_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#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> Has_Insert_Character;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Has_Insert_Character;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1561_13">Has_Insert_Line</A><FONT COLOR=red><A NAME="2085_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1661_13">Has_Insert_Line</A><FONT COLOR=red><A NAME="2114_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2087_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2087_16">Has_Il</A>, "has_il");
+      <b>function</b> <FONT COLOR=red><A NAME="2116_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2116_16">Has_Il</A>, "has_il");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2087_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2116_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#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> Has_Insert_Line;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Has_Insert_Line;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1566_13">Supported_Attributes</A><FONT COLOR=red><A NAME="2097_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Character_Attribute_Set</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1666_13">Supported_Attributes</A><FONT COLOR=red><A NAME="2126_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Character_Attribute_Set</A>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2099_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#2099_16">Termattrs</A>, "termattrs");
+      <b>function</b> <FONT COLOR=red><A NAME="2128_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2128_16">Termattrs</A>, "termattrs");
 
 
-      <FONT COLOR=red><A NAME="2102_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#350_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#2099_16">Termattrs</A>);
+      <FONT COLOR=red><A NAME="2131_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#102_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#2128_16">Termattrs</A>);
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2102_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#352_10">Attr</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2131_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#354_10">Attr</A>;
    <b>end</b> Supported_Attributes;
 
    <b>end</b> Supported_Attributes;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1571_14">Long_Name</A><FONT COLOR=red><A NAME="2107_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1571_25">Name</A> : <b>out</b> String)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1671_14">Long_Name</A><FONT COLOR=red><A NAME="2136_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1671_25">Name</A> : <b>out</b> String)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2109_16">Longname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2109_16">Longname</A>, "longname");
+      <b>function</b> <FONT COLOR=red><A NAME="2138_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2138_16">Longname</A>, "longname");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2109_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#1571_25">Name</A>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2138_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#1671_25">Name</A>);
    <b>end</b> Long_Name;
 
    <b>end</b> Long_Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1575_13">Long_Name</A><FONT COLOR=red><A NAME="2115_13"></A></FONT> <b>return</b> String
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1675_13">Long_Name</A><FONT COLOR=red><A NAME="2144_13"></A></FONT> <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2117_16">Longname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2117_16">Longname</A>, "longname");
+      <b>function</b> <FONT COLOR=red><A NAME="2146_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2146_16">Longname</A>, "longname");
    <b>begin</b>
    <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#2117_16">Longname</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2146_16">Longname</A>);
    <b>end</b> Long_Name;
 
    <b>end</b> Long_Name;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1581_14">Terminal_Name</A><FONT COLOR=red><A NAME="2123_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1581_29">Name</A> : <b>out</b> String)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1681_14">Terminal_Name</A><FONT COLOR=red><A NAME="2152_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1681_29">Name</A> : <b>out</b> String)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2125_16">Termname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2125_16">Termname</A>, "termname");
+      <b>function</b> <FONT COLOR=red><A NAME="2154_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2154_16">Termname</A>, "termname");
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2125_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#1581_29">Name</A>);
+      <A HREF="terminal_interface-curses-aux__ads.htm#117_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2154_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#1681_29">Name</A>);
    <b>end</b> Terminal_Name;
 
    <b>end</b> Terminal_Name;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1585_13">Terminal_Name</A><FONT COLOR=red><A NAME="2131_13"></A></FONT> <b>return</b> String
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1685_13">Terminal_Name</A><FONT COLOR=red><A NAME="2160_13"></A></FONT> <b>return</b> String
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2133_16">Termname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2133_16">Termname</A>, "termname");
+      <b>function</b> <FONT COLOR=red><A NAME="2162_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2162_16">Termname</A>, "termname");
    <b>begin</b>
    <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#2133_16">Termname</A>);
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2162_16">Termname</A>);
    <b>end</b> Terminal_Name;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Terminal_Name;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1600_14">Init_Pair</A><FONT COLOR=red><A NAME="2139_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1600_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_12">Redefinable_Color_Pair</A>;
-                        <A HREF="terminal_interface-curses__ads.htm#1601_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#1602_25">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1706_14">Init_Pair</A><FONT COLOR=red><A NAME="2168_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1706_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#300_12">Redefinable_Color_Pair</A>;
+                        <A HREF="terminal_interface-curses__ads.htm#1707_25">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>;
+                        <A HREF="terminal_interface-curses__ads.htm#1708_25">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2143_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="2143_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="2144_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="2145_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#2143_16">Initpair</A>, "init_pair");
+      <b>function</b> <FONT COLOR=red><A NAME="2172_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="2172_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="2173_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="2174_26">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2172_16">Initpair</A>, "init_pair");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1600_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#422_13">Number_Of_Color_Pairs</A> <b>then</b>
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1706_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#424_13">Number_Of_Color_Pairs</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1601_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#419_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
-        Integer (<A HREF="terminal_interface-curses__ads.htm#1602_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#419_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1707_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+        Integer (<A HREF="terminal_interface-curses__ads.htm#1708_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2143_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1600_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1601_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1602_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2172_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1706_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1707_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1708_25">Back</A>))
+        = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Pair;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Pair;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1607_14">Pair_Content</A><FONT COLOR=red><A NAME="2160_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1607_28">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Color_Pair</A>;
-                           <A HREF="terminal_interface-curses__ads.htm#1608_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#1609_28">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1713_14">Pair_Content</A><FONT COLOR=red><A NAME="2189_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1713_28">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_9">Color_Pair</A>;
+                           <A HREF="terminal_interface-curses__ads.htm#1714_28">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>;
+                           <A HREF="terminal_interface-curses__ads.htm#1715_28">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Short_Access <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="2165_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="2165_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                            Fp   : C_Short_Access;
-                            Bp   : C_Short_Access) <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#2165_16">Paircontent</A>, "pair_content");
+      <b>type</b> <FONT COLOR=red><A NAME="2193_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="2194_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="2194_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                            <FONT COLOR=red><A NAME="2195_29">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#2193_12">C_Short_Access</A>;
+                            <FONT COLOR=red><A NAME="2196_29">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#2193_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2194_16">Paircontent</A>, "pair_content");
 
 
-      <FONT COLOR=red><A NAME="2170_7">F</A></FONT>, <FONT COLOR=red><A NAME="2170_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="2199_7">F</A></FONT>, <FONT COLOR=red><A NAME="2199_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2165_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1607_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#2170_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2170_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2194_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1713_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#2199_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2199_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1608_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2170_7">F</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1609_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2170_10">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1714_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2199_7">F</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1715_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2199_10">B</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Pair_Content;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Pair_Content;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1614_13">Has_Colors</A><FONT COLOR=red><A NAME="2180_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1720_13">Has_Colors</A><FONT COLOR=red><A NAME="2209_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2182_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2182_16">Hascolors</A>, "has_colors");
+      <b>function</b> <FONT COLOR=red><A NAME="2211_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2211_16">Hascolors</A>, "has_colors");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2182_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2211_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#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> Has_Colors;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Has_Colors;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1619_14">Init_Color</A><FONT COLOR=red><A NAME="2192_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1619_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#1620_26">Red</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1621_26">Green</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1622_26">Blue</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1725_14">Init_Color</A><FONT COLOR=red><A NAME="2221_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1725_26">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>;
+                         <A HREF="terminal_interface-curses__ads.htm#1726_26">Red</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                         <A HREF="terminal_interface-curses__ads.htm#1727_26">Green</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                         <A HREF="terminal_interface-curses__ads.htm#1728_26">Blue</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2197_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="2197_27">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2198_27">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2199_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2200_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#2197_16">Initcolor</A>, "init_color");
+      <b>function</b> <FONT COLOR=red><A NAME="2226_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="2226_27">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="2227_27">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="2228_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="2229_27">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2226_16">Initcolor</A>, "init_color");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2197_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1619_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1620_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1621_26">Green</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1622_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2226_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1725_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1726_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1727_26">Green</A>),
+                    <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1728_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Color;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Init_Color;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1627_13">Can_Change_Color</A><FONT COLOR=red><A NAME="2209_13"></A></FONT> <b>return</b> Boolean
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1733_13">Can_Change_Color</A><FONT COLOR=red><A NAME="2238_13"></A></FONT> <b>return</b> Boolean
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2211_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2211_16">Canchangecolor</A>, "can_change_color");
+      <b>function</b> <FONT COLOR=red><A NAME="2240_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2240_16">Canchangecolor</A>, "can_change_color");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2211_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2240_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#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> Can_Change_Color;
 
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
    <b>end</b> Can_Change_Color;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1632_14">Color_Content</A><FONT COLOR=red><A NAME="2221_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1632_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#1633_29">Red</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#1634_29">Green</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#1635_29">Blue</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1738_14">Color_Content</A><FONT COLOR=red><A NAME="2250_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1738_29">Color</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A>;
+                            <A HREF="terminal_interface-curses__ads.htm#1739_29">Red</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                            <A HREF="terminal_interface-curses__ads.htm#1740_29">Green</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                            <A HREF="terminal_interface-curses__ads.htm#1741_29">Blue</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>)
    <b>is</b>
    <b>is</b>
-      <b>type</b> C_Short_Access <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="2255_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
 
 
-      <b>function</b> <FONT COLOR=red><A NAME="2228_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="2228_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>; R, G, B : C_Short_Access)
-                             <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#2228_16">Colorcontent</A>, "color_content");
+      <b>function</b> <FONT COLOR=red><A NAME="2257_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="2257_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>; <FONT COLOR=red><A NAME="2257_47">R</A></FONT>, <FONT COLOR=red><A NAME="2257_50">G</A></FONT>, <FONT COLOR=red><A NAME="2257_53">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2255_12">C_Short_Access</A>)
+                             <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2257_16">Colorcontent</A>, "color_content");
 
 
-      <FONT COLOR=red><A NAME="2232_7">R</A></FONT>, <FONT COLOR=red><A NAME="2232_10">G</A></FONT>, <FONT COLOR=red><A NAME="2232_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="2261_7">R</A></FONT>, <FONT COLOR=red><A NAME="2261_10">G</A></FONT>, <FONT COLOR=red><A NAME="2261_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2228_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1632_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#2232_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2232_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2232_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2257_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1738_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#2261_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2261_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2261_13">B</A>'<b>Access</b>) =
+        <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1633_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2232_7">R</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1634_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2232_10">G</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1635_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2232_13">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1739_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2261_7">R</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1740_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2261_10">G</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1741_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2261_13">B</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Color_Content;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
       <b>end</b> <b>if</b>;
    <b>end</b> Color_Content;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1648_14">Save_Curses_Mode</A><FONT COLOR=red><A NAME="2245_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1648_32">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1645_9">Curses_Mode</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1753_14">Save_Curses_Mode</A><FONT COLOR=red><A NAME="2274_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1753_32">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1750_9">Curses_Mode</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2247_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#2247_16">Def_Prog_Mode</A>, "def_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="2249_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#2249_16">Def_Shell_Mode</A>, "def_shell_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="2276_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2276_16">Def_Prog_Mode</A>, "def_prog_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="2278_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2278_16">Def_Shell_Mode</A>, "def_shell_mode");
 
 
-      <FONT COLOR=red><A NAME="2252_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="2281_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1648_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1645_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2252_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2247_16">Def_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1645_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2252_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2249_16">Def_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1753_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2281_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2276_16">Def_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2281_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2278_16">Def_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2252_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2281_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Save_Curses_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Save_Curses_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1654_14">Reset_Curses_Mode</A><FONT COLOR=red><A NAME="2263_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1654_33">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1645_9">Curses_Mode</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1759_14">Reset_Curses_Mode</A><FONT COLOR=red><A NAME="2292_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1759_33">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1750_9">Curses_Mode</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2265_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#2265_16">Reset_Prog_Mode</A>, "reset_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="2267_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#2267_16">Reset_Shell_Mode</A>, "reset_shell_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="2294_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2294_16">Reset_Prog_Mode</A>, "reset_prog_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="2296_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2296_16">Reset_Shell_Mode</A>, "reset_shell_mode");
 
 
-      <FONT COLOR=red><A NAME="2270_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="2299_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1654_33">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1645_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2270_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2265_16">Reset_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1645_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2270_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2267_16">Reset_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1759_33">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2299_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2294_16">Reset_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2299_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2296_16">Reset_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2270_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2299_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Reset_Curses_Mode;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Reset_Curses_Mode;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1660_14">Save_Terminal_State</A><FONT COLOR=red><A NAME="2281_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1765_14">Save_Terminal_State</A><FONT COLOR=red><A NAME="2310_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2283_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#2283_16">Savetty</A>, "savetty");
+      <b>function</b> <FONT COLOR=red><A NAME="2312_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2312_16">Savetty</A>, "savetty");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2283_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2312_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Save_Terminal_State;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Save_Terminal_State;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1665_14">Reset_Terminal_State</A><FONT COLOR=red><A NAME="2291_14"></A></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1770_14">Reset_Terminal_State</A><FONT COLOR=red><A NAME="2320_14"></A></FONT>
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2293_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#2293_16">Resetty</A>, "resetty");
+      <b>function</b> <FONT COLOR=red><A NAME="2322_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2322_16">Resetty</A>, "resetty");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2293_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2322_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Reset_Terminal_State;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Reset_Terminal_State;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1678_14">Rip_Off_Lines</A><FONT COLOR=red><A NAME="2301_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1678_29">Lines</A> : <b>in</b> Integer;
-                            <A HREF="terminal_interface-curses__ads.htm#1679_29">Proc</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1669_9">Stdscr_Init_Proc</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1783_14">Rip_Off_Lines</A><FONT COLOR=red><A NAME="2330_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1783_29">Lines</A> : <b>in</b> Integer;
+                            <A HREF="terminal_interface-curses__ads.htm#1784_29">Proc</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1774_9">Stdscr_Init_Proc</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2304_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="2304_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="2305_28">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1669_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#2304_16">Ripoffline</A>, "_nc_ripoffline");
+      <b>function</b> <FONT COLOR=red><A NAME="2333_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="2333_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="2334_28">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1774_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2333_16">Ripoffline</A>, "_nc_ripoffline");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2304_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1678_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#1679_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2333_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1783_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#1784_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Rip_Off_Lines;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Rip_Off_Lines;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1690_14">Set_Cursor_Visibility</A><FONT COLOR=red><A NAME="2313_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1690_37">Visibility</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#1687_9">Cursor_Visibility</A>)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1795_14">Set_Cursor_Visibility</A><FONT COLOR=red><A NAME="2342_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1795_37">Visibility</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#1792_9">Cursor_Visibility</A>)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2315_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="2315_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#2315_16">Curs_Set</A>, "curs_set");
+      <b>function</b> <FONT COLOR=red><A NAME="2344_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="2344_26">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2344_16">Curs_Set</A>, "curs_set");
 
 
-      <FONT COLOR=red><A NAME="2318_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="2347_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
    <b>begin</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#2318_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#2315_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#1687_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1690_37">Visibility</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2318_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#1690_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#1687_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#2318_7">Res</A>);
+      <A HREF="terminal_interface-curses__adb.htm#2347_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#2344_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#1792_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1795_37">Visibility</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2347_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#1795_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#1792_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#2347_7">Res</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Cursor_Visibility;
 
       <b>end</b> <b>if</b>;
    <b>end</b> Set_Cursor_Visibility;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1695_14">Nap_Milli_Seconds</A><FONT COLOR=red><A NAME="2326_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1695_33">Ms</A> : <b>in</b> Natural)
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1800_14">Nap_Milli_Seconds</A><FONT COLOR=red><A NAME="2355_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1800_33">Ms</A> : <b>in</b> Natural)
    <b>is</b>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2328_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="2328_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#2328_16">Napms</A>, "napms");
+      <b>function</b> <FONT COLOR=red><A NAME="2357_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="2357_23">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2357_16">Napms</A>, "napms");
    <b>begin</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2328_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1695_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#381_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2357_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1800_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> Nap_Milli_Seconds;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
       <b>end</b> <b>if</b>;
    <b>end</b> Nap_Milli_Seconds;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A><FONT COLOR=red><A NAME="2337_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A><FONT COLOR=red><A NAME="2366_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2339_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#2339_7">Stdscr</A>, "stdscr");
+      <FONT COLOR=red><A NAME="2368_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2368_7">Stdscr</A>, "stdscr");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2339_7">Stdscr</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2368_7">Stdscr</A>;
    <b>end</b> Standard_Window;
 
    <b>end</b> Standard_Window;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#410_13">Lines</A><FONT COLOR=red><A NAME="2345_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#412_13">Lines</A><FONT COLOR=red><A NAME="2374_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2347_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#2347_7">C_Lines</A>, "LINES");
+      <FONT COLOR=red><A NAME="2376_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2376_7">C_Lines</A>, "LINES");
    <b>begin</b>
    <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#2347_7">C_Lines</A>);
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2376_7">C_Lines</A>);
    <b>end</b> Lines;
 
    <b>end</b> Lines;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#413_13">Columns</A><FONT COLOR=red><A NAME="2353_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#415_13">Columns</A><FONT COLOR=red><A NAME="2382_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2355_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#2355_7">C_Columns</A>, "COLS");
+      <FONT COLOR=red><A NAME="2384_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2384_7">C_Columns</A>, "COLS");
    <b>begin</b>
    <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#2355_7">C_Columns</A>);
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2384_7">C_Columns</A>);
    <b>end</b> Columns;
 
    <b>end</b> Columns;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#416_13">Tab_Size</A><FONT COLOR=red><A NAME="2361_13"></A></FONT> <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#418_13">Tab_Size</A><FONT COLOR=red><A NAME="2390_13"></A></FONT> <b>return</b> Natural
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2363_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#2363_7">C_Tab_Size</A>, "TABSIZE");
+      <FONT COLOR=red><A NAME="2392_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2392_7">C_Tab_Size</A>, "TABSIZE");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2363_7">C_Tab_Size</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2392_7">C_Tab_Size</A>);
    <b>end</b> Tab_Size;
 
    <b>end</b> Tab_Size;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#419_13">Number_Of_Colors</A><FONT COLOR=red><A NAME="2369_13"></A></FONT> <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#421_13">Number_Of_Colors</A><FONT COLOR=red><A NAME="2398_13"></A></FONT> <b>return</b> Natural
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2371_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#2371_7">C_Number_Of_Colors</A>, "COLORS");
+      <FONT COLOR=red><A NAME="2400_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2400_7">C_Number_Of_Colors</A>, "COLORS");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2371_7">C_Number_Of_Colors</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2400_7">C_Number_Of_Colors</A>);
    <b>end</b> Number_Of_Colors;
 
    <b>end</b> Number_Of_Colors;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#422_13">Number_Of_Color_Pairs</A><FONT COLOR=red><A NAME="2377_13"></A></FONT> <b>return</b> Natural
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#424_13">Number_Of_Color_Pairs</A><FONT COLOR=red><A NAME="2406_13"></A></FONT> <b>return</b> Natural
    <b>is</b>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2379_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#2379_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
+      <FONT COLOR=red><A NAME="2408_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2408_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
    <b>begin</b>
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2379_7">C_Number_Of_Color_Pairs</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2408_7">C_Number_Of_Color_Pairs</A>);
    <b>end</b> Number_Of_Color_Pairs;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>end</b> Number_Of_Color_Pairs;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1703_14">Transform_Coordinates</A><FONT COLOR=red><A NAME="2385_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1704_7">W</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#473_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1705_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#1706_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#1707_7">Dir</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1702_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#1702_33">From_Screen</A>)
-   <b>is</b>
-      <b>type</b> Int_Access <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="2392_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="2392_27">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          Y, X : Int_Access;
-                          <FONT COLOR=red><A NAME="2394_27">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1735_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#2392_16">Transform</A>, "wmouse_trafo");
-
-      <FONT COLOR=red><A NAME="2397_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#1706_7">Column</A>);
-      <FONT COLOR=red><A NAME="2398_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#1705_7">Line</A>);
-      <FONT COLOR=red><A NAME="2399_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1735_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#1736_4">Curses_Bool_False</A>;
-      <FONT COLOR=red><A NAME="2400_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#1707_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#1702_46">To_Screen</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#2399_7">D</A> := 1;
-      <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#2400_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#2392_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#1704_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#2398_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2397_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2399_7">D</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2400_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#381_4">Curses_Exception</A>;
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1808_14">Transform_Coordinates</A><FONT COLOR=red><A NAME="2414_14"></A></FONT>
+     (<A HREF="terminal_interface-curses__ads.htm#1809_7">W</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1810_7">Line</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1811_7">Column</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#1812_7">Dir</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1807_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#1807_33">From_Screen</A>)
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="2420_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="2421_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="2421_27">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="2422_27">Y</A></FONT>, <FONT COLOR=red><A NAME="2422_30">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2420_12">Int_Access</A>;
+                          <FONT COLOR=red><A NAME="2423_27">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2421_16">Transform</A>, "wmouse_trafo");
+
+      <FONT COLOR=red><A NAME="2426_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1811_7">Column</A>);
+      <FONT COLOR=red><A NAME="2427_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1810_7">Line</A>);
+      <FONT COLOR=red><A NAME="2428_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#1932_4">Curses_Bool_False</A>;
+      <FONT COLOR=red><A NAME="2429_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1812_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#1807_46">To_Screen</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#2428_7">D</A> := 1;
+      <b>end</b> <b>if</b>;
+      <A HREF="terminal_interface-curses__adb.htm#2429_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#2421_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#1809_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#2427_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2426_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2428_7">D</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2429_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#76_4">Curses_False</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
       <b>else</b>
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1705_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2398_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1706_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2397_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1810_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2427_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#1811_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2426_7">X</A>);
       <b>end</b> <b>if</b>;
    <b>end</b> Transform_Coordinates;
       <b>end</b> <b>if</b>;
    <b>end</b> Transform_Coordinates;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1825_14">Use_Default_Colors</A><FONT COLOR=red><A NAME="2443_14"></A></FONT> <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2444_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2444_16">C_Use_Default_Colors</A>, "use_default_colors");
+      <FONT COLOR=red><A NAME="2446_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2444_16">C_Use_Default_Colors</A>;
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2446_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Use_Default_Colors;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1830_14">Assume_Default_Colors</A><FONT COLOR=red><A NAME="2453_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1830_37">Fore</A> : <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#284_4">Default_Color</A>;
+                                    <A HREF="terminal_interface-curses__ads.htm#1831_37">Back</A> : <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#284_4">Default_Color</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2456_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="2456_41">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                                        <FONT COLOR=red><A NAME="2457_41">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2456_16">C_Assume_Default_Colors</A>, "assume_default_colors");
+
+      <FONT COLOR=red><A NAME="2460_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2456_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1830_37">Fore</A>),
+                                                       <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#285_4">Black</A>));
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2460_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Assume_Default_Colors;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1840_13">Curses_Version</A><FONT COLOR=red><A NAME="2468_13"></A></FONT> <b>return</b> String
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2470_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2470_16">curses_versionC</A>, "curses_version");
+      <FONT COLOR=red><A NAME="2472_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#2470_16">curses_versionC</A>;
+   <b>begin</b>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#122_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2472_7">Result</A>);
+   <b>end</b> Curses_Version;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1845_13">Use_Extended_Names</A><FONT COLOR=red><A NAME="2477_13"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1845_33">Enable</A> : Boolean) <b>return</b> Boolean
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2479_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="2479_37">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2479_16">use_extended_namesC</A>, "use_extended_names");
+
+      <FONT COLOR=red><A NAME="2482_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> :=
+         <A HREF="terminal_interface-curses__adb.htm#2479_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1845_33">Enable</A>)));
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2482_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#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> Use_Extended_Names;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1853_14">Screen_Dump_To_File</A><FONT COLOR=red><A NAME="2492_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1853_35">Filename</A> : <b>in</b> String)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2494_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="2494_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2494_16">scr_dump</A>, "scr_dump");
+      <FONT COLOR=red><A NAME="2496_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1853_35">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="2497_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1853_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2496_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2497_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2494_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#2496_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Screen_Dump_To_File;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1857_14">Screen_Restore_From_File</A><FONT COLOR=red><A NAME="2505_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1857_40">Filename</A> : <b>in</b> String)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2507_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="2507_29">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2507_16">scr_restore</A>, "scr_restore");
+      <FONT COLOR=red><A NAME="2509_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1857_40">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="2510_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1857_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2509_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2510_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2507_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#2509_7">Txt</A>)  <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Screen_Restore_From_File;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1861_14">Screen_Init_From_File</A><FONT COLOR=red><A NAME="2518_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1861_37">Filename</A> : <b>in</b> String)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2520_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="2520_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2520_16">scr_init</A>, "scr_init");
+      <FONT COLOR=red><A NAME="2522_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1861_37">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="2523_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1861_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2522_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2523_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2520_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#2522_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Screen_Init_From_File;
+
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1865_14">Screen_Set_File</A><FONT COLOR=red><A NAME="2531_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1865_31">Filename</A> : <b>in</b> String)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2533_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="2533_25">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2533_16">scr_set</A>, "scr_set");
+      <FONT COLOR=red><A NAME="2535_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1865_31">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="2536_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#1865_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2535_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2536_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2533_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#2535_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Screen_Set_File;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1898_14">Resize</A><FONT COLOR=red><A NAME="2544_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1898_22">Win</A>               : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#475_13">Standard_Window</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Lines</A>   : <A HREF="terminal_interface-curses__ads.htm#63_12">Line_Count</A>;
+                     <A HREF="terminal_interface-curses__ads.htm#1900_22">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#65_12">Column_Count</A>) <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="2547_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="2547_25">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="2548_25">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="2549_25">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2547_16">wresize</A>);
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2547_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#1898_22">Win</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Lines</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1900_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#73_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> Resize;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>end</b> Terminal_Interface.Curses;
 
 <b>end</b> Terminal_Interface.Curses;
+
 </PRE></BODY></HTML>
\ No newline at end of file
 </PRE></BODY></HTML>
\ No newline at end of file
index bc6650872d0f78d55d0f6a00b09ec576de8d81cd..5acab555cbb20227afceb096ad3fcf10340e45db 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.28 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.30 @</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>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  curses binding.</EM></FONT>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
    <b>pragma</b> Linker_Options ("-lncurses");
 
    <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> := 2; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
+   <FONT COLOR=red><A NAME="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="55_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 2; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
    NC_Version : <b>constant</b> String := "5.2";  <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;
 
    NC_Version : <b>constant</b> String := "5.2";  <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="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>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;
 
    <FONT COLOR=green><EM>--  Constants for function- and special keys</EM></FONT>
    <FONT COLOR=green><EM>--</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="88_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#400#;
+   <FONT COLOR=red><A NAME="89_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#400#;
+   <FONT COLOR=red><A NAME="90_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#401#;
+   <FONT COLOR=red><A NAME="91_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#401#;
+   <FONT COLOR=red><A NAME="92_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#402#;
+   <FONT COLOR=red><A NAME="93_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#403#;
+   <FONT COLOR=red><A NAME="94_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#404#;
+   <FONT COLOR=red><A NAME="95_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#405#;
+   <FONT COLOR=red><A NAME="96_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#406#;
+   <FONT COLOR=red><A NAME="97_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#407#;
+   <FONT COLOR=red><A NAME="98_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#410#;
+   <FONT COLOR=red><A NAME="99_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#411#;
+   <FONT COLOR=red><A NAME="100_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#412#;
+   <FONT COLOR=red><A NAME="101_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#413#;
+   <FONT COLOR=red><A NAME="102_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#414#;
+   <FONT COLOR=red><A NAME="103_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#415#;
+   <FONT COLOR=red><A NAME="104_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#416#;
+   <FONT COLOR=red><A NAME="105_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#417#;
+   <FONT COLOR=red><A NAME="106_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#420#;
+   <FONT COLOR=red><A NAME="107_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#421#;
+   <FONT COLOR=red><A NAME="108_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#422#;
+   <FONT COLOR=red><A NAME="109_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#423#;
+   <FONT COLOR=red><A NAME="110_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#424#;
+   <FONT COLOR=red><A NAME="111_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#425#;
+   <FONT COLOR=red><A NAME="112_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#426#;
+   <FONT COLOR=red><A NAME="113_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#427#;
+   <FONT COLOR=red><A NAME="114_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#430#;
+   <FONT COLOR=red><A NAME="115_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#431#;
+   <FONT COLOR=red><A NAME="116_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#432#;
+   <FONT COLOR=red><A NAME="117_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#433#;
+   <FONT COLOR=red><A NAME="118_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#434#;
+   <FONT COLOR=red><A NAME="119_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#435#;
+   <FONT COLOR=red><A NAME="120_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#436#;
+   <FONT COLOR=red><A NAME="121_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#437#;
+   <FONT COLOR=red><A NAME="122_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#440#;
+   <FONT COLOR=red><A NAME="123_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#510#;
+   <FONT COLOR=red><A NAME="124_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#511#;
+   <FONT COLOR=red><A NAME="125_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#512#;
+   <FONT COLOR=red><A NAME="126_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#513#;
+   <FONT COLOR=red><A NAME="127_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#514#;
+   <FONT COLOR=red><A NAME="128_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#515#;
+   <FONT COLOR=red><A NAME="129_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#516#;
+   <FONT COLOR=red><A NAME="130_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#517#;
+   <FONT COLOR=red><A NAME="131_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#520#;
+   <FONT COLOR=red><A NAME="132_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#521#;
+   <FONT COLOR=red><A NAME="133_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#522#;
+   <FONT COLOR=red><A NAME="134_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#523#;
+   <FONT COLOR=red><A NAME="135_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#524#;
+   <FONT COLOR=red><A NAME="136_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#525#;
+   <FONT COLOR=red><A NAME="137_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#526#;
+   <FONT COLOR=red><A NAME="138_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#527#;
+   <FONT COLOR=red><A NAME="139_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#530#;
+   <FONT COLOR=red><A NAME="140_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#531#;
+   <FONT COLOR=red><A NAME="141_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#532#;
+   <FONT COLOR=red><A NAME="142_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#533#;
+   <FONT COLOR=red><A NAME="143_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#534#;
+   <FONT COLOR=red><A NAME="144_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#535#;
+   <FONT COLOR=red><A NAME="145_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#536#;
+   <FONT COLOR=red><A NAME="146_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#537#;
+   <FONT COLOR=red><A NAME="147_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#540#;
+   <FONT COLOR=red><A NAME="148_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#541#;
+   <FONT COLOR=red><A NAME="149_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#542#;
+   <FONT COLOR=red><A NAME="150_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#543#;
+   <FONT COLOR=red><A NAME="151_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#544#;
+   <FONT COLOR=red><A NAME="152_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#545#;
+   <FONT COLOR=red><A NAME="153_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#546#;
+   <FONT COLOR=red><A NAME="154_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#547#;
+   <FONT COLOR=red><A NAME="155_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#550#;
+   <FONT COLOR=red><A NAME="156_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#551#;
+   <FONT COLOR=red><A NAME="157_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#552#;
+   <FONT COLOR=red><A NAME="158_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#553#;
+   <FONT COLOR=red><A NAME="159_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#554#;
+   <FONT COLOR=red><A NAME="160_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#555#;
+   <FONT COLOR=red><A NAME="161_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#556#;
+   <FONT COLOR=red><A NAME="162_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#557#;
+   <FONT COLOR=red><A NAME="163_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#560#;
+   <FONT COLOR=red><A NAME="164_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#561#;
+   <FONT COLOR=red><A NAME="165_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#562#;
+   <FONT COLOR=red><A NAME="166_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#563#;
+   <FONT COLOR=red><A NAME="167_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#564#;
+   <FONT COLOR=red><A NAME="168_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#565#;
+   <FONT COLOR=red><A NAME="169_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#566#;
+   <FONT COLOR=red><A NAME="170_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#567#;
+   <FONT COLOR=red><A NAME="171_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#570#;
+   <FONT COLOR=red><A NAME="172_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#571#;
+   <FONT COLOR=red><A NAME="173_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#572#;
+   <FONT COLOR=red><A NAME="174_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#573#;
+   <FONT COLOR=red><A NAME="175_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#574#;
+   <FONT COLOR=red><A NAME="176_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#575#;
+   <FONT COLOR=red><A NAME="177_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#576#;
+   <FONT COLOR=red><A NAME="178_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#577#;
+   <FONT COLOR=red><A NAME="179_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#600#;
+   <FONT COLOR=red><A NAME="180_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#601#;
+   <FONT COLOR=red><A NAME="181_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#602#;
+   <FONT COLOR=red><A NAME="182_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#603#;
+   <FONT COLOR=red><A NAME="183_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#604#;
+   <FONT COLOR=red><A NAME="184_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#605#;
+   <FONT COLOR=red><A NAME="185_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#606#;
+   <FONT COLOR=red><A NAME="186_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#607#;
+   <FONT COLOR=red><A NAME="187_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#610#;
+   <FONT COLOR=red><A NAME="188_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#611#;
+   <FONT COLOR=red><A NAME="189_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#612#;
+   <FONT COLOR=red><A NAME="190_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#613#;
+   <FONT COLOR=red><A NAME="191_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#614#;
+   <FONT COLOR=red><A NAME="192_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#615#;
+   <FONT COLOR=red><A NAME="193_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#616#;
+   <FONT COLOR=red><A NAME="194_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#617#;
+   <FONT COLOR=red><A NAME="195_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#620#;
+   <FONT COLOR=red><A NAME="196_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#621#;
+   <FONT COLOR=red><A NAME="197_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#622#;
+   <FONT COLOR=red><A NAME="198_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#623#;
+   <FONT COLOR=red><A NAME="199_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#624#;
+   <FONT COLOR=red><A NAME="200_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#625#;
+   <FONT COLOR=red><A NAME="201_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#626#;
+   <FONT COLOR=red><A NAME="202_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#627#;
+   <FONT COLOR=red><A NAME="203_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> := 8#630#;
+   <FONT COLOR=red><A NAME="204_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#77_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
    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=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>;
+   <FONT COLOR=red><A NAME="218_4">KEY_DOWN</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#92_4">Key_Cursor_Down</A>;
+   <FONT COLOR=red><A NAME="219_4">KEY_UP</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#93_4">Key_Cursor_Up</A>;
+   <FONT COLOR=red><A NAME="220_4">KEY_LEFT</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#94_4">Key_Cursor_Left</A>;
+   <FONT COLOR=red><A NAME="221_4">KEY_RIGHT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#122_4">Key_Cursor_Right</A>;
+   <FONT COLOR=red><A NAME="222_4">KEY_DL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#123_4">Key_Delete_Line</A>;
+   <FONT COLOR=red><A NAME="223_4">KEY_IL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#124_4">Key_Insert_Line</A>;
+   <FONT COLOR=red><A NAME="224_4">KEY_DC</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#125_4">Key_Delete_Char</A>;
+   <FONT COLOR=red><A NAME="225_4">KEY_IC</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#126_4">Key_Insert_Char</A>;
+   <FONT COLOR=red><A NAME="226_4">KEY_EIC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#127_4">Key_Exit_Insert_Mode</A>;
+   <FONT COLOR=red><A NAME="227_4">KEY_CLEAR</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#128_4">Key_Clear_Screen</A>;
+   <FONT COLOR=red><A NAME="228_4">KEY_EOS</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#129_4">Key_Clear_End_Of_Screen</A>;
+   <FONT COLOR=red><A NAME="229_4">KEY_EOL</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#130_4">Key_Clear_End_Of_Line</A>;
+   <FONT COLOR=red><A NAME="230_4">KEY_SF</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#131_4">Key_Scroll_1_Forward</A>;
+   <FONT COLOR=red><A NAME="231_4">KEY_SR</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#132_4">Key_Scroll_1_Backward</A>;
+   <FONT COLOR=red><A NAME="232_4">KEY_NPAGE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#133_4">Key_Next_Page</A>;
+   <FONT COLOR=red><A NAME="233_4">KEY_PPAGE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#134_4">Key_Previous_Page</A>;
+   <FONT COLOR=red><A NAME="234_4">KEY_STAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#135_4">Key_Set_Tab</A>;
+   <FONT COLOR=red><A NAME="235_4">KEY_CTAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#136_4">Key_Clear_Tab</A>;
+   <FONT COLOR=red><A NAME="236_4">KEY_CATAB</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#137_4">Key_Clear_All_Tabs</A>;
+   <FONT COLOR=red><A NAME="237_4">KEY_ENTER</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#138_4">Key_Enter_Or_Send</A>;
+   <FONT COLOR=red><A NAME="238_4">KEY_SRESET</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#141_4">Key_Soft_Reset</A>;
+   <FONT COLOR=red><A NAME="239_4">KEY_LL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#142_4">Key_Bottom</A>;
+   <FONT COLOR=red><A NAME="240_4">KEY_A1</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#143_4">Key_Upper_Left_Of_Keypad</A>;
+   <FONT COLOR=red><A NAME="241_4">KEY_A3</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#144_4">Key_Upper_Right_Of_Keypad</A>;
+   <FONT COLOR=red><A NAME="242_4">KEY_B2</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#145_4">Key_Center_Of_Keypad</A>;
+   <FONT COLOR=red><A NAME="243_4">KEY_C1</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#146_4">Key_Lower_Left_Of_Keypad</A>;
+   <FONT COLOR=red><A NAME="244_4">KEY_C3</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#147_4">Key_Lower_Right_Of_Keypad</A>;
+   <FONT COLOR=red><A NAME="245_4">KEY_BTAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#148_4">Key_Back_Tab</A>;
+   <FONT COLOR=red><A NAME="246_4">KEY_BEG</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#172_4">Key_Beginning</A>;
+   <FONT COLOR=red><A NAME="247_4">KEY_SBEG</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#173_4">Key_Shift_Begin</A>;
+   <FONT COLOR=red><A NAME="248_4">KEY_SCANCEL</A></FONT>      : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#174_4">Key_Shift_Cancel</A>;
+   <FONT COLOR=red><A NAME="249_4">KEY_SCOMMAND</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#175_4">Key_Shift_Command</A>;
+   <FONT COLOR=red><A NAME="250_4">KEY_SCOPY</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#176_4">Key_Shift_Copy</A>;
+   <FONT COLOR=red><A NAME="251_4">KEY_SCREATE</A></FONT>      : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#177_4">Key_Shift_Create</A>;
+   <FONT COLOR=red><A NAME="252_4">KEY_SDC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#178_4">Key_Shift_Delete_Char</A>;
+   <FONT COLOR=red><A NAME="253_4">KEY_SDL</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#180_4">Key_Shift_Delete_Line</A>;
+   <FONT COLOR=red><A NAME="254_4">KEY_SEND</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#181_4">Key_Shift_End</A>;
+   <FONT COLOR=red><A NAME="255_4">KEY_SEOL</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#182_4">Key_Shift_Clear_End_Of_Line</A>;
+   <FONT COLOR=red><A NAME="256_4">KEY_SEXIT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#183_4">Key_Shift_Exit</A>;
+   <FONT COLOR=red><A NAME="257_4">KEY_SFIND</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#184_4">Key_Shift_Find</A>;
+   <FONT COLOR=red><A NAME="258_4">KEY_SHELP</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#185_4">Key_Shift_Help</A>;
+   <FONT COLOR=red><A NAME="259_4">KEY_SHOME</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#186_4">Key_Shift_Home</A>;
+   <FONT COLOR=red><A NAME="260_4">KEY_SIC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#187_4">Key_Shift_Insert_Char</A>;
+   <FONT COLOR=red><A NAME="261_4">KEY_SLEFT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#188_4">Key_Shift_Cursor_Left</A>;
+   <FONT COLOR=red><A NAME="262_4">KEY_SMESSAGE</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#189_4">Key_Shift_Message</A>;
+   <FONT COLOR=red><A NAME="263_4">KEY_SMOVE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#190_4">Key_Shift_Move</A>;
+   <FONT COLOR=red><A NAME="264_4">KEY_SNEXT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#191_4">Key_Shift_Next_Page</A>;
+   <FONT COLOR=red><A NAME="265_4">KEY_SOPTIONS</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#192_4">Key_Shift_Options</A>;
+   <FONT COLOR=red><A NAME="266_4">KEY_SPREVIOUS</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#193_4">Key_Shift_Previous_Page</A>;
+   <FONT COLOR=red><A NAME="267_4">KEY_SPRINT</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#194_4">Key_Shift_Print</A>;
+   <FONT COLOR=red><A NAME="268_4">KEY_SREDO</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#195_4">Key_Shift_Redo</A>;
+   <FONT COLOR=red><A NAME="269_4">KEY_SREPLACE</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#196_4">Key_Shift_Replace</A>;
+   <FONT COLOR=red><A NAME="270_4">KEY_SRIGHT</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#197_4">Key_Shift_Cursor_Right</A>;
+   <FONT COLOR=red><A NAME="271_4">KEY_SRSUME</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#198_4">Key_Shift_Resume</A>;
+   <FONT COLOR=red><A NAME="272_4">KEY_SSAVE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#199_4">Key_Shift_Save</A>;
+   <FONT COLOR=red><A NAME="273_4">KEY_SSUSPEND</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#200_4">Key_Shift_Suspend</A>;
    KEY_SUNDO        : Special_Key_Code <b>renames</b> Key_Shift_Undo;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
    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>0 .. Integer (Interfaces.C.short'Last);
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#277_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>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>
 
    <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">Black</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 0;
-   <FONT COLOR=red><A NAME="285_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="286_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="287_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="288_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="289_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="290_4">Cyan</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 6;
-   White    : <b>constant</b> Color_Number := 7;
-
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#292_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#23_9"> </A>0 .. Integer (Interfaces.C.short'Last);
+   <FONT COLOR=red><A NAME="285_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := -1;
+   <FONT COLOR=red><A NAME="286_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 0;
+   <FONT COLOR=red><A NAME="287_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 1;
+   <FONT COLOR=red><A NAME="288_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 2;
+   <FONT COLOR=red><A NAME="289_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 3;
+   <FONT COLOR=red><A NAME="290_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 4;
+   <FONT COLOR=red><A NAME="291_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 5;
+   <FONT COLOR=red><A NAME="292_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := 6;
+   White            : <b>constant</b> Color_Number := 7;
+
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#294_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>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>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#296_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#298_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>
    <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>
 
    <b>type</b> Character_Attribute_Set <b>is</b>
       <b>record</b>
 
    <b>type</b> Character_Attribute_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="307_10">Stand_Out</A></FONT>               : Boolean;
-         <FONT COLOR=red><A NAME="308_10">Under_Line</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="309_10">Reverse_Video</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="310_10">Blink</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="311_10">Dim_Character</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="312_10">Bold_Character</A></FONT>          : Boolean;
-         <FONT COLOR=red><A NAME="313_10">Alternate_Character_Set</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="314_10">Invisible_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="315_10">Protected_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="316_10">Horizontal</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="317_10">Left</A></FONT>                    : Boolean;
-         <FONT COLOR=red><A NAME="318_10">Low</A></FONT>                     : Boolean;
-         <FONT COLOR=red><A NAME="319_10">Right</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="320_10">Top</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="309_10">Stand_Out</A></FONT>               : Boolean;
+         <FONT COLOR=red><A NAME="310_10">Under_Line</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="311_10">Reverse_Video</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="312_10">Blink</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="313_10">Dim_Character</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="314_10">Bold_Character</A></FONT>          : Boolean;
+         <FONT COLOR=red><A NAME="315_10">Alternate_Character_Set</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="316_10">Invisible_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="317_10">Protected_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="318_10">Horizontal</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="319_10">Left</A></FONT>                    : Boolean;
+         <FONT COLOR=red><A NAME="320_10">Low</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="321_10">Right</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="322_10">Top</A></FONT>                     : Boolean;
          Vertical                : Boolean;
          Vertical                : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses__ads.htm#304_9">;</A>
+      <b>end</b> <b>record</b><A HREF="terminal_interface-curses__ads.htm#306_9">;</A>
    <b>pragma</b> Pack (Character_Attribute_Set);
    <b>pragma</b> Convention (C, Character_Attribute_Set);
 
    <b>pragma</b> Pack (Character_Attribute_Set);
    <b>pragma</b> Convention (C, Character_Attribute_Set);
 
 
    <b>type</b> Attributed_Character <b>is</b>
       <b>record</b>
 
    <b>type</b> Attributed_Character <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="353_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A>;
-         <FONT COLOR=red><A NAME="354_10">Color</A></FONT> : Color_Pair;
+         <FONT COLOR=red><A NAME="355_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#298_9">Character_Attribute_Set</A>;
+         <FONT COLOR=red><A NAME="356_10">Color</A></FONT> : Color_Pair;
          Ch    : Character;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Attributed_Character);
          Ch    : Character;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Attributed_Character);
       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
 
    Default_Character : <b>constant</b> Attributed_Character
       <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#296_9">Character</A>'First,
+     := (Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#298_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>
 
          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=green><EM>------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
    <FONT COLOR=green><EM>------------------</EM></FONT>
-   <FONT COLOR=red><A NAME="382_4">Curses_Exception</A></FONT>     : <b>exception</b>;
+   <FONT COLOR=red><A NAME="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>
    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="388_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="389_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="390_4">Eti_Posted</A></FONT>          : <b>exception</b>;
-   <FONT COLOR=red><A NAME="391_4">Eti_Connected</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="392_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="393_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
-   <FONT COLOR=red><A NAME="394_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
-   <FONT COLOR=red><A NAME="395_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
-   <FONT COLOR=red><A NAME="396_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
-   <FONT COLOR=red><A NAME="397_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="398_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
-   <FONT COLOR=red><A NAME="399_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="400_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="390_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="391_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="392_4">Eti_Posted</A></FONT>          : <b>exception</b>;
+   <FONT COLOR=red><A NAME="393_4">Eti_Connected</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="394_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="395_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
+   <FONT COLOR=red><A NAME="396_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
+   <FONT COLOR=red><A NAME="397_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+   <FONT COLOR=red><A NAME="398_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
+   <FONT COLOR=red><A NAME="399_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="400_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="401_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="402_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
    Eti_Current         : <b>exception</b>;
 
    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
    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>
 
    <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#410_13"> </A>          <b>return</b> Line_Count;
+   <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#412_13"> </A>          <b>return</b> Line_Count;
    <b>pragma</b> Inline (Lines);
 
    <b>function</b> Columns          <b>return</b> Column_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=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="435_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
-   <FONT COLOR=red><A NAME="436_4">ACS_Lower_Left_Corner</A></FONT>    : <b>constant</b> Character := 'm';
-   <FONT COLOR=red><A NAME="437_4">ACS_Upper_Right_Corner</A></FONT>   : <b>constant</b> Character := 'k';
-   <FONT COLOR=red><A NAME="438_4">ACS_Lower_Right_Corner</A></FONT>   : <b>constant</b> Character := 'j';
-   <FONT COLOR=red><A NAME="439_4">ACS_Left_Tee</A></FONT>             : <b>constant</b> Character := 't';
-   <FONT COLOR=red><A NAME="440_4">ACS_Right_Tee</A></FONT>            : <b>constant</b> Character := 'u';
-   <FONT COLOR=red><A NAME="441_4">ACS_Bottom_Tee</A></FONT>           : <b>constant</b> Character := 'v';
-   <FONT COLOR=red><A NAME="442_4">ACS_Top_Tee</A></FONT>              : <b>constant</b> Character := 'w';
-   <FONT COLOR=red><A NAME="443_4">ACS_Horizontal_Line</A></FONT>      : <b>constant</b> Character := 'q';
-   <FONT COLOR=red><A NAME="444_4">ACS_Vertical_Line</A></FONT>        : <b>constant</b> Character := 'x';
-   <FONT COLOR=red><A NAME="445_4">ACS_Plus_Symbol</A></FONT>          : <b>constant</b> Character := 'n';
-   <FONT COLOR=red><A NAME="446_4">ACS_Scan_Line_1</A></FONT>          : <b>constant</b> Character := 'o';
-   <FONT COLOR=red><A NAME="447_4">ACS_Scan_Line_9</A></FONT>          : <b>constant</b> Character := 's';
-   <FONT COLOR=red><A NAME="448_4">ACS_Diamond</A></FONT>              : <b>constant</b> Character := Character'Val (96);
-   <FONT COLOR=red><A NAME="449_4">ACS_Checker_Board</A></FONT>        : <b>constant</b> Character := 'a';
-   <FONT COLOR=red><A NAME="450_4">ACS_Degree</A></FONT>               : <b>constant</b> Character := 'f';
-   <FONT COLOR=red><A NAME="451_4">ACS_Plus_Minus</A></FONT>           : <b>constant</b> Character := 'g';
-   <FONT COLOR=red><A NAME="452_4">ACS_Bullet</A></FONT>               : <b>constant</b> Character := '~';
-   <FONT COLOR=red><A NAME="453_4">ACS_Left_Arrow</A></FONT>           : <b>constant</b> Character := ',';
-   <FONT COLOR=red><A NAME="454_4">ACS_Right_Arrow</A></FONT>          : <b>constant</b> Character := '+';
-   <FONT COLOR=red><A NAME="455_4">ACS_Down_Arrow</A></FONT>           : <b>constant</b> Character := '.';
-   <FONT COLOR=red><A NAME="456_4">ACS_Up_Arrow</A></FONT>             : <b>constant</b> Character := '-';
-   <FONT COLOR=red><A NAME="457_4">ACS_Board_Of_Squares</A></FONT>     : <b>constant</b> Character := 'h';
-   <FONT COLOR=red><A NAME="458_4">ACS_Lantern</A></FONT>              : <b>constant</b> Character := 'i';
-   <FONT COLOR=red><A NAME="459_4">ACS_Solid_Block</A></FONT>          : <b>constant</b> Character := '0';
-   <FONT COLOR=red><A NAME="460_4">ACS_Scan_Line_3</A></FONT>          : <b>constant</b> Character := 'p';
-   <FONT COLOR=red><A NAME="461_4">ACS_Scan_Line_7</A></FONT>          : <b>constant</b> Character := 'r';
-   <FONT COLOR=red><A NAME="462_4">ACS_Less_Or_Equal</A></FONT>        : <b>constant</b> Character := 'y';
-   <FONT COLOR=red><A NAME="463_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
-   <FONT COLOR=red><A NAME="464_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
-   <FONT COLOR=red><A NAME="465_4">ACS_Not_Equal</A></FONT>            : <b>constant</b> Character := '|';
+   <FONT COLOR=red><A NAME="437_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
+   <FONT COLOR=red><A NAME="438_4">ACS_Lower_Left_Corner</A></FONT>    : <b>constant</b> Character := 'm';
+   <FONT COLOR=red><A NAME="439_4">ACS_Upper_Right_Corner</A></FONT>   : <b>constant</b> Character := 'k';
+   <FONT COLOR=red><A NAME="440_4">ACS_Lower_Right_Corner</A></FONT>   : <b>constant</b> Character := 'j';
+   <FONT COLOR=red><A NAME="441_4">ACS_Left_Tee</A></FONT>             : <b>constant</b> Character := 't';
+   <FONT COLOR=red><A NAME="442_4">ACS_Right_Tee</A></FONT>            : <b>constant</b> Character := 'u';
+   <FONT COLOR=red><A NAME="443_4">ACS_Bottom_Tee</A></FONT>           : <b>constant</b> Character := 'v';
+   <FONT COLOR=red><A NAME="444_4">ACS_Top_Tee</A></FONT>              : <b>constant</b> Character := 'w';
+   <FONT COLOR=red><A NAME="445_4">ACS_Horizontal_Line</A></FONT>      : <b>constant</b> Character := 'q';
+   <FONT COLOR=red><A NAME="446_4">ACS_Vertical_Line</A></FONT>        : <b>constant</b> Character := 'x';
+   <FONT COLOR=red><A NAME="447_4">ACS_Plus_Symbol</A></FONT>          : <b>constant</b> Character := 'n';
+   <FONT COLOR=red><A NAME="448_4">ACS_Scan_Line_1</A></FONT>          : <b>constant</b> Character := 'o';
+   <FONT COLOR=red><A NAME="449_4">ACS_Scan_Line_9</A></FONT>          : <b>constant</b> Character := 's';
+   <FONT COLOR=red><A NAME="450_4">ACS_Diamond</A></FONT>              : <b>constant</b> Character := Character'Val (96);
+   <FONT COLOR=red><A NAME="451_4">ACS_Checker_Board</A></FONT>        : <b>constant</b> Character := 'a';
+   <FONT COLOR=red><A NAME="452_4">ACS_Degree</A></FONT>               : <b>constant</b> Character := 'f';
+   <FONT COLOR=red><A NAME="453_4">ACS_Plus_Minus</A></FONT>           : <b>constant</b> Character := 'g';
+   <FONT COLOR=red><A NAME="454_4">ACS_Bullet</A></FONT>               : <b>constant</b> Character := '~';
+   <FONT COLOR=red><A NAME="455_4">ACS_Left_Arrow</A></FONT>           : <b>constant</b> Character := ',';
+   <FONT COLOR=red><A NAME="456_4">ACS_Right_Arrow</A></FONT>          : <b>constant</b> Character := '+';
+   <FONT COLOR=red><A NAME="457_4">ACS_Down_Arrow</A></FONT>           : <b>constant</b> Character := '.';
+   <FONT COLOR=red><A NAME="458_4">ACS_Up_Arrow</A></FONT>             : <b>constant</b> Character := '-';
+   <FONT COLOR=red><A NAME="459_4">ACS_Board_Of_Squares</A></FONT>     : <b>constant</b> Character := 'h';
+   <FONT COLOR=red><A NAME="460_4">ACS_Lantern</A></FONT>              : <b>constant</b> Character := 'i';
+   <FONT COLOR=red><A NAME="461_4">ACS_Solid_Block</A></FONT>          : <b>constant</b> Character := '0';
+   <FONT COLOR=red><A NAME="462_4">ACS_Scan_Line_3</A></FONT>          : <b>constant</b> Character := 'p';
+   <FONT COLOR=red><A NAME="463_4">ACS_Scan_Line_7</A></FONT>          : <b>constant</b> Character := 'r';
+   <FONT COLOR=red><A NAME="464_4">ACS_Less_Or_Equal</A></FONT>        : <b>constant</b> Character := 'y';
+   <FONT COLOR=red><A NAME="465_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
+   <FONT COLOR=red><A NAME="466_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
+   <FONT COLOR=red><A NAME="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>--  | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    ACS_Sterling             : <b>constant</b> Character := '}';
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen</EM></FONT>
+   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen, curscr</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
    <b>function</b> Standard_Window <b>return</b> Window;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
    <b>function</b> Standard_Window <b>return</b> Window;
    <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>
    <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#481_14">Init_Screen</A>);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#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 (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#489_14">End_Windows</A>);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#491_14">End_Windows</A>);
    <b>pragma</b> Inline (End_Screen);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
    <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>
    <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="504_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="505_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="506_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                          <FONT COLOR=red><A NAME="507_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                           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>
    <b>pragma</b> Inline (Move_Cursor);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>pragma</b> Inline (Move_Cursor);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</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="515_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="518_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                   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="519_19">Win</A></FONT> :  <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="523_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
                   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="526_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="527_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="528_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Column_Position</A>;
+     (<FONT COLOR=red><A NAME="530_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="531_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="532_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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
 
    <b>procedure</b> Add
-     (<FONT COLOR=red><A NAME="533_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="534_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="535_7">Column</A></FONT> : <b>in</b> Column_Position;
+     (<FONT COLOR=red><A NAME="538_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="539_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="540_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
       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="542_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="547_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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
 
    <b>procedure</b> Add_With_Immediate_Echo
-     (<FONT COLOR=red><A NAME="547_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="553_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);
       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>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not Implemented: wcursyncup</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
    <b>function</b> Create
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
    <b>function</b> Create
-     (<FONT COLOR=red><A NAME="558_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="559_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="560_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="565_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="566_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="567_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window;
       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>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT>
    <b>pragma</b> Inline (Create);
 
    <b>function</b> New_Window
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT>
    <b>pragma</b> Inline (Create);
 
    <b>function</b> New_Window
-     (<FONT COLOR=red><A NAME="566_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="567_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="568_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="575_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="576_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="577_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window
      <b>renames</b> Create;
    <b>pragma</b> Inline (New_Window);
       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=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
    <b>function</b> Sub_Window
-     (<FONT COLOR=red><A NAME="581_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="582_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="583_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="584_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="590_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#63_12">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="591_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="592_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="593_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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
       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="591_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="592_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="593_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="594_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="600_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#63_12">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="601_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="602_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="603_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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);
       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>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="605_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-                          <FONT COLOR=red><A NAME="606_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="614_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+                          <FONT COLOR=red><A NAME="615_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                           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="612_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-                                  <FONT COLOR=red><A NAME="613_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="621_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+                                  <FONT COLOR=red><A NAME="622_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                                   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>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="629_30">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="638_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);
                              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>
    <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="639_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="640_19">Str</A></FONT> : <b>in</b> String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="648_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+                  <FONT COLOR=red><A NAME="649_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>
                   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: addnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: addstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="646_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="647_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="648_19">Column</A></FONT> : <b>in</b> Column_Position;
-                  <FONT COLOR=red><A NAME="649_19">Str</A></FONT>    : <b>in</b> String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="657_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="658_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="659_19">Column</A></FONT> : <b>in</b> Column_Position;
+                  <FONT COLOR=red><A NAME="660_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">mvwaddnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwaddstr()</EM></FONT>
                   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>--  AKA: mvaddnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvaddstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="659_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="660_19">Str</A></FONT> : <b>in</b> Attributed_String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="672_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="673_19">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>
                   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: addchnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: addchstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="666_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="667_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="668_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#374_9">Column_Position</A>;
-                  <FONT COLOR=red><A NAME="669_19">Str</A></FONT>    : <b>in</b> Attributed_String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="681_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="682_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="683_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#376_9">Column_Position</A>;
+                  <FONT COLOR=red><A NAME="684_19">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>
                   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>--  AKA: mvaddchnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvaddchstr()</EM></FONT>
    <b>pragma</b> Inline (Add);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>pragma</b> Inline (Add);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline</EM></FONT>
+   <FONT COLOR=green><EM>--  | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
    <b>procedure</b> Border
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
    <b>procedure</b> Border
-     (<FONT COLOR=red><A NAME="681_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="682_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="683_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="684_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="685_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="686_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="687_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="688_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
+     (<FONT COLOR=red><A NAME="700_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="701_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="702_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="703_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="704_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="705_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="706_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="707_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#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>
       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>--  AKA: border()</EM></FONT>
    <b>pragma</b> Inline (Border);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
    <b>procedure</b> Box
    <b>pragma</b> Inline (Border);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
    <b>procedure</b> Box
-     (<FONT COLOR=red><A NAME="696_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="697_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#369_4">Default_Character</A>;
+     (<FONT COLOR=red><A NAME="716_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="717_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#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
       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="704_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="705_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Natural</A>;
+     (<FONT COLOR=red><A NAME="724_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="725_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Horizontal_Line);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
    <b>procedure</b> Vertical_Line
    <b>pragma</b> Inline (Horizontal_Line);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
    <b>procedure</b> Vertical_Line
-     (<FONT COLOR=red><A NAME="712_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="713_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Natural</A>;
+     (<FONT COLOR=red><A NAME="733_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="734_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Vertical_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <b>pragma</b> Inline (Vertical_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented: mvgetch, mvwgetch</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
    <b>function</b> Get_Keystroke (Win : Window := Standard_Window)
                            <b>return</b> Real_Key_Code;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
    <b>function</b> Get_Keystroke (Win : Window := Standard_Window)
                            <b>return</b> Real_Key_Code;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: getch()</EM></FONT>
    <FONT COLOR=green><EM>--  Get a character from the keyboard and echo it - if enabled - to the</EM></FONT>
    <FONT COLOR=green><EM>--  window.</EM></FONT>
    <FONT COLOR=green><EM>--  If for any reason (i.e. a timeout) we couldn't get a character the</EM></FONT>
    <FONT COLOR=green><EM>--  Get a character from the keyboard and echo it - if enabled - to the</EM></FONT>
    <FONT COLOR=green><EM>--  window.</EM></FONT>
    <FONT COLOR=green><EM>--  If for any reason (i.e. a timeout) we couldn't get a character the</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Not implemented attr_off,  wattr_off,</EM></FONT>
+   <FONT COLOR=green><EM>--  |  attr_on, wattr_on, attr_set, wattr_set</EM></FONT>
+
+   <FONT COLOR=green><EM>--  PAIR_NUMBER</EM></FONT>
+   <FONT COLOR=green><EM>--  PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
+   <b>procedure</b> Standout (<FONT COLOR=red><A NAME="795_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
    <b>procedure</b> Switch_Character_Attribute
-     (<FONT COLOR=red><A NAME="767_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="768_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
+     (<FONT COLOR=red><A NAME="802_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="803_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>
       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>--  AKA: wattroff()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: wattroff()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: attron()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: attroff()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
    <b>procedure</b> Set_Character_Attributes
    <b>procedure</b> Set_Character_Attributes
-     (<FONT COLOR=red><A NAME="775_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="776_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="813_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="814_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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 (Set_Character_Attributes);
 
    <b>pragma</b> Inline (Set_Character_Attributes);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
    <b>function</b> Get_Character_Attribute
      (Win : <b>in</b> Window := Standard_Window) <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
    <b>function</b> Get_Character_Attribute
      (Win : <b>in</b> Window := Standard_Window) <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: attr_get()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
    <b>function</b> Get_Character_Attribute
      (Win : <b>in</b> Window := Standard_Window) <b>return</b> Color_Pair;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Character_Attribute);
 
    <b>function</b> Get_Character_Attribute
      (Win : <b>in</b> Window := Standard_Window) <b>return</b> Color_Pair;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Character_Attribute);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="793_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Window</A> := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="833_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
                         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>
    <b>pragma</b> Inline (Set_Color);
 
    <b>pragma</b> Inline (Set_Color);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
    <b>procedure</b> Change_Attributes
    <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="800_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="801_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="802_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="841_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="842_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Integer</A> := -1;
+      <FONT COLOR=red><A NAME="843_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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_37"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
    <b>procedure</b> Change_Attributes
    <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="808_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="809_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="810_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
-      <FONT COLOR=red><A NAME="811_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#304_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="812_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="850_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="851_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A> := Line_Position'First;
+      <FONT COLOR=red><A NAME="852_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
+      <FONT COLOR=red><A NAME="853_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#306_9">Integer</A> := -1;
+      <FONT COLOR=red><A NAME="854_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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>
       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 (Change_Attributes);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Change_Attributes);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
    <b>procedure</b> Beep;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT>
    <b>pragma</b> Inline (Beep);
 
    <b>procedure</b> Beep;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT>
    <b>pragma</b> Inline (Beep);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
    <b>procedure</b> Flash_Screen;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT>
    <b>pragma</b> Inline (Flash_Screen);
    <b>procedure</b> Flash_Screen;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT>
    <b>pragma</b> Inline (Flash_Screen);
 
    <FONT COLOR=green><EM>--  | Not implemented : typeahead</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Not implemented : typeahead</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
    <b>procedure</b> Set_Cbreak_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nocbreak()</EM></FONT>
    <b>pragma</b> Inline (Set_Cbreak_Mode);
 
    <b>procedure</b> Set_Cbreak_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nocbreak()</EM></FONT>
    <b>pragma</b> Inline (Set_Cbreak_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
    <b>procedure</b> Set_Raw_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noraw()</EM></FONT>
    <b>pragma</b> Inline (Set_Raw_Mode);
 
    <b>procedure</b> Set_Raw_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noraw()</EM></FONT>
    <b>pragma</b> Inline (Set_Raw_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
    <b>procedure</b> Set_Echo_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noecho()</EM></FONT>
    <b>pragma</b> Inline (Set_Echo_Mode);
 
    <b>procedure</b> Set_Echo_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noecho()</EM></FONT>
    <b>pragma</b> Inline (Set_Echo_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
-   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="856_29">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
+   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="899_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);
 
                             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_44"#2|</EM></FONT>
-   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="862_31">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="905_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);
 
                               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);
 
+   <b>function</b> Get_KeyPad_Mode (Win : <b>in</b> Window := Standard_Window)
+                             <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  This has no pendant in C. There you've to look into the WINDOWS</EM></FONT>
+   <FONT COLOR=green><EM>--  structure to get the value. Bad practice, not repeated in Ada.</EM></FONT>
+
    <b>type</b> Half_Delay_Amount <b>is</b> <b>range</b> 1 .. 255;
 
    <b>type</b> Half_Delay_Amount <b>is</b> <b>range</b> 1 .. 255;
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
    <b>procedure</b> Half_Delay (Amount : <b>in</b> Half_Delay_Amount);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT>
    <b>pragma</b> Inline (Half_Delay);
 
    <b>procedure</b> Half_Delay (Amount : <b>in</b> Half_Delay_Amount);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT>
    <b>pragma</b> Inline (Half_Delay);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
    <b>procedure</b> Set_Flush_On_Interrupt_Mode
    <b>procedure</b> Set_Flush_On_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="876_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="924_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);
 
       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_47"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
    <b>procedure</b> Set_Queue_Interrupt_Mode
    <b>procedure</b> Set_Queue_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="883_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="931_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>
    <b>pragma</b> Inline (Set_Queue_Interrupt_Mode);
 
       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>
    <b>pragma</b> Inline (Set_Queue_Interrupt_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
    <b>procedure</b> Set_NoDelay_Mode
    <b>procedure</b> Set_NoDelay_Mode
-     (<FONT COLOR=red><A NAME="891_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="939_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);
 
       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_49"#2|</EM></FONT>
-   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="899_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#895_9">Window</A> := Standard_Window;
-                               <FONT COLOR=red><A NAME="900_32">Mode</A></FONT>   : <b>in</b> Timeout_Mode;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="947_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#943_9">Window</A> := Standard_Window;
+                               <FONT COLOR=red><A NAME="948_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>
                                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>--  Instead of overloading the semantic of the sign of amount, we</EM></FONT>
    <FONT COLOR=green><EM>--  introduce the Timeout_Mode parameter. This should improve</EM></FONT>
    <FONT COLOR=green><EM>--  readability. For Blocking and Non_Blocking, the Amount is not</EM></FONT>
    <FONT COLOR=green><EM>--  evaluated.</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure.</EM></FONT>
 
    <FONT COLOR=green><EM>--  Instead of overloading the semantic of the sign of amount, we</EM></FONT>
    <FONT COLOR=green><EM>--  introduce the Timeout_Mode parameter. This should improve</EM></FONT>
    <FONT COLOR=green><EM>--  readability. For Blocking and Non_Blocking, the Amount is not</EM></FONT>
    <FONT COLOR=green><EM>--  evaluated.</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
    <b>procedure</b> Set_Escape_Timer_Mode
    <b>procedure</b> Set_Escape_Timer_Mode
-     (<FONT COLOR=red><A NAME="911_7">Win</A></FONT>       : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="960_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);
       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>--  | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
    <b>procedure</b> Set_NL_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nonl()</EM></FONT>
    <b>pragma</b> Inline (Set_NL_Mode);
 
    <b>procedure</b> Set_NL_Mode (SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nonl()</EM></FONT>
    <b>pragma</b> Inline (Set_NL_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
    <b>procedure</b> Clear_On_Next_Update
    <b>procedure</b> Clear_On_Next_Update
-     (<FONT COLOR=red><A NAME="928_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="977_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);
 
       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_53"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
    <b>procedure</b> Use_Insert_Delete_Line
    <b>procedure</b> Use_Insert_Delete_Line
-     (<FONT COLOR=red><A NAME="935_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="984_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);
 
       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_54"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
    <b>procedure</b> Use_Insert_Delete_Character
    <b>procedure</b> Use_Insert_Delete_Character
-     (<FONT COLOR=red><A NAME="942_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="991_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);
 
       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_55"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
    <b>procedure</b> Leave_Cursor_After_Update
    <b>procedure</b> Leave_Cursor_After_Update
-     (<FONT COLOR=red><A NAME="949_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="998_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);
 
       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_56"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
    <b>procedure</b> Immediate_Update_Mode
    <b>procedure</b> Immediate_Update_Mode
-     (<FONT COLOR=red><A NAME="956_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="1005_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);
 
       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_57"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
    <b>procedure</b> Allow_Scrolling
    <b>procedure</b> Allow_Scrolling
-     (<FONT COLOR=red><A NAME="963_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="1012_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);
       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>--  There is no such function in the C interface.</EM></FONT>
    <b>pragma</b> Inline (Scrolling_Allowed);
 
    <FONT COLOR=green><EM>--  There is no such function in the C interface.</EM></FONT>
    <b>pragma</b> Inline (Scrolling_Allowed);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
    <b>procedure</b> Set_Scroll_Region
    <b>procedure</b> Set_Scroll_Region
-     (<FONT COLOR=red><A NAME="974_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="975_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="1023_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="1024_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Set_Scroll_Region);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Set_Scroll_Region);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
    <b>procedure</b> Update_Screen;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT>
    <b>pragma</b> Inline (Update_Screen);
 
    <b>procedure</b> Update_Screen;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT>
    <b>pragma</b> Inline (Update_Screen);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
    <b>procedure</b> Refresh (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
    <b>procedure</b> Refresh (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: refresh()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
    <b>procedure</b> Refresh_Without_Update
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh_Without_Update for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
 
    <b>procedure</b> Refresh_Without_Update
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh_Without_Update for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
    <b>procedure</b> Redraw (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
 
    <b>procedure</b> Redraw (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
-   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="1007_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="1008_22">Begin_Line</A></FONT> : <b>in</b> Line_Position;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
+   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="1058_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="1059_22">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);
                      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>--  | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
    <b>procedure</b> Erase (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT>
    <b>procedure</b> Erase (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: erase()</EM></FONT>
    <b>pragma</b> Inline (Erase);
 
    <b>pragma</b> Inline (Erase);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
    <b>procedure</b> Clear
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT>
    <b>procedure</b> Clear
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: clear()</EM></FONT>
    <b>pragma</b> Inline (Clear);
 
    <b>pragma</b> Inline (Clear);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
    <b>procedure</b> Clear_To_End_Of_Screen
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT>
    <b>procedure</b> Clear_To_End_Of_Screen
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: clrtobot()</EM></FONT>
    <b>pragma</b> Inline (Clear_To_End_Of_Screen);
 
    <b>pragma</b> Inline (Clear_To_End_Of_Screen);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
    <b>procedure</b> Clear_To_End_Of_Line
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT>
    <b>procedure</b> Clear_To_End_Of_Line
      (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: clrtoeol()</EM></FONT>
    <b>pragma</b> Inline (Clear_To_End_Of_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Clear_To_End_Of_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></FONT>
+   <FONT COLOR=green><EM>--  because in C it is common to see bkgdset(A_BOLD) or</EM></FONT>
+   <FONT COLOR=green><EM>--  bkgdset(COLOR_PAIR(n))</EM></FONT>
    <b>procedure</b> Set_Background
    <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="1046_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="1104_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Set_Background);
 
    <b>pragma</b> Inline (Set_Background);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
    <b>procedure</b> Change_Background
    <b>procedure</b> Change_Background
-     (<FONT COLOR=red><A NAME="1053_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="1112_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Change_Background);
 
    <b>pragma</b> Inline (Change_Background);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Get_Background</A> (Win : Window := Standard_Window)
+   <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#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>
      <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>
    <b>pragma</b> Inline (Get_Background);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Get_Background);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
    <b>procedure</b> Untouch (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT>
    <b>pragma</b> Inline (Untouch);
 
    <b>procedure</b> Untouch (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT>
    <b>pragma</b> Inline (Untouch);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
    <b>procedure</b> Touch (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
 
    <b>procedure</b> Touch (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
-   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="1078_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="1079_21">Start</A></FONT> : <b>in</b> Line_Position;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
+   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="1140_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                    <FONT COLOR=red><A NAME="1141_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);
 
                     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_74"#2|</EM></FONT>
-   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="1085_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="1086_35">Start</A></FONT> : <b>in</b> Line_Position;
-                                  <FONT COLOR=red><A NAME="1087_35">Count</A></FONT> : <b>in</b> Positive;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
+   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="1147_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                                  <FONT COLOR=red><A NAME="1148_35">Start</A></FONT> : <b>in</b> Line_Position;
+                                  <FONT COLOR=red><A NAME="1149_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);
 
                                   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_75"#2|</EM></FONT>
-   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="1093_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
+   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="1155_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#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>
 
                         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_76"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
    <b>function</b> Is_Touched (Win : Window := Standard_Window) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT>
    <b>pragma</b> Inline (Is_Touched);
    <b>function</b> Is_Touched (Win : Window := Standard_Window) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT>
    <b>pragma</b> Inline (Is_Touched);
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_78"#2|</EM></FONT>
    <b>procedure</b> Copy
    <b>procedure</b> Copy
-     (<FONT COLOR=red><A NAME="1108_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="1109_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1110_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="1111_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="1112_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="1113_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="1114_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="1115_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
+     (<FONT COLOR=red><A NAME="1170_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#57_9">Window</A>;
+      <FONT COLOR=red><A NAME="1171_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+      <FONT COLOR=red><A NAME="1172_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1173_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1174_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1175_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1176_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1177_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);
 
       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_78"#2|</EM></FONT>
-   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="1121_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
+   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="1183_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
                         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_79"#2|</EM></FONT>
-   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="1127_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
+   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="1189_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
                       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>--  | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
    <b>procedure</b> Insert_Delete_Lines
    <b>procedure</b> Insert_Delete_Lines
-     (<FONT COLOR=red><A NAME="1138_7">Win</A></FONT>   : <b>in</b> Window  := Standard_Window;
+     (<FONT COLOR=red><A NAME="1200_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>
       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>
    <b>pragma</b> Inline (Insert_Delete_Lines);
 
    <b>pragma</b> Inline (Insert_Delete_Lines);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
    <b>procedure</b> Delete_Line (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT>
    <b>procedure</b> Delete_Line (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: deleteln()</EM></FONT>
    <b>pragma</b> Inline (Delete_Line);
 
    <b>pragma</b> Inline (Delete_Line);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
    <b>procedure</b> Insert_Line (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT>
    <b>procedure</b> Insert_Line (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: insertln()</EM></FONT>
    <b>pragma</b> Inline (Insert_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Insert_Line);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
    <b>procedure</b> Get_Size
    <b>procedure</b> Get_Size
-     (<FONT COLOR=red><A NAME="1159_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1160_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="1224_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="1225_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_84"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
    <b>procedure</b> Get_Window_Position
    <b>procedure</b> Get_Window_Position
-     (<FONT COLOR=red><A NAME="1167_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1168_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="1232_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="1233_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_85"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
    <b>procedure</b> Get_Cursor_Position
    <b>procedure</b> Get_Cursor_Position
-     (<FONT COLOR=red><A NAME="1175_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="1176_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="1240_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="1241_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_86"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
    <b>procedure</b> Get_Origin_Relative_To_Parent
    <b>procedure</b> Get_Origin_Relative_To_Parent
-     (<FONT COLOR=red><A NAME="1183_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1184_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="1185_7">Top_Left_Column</A></FONT>    : <b>out</b> Column_Position;
+     (<FONT COLOR=red><A NAME="1248_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+      <FONT COLOR=red><A NAME="1249_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1250_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>
       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>--  | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
-   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="1197_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
+   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="1262_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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);
 
                      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_88"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
    <b>function</b> Sub_Pad
    <b>function</b> Sub_Pad
-     (<FONT COLOR=red><A NAME="1204_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A>;
-      <FONT COLOR=red><A NAME="1205_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="1206_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="1207_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="1269_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#63_12">Window</A>;
+      <FONT COLOR=red><A NAME="1270_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="1271_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="1272_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_89"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
    <b>procedure</b> Refresh
    <b>procedure</b> Refresh
-     (<FONT COLOR=red><A NAME="1214_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1215_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="1216_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="1217_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="1218_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="1219_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="1279_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+      <FONT COLOR=red><A NAME="1280_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1281_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1282_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1283_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1284_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_90"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
    <b>procedure</b> Refresh_Without_Update
    <b>procedure</b> Refresh_Without_Update
-     (<FONT COLOR=red><A NAME="1226_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1227_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="1228_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="1229_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="1230_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="1231_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="1291_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A>;
+      <FONT COLOR=red><A NAME="1292_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1293_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1294_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1295_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="1296_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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);
 
       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_91"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
    <b>procedure</b> Add_Character_To_Pad_And_Echo_It
    <b>procedure</b> Add_Character_To_Pad_And_Echo_It
-     (<FONT COLOR=red><A NAME="1238_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A>;
+     (<FONT COLOR=red><A NAME="1303_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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
       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="1243_7">Pad</A></FONT> : <b>in</b> Window;
+     (<FONT COLOR=red><A NAME="1308_7">Pad</A></FONT> : <b>in</b> Window;
       Ch  : <b>in</b> Character);
    <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
 
       Ch  : <b>in</b> Character);
    <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
-   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="1252_22">Win</A></FONT>    : <b>in</b> Window  := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
+   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="1317_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>
                      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>--  AKA: scrl()</EM></FONT>
    <b>pragma</b> Inline (Scroll);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Scroll);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
    <b>procedure</b> Delete_Character (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT>
    <b>procedure</b> Delete_Character (Win : <b>in</b> Window := Standard_Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: delch()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
    <b>procedure</b> Delete_Character
    <b>procedure</b> Delete_Character
-     (<FONT COLOR=red><A NAME="1267_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="1268_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="1335_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="1336_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
       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>
    <b>pragma</b> Inline (Delete_Character);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Delete_Character);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Peek</A> (Win : Window := Standard_Window)
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Peek</A> (Win : Window := Standard_Window)
      <b>return</b> Attributed_Character;
      <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>--  AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
    <b>function</b> Peek
    <b>function</b> Peek
-     (<FONT COLOR=red><A NAME="1284_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="1285_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="1354_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="1355_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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>
       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>--  More Peek's follow, pragma Inline appears later.</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  More Peek's follow, pragma Inline appears later.</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1295_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Window</A> := Standard_Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1366_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Window</A> := Standard_Window;
                      Ch  : <b>in</b> Attributed_Character);
                      Ch  : <b>in</b> Attributed_Character);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_winch.3x.html">winsch()</A></EM></FONT>
+   <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_98"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1300_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="1301_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="1302_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#350_9">Column_Position</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1372_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="1373_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="1374_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#352_9">Column_Position</A>;
                      Ch     : <b>in</b> Attributed_Character);
                      Ch     : <b>in</b> Attributed_Character);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_winch.3x.html">mvwinsch()</A></EM></FONT>
+   <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>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_winch.3x.html">curs_winch.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1311_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                     <FONT COLOR=red><A NAME="1312_22">Str</A></FONT> : <b>in</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1384_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+                     <FONT COLOR=red><A NAME="1385_22">Str</A></FONT> : <b>in</b> String;
                      Len : <b>in</b> Integer := -1);
                      Len : <b>in</b> Integer := -1);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_winch.3x.html">winsnstr()</A></EM></FONT>
+   <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: winsstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: insnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: insstr()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1318_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="1319_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="1320_22">Column</A></FONT> : <b>in</b> Column_Position;
-                     <FONT COLOR=red><A NAME="1321_22">Str</A></FONT>    : <b>in</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1393_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="1394_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="1395_22">Column</A></FONT> : <b>in</b> Column_Position;
+                     <FONT COLOR=red><A NAME="1396_22">Str</A></FONT>    : <b>in</b> String;
                      Len    : <b>in</b> Integer := -1);
                      Len    : <b>in</b> Integer := -1);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_winch.3x.html">mvwinsnstr()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinsstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinsstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvinsnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvinsstr()</EM></FONT>
    <b>pragma</b> Inline (Insert);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <b>pragma</b> Inline (Insert);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1332_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                   <FONT COLOR=red><A NAME="1333_20">Str</A></FONT> : <b>out</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1409_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+                   <FONT COLOR=red><A NAME="1410_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>
                    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: innstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: instr()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1339_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="1340_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="1341_20">Column</A></FONT> : <b>in</b>  Column_Position;
-                   <FONT COLOR=red><A NAME="1342_20">Str</A></FONT>    : <b>out</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1418_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="1419_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="1420_20">Column</A></FONT> : <b>in</b>  Column_Position;
+                   <FONT COLOR=red><A NAME="1421_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">mvwinnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinstr()</EM></FONT>
                    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>--  AKA: mvinnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvinstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1352_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#374_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="1353_20">Str</A></FONT> : <b>out</b> Attributed_String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1433_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#376_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="1434_20">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>
                    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: inchnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: inchstr()</EM></FONT>
 
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1359_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="1360_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="1361_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#374_9">Column_Position</A>;
-                   <FONT COLOR=red><A NAME="1362_20">Str</A></FONT>    : <b>out</b> Attributed_String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1442_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="1443_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="1444_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#376_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="1445_20">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>
                    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>--  AKA: mvinchnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvinchstr()</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline the Peek procedures</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  We don't inline the Peek procedures</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1373_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="1374_19">Str</A></FONT> : <b>out</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
+   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1458_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+                  <FONT COLOR=red><A NAME="1459_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>
                   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>--  AKA: getnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: getstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  actually getstr is not supported because that results in buffer</EM></FONT>
+   <FONT COLOR=green><EM>--  overflows.</EM></FONT>
 
 
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1379_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="1380_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="1381_19">Column</A></FONT> : <b>in</b>  Column_Position;
-                  <FONT COLOR=red><A NAME="1382_19">Str</A></FONT>    : <b>out</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
+   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1469_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="1470_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="1471_19">Column</A></FONT> : <b>in</b>  Column_Position;
+                  <FONT COLOR=red><A NAME="1472_19">Str</A></FONT>    : <b>out</b> String;
                   Len    : <b>in</b>  Integer := -1);
                   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>--  not specified in ncurses, should be: mvwgetnstr()</EM></FONT>
-   <FONT COLOR=green><EM>--       and mvwgetstr() (which exists)</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvwgetstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvgetnstr()</EM></FONT>
+   <FONT COLOR=green><EM>--  AKA: mvgetstr()</EM></FONT>
    <FONT COLOR=green><EM>--  Get is not inlined</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  Get is not inlined</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Soft_Label_Key_Format <b>is</b> (Three_Two_Three,
-                                  Four_Four,
-                                  PC_Style,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
-        <FONT COLOR=red><A NAME="1396_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
-   <b>type</b> <FONT COLOR=red><A NAME="1397_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
+   <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="1486_35">Three_Two_Three</A></FONT>,
+                                  <FONT COLOR=red><A NAME="1487_35">Four_Four</A></FONT>,
+                                  <FONT COLOR=red><A NAME="1488_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
+        <FONT COLOR=red><A NAME="1489_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="1490_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="1490_49">12</A></FONT>;
    <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
 
    <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
    <b>procedure</b> Init_Soft_Label_Keys
      (Format : <b>in</b> Soft_Label_Key_Format := Three_Two_Three);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT>
    <b>pragma</b> Inline (Init_Soft_Label_Keys);
 
    <b>procedure</b> Init_Soft_Label_Keys
      (Format : <b>in</b> Soft_Label_Key_Format := Three_Two_Three);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT>
    <b>pragma</b> Inline (Init_Soft_Label_Keys);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
-   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="1407_34">Label</A></FONT> : <b>in</b> Label_Number;
-                                 <FONT COLOR=red><A NAME="1408_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1397_9">String</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
+   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="1500_34">Label</A></FONT> : <b>in</b> Label_Number;
+                                 <FONT COLOR=red><A NAME="1501_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
 
                                  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>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
    <b>procedure</b> Refresh_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Soft_Label_Keys);
 
    <b>procedure</b> Refresh_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Soft_Label_Keys);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_111"#2|</EM></FONT>
    <b>procedure</b> Refresh_Soft_Label_Keys_Without_Update;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
 
    <b>procedure</b> Refresh_Soft_Label_Keys_Without_Update;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
-   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="1424_34">Label</A></FONT> : <b>in</b> Label_Number;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
+   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="1517_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>
 
                                  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_111"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
    <b>function</b> Get_Soft_Label_Key (Label : <b>in</b> Label_Number) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key);
 
    <b>function</b> Get_Soft_Label_Key (Label : <b>in</b> Label_Number) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
    <b>procedure</b> Clear_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT>
    <b>pragma</b> Inline (Clear_Soft_Label_Keys);
 
    <b>procedure</b> Clear_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT>
    <b>pragma</b> Inline (Clear_Soft_Label_Keys);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
    <b>procedure</b> Restore_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT>
    <b>pragma</b> Inline (Restore_Soft_Label_Keys);
 
    <b>procedure</b> Restore_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT>
    <b>pragma</b> Inline (Restore_Soft_Label_Keys);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
    <b>procedure</b> Touch_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT>
    <b>pragma</b> Inline (Touch_Soft_Label_Keys);
 
    <b>procedure</b> Touch_Soft_Label_Keys;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT>
    <b>pragma</b> Inline (Touch_Soft_Label_Keys);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_117"#2|</EM></FONT>
    <b>procedure</b> Switch_Soft_Label_Key_Attributes
    <b>procedure</b> Switch_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="1451_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
+     (<FONT COLOR=red><A NAME="1544_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>
    <b>pragma</b> Inline (Switch_Soft_Label_Key_Attributes);
 
       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>
    <b>pragma</b> Inline (Switch_Soft_Label_Key_Attributes);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
    <b>procedure</b> Set_Soft_Label_Key_Attributes
    <b>procedure</b> Set_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="1459_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#296_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="1552_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#298_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);
 
       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>--  #1A NAME="AFU_117"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
    <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
 
    <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
    <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Color_Pair;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
 
    <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Color_Pair;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
    <b>procedure</b> Set_Soft_Label_Key_Color (Pair : <b>in</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Soft_Label_Key_Color);
 
    <b>procedure</b> Set_Soft_Label_Key_Color (Pair : <b>in</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Soft_Label_Key_Color);
 
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not Implemented: keybound</EM></FONT>
+
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
-   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="1483_26">Key</A></FONT>    : <b>in</b> Special_Key_Code;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
+   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="1581_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);
                          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>--  | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
-   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="1493_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">String</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
+   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="1591_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#77_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);
                          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>--  | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  | Not implemented : filter, use_env, putwin, getwin</EM></FONT>
+   <FONT COLOR=green><EM>--  | Not implemented : filter, use_env</EM></FONT>
+   <FONT COLOR=green><EM>--  | putwin, getwin are in the child package PutWin</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
-   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="1505_24">Key</A></FONT>  : <b>in</b>  Real_Key_Code;
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
+   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="1605_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>
 
                        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>--  #1A NAME="AFU_123"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
    <b>function</b> Key_Name (Key  : <b>in</b>  Real_Key_Code) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this routine</EM></FONT>
 
    <b>function</b> Key_Name (Key  : <b>in</b>  Real_Key_Code) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this routine</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
-   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="1517_26">Ch</A></FONT>  : <b>in</b> Attributed_Character;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
+   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="1617_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>
 
                          Str : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
    <b>function</b> Un_Control (Ch  : <b>in</b> Attributed_Character) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Un_Control);
 
    <b>function</b> Un_Control (Ch  : <b>in</b> Attributed_Character) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Un_Control);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
    <b>procedure</b> Delay_Output (Msecs : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT>
    <b>pragma</b> Inline (Delay_Output);
 
    <b>procedure</b> Delay_Output (Msecs : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT>
    <b>pragma</b> Inline (Delay_Output);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
    <b>procedure</b> Flush_Input;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT>
    <b>pragma</b> Inline (Flush_Input);
    <b>procedure</b> Flush_Input;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT>
    <b>pragma</b> Inline (Flush_Input);
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
    <b>function</b> Baudrate <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT>
    <b>pragma</b> Inline (Baudrate);
 
    <b>function</b> Baudrate <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT>
    <b>pragma</b> Inline (Baudrate);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
    <b>function</b> Erase_Character <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT>
    <b>pragma</b> Inline (Erase_Character);
 
    <b>function</b> Erase_Character <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT>
    <b>pragma</b> Inline (Erase_Character);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
    <b>function</b> Kill_Character <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT>
    <b>pragma</b> Inline (Kill_Character);
 
    <b>function</b> Kill_Character <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT>
    <b>pragma</b> Inline (Kill_Character);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
    <b>function</b> Has_Insert_Character <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Insert_Character);
 
    <b>function</b> Has_Insert_Character <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Insert_Character);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
    <b>function</b> Has_Insert_Line <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Insert_Line);
 
    <b>function</b> Has_Insert_Line <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Insert_Line);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
    <b>function</b> Supported_Attributes <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT>
    <b>pragma</b> Inline (Supported_Attributes);
 
    <b>function</b> Supported_Attributes <b>return</b> Character_Attribute_Set;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT>
    <b>pragma</b> Inline (Supported_Attributes);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
    <b>procedure</b> Long_Name (Name : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
 
    <b>procedure</b> Long_Name (Name : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
    <b>function</b> Long_Name <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Long_Name);
 
    <b>function</b> Long_Name <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Long_Name);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
    <b>procedure</b> Terminal_Name (Name : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
 
    <b>procedure</b> Terminal_Name (Name : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
    <b>function</b> Terminal_Name <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>function</b> Terminal_Name <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  COLOR_PAIR</EM></FONT>
+   <FONT COLOR=green><EM>--  COLOR_PAIR(n) in C is the same as</EM></FONT>
+   <FONT COLOR=green><EM>--  Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></FONT>
+   <FONT COLOR=green><EM>--  In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT>
+   <FONT COLOR=green><EM>--  This is equivalent to c.Color := n;</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_140"#2|</EM></FONT>
    <b>procedure</b> Start_Color;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT>
    <b>pragma</b> Import (C, Start_Color, "start_color");
 
    <b>procedure</b> Start_Color;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT>
    <b>pragma</b> Import (C, Start_Color, "start_color");
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
-   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="1601_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="1602_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
+   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="1707_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#277_9">Redefinable_Color_Pair</A>;
+                        <FONT COLOR=red><A NAME="1708_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#277_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);
 
                         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_140"#2|</EM></FONT>
-   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="1608_28">Pair</A></FONT> : <b>in</b> Color_Pair;
-                           <FONT COLOR=red><A NAME="1609_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
+   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="1714_28">Pair</A></FONT> : <b>in</b> Color_Pair;
+                           <FONT COLOR=red><A NAME="1715_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#277_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);
 
                            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);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
    <b>function</b> Has_Colors <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Colors);
 
    <b>function</b> Has_Colors <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT>
    <b>pragma</b> Inline (Has_Colors);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
-   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="1620_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">Color_Number</A>;
-                         <FONT COLOR=red><A NAME="1621_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                         <FONT COLOR=red><A NAME="1622_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
+   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="1726_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_9">Color_Number</A>;
+                         <FONT COLOR=red><A NAME="1727_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="1728_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#294_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);
 
                          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);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
    <b>function</b> Can_Change_Color <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT>
    <b>pragma</b> Inline (Can_Change_Color);
 
    <b>function</b> Can_Change_Color <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT>
    <b>pragma</b> Inline (Can_Change_Color);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
-   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="1633_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#292_9">Color_Number</A>;
-                            <FONT COLOR=red><A NAME="1634_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
-                            <FONT COLOR=red><A NAME="1635_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#292_9">RGB_Value</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
+   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="1739_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#294_9">Color_Number</A>;
+                            <FONT COLOR=red><A NAME="1740_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#294_9">RGB_Value</A>;
+                            <FONT COLOR=red><A NAME="1741_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#294_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);
                             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);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-
    <FONT COLOR=green><EM>--  | Not implemented: getsyx, setsyx</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>type</b> Curses_Mode <b>is</b> (Curses, Shell);
 
    <FONT COLOR=green><EM>--  | Not implemented: getsyx, setsyx</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>type</b> Curses_Mode <b>is</b> (Curses, Shell);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
    <b>procedure</b> Save_Curses_Mode (Mode : <b>in</b> Curses_Mode);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: def_shell_mode()</EM></FONT>
    <b>pragma</b> Inline (Save_Curses_Mode);
 
    <b>procedure</b> Save_Curses_Mode (Mode : <b>in</b> Curses_Mode);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: def_shell_mode()</EM></FONT>
    <b>pragma</b> Inline (Save_Curses_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
    <b>procedure</b> Reset_Curses_Mode (Mode : <b>in</b> Curses_Mode);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: reset_shell_mode()</EM></FONT>
    <b>pragma</b> Inline (Reset_Curses_Mode);
 
    <b>procedure</b> Reset_Curses_Mode (Mode : <b>in</b> Curses_Mode);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: reset_shell_mode()</EM></FONT>
    <b>pragma</b> Inline (Reset_Curses_Mode);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_149"#2|</EM></FONT>
    <b>procedure</b> Save_Terminal_State;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT>
    <b>pragma</b> Inline (Save_Terminal_State);
 
    <b>procedure</b> Save_Terminal_State;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT>
    <b>pragma</b> Inline (Save_Terminal_State);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
    <b>procedure</b> Reset_Terminal_State;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT>
    <b>pragma</b> Inline (Reset_Terminal_State);
 
    <b>type</b> Stdscr_Init_Proc <b>is</b> <b>access</b>
    <b>procedure</b> Reset_Terminal_State;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT>
    <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="1671_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Window</A>;
-                Columns :<A HREF="terminal_interface-curses__ads.htm#1669_9"> </A>Column_Count) <b>return</b> Integer;
+      <b>function</b> (<FONT COLOR=red><A NAME="1776_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#65_12">Window</A>;
+                Columns :<A HREF="terminal_interface-curses__ads.htm#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>
 
    <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_149"#2|</EM></FONT>
-   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="1679_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1669_9">Integer</A>;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
+   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="1784_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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>
                             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>
 
    <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
 
 
    <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_152"#2|</EM></FONT>
    <b>procedure</b> Set_Cursor_Visibility (Visibility : <b>in</b> <b>out</b> Cursor_Visibility);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Cursor_Visibility);
 
    <b>procedure</b> Set_Cursor_Visibility (Visibility : <b>in</b> <b>out</b> Cursor_Visibility);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Cursor_Visibility);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_153"#2|</EM></FONT>
    <b>procedure</b> Nap_Milli_Seconds (Ms : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT>
    <b>pragma</b> Inline (Nap_Milli_Seconds);
    <b>procedure</b> Nap_Milli_Seconds (Ms : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT>
    <b>pragma</b> Inline (Nap_Milli_Seconds);
    <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=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="1705_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1706_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="1707_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
+     (<FONT COLOR=red><A NAME="1810_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="1811_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="1812_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>
       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>
    <FONT COLOR=green><EM>--  Window or if you pass the Null_Window as argument.</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
 
    <FONT COLOR=green><EM>--  Window or if you pass the Null_Window as argument.</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
 
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_154"#2|</EM></FONT>
+   <b>procedure</b> Use_Default_Colors;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">use_default_colors()</A></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="1831_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#277_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#284_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>--  | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_156"#2|</EM></FONT>
+   <b>function</b> Curses_Version <b>return</b> String;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_157"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  The returnvalue is the previous setting of the flag</EM></FONT>
+   <b>function</b> Use_Extended_Names (Enable : Boolean) <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_158"#2|</EM></FONT>
+   <b>procedure</b> Screen_Dump_To_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_159"#2|</EM></FONT>
+   <b>procedure</b> Screen_Restore_From_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_160"#2|</EM></FONT>
+   <b>procedure</b> Screen_Init_From_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_161"#2|</EM></FONT>
+   <b>procedure</b> Screen_Set_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented:  mcprint</EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented: printw,  wprintw, mvprintw, mvwprintw, vwprintw,</EM></FONT>
+   <FONT COLOR=green><EM>--                   vw_printw</EM></FONT>
+   <FONT COLOR=green><EM>--  Please use the Ada style Text_IO child packages for formatted</EM></FONT>
+   <FONT COLOR=green><EM>--  printing. It doesn't make a lot of sense to map the printf style</EM></FONT>
+   <FONT COLOR=green><EM>--  C functions to Ada.</EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></FONT>
+
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  Not Implemented: resizeterm</EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
+   <b>procedure</b> Resize (<FONT COLOR=red><A NAME="1899_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#63_12">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="1900_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#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>
+
 <b>private</b>
    <b>type</b> Window <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
    Null_Window : <b>constant</b> Window := 0;
 <b>private</b>
    <b>type</b> Window <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
    Null_Window : <b>constant</b> Window := 0;
    <FONT COLOR=green><EM>--  The next constants are generated and may be different on your</EM></FONT>
    <FONT COLOR=green><EM>--  architecture.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=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="1723_4">Offset_maxy</A></FONT>    : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1724_4">Offset_maxx</A></FONT>    : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1725_4">Offset_begy</A></FONT>    : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1726_4">Offset_begx</A></FONT>    : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1727_4">Offset_cury</A></FONT>    : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1728_4">Offset_curx</A></FONT>    : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1729_4">Offset_yoffset</A></FONT> : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1730_4">Offset_pary</A></FONT>    : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="1731_4">Offset_parx</A></FONT>    : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="1732_4">Offset_scroll</A></FONT>  : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1733_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#1735_9">Interfaces</A>.C.char'Size;
+   <FONT COLOR=red><A NAME="1911_4">Offset_maxy</A></FONT>        : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1912_4">Offset_maxx</A></FONT>        : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1913_4">Offset_begy</A></FONT>        : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1914_4">Offset_begx</A></FONT>        : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1915_4">Offset_cury</A></FONT>        : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1916_4">Offset_curx</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1917_4">Offset_yoffset</A></FONT>     : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="1918_4">Offset_pary</A></FONT>        : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
+   <FONT COLOR=red><A NAME="1919_4">Offset_parx</A></FONT>        : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
+   <FONT COLOR=red><A NAME="1920_4">Offset_notimeout</A></FONT>   : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1921_4">Offset_clear</A></FONT>       : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1922_4">Offset_leaveok</A></FONT>     : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1923_4">Offset_scroll</A></FONT>      : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1924_4">Offset_idlok</A></FONT>       : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1925_4">Offset_idcok</A></FONT>       : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1926_4">Offset_immed</A></FONT>       : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1927_4">Offset_sync</A></FONT>        : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="1928_4">Offset_use_keypad</A></FONT>  : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="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#1931_9">Interfaces</A>.C.char'Size;
    Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
 
 <b>end</b> Terminal_Interface.Curses;
    Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
 
 <b>end</b> Terminal_Interface.Curses;
index a930f21dcb698a793d1fb72a258f0ced71a19aa4..5072021755cb34554e31820877e9994dc504b272 100644 (file)
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written       --</EM></FONT>
 <FONT COLOR=green><EM>-- authorization.                                                           --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>--  Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">J&uuml;rgen Pfeifer</A> &lt;<A HREF="mailto:juergen.pfeifer@gmx.net">&lt;juergen.pfeifer@gmx.net&gt;</A>&gt; 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Author:  <A HREF="http://www.familiepfeifer.de/juergen">J&uuml;rgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>--  Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</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.11 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</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="42_9">Terminal_Interface</A></FONT> <b>is</b>
+   <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#42_9">Terminal_Interface</A>);
 <FONT COLOR=green><EM>--</EM></FONT>
 <FONT COLOR=green><EM>--  Everything is in the child units</EM></FONT>
 <FONT COLOR=green><EM>--</EM></FONT>
 <FONT COLOR=green><EM>--</EM></FONT>
 <FONT COLOR=green><EM>--  Everything is in the child units</EM></FONT>
 <FONT COLOR=green><EM>--</EM></FONT>
index 3005e49d588983be19943bf07f19202ec3b388b3..abe392e6586d9eb16e6c175151ec15ff37867565 100644 (file)
@@ -1,15 +1,15 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: announce.html,v 1.39 2000/10/20 10:47:16 tom Exp $
+  $Id: announce.html,v 1.41 2002/10/12 23:35:53 tom Exp $
 -->
 <HTML>
 <HEAD>
 -->
 <HTML>
 <HEAD>
-<TITLE>Announcing ncurses 5.2</TITLE>
+<TITLE>Announcing ncurses 5.3 Pre-Release</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 </HEAD>
 <BODY>
 
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 </HEAD>
 <BODY>
 
-<H1>Announcing ncurses 5.2</H1>
+<H1>Announcing ncurses 5.3</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,
 
 The ncurses (new curses) library is a free software emulation of
 curses in System V Release 4.0, and more.  It uses terminfo format,
@@ -22,8 +22,11 @@ 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.<P>
 
 Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
 ncurses.<P>
 
-The ncurses code was developed under GNU/Linux.  It should port easily to
-any ANSI/POSIX-conforming UNIX.  It has even been ported to OS/2 Warp!<P>
+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 and NetBSD as an external package.
+It should port easily to any ANSI/POSIX-conforming UNIX.
+It has even been ported to OS/2 Warp!<P>
 
 The distribution includes the library and support utilities, including a
 terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
 
 The distribution includes the library and support utilities, including a
 terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
@@ -34,331 +37,171 @@ The ncurses distribution is available via anonymous FTP at
 the GNU distribution site
 <A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
 <br>It is also available at
 the GNU distribution site
 <A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>.
 <br>It is also available at
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
+<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
 
 <H1>Release Notes</H1>
 
 
 <H1>Release Notes</H1>
 
-This release is designed to be upward compatible from ncurses 5.0 and 5.1;
+This release is designed to be upward compatible from ncurses 5.0 and 5.2;
 very few applications will require recompilation, depending on the platform.
 very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.1 release.
+These are the highlights from the change-log since ncurses 5.2 release.
 <p>
 Interface changes:
 <ul>
 <p>
 Interface changes:
 <ul>
-       <li>change type of <code>ospeed</code> variable back to
-         <code>short</code> to match its use in legacy applications.  It was
-         altered after ncurses 4.2 to <code>speed_t</code> to repair a type
-         mismatch which was introduced after 1.9.4 in 1995.  The principal
-         users of termcap continued to use <code>short</code>, which is
-         not the same size.
-         <p>
-         <em>NOTE</em>: A few applications will have to be recompiled
-         (about 1% of the programs in a typical Linux distribution,
-         10% of the programs that use ncurses).  These are easy to
-         identify with <code>nm</code> or <code>strings</code>.
-
-       <li>remove a private function <code>_nc_can_clear_with()</code>, which
-         was built with the configure --enable-expanded option but not used.
-
-       <li>add several private functions (prefixed with "_nc_") for tracing
-         <code>chtype</code> values in the debug library, and for better
-         access and buffer limit checking.
-</ul>
-New features and improvements:
-<ul>
-       <li>rewrote <code>tgoto()</code> to make it better support existing
-         termcap applications which use hardcoded strings rather than obtain
-         all of their information from the termcap file.  If the string does
-         not appear to be a terminfo string (i.e., does not refer to a "%p"
-         parameter, or terminfo-style padding), and termcap support is configured, <code>tgoto()</code>
-         will interpret it as termcap.  Otherwise, as before, it will use
-         <code>tparm()</code>.
-
-       <li>to ensure that the <code>tgoto()</code> changes work properly,
-         added checks to <code>tic</code> which report capabilities that do
-         not reference the expected number of parameters.
-
-       <li>new configure script options:
-       <ul>
-         <li>option <code>--disable-root-environ</code> adds runtime checks
-           which tell ncurses to disregard $TERMINFO and similar environment
-           variables if the current user is root, or running setuid/setgid.
-
-         <li>option <code>--disable-assumed-color</code> allows you to use the
-           pre-5.1 convention of default colors used for color-pair 0 to be
-           configured (see assume_default_colors()).
-
-         <li>implement configure script options that transform installed
-           program names, e.g., <code>--program-prefix</code>, including the
-           manpage names and cross references.
+       <li>change type for bool used in headers to <code>NCURSES_BOOL</code>,
+         which usually is the same as the compiler's definition for
+         <code>bool</code>.
 
 
-         <li>option <code>--with-database</code> allows you to specify a
-           different terminfo source-file to install.  On OS/2 EMX, the
-           default is misc/emx.src, otherwise misc/terminfo.src
+       <li>add all but two functions for X/Open curses wide-character support. 
+         These are only available if the library is configured using the
+         <kbd>--enable-widec</kbd> option.  Missing functions are
+               <ul>
+               <li>pecho_wchar()
+               <li>slk_wset()
+               </ul>
 
 
-         <li>option <code>--with-default-terminfo-dir</code> allows you to
-           specify the default terminfo database directory.
-
-         <li>option <code>--with-libtool</code> allows you to build with
-           <code>libtool</code>.  <p> <em>NOTE</em>:  <code>libtool</code>
-           uses a different notation for numbering shared library versions
-           from the existing ncurses configuration.
-
-         <li>option <code>--with-manpage-tbl</code> causes the manpages to be
-           preprocessed by tbl(1) prior to installation,
-
-         <li>option <code>--without-curses-h</code> causes the installation
-           process to install curses.h as ncurses.h and make appropriate
-           changes to headers and manpages.
-       </ul>
-
-       <li>modified configure script options:
-       <ul>
-         <li>change symbol used by the <code>--install-prefix</code> configure
-           option from <code>INSTALL_PREFIX</code> to <code>DESTDIR</code>
-           (the latter has become common usage although the name is
-           misleading).
-
-         <li>modify <code>ld -rpath</code> options (e.g., Linux, and Solaris)
-           to use an absolute pathname for the build tree's lib directory,
-           avoiding confusion with directories relative to the current one
-           with the installed programs.
-
-         <li>modified <code>misc/run_tic.in</code> to use
-           <code>tic&nbsp;-o</code>, to eliminate dependency on
-           <code>$TERMINFO</code> variable for installs.
-       </ul>
+       <li>add environment variable <code>$NCURSES_ASSUMED_COLORS</code> to
+         modify the <code>assume_default_colors()</code> extension.
 
 
-       <li>terminfo database:
+</ul>
+New features and improvements:
+<ul>
+       <li>Improved support for termcap applications:
        <ul>
        <ul>
-         <li>updated xterm terminfo entries to match XFree86 xterm patch #146.
-
-         <li>added amiga-vnc,
-           Matrix Orbital, and
-           QNX qansi to misc/terminfo.src.
+       <li>add logic to dump_entry.c to remove function-key definitions that do
+         not fit into the 1023-byte limit for generated termcaps.  This makes
+         hds200 fit.
 
 
-         <li>added os2 entry to misc/emx.src.
+       <li>modify tgetent() to check if exit_attribute_mode resets the alternate
+         character set, and if so, attempt to adjust the copy of the termcap
+         "me" string which it will return to eliminate that part.  In
+         particular, 'screen' would lose track of line-drawing characters.
 
 
-         <li>add S0 and E0 extensions to <code>screen</code>'s terminfo entry
-           since otherwise the FreeBSD port makes it pass termcap equivalents
-           to <code>tgoto</code>, which would be misinterpreted by older
-           versions of ncurses.
-       </ul>
+       <li>add check/fix to comp_parse.c to suppress warning about missing acsc
+         string.  This happens in configurations where raw termcap information
+         is processed; tic already does this and other checks.
 
 
-       <li>improvements to program usability:
-       <ul>
-         <li>modify programs to use <code>curses_version()</code> string to
-           report the version of ncurses with which they are compiled rather
-           than the NCURSES_VERSION string.  The function returns the patch
-           level in addition to the major and minor version numbers.
+       <li>add tic -A option to suppress capabilities which are commented out
+         when translating to termcap.
 
 
-         <li>modify <code>tput</code> program so it can be renamed or invoked via a link as
-           'reset' or 'init', producing the same effect as <code>tput&nbsp;reset</code> or <code>tput&nbsp;init</code>.
+       <li>modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it
+         work properly for termcap applications (patch by Andrey A Chernov).
 
 
-         <li>add error checking to infocmp's -v and -m options to ensure that
-           the option value is indeed a number.
        </ul>
 
        </ul>
 
-       <li>improved performance:
-       <ul>
-         <li>replace a lookup table in lib_vidattr.c used to decode
-           <code>no_color_video</code> with a logic expression which is faster.
-       </ul>
+       <li>add a call to _nc_keypad() in keypad() to accommodate applications
+         such as nvi, which use curses for output but not for input (fixes
+         Debian #131263, cf: 20011215).
 
 
+       <li>correct logic for COLORFGBG environment variable: if rxvt is compiled
+         with xpm support, the variable has three fields, making it slightly
+         incompatible with itself.  In either case, the background color is
+         the last field.
 </ul>
 Major bug fixes:
 <ul>
 </ul>
 Major bug fixes:
 <ul>
-       <li>correct <code>manlinks.sed</code> script introduced in ncurses 5.1
-         to avoid using ERE "\+", which is not understood by standard versions
-         of <code>sed</code>.  This happens to work with GNU <code>sed</code>,
-         but is not portable, and was the initial motivation for this release.
-
-       <li>remove "hpux10.*" case from CF_SHARED_OPTS configure script macro.
-         This differed from the "hpux*" case by using reversed symbolic
-         links, which made the 5.1 version not match the configuration of
-         5.0 shared libraries.
-
-       <li>guard against corrupt terminfo data:
-         <ul>
-         <li>modify <code>tparm()</code> to disallow arithmetic on strings,
-           analyze the varargs list to read strings as strings and numbers as
-           numbers.
-
-         <li>modify <code>tparm()</code>'s internal function
-           <code>spop()</code> to treat a null pointer as an empty string.
-
-         <li>modify <code>parse_format()</code> in lib_tparm.c to ignore
-           precision if it is longer than 10000.
-
-         <li>rewrote limit checks in lib_mvcur.c using new functions
-           <code>_nc_safe_strcat()</code>, etc.  Made other related changes to
-           check lengths used for <code>strcat()</code> and
-           <code>strcpy()</code>.
-         </ul>
-
-       <li>corrections to screen optimization:
-         <ul>
-         <li>added special case in lib_vidattr.c to reset underline and
-           standout for devices that have no sgr0 defined.
-
-         <li>change handling of <code>non_dest_scroll_region</code> in
-           tty_update.c to clear text after it is shifted in rather than before
-           shifting out.  Also correct row computation.
+       <li>rewrote limit-checks in wscrl() and associated _nc_scroll_window(),
+         to ensure that if the parameter of wscrl() is larger than the size of
+         the scrolling region, then the scrolling region will be cleared.
 
 
-         <li>modify <code>rs2</code> capability in xterm-r6 and similar entries
-           where cursor save/restore bracketed the sequence for resetting video
-           attributes.  The cursor restore would undo that.
-         </ul>
-
-       <li>UTF-8 support:
-       <ul>
-         <li>when checking LC_ALL, LC_CTYPE, and LANG environment variables
-           for UTF-8 locale, ignore those which are set to an empty value, as
-           per SUSV2.
-
-         <li>encode 0xFFFD in UTF-8 with 3 bytes, not 2.
-
-         <li>modify <code>_nc_utf8_outch()</code> to avoid sign-extension when
-           checking for out-of-range value.
-       </ul>
-
-       <li>other library fixes:
-       <ul>
-         <li>added checks for an empty <code>$HOME</code> environment
-           variable, to avoid retrieving terminfo descriptions from
-           <code>./.terminfo</code> .
-
-         <li>change functions <code>_nc_parse_entry()</code> and
-           <code>postprocess_termcap()</code> to avoid using
-           <code>strtok()</code>, because it is non-reentrant.
-
-         <li>initialize <code>fds[]</code> array to 0's in
-           <code>_nc_timed_wait()</code>; apparently <code>poll()</code> only
-           sets the <code>revents</code> members of that array when there is
-           activity corresponding to the related file.
-
-         <li>add a check for null pointer in <code>Make_Enum_Type()</code>.
-
-         <li>fix a heap problem with the c++ binding.
+       <li>modify tset to restore original I/O modes if an error is encountered.
+         Also modify to use buffered stderr consistently rather than mixing
+         with write().
 
 
-         <li>correct missing includes for &lt;string.h&gt; in several places,
-           including the C++ binding.  This is not noted by gcc unless we use
-           the <code>-fno-builtin</code> option.
-       </ul>
+       <li>move calls to def_shell_mode() and def_prog_mode() before loop with
+         callbacks in lib_set_term.c, since the c++ demo otherwise initialized
+         the tty modes before saving them.
 
 
-       <li>several fixes for tic:
-         <ul>
-         <li>add a check for empty buffers returned by <code>fgets()</code> in
-           comp_scan.c <code>next_char()</code> function, in case
-           <code>tic</code> is run on a non-text file (fixes a core dump).
+       <li>modified wresize() to ensure that a failed realloc will not corrupt
+         the window structure, and to make subwindows fit within the resized
+         window.
 
 
-         <li>modify <code>tic</code> to verify that its inputs are really files,
-           in case someone tries to read a directory (or
-           <code>/dev/zero</code>).
+       <li>altered resizeterm() to avoid having it fail when a child window
+         cannot be resized because it would be larger than its parent.
 
 
-         <li>correct an uninitialized parameter to <code>open_tempfile()</code>
-           in tic.c which made "tic -I" give an ambiguous error message about
-           <code>tmpnam</code>.
+       <li>correct/improve logic to produce an exit status for errors in tput,
+         which did not exit with an error when told to put a string not in the
+         current terminfo entry.
 
 
-         <li>correct logic in <code>adjust_cancels()</code>, which did not check
-           both alternatives when reclassifying an extended name between
-           boolean, number and string, causing an infinite loop in
-           <code>tic</code>.
-         </ul>
+       <li>modify behavior of can_clear_with() so that if an application is
+         running in a non-bce terminals with default colors enabled, it
+         returns true, allowing the user to select/paste text without picking
+         up extraneous trailing blanks.
 
 
-       <li>using new checks in <code>tic</code> for parameter counts in
-         capability strings, found/fixed several errors both in the
-         terminfo database and in the include/Caps file.
-         <ul>
-         <li>modified several terminfo capability strings, including the
-           definitions for setaf, setab, in include/Caps to indicate that the
-           entries are parameterized.  This information is used to tell which
-           strings are translated when converting to termcap.  This fixes a
-           problem where the generated termcap would contain a spurious "%p1"
-           for the terminfo "%p1%d".
-
-         <li>correct parameter counts in include/Caps for dclk as well as some
-           printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp.
-         </ul>
+       <li>add a check in relative_move() to guard against buffer overflow in
+         the overwrite logic.
 
 
-       <li>various fixes for install scripts used to support configure
-         <code>--srcdir</code> and <code>--with-install-prefix</code>.
+       <li>add some limit/pointer checks to -S option of tputs.
 
 
-       <li>correct several mismatches between manpage filename and ".TH"
-         directives, renaming dft_fgbg.3x to default_colors.3x and
-         menu_attribs.3x to menu_attributes.3x.
+       <li>modify mvcur() to avoid emitting newline characters when nonl() mode
+         is set.  Normally this is not a problem since the actual terminal
+         mode is set to suppress nl/crlf translations, however it is useful to
+         allow the caller to manipulate the terminal mode to avoid staircasing
+         effects after spawning a process which writes messages (for lynx
+         2.8.4).
 </ul>
 
 Portability:
 <ul>
        <li>configure script:
        <ul>
 </ul>
 
 Portability:
 <ul>
        <li>configure script:
        <ul>
-         <li>newer config.guess, config.sub, including changes to support OS/2
-           EMX.  The configure script for OS/2 EMX still relies on a patch
-           since there is no (working) support for that platform in the main
-           autoconf distribution.
+         <li>modify check in --disable-overwrite option so that it is used by
+           default unless the --prefix/$prefix value is not /usr, in attempt to
+           work around packagers who do not read the INSTALL notes.
 
 
-         <li>make configure script checks on variables <code>$GCC</code> and
-           <code>$GXX</code> consistently compare against 'yes' rather than
-           test if they are nonnull, since either may be set to the
-           corresponding name of the C or C++ compiler.
+         <li>correct a typo in configure --enable-colorfgbg option, and move it
+           to the experimental section (cf: 20011208).
 
 
-         <li>change configure script to use AC_CANONICAL_SYSTEM rather than
-           AC_CANONICAL_HOST, which means that <code>configure --target</code>
-           will set a default program-prefix.
+         <li>modify configure script to allow building with termcap only, or with
+           fallbacks only.  In this case, we do not build tic and toe.
 
 
-         <li>modify the check for big-core to force a couple of memory
-           accesses, which may work as needed for older/less-capable machines
-           (if not, there's still the explicit configure option).
+         <li>modify run_tic.sh to check if the build is a cross-compile.  In that
+           case, do not use the build's tic to install the terminfo database.
 
 
-         <li>modify configure test for <code>tcgetattr()</code> to allow for
-           old implementations, e.g., on BeOS, which only defined it as a
-           macro.
+         <li>modify c++/Makefile.in to accommodate archive programs that are
+           different for C++ than for C, and add cases for vendor's C++
+           compilers on Solaris and IRIX.
 
 
-         <li>add configure check for filesystems (such as OS/2 EMX) which do
-           not distinguish between upper/lowercase filenames, use this to fix
-           tags rules in makefiles.
+         <li>add several configure script options to aid with cross-compiling:
+           --with-build-cc, --with-build-cflags, --with-build-ldflags, and
+           --with-build-libs.
 
 
-         <li>add MKncurses_def.sh to generate fallback definitions for
-           ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in
-           code to consistently use "#if" rather than "#ifdef".
+         <li>add experimental --with-caps=XXX option to customize to similar
+           terminfo database formats such as AIX 4.x
 
 
-         <li>change most remaining unquoted parameters of <code>test</code> in
-           configure script to use quotes, for instance fixing a problem in the
-           <code>--disable-database</code> option.
-
-         <li>modify scripts so that "make install.data" works on OS/2 EMX.
-
-         <li>modify scripts and makefiles so the Ada95 directory builds on
-           OS/2 EMX.
-       </ul>
+         <li>add configure option --with-ospeed to assist packagers in transition
+           to 5.3 change to ospeed type.
+         </ul>
 
        <li>library:
        <ul>
 
        <li>library:
        <ul>
-       <li>replaced case-statement in <code>_nc_tracebits()</code> for CSIZE
-         with a table to simplify working around implementations that define
-         random combinations of the related macros to zero.
+         <li>implement a simple vsscanf() fallback function which uses the %n
+           conversion to help parse the input data.
 
 
-       <li>improved OS/2 mouse support by retrying as a 2-button mouse if code
-         fails to set up a 3-button mouse.
+         <li>various fixes to build/work with different implementations of
+           vsscanf().
 
 
-       <li>added private entrypoint <code>_nc_basename()</code>, used to
-         consolidate related code in progs, as well as accommodating OS/2 EMX
-         pathnames.
+         <li>add/use macro to suppress sign-extension of char type on
+           platforms where this is a problem in ctype macros, e.g., Solaris.
 
 
-       <li>alter definition of NCURSES_CONST to make it non-empty.
+         <li>finish changes needed to build dll's on cygwin.
 
 
-       <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
-         an (unspecified) symbol conflict.
+         <li>add #undef's before possible redefinition of ERR and OK in curses.h
        </ul>
 
        <li>programs:
        <ul>
        </ul>
 
        <li>programs:
        <ul>
-         <li>modified progs/tset.c and tack/sysdep.c to build with sgttyb
-           interface if neither termio or termios is available.  Tested this
-           with FreeBSD 2.1.5 (which does have termios - but the sgttyb does
-           work).
-       </ul>
+         <li>modify ifdef's in write_entry.c to allow use of symbolic links on
+           platforms with no hard links, e.g., BeOS.
+
+         <li>modify _nc_write_entry() to allow for the possibility that linking
+           aliases on a filesystem that ignores case would not succeed because
+           the source and destination differ only by case, e.g., NCR260VT300WPP0
+           on cygwin.
 
 
+         <li>modify logic in tic, toe, tput and tset which checks for basename of
+           argv[0] to work properly on systems such as OS/2 which have
+           case-independent filenames and/or program suffixes, e.g., ".ext".
+       </ul>
 </ul>
 
 <H1>Features of Ncurses</H1>
 </ul>
 
 <H1>Features of Ncurses</H1>
@@ -474,23 +317,23 @@ including (versions starting with those noted):
 <DT> cdk
 <DD> Curses Development Kit
 <br>
 <DT> cdk
 <DD> Curses Development Kit
 <br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
+<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
 <br>
 <br>
-<A HREF="http://dickey.his.com/cdk/cdk.html">http://dickey.his.com/cdk</A>.
+<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
 <DT> ded
 <DD> directory-editor
 <br>
 <DT> ded
 <DD> directory-editor
 <br>
-<A HREF="http://dickey.his.com/ded/ded.html">http://dickey.his.com/ded</A>.
+<A HREF="http://invisible-island.net/ded/ded.html">http://invisible-island.net/ded</A>.
 <DT> dialog
 <DD> the underlying application used in Slackware's setup, and the basis
 for similar applications on GNU/Linux.
 <br>
 <DT> dialog
 <DD> the underlying application used in Slackware's setup, and the basis
 for similar applications on GNU/Linux.
 <br>
-<A HREF="http://dickey.his.com/dialog/dialog.html">http://dickey.his.com/dialog</A>.
+<A HREF="http://invisible-island.net/dialog/dialog.html">http://invisible-island.net/dialog</A>.
 <DT> lynx
 <DD> the character-screen WWW browser
 <br>
 <A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
 <DT> lynx
 <DD> the character-screen WWW browser
 <br>
 <A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>.
-<DT> Midnight Commander 4.1
+<DT> Midnight Commander
 <DD> file manager
 <br>
 <A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
 <DD> file manager
 <br>
 <A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
@@ -528,7 +371,7 @@ as well as some that use ncurses for the terminfo support alone:
 <DT> vile
 <DD> vi-like-emacs
 <br>
 <DT> vile
 <DD> vi-like-emacs
 <br>
-<A HREF="http://dickey.his.com/vile/vile.html">http://dickey.his.com/vile</A>.
+<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
 </DL>
 <P>
 
 </DL>
 <P>
 
@@ -543,7 +386,7 @@ HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
+<A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">J&uuml;rgen Pfeifer</A>.
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
@@ -561,7 +404,7 @@ This list is open to anyone interested in helping with the development and
 testing of this package.<P>
 
 Beta versions of ncurses and patches to the current release are made available at
 testing of this package.<P>
 
 Beta versions of ncurses and patches to the current release are made available at
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
+<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
 
 <H2>Future Plans</H2>
 <UL>
 
 <H2>Future Plans</H2>
 <UL>
index 806aec57a10ad2e087d60e95a6a60571eb4635d9..cd2cfe0a675437adf7a2c93f1c723c6f00990168 100644 (file)
@@ -1,44 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: captoinfo.1m,v 1.16 2000/08/13 01:56:49 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>captoinfo 1m</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>captoinfo 1m</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>captoinfo</B>  - convert a <I>termcap</I> description into a <I>terminfo</I>
+       <STRONG>captoinfo</STRONG>  - convert a <EM>termcap</EM> description into a <EM>terminfo</EM>
        description
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        description
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>captoinfo</B> [<B>-v</B><I>n</I> <I>width</I>]  [<B>-V</B>] [<B>-1</B>] [<B>-w</B> <I>width</I>] <I>file</I> . . .
+       <STRONG>captoinfo</STRONG> [<STRONG>-v</STRONG><EM>n</EM> <EM>width</EM>]  [<STRONG>-V</STRONG>] [<STRONG>-1</STRONG>] [<STRONG>-w</STRONG> <EM>width</EM>] <EM>file</EM> . . .
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>captoinfo</B> looks in <I>file</I>  for  <B>termcap</B>  descriptions.   For
-       each  one  found,  an  equivalent  <B>terminfo</B> description is
-       written to standard output.  Termcap <B>tc</B>  capabilities  are
-       translated directly to terminfo <B>use</B> capabilities.
-
-       If no <I>file</I> is given, then the environment variable <B>TERMCAP</B>
-       is used for the filename or entry.  If <B>TERMCAP</B> is  a  full
-       pathname  to  a  file,  only  the  terminal  whose name is
-       specified in the environment variable  <B>TERM</B>  is  extracted
-       from  that  file.   If the environment variable <B>TERMCAP</B> is
-       not set, then the file <B>/usr/share/terminfo</B> is read.
-
-       <B>-v</B>   print out tracing information on  standard  error  as
+       <STRONG>captoinfo</STRONG> looks in <EM>file</EM>  for  <STRONG>termcap</STRONG>  descriptions.   For
+       each  one  found,  an  equivalent  <STRONG>terminfo</STRONG> description is
+       written to standard output.  Termcap <STRONG>tc</STRONG>  capabilities  are
+       translated directly to terminfo <STRONG>use</STRONG> capabilities.
+
+       If no <EM>file</EM> is given, then the environment variable <STRONG>TERMCAP</STRONG>
+       is used for the filename or entry.  If <STRONG>TERMCAP</STRONG> is  a  full
+       pathname to a file, only the terminal whose name is speci-
+       fied in the environment variable <STRONG>TERM</STRONG>  is  extracted  from
+       that  file.   If  the  environment variable <STRONG>TERMCAP</STRONG> is not
+       set, then the file <STRONG>/usr/share/terminfo</STRONG> is read.
+
+       <STRONG>-v</STRONG>   print out tracing information on  standard  error  as
             the program runs.
 
             the program runs.
 
-       <B>-V</B>   print  out  the  version  of  the  program  in use on
-            standard error and exit.
+       <STRONG>-V</STRONG>   print  out the version of the program in use on stan-
+            dard error and exit.
 
 
-       <B>-1</B>   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.
+       <STRONG>-1</STRONG>   cause the fields to print out one to a line.   Other-
+            wise, the fields will be printed several to a line to
+            a maximum width of 60 characters.
 
 
-       <B>-w</B>   change the output to <I>width</I> characters.
+       <STRONG>-w</STRONG>   change the output to <EM>width</EM> characters.
 
 
 </PRE>
 
 
 </PRE>
@@ -51,8 +90,8 @@
 <H2>TRANSLATIONS FROM NONSTANDARD CAPABILITIES</H2><PRE>
        Some  obsolete nonstandard capabilities will automatically
        be translated into  standard  (SVr4/XSI  Curses)  terminfo
 <H2>TRANSLATIONS FROM NONSTANDARD CAPABILITIES</H2><PRE>
        Some  obsolete nonstandard capabilities will automatically
        be translated into  standard  (SVr4/XSI  Curses)  terminfo
-       capabilities   by   <B>captoinfo</B>.    Whenever  one  of  these
-       automatic translations is done, the program will issue  an
+       capabilities  by  <STRONG>captoinfo</STRONG>.   Whenever one of these auto-
+       matic translations is done,  the  program  will  issue  an
        notification to stderr, inviting the user to check that it
        has not mistakenly translated  a  completely  unknown  and
        random capability and/or syntax error.
        notification to stderr, inviting the user to check that it
        has not mistakenly translated  a  completely  unknown  and
        random capability and/or syntax error.
        FC       Sf     Tek     set_foreground
        HS       mh     Iris    enter_dim_mode
 
        FC       Sf     Tek     set_foreground
        HS       mh     Iris    enter_dim_mode
 
-       XENIX  termcap  also  used  to  have  a  set  of extension
-       capabilities for forms drawing, designed to take advantage
-       of the IBM PC high-half graphics.  They were as follows:
+       XENIX  termcap  also used to have a set of extension capa-
+       bilities for forms drawing, designed to take advantage  of
+       the IBM PC high-half graphics.  They were as follows:
 
        Cap          Graphic
        -----------------------------
 
        Cap          Graphic
        -----------------------------
        GG    acs magic cookie count
 
        If  the  single-line  capabilities occur in an entry, they
        GG    acs magic cookie count
 
        If  the  single-line  capabilities occur in an entry, they
-       will automatically be composed into an <B>acsc</B>  string.   The
-       double-line  capabilities  and  <B>GG</B>  are  discarded  with a
-       warning message.
+       will automatically be composed into an <STRONG>acsc</STRONG>  string.   The
+       double-line capabilities and <STRONG>GG</STRONG> are discarded with a warn-
+       ing message.
 
 
-       IBM's AIX has a  terminfo  facility  descended  from  SVr1
-       terminfo  but  incompatible  with  the  SVr4  format.  The
-       following AIX extensions are automatically translated:
+       IBM's AIX has a terminfo facility descended from SVr1 ter-
+       minfo but incompatible with the SVr4 format. The following
+       AIX extensions are automatically translated:
 
         IBM    XSI
        -------------
 
         IBM    XSI
        -------------
        font2   s2ds
        font3   s3ds
 
        font2   s2ds
        font3   s3ds
 
-       Additionally,   the   AIX   <B>box1</B>   capability   will    be
-       automatically translated to an <B>acsc</B> string.
+       Additionally, the AIX <STRONG>box1</STRONG> capability  will  be  automati-
+       cally translated to an <STRONG>acsc</STRONG> string.
 
 
-       Hewlett-Packard's    terminfo    library    supports   two
-       nonstandard terminfo capabilities <B>meml</B> (memory  lock)  and
-       <B>memu</B>  (memory  unlock).   These  will  be discarded with a
-       warning message.
+       Hewlett-Packard's  terminfo  library supports two nonstan-
+       dard terminfo capabilities <STRONG>meml</STRONG>  (memory  lock)  and  <STRONG>memu</STRONG>
+       (memory  unlock).   These will be discarded with a warning
+       message.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       This utility is actually a link to <B><A HREF="tic.1m.html">tic(1m)</A></B>, running in  <I>-I</I>
-       mode.  You can use other <I>tic</I> options such as <B>-f</B> and  <B>-x</B>.
+       This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-I</EM>
+       mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
 
        The  trace  option isn't identical to SVr4's.  Under SVr4,
        instead of following the -v with  a  trace  level  n,  you
 
        The  trace  option isn't identical to SVr4's.  Under SVr4,
        instead of following the -v with  a  trace  level  n,  you
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 </PRE>
 
 
 </PRE>
index fad1c2072bb27a5aa511101172a19843ac473f7c..d0e7900677bbf7ee6fb7a1c70acc7ca990f9c33a 100644 (file)
@@ -1,28 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: clear.1,v 1.3 2000/07/15 23:59:35 china Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>clear 1</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>clear 1</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>clear</B> - clear the terminal screen
+       <STRONG>clear</STRONG> - clear the terminal screen
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>clear</B>
+       <STRONG>clear</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>clear</B> clears your screen if this is possible.  It looks in
-       the environment for the terminal type and then in the <B>ter-</B>
-       <B>minfo</B> database to figure out how to clear the screen.
+       <STRONG>clear</STRONG> clears your screen if this is possible.  It looks in
+       the environment for the terminal type and then in the <STRONG>ter-</STRONG>
+       <STRONG>minfo</STRONG> database to figure out how to clear the screen.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="tput.1.html">tput(1)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>
+       <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
 
 
diff --git a/doc/html/man/curs_add_wch.3x.html b/doc/html/man/curs_add_wch.3x.html
new file mode 100644 (file)
index 0000000..52af77b
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_add_wch.3x,v 1.4 2002/02/16 22:28:43 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_add_wch 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_add_wch 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>add_wch</STRONG>,   <STRONG>wadd_wch</STRONG>,  <STRONG>mvadd_wch</STRONG>,  <STRONG>mvwadd_wch</STRONG>,  <STRONG>echo_wchar</STRONG>,
+       <STRONG>wecho_wchar</STRONG> - add a complex character and rendition  to  a
+       <STRONG>curses</STRONG> window, then advance the cursor
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>add_wch(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wadd_wch(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvadd_wch(</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG>  <STRONG>mvwadd_wch(</STRONG>  <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG>
+       <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>echo_wchar(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wecho_wchar(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, and <STRONG>mvwadd_wch</STRONG> functions
+       put the complex character <EM>wch</EM> into the given window at its
+       current position, which is then advanced.  These functions
+       perform  wrapping and special-character processing as fol-
+       lows:
+
+       -    If <EM>wch</EM> refers to a spacing character, then any previ-
+            ous  character  at  that  location is removed.  A new
+            character specified by <EM>wch</EM> is placed at that location
+            with  rendition  specified  by  <EM>wch</EM>.  The cursor then
+            advances to the next spacing character on the screen.
+
+       -    If  <EM>wch</EM> refers to a non-spacing character, all previ-
+            ous characters at that location are  preserved.   The
+            non-spacing  characters of <EM>wch</EM> are added to the spac-
+            ing complex character, and the rendition specified by
+            <EM>wch</EM> is ignored.
+
+       -    If  the  character  part  of  <EM>wch</EM>  is a tab, newline,
+            backspace or other control character, the  window  is
+            updated  and  the  cursor  moves as if <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG> were
+            called.
+
+       The <STRONG>echo_wchar</STRONG> function is functionally  equivalent  to  a
+       call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>.  Similarly,
+       the <STRONG>wecho_wchar</STRONG> is functionally equivalent to  a  call  to
+       <STRONG>wadd_wch</STRONG>  followed  by  a call to <STRONG>wrefresh</STRONG>.  The knowledge
+       that only a single character is being output is taken into
+       consideration and, for non-control characters, a consider-
+       able performance gain might be seen by  using  the  *<STRONG>echo</STRONG>*
+       functions instead of their equivalents.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+       success.
+
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that <STRONG>add_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>,  and  <STRONG>echo_wchar</STRONG>
+       may be macros.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       All  these functions are described in the XSI Curses stan-
+       dard, Issue 4.  The defaults specified  for  forms-drawing
+       characters apply in the POSIX locale.
+
+       XSI  documents  constants  beginning  with <STRONG>WACS_</STRONG> which are
+       used for line-drawing.  Those  are  not  currently  imple-
+       mented in <STRONG>ncurses</STRONG>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,  <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG>curs_out-</STRONG>
+       <STRONG><A HREF="curs_outopts.3x.html">opts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/doc/html/man/curs_add_wchstr.3x.html b/doc/html/man/curs_add_wchstr.3x.html
new file mode 100644 (file)
index 0000000..ba75693
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_add_wchstr.3x,v 1.1 2002/02/23 22:15:55 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_add_wchstr 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_add_wchstr 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>add_wchstr</STRONG>,    <STRONG>add_wchnstr</STRONG>,   <STRONG>wadd_wchstr</STRONG>,   <STRONG>wadd_wchnstr</STRONG>,
+       <STRONG>mvadd_wchstr</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG>
+       - add an array of complex characters (and attributes) to a
+       curses window
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>add_wchstr(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>add_wchnstr(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wadd_wchstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wadd_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvadd_wchstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvadd_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwadd_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwadd_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These routines copy the array of complex characters <EM>wchstr</EM>
+       into  the  window image structure at and after the current
+       cursor position.  The four routines with  <EM>n</EM>  as  the  last
+       argument  copy  at  most <EM>n</EM> elements, but no more than will
+       fit on the line.  If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is  copied,
+       to  the  maximum number of characters that will fit on the
+       line.
+
+       The window cursor is <EM>not</EM> advanced.   These  routines  work
+       faster than <STRONG>waddnstr</STRONG>.  On the other hand, they do not per-
+       form checking (such as for the newline, backspace, or car-
+       riage  return characters), they do not advance the current
+       cursor position, they do not expand other control  charac-
+       ters  to  ^-escapes,  and  they  truncate the string if it
+       crosses the right margin, rather then wrapping  it  around
+       to the new line.
+
+       These  routines  end  successfully  on encountering a null
+       <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line.  If  a
+       complex  character cannot completely fit at the end of the
+       current line, the remaining columns are  filled  with  the
+       background character and rendition.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+       success.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       All these entry points are described  in  the  XSI  Curses
+       standard, Issue 4.
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 74fdef6e8f5f2e42f8a19302efd65e5c4b97a226..2c0f6e7b6bae3b2452b7f56108ee229e351f0235 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_addch.3x,v 1.20 2002/08/10 22:12:36 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_addch 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>
 <BODY>
+<H1>curs_addch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>addch</B>,  <B>waddch</B>,  <B>mvaddch</B>,  <B>mvwaddch</B>, <B>echochar</B>, <B>wechochar</B> -
-       add a character (with attributes) to a <B>curses</B> window, then
+       <STRONG>addch</STRONG>,  <STRONG>waddch</STRONG>,  <STRONG>mvaddch</STRONG>,  <STRONG>mvwaddch</STRONG>, <STRONG>echochar</STRONG>, <STRONG>wechochar</STRONG> -
+       add a character (with attributes) to a <STRONG>curses</STRONG> window, then
        advance the cursor
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        advance the cursor
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>addch(chtype</B> <B>ch);</B>
-       <B>int</B> <B>waddch(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>mvaddch(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>mvwaddch(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>echochar(chtype</B> <B>ch);</B>
-       <B>int</B> <B>wechochar(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ch);</B>
+       <STRONG>int</STRONG> <STRONG>addch(const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddch(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>echochar(const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wechochar(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>addch</B>,  <B>waddch</B>, <B>mvaddch</B> and <B>mvwaddch</B> routines put the
-       character <I>ch</I> into the given window at its  current  window
+       The  <STRONG>addch</STRONG>,  <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the
+       character <EM>ch</EM> into the given window at its  current  window
        position,  which  is then advanced.  They are analogous to
        position,  which  is then advanced.  They are analogous to
-       <B>putchar</B> in <B><A HREF="stdio.3.html">stdio(3)</A></B>.  If the advance is at the right  mar-
+       <STRONG>putchar</STRONG> in <STRONG><A HREF="stdio.3.html">stdio(3)</A></STRONG>.  If the advance is at the right  mar-
        gin,  the  cursor  automatically wraps to the beginning of
        the next line.  At the bottom  of  the  current  scrolling
        gin,  the  cursor  automatically wraps to the beginning of
        the next line.  At the bottom  of  the  current  scrolling
-       region,  if  <B>scrollok</B>  is enabled, the scrolling region is
+       region,  if  <STRONG>scrollok</STRONG>  is enabled, the scrolling region is
        scrolled up one line.
 
        scrolled up one line.
 
-       If <I>ch</I> is a tab, newline, or backspace, the cursor is moved
+       If <EM>ch</EM> is a tab, newline, or backspace, the cursor is moved
        appropriately within the window.  Backspace moves the cur-
        sor one character left; at the left edge of  a  window  it
        appropriately within the window.  Backspace moves the cur-
        sor one character left; at the left edge of  a  window  it
-       does  nothing.   Newline  does  a <B>clrtoeol</B>, then moves the
+       does  nothing.   Newline  does  a <STRONG>clrtoeol</STRONG>, then moves the
        cursor to  the  window  left  margin  on  the  next  line,
        scrolling  the window if on the last line).  Tabs are con-
        cursor to  the  window  left  margin  on  the  next  line,
        scrolling  the window if on the last line).  Tabs are con-
-       sidered to be at every eighth column.
+       sidered to be at every eighth column.   The  tab  interval
+       may be altered by setting the <STRONG>TABSIZE</STRONG> variable.
 
 
-       If <I>ch</I> is any control character other than tab, newline, or
-       backspace,  it  is  drawn  in  <B>^</B><I>X</I> notation.  Calling <B>winch</B>
+       If <EM>ch</EM> is any control character other than tab, newline, or
+       backspace, it is drawn  in  <STRONG>^</STRONG><EM>X</EM>  notation.   Calling  <STRONG>winch</STRONG>
        after adding a control character does not return the char-
        after adding a control character does not return the char-
-       acter  itself, but instead returns the ^-representation of
+       acter itself, but instead returns the ^-representation  of
        the control character.
 
        Video attributes can be combined with a character argument
        the control character.
 
        Video attributes can be combined with a character argument
-       passed to <B>addch</B> or related functions by logical-ORing them
-       into the character.  (Thus,  text,  including  attributes,
-       can  be  copied  from  one place to another using <B>inch</B> and
-       <B>addch</B>.).  See the <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B> page for values of  prede-
+       passed to <STRONG>addch</STRONG> or related functions by logical-ORing them
+       into  the  character.   (Thus, text, including attributes,
+       can be copied from one place to  another  using  <STRONG>inch</STRONG>  and
+       <STRONG>addch</STRONG>.).   See the <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> page for values of prede-
        fined video attribute constants that can be usefully OR'ed
        into characters.
 
        fined video attribute constants that can be usefully OR'ed
        into characters.
 
-       The <B>echochar</B> and <B>wechochar</B> routines are  equivalent  to  a
-       call  to <B>addch</B> followed by a call to <B>refresh</B>, or a call to
-       <B>waddch</B> followed by a call to <B>wrefresh</B>.  The knowledge that
-       only  a  single character is being output is used and, for
-       non-control characters, a  considerable  performance  gain
-       may  be  seen  by  using  these  routines instead of their
+       The  <STRONG>echochar</STRONG>  and  <STRONG>wechochar</STRONG> routines are equivalent to a
+       call to <STRONG>addch</STRONG> followed by a call to <STRONG>refresh</STRONG>, or a call  to
+       <STRONG>waddch</STRONG> followed by a call to <STRONG>wrefresh</STRONG>.  The knowledge that
+       only a single character is being output is used  and,  for
+       non-control  characters,  a  considerable performance gain
+       may be seen by  using  these  routines  instead  of  their
        equivalents.
 
        equivalents.
 
-   <B>Line</B> <B>Graphics</B>
-       The following variables may be used to  add  line  drawing
-       characters  to  the screen with routines of the <B>addch</B> fam-
-       ily.  The default character listed below is  used  if  the
-       <B>acsc</B>   capability   doesn't   define  a  terminal-specific
+   <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
+       The  following  variables  may be used to add line drawing
+       characters to the screen with routines of the  <STRONG>addch</STRONG>  fam-
+       ily.   The  default  character listed below is used if the
+       <STRONG>acsc</STRONG>  capability  doesn't   define   a   terminal-specific
        replacement for it (but see the EXTENSIONS section below).
        The names are taken from VT100 nomenclature.
 
        replacement for it (but see the EXTENSIONS section below).
        The names are taken from VT100 nomenclature.
 
-       <I>Name</I>           <I>Default</I>   <I>Description</I>
+       <EM>Name</EM>           <EM>Default</EM>   <EM>Description</EM>
        --------------------------------------------------
        ACS_BLOCK      #         solid square block
        ACS_BOARD      #         board of squares
        --------------------------------------------------
        ACS_BLOCK      #         solid square block
        ACS_BOARD      #         board of squares
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and <B>OK</B> on
-       success (the SVr4 manuals specify only "an  integer  value
-       other than <B>ERR</B>") upon successful completion, unless other-
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+       success  (the  SVr4 manuals specify only "an integer value
+       other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
        wise noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        wise noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>addch</B>, <B>mvaddch</B>, <B>mvwaddch</B>, and  <B>echochar</B>  may  be
+       Note  that  <STRONG>addch</STRONG>,  <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, and <STRONG>echochar</STRONG> may be
        macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       All  these functions are described in the XSI Curses stan-
-       dard, Issue 4.  The defaults specified  for  forms-drawing
+       All these functions are described in the XSI Curses  stan-
+       dard,  Issue  4.  The defaults specified for forms-drawing
        characters apply in the POSIX locale.
 
        characters apply in the POSIX locale.
 
-       Some  ACS symbols (ACS_S3, ACS_S7, ACS_LEQUAL, ACS_GEQUAL,
-       ACS_PI, ACS_NEQUAL, ACS_STERLING) were not  documented  in
-       any  publicly  released  System V.  However, many publicly
-       available terminfos include <B>acsc</B> strings  in  which  their
-       key  characters  (pryz{|}) are embedded, and a second-hand
-       list of their character descriptions has  come  to  light.
-       The   ACS-prefixed   names  for  them  were  invented  for
-       <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>.
+       Some ACS symbols (ACS_S3, ACS_S7, ACS_LEQUAL,  ACS_GEQUAL,
+       ACS_PI,  ACS_NEQUAL,  ACS_STERLING) were not documented in
+       any publicly released System V.   However,  many  publicly
+       available  terminfos  include  <STRONG>acsc</STRONG> strings in which their
+       key characters (pryz{|}) are embedded, and  a  second-hand
+       list  of  their  character descriptions has come to light.
+       The  ACS-prefixed  names  for  them  were   invented   for
+       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+
+       The  <STRONG>TABSIZE</STRONG>  variable  is implemented in some versions of
+       curses, but is not part of X/Open curses.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>, <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>,  <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>,
-       <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>, <B><A HREF="putc.3S.html">putc(3S)</A></B>.
-
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
 
 
 
 
 
 
index 43f244dea015249ccad731809929ab9961ac4ad2..18db3f077fc001f79955327889de4764ad4c4348 100644 (file)
@@ -1,42 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_addchstr.3x,v 1.7 2000/07/01 19:53:33 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_addchstr 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>
 <BODY>
+<H1>curs_addchstr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>addchstr</B>,  <B>addchnstr</B>,  <B>waddchstr</B>,  <B>waddchnstr</B>, <B>mvaddchstr</B>,
-       <B>mvaddchnstr</B>, <B>mvwaddchstr</B>, <B>mvwaddchnstr</B> - add a  string  of
-       characters (and attributes) to a <B>curses</B> window
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>addchstr(const</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>addchnstr(const</B> <B>chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>waddchstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>waddchnstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvaddchstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>mvaddchnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwaddchstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B>  <B>x,</B>  <B>const</B>  <B>chtype</B>
-       <B>*chstr);</B>
-       <B>int</B>  <B>mvwaddchnstr(WINDOW</B>  <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>chtype</B>
-       <B>*chstr,</B> <B>int</B> <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>addchstr(const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>addchnstr(const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddchstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG>  <STRONG>x,</STRONG>  <STRONG>const</STRONG>  <STRONG>chtype</STRONG>
+       <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG>  <STRONG>mvwaddchnstr(WINDOW</STRONG>  <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG>
+       <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines copy <I>chstr</I> into the window image  structure
+       These routines copy <EM>chstr</EM> into the window image  structure
        at  and  after the current cursor position.  The four rou-
        at  and  after the current cursor position.  The four rou-
-       tines with <I>n</I> as the last argument copy at most <I>n</I> elements,
-       but  no  more than will fit on the line.  If <B>n</B>=<B>-1</B> then the
+       tines with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
+       but  no  more than will fit on the line.  If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
        whole string is copied, to the maximum number  of  charac-
        ters that will fit on the line.
 
        whole string is copied, to the maximum number  of  charac-
        ters that will fit on the line.
 
-       The window cursor is <I>not</I> advanced, and these routines work
-       faster than <B>waddnstr</B>.  On the other hand, they don't  per-
+       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-
        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
        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
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and <B>OK</B> on
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
        success  (the  SVr4 manuals specify only "an integer value
        success  (the  SVr4 manuals specify only "an integer value
-       other than <B>ERR</B>") upon successful completion, unless other-
+       other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
        wise noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        wise noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that all routines except <B>waddchnstr</B> may be macros.
+       Note that all routines except <STRONG>waddchnstr</STRONG> may be macros.
 
 
 </PRE>
 
 
 </PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index e83e795f01fd65db5191e3dc3b944fca0bd6866d..4f4857d3f6112ae9c0cc9af0ff4c7dd31e479ff9 100644 (file)
@@ -1,51 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_addstr.3x,v 1.10 2002/03/09 23:09:29 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_addstr 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>
 <BODY>
+<H1>curs_addstr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>addstr</B>,  <B>addnstr</B>,  <B>waddstr</B>, <B>waddnstr</B>, <B>mvaddstr</B>, <B>mvaddnstr</B>,
-       <B>mvwaddstr</B>, <B>mvwaddnstr</B> - add a string of  characters  to  a
-       <B>curses</B> window and advance cursor
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>addstr(const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>addnstr(const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>waddstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>waddnstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvaddstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvaddnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwaddstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvwaddnstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str,</B>
-       <B>int</B> <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>addstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>addnstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str,</EM> <EM>int</EM> <EM>n</EM><STRONG>);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  routines  write  the characters of the (null-termi-
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  routines  write  the characters of the (null-termi-
-       nated) character string <I>str</I> on the given  window.   It  is
-       similar  to  calling <B>waddch</B> once for each character in the
-       string.  The four routines with <I>n</I>  as  the  last  argument
-       write  at  most <I>n</I> characters.  If <I>n</I> is -1, then the entire
-       string will be added.
+       nated) character string <EM>str</EM> on the given  window.   It  is
+       similar  to  calling <STRONG>waddch</STRONG> once for each character in the
+       string.  The four routines with <EM>n</EM>  as  the  last  argument
+       write  at  most <EM>n</EM> characters.  If <EM>n</EM> is -1, then the entire
+       string will be added, up to the maximum number of  charac-
+       ters  that  will  fit  on the line, or until a terminating
+       null is reached.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and <B>OK</B> on
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
        success  (the  SVr4 manuals specify only "an integer value
        success  (the  SVr4 manuals specify only "an integer value
-       other than <B>ERR</B>") upon successful completion.
+       other than <STRONG>ERR</STRONG>") upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note  that  all  of  these  routines  except  <B>waddstr</B>  and
-       <B>waddnstr</B> may be macros.
+       Note  that  all  of  these  routines  except  <STRONG>waddstr</STRONG>  and
+       <STRONG>waddnstr</STRONG> may be macros.
 
 
 </PRE>
 
 
 </PRE>
@@ -58,8 +97,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>.
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
 
 
 
 
 
 
diff --git a/doc/html/man/curs_addwstr.3x.html b/doc/html/man/curs_addwstr.3x.html
new file mode 100644 (file)
index 0000000..d761b35
--- /dev/null
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_addwstr.3x,v 1.2 2002/03/09 23:16:59 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_addwstr 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_addwstr 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <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>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>addwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>addnwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>waddnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvaddnwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwaddnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</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
+       <STRONG>cchar_t</STRONG>.
+
+       The <EM>mv</EM> routines perform cursor movement once, before writ-
+       ing any characters.  Thereafter, the cursor is advanced as
+       a side-effect of writing to the window.
+
+       The  four  routines  with  <EM>n</EM> as the last argument write at
+       most <EM>n</EM> <STRONG>wchar_t</STRONG> characters.  If <EM>n</EM> is -1,  then  the  entire
+       string  will be added, up to the maximum number of charac-
+       ters that will fit on the line,  or  until  a  terminating
+       null is reached.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+       success.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that all of these routines except  <STRONG>waddnwstr</STRONG>  may  be
+       macros.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       All  these  entry  points  are described in the XSI Curses
+       standard, Issue 4.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 6c2df3d186a5a3fdb04c3dfb9a0147233876e5ff..fa0c4e11d2442cd4f7a3c10301c865d3573dec3c 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_attr.3x,v 1.26 2002/09/21 19:50:06 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_attr 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>
 <BODY>
+<H1>curs_attr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>attroff</B>,  <B>wattroff</B>,  <B>attron</B>,  <B>wattron</B>,  <B>attrset</B>, <B>wattrset</B>,
-       <B>color_set</B>,  <B>wcolor_set</B>,  <B>standend</B>,  <B>wstandend</B>,   <B>standout</B>,
-       <B>wstandout</B>,   <B>attr_get</B>,   <B>wattr_get</B>,  <B>attr_off</B>,  <B>wattr_off</B>,
-       <B>attr_on</B>, <B>wattr_on</B>,  <B>attr_set</B>,  <B>wattr_set</B>,  <B>chgat</B>,  <B>wchgat</B>,
-       <B>mvchgat</B>, <B>mvwchgat</B>, <B>PAIR_NUMBER</B> - <B>curses</B> character and win-
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        dow attribute control routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>int</B> <B>attroff(int</B> <B>attrs);</B>
-       <B>int</B> <B>wattroff(WINDOW</B> <B>*win,</B> <B>int</B> <B>attrs);</B>
-       <B>int</B> <B>attron(int</B> <B>attrs);</B>
-       <B>int</B> <B>wattron(WINDOW</B> <B>*win,</B> <B>int</B> <B>attrs);</B>
-       <B>int</B> <B>attrset(int</B> <B>attrs);</B>
-       <B>int</B> <B>wattrset(WINDOW</B> <B>*win,</B> <B>int</B> <B>attrs);</B>
-       <B>int</B> <B>color_set(short</B> <B>color_pair_number,</B> <B>void*</B> <B>opts);</B>
-       <B>int</B> <B>wcolor_set(WINDOW</B> <B>*win,</B> <B>short</B> <B>color_pair_number,</B>
-             <B>void*</B> <B>opts);</B>
-       <B>int</B> <B>standend(void);</B>
-       <B>int</B> <B>wstandend(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>standout(void);</B>
-       <B>int</B> <B>wstandout(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>attr_get(attr_t</B> <B>*attrs,</B> <B>short</B> <B>*pair,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>wattr_get(WINDOW</B> <B>*win,</B> <B>attr_t</B> <B>*attrs,</B> <B>short</B> <B>*pair,</B>
-              <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>attr_off(attr_t</B> <B>attrs,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>wattr_off(WINDOW</B> <B>*win,</B> <B>attr_t</B> <B>attrs,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>attr_on(attr_t</B> <B>attrs,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>wattr_on(WINDOW</B> <B>*win,</B> <B>attr_t</B> <B>attrs,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>attr_set(attr_t</B> <B>attrs,</B> <B>short</B> <B>pair,</B> <B>void</B> <B>*opts);</B>
-       <B>int</B> <B>wattr_set(WINDOW</B> <B>*win,</B> <B>attr_t</B> <B>attrs,</B> <B>short</B> <B>pair,</B>  <B>void</B>
-       <B>*opts);</B>
-       <B>int</B> <B>chgat(int</B> <B>n,</B> <B>attr_t</B> <B>attr,</B> <B>short</B> <B>color,</B>
-             <B>const</B> <B>void</B> <B>*opts)</B>
-       <B>int</B> <B>wchgat(WINDOW</B> <B>*win,</B> <B>int</B> <B>n,</B> <B>attr_t</B> <B>attr,</B>
-             <B>short</B> <B>color,</B> <B>const</B> <B>void</B> <B>*opts)</B>
-       <B>int</B> <B>mvchgat(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>int</B> <B>n,</B> <B>attr_t</B> <B>attr,</B>
-             <B>short</B> <B>color,</B> <B>const</B> <B>void</B> <B>*opts)</B>
-       <B>int</B> <B>mvwchgat(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>int</B> <B>n,</B>
-             <B>attr_t</B> <B>attr,</B> <B>short</B> <B>color,</B> <B>const</B> <B>void</B> <B>*opts)</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>int</STRONG> <STRONG>attroff(int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattroff(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attron(int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattron(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attrset(int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattrset(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>color_set(short</STRONG> <STRONG>color_pair_number,</STRONG> <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wcolor_set(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>short</STRONG> <STRONG>color_pair_number,</STRONG>
+             <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>standend(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wstandend(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>standout(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wstandout(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attr_get(attr_t</STRONG> <STRONG>*attrs,</STRONG> <STRONG>short</STRONG> <STRONG>*pair,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattr_get(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>attr_t</STRONG> <STRONG>*attrs,</STRONG> <STRONG>short</STRONG> <STRONG>*pair,</STRONG>
+              <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attr_off(attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattr_off(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attr_on(attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattr_on(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>attr_set(attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>short</STRONG> <STRONG>pair,</STRONG> <STRONG>void</STRONG> <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wattr_set(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>short</STRONG> <STRONG>pair,</STRONG>  <STRONG>void</STRONG>
+       <STRONG>*opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>chgat(int</STRONG> <STRONG>n,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attr,</STRONG> <STRONG>short</STRONG> <STRONG>color,</STRONG>
+             <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*opts)</STRONG>
+       <STRONG>int</STRONG> <STRONG>wchgat(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>n,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attr,</STRONG>
+             <STRONG>short</STRONG> <STRONG>color,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*opts)</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvchgat(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>int</STRONG> <STRONG>n,</STRONG> <STRONG>attr_t</STRONG> <STRONG>attr,</STRONG>
+             <STRONG>short</STRONG> <STRONG>color,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*opts)</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwchgat(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>int</STRONG> <STRONG>n,</STRONG>
+             <STRONG>attr_t</STRONG> <STRONG>attr,</STRONG> <STRONG>short</STRONG> <STRONG>color,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*opts)</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  routines  manipulate  the current attributes of the
        named window.  The current attributes of a window apply to
 
 
 </PRE>
 <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 <B>wad-</B>
-       <B>dch</B>, <B>waddstr</B> and <B>wprintw</B>.  Attributes are  a  property  of
+       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
        scrolling and insert/delete line/character operations.  To
        the  extent  possible,  they  are displayed as appropriate
        modifications to the graphic rendition of  characters  put
        on the screen.
 
        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
        on the screen.
 
-       The  routine  <B>attrset</B>  sets  the current attributes of the
-       given window to <I>attrs</I>.  The routine <B>attroff</B> turns off  the
+       The  routine  <STRONG>attrset</STRONG>  sets  the current attributes of the
+       given window to <EM>attrs</EM>.  The routine <STRONG>attroff</STRONG> turns off  the
        named  attributes  without turning any other attributes on
        named  attributes  without turning any other attributes on
-       or off.  The routine <B>attron</B> turns on the named  attributes
-       without affecting any others.  The routine <B>standout</B> is the
-       same as <B>attron(A_STANDOUT)</B>.  The routine <B>standend</B>  is  the
-       same as <B>attrset(A_NORMAL)</B> or <B>attrset(0)</B>, that is, it turns
+       or off.  The routine <STRONG>attron</STRONG> turns on the named  attributes
+       without affecting any others.  The routine <STRONG>standout</STRONG> is the
+       same as <STRONG>attron(A_STANDOUT)</STRONG>.  The routine <STRONG>standend</STRONG>  is  the
+       same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it turns
        off all attributes.
 
        off all attributes.
 
-       The routine <B>color_set</B> sets the current color of the  given
-       window  to the foreground/background combination described
-       by the color_pair_number. The parameter opts  is  reserved
+       The  <STRONG>attrset</STRONG>  and  related  routines  do  not  affect  the
+       attributes  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  routine <STRONG>color_set</STRONG> sets the current color of the given
+       window to the foreground/background combination  described
+       by  the  color_pair_number. The parameter opts is reserved
        for future use, applications must supply a null pointer.
 
        for future use, applications must supply a null pointer.
 
-       The  routine  <B>wattr_get</B>  returns the current attribute and
-       color pair for the given window; <B>attr_get</B> returns the cur-
-       rent  attribute  and color pair for <B>stdscr</B>.  The remaining
-       <B>attr_</B>* functions operate exactly  like  the  corresponding
-       <B>attr</B>*  functions,  except that they take arguments of type
-       <B>attr_t</B> rather than <B>int</B>.
-
-       The routine <B>chgat</B> changes the attributes of a given number
-       of  characters  starting at the current cursor location of
-       <B>stdscr</B>.  It does not update the cursor and does  not  per-
-       form  wrapping.   A  character count of -1 or greater than
-       the remaining window width means to change attributes  all
-       the  way to the end of the current line.  The <B>wchgat</B> func-
-       tion generalizes this to any window; the <B>mvwchgat</B> function
+       The routine <STRONG>wattr_get</STRONG> returns the  current  attribute  and
+       color pair for the given window; <STRONG>attr_get</STRONG> returns the cur-
+       rent attribute and color pair for <STRONG>stdscr</STRONG>.   The  remaining
+       <STRONG>attr_</STRONG>*  functions  operate  exactly like the corresponding
+       <STRONG>attr</STRONG>* functions, except that they take arguments  of  type
+       <STRONG>attr_t</STRONG> rather than <STRONG>int</STRONG>.
+
+       The routine <STRONG>chgat</STRONG> changes the attributes of a given number
+       of characters starting at the current cursor  location  of
+       <STRONG>stdscr</STRONG>.   It  does not update the cursor and does not per-
+       form wrapping.  A character count of -1  or  greater  than
+       the  remaining window width means to change attributes all
+       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
        does a cursor move before acting.  In these functions, the
-       color argument is a color-pair  index  (as  in  the  first
-       argument  of  <I>init</I><B>_</B><I>pair</I>,  see  <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>).   The <B>opts</B>
-       argument is not presently used, but is  reserved  for  the
-       future (leave it <B>NULL</B>).
-
-   <B>Attributes</B>
-       The following video attributes, defined in <B>&lt;curses.h&gt;</B>, can
-       be passed to the routines <B>attron</B>, <B>attroff</B>, and <B>attrset</B>, or
-       OR'ed with the characters passed to <B>addch</B>.
-
-        <B>A_NORMAL</B>        Normal display (no highlight)
-        <B>A_STANDOUT</B>      Best highlighting mode of the terminal.
-        <B>A_UNDERLINE</B>     Underlining
-        <B>A_REVERSE</B>       Reverse video
-        <B>A_BLINK</B>         Blinking
-        <B>A_DIM</B>           Half bright
-        <B>A_BOLD</B>          Extra bright or bold
-        <B>A_PROTECT</B>       Protected mode
-        <B>A_INVIS</B>         Invisible or blank mode
-        <B>A_ALTCHARSET</B>    Alternate character set
-        <B>A_CHARTEXT</B>      Bit-mask to extract a character
-        <B>COLOR_PAIR(</B><I>n</I><B>)</B>   Color-pair number <I>n</I>
-
-       The following macro is the reverse of <B>COLOR_PAIR(</B><I>n</I><B>)</B>:
-
-       <B>PAIR_NUMBER(</B><I>attrs</I>) Returns the pair number associated
-                          with the <B>COLOR_PAIR(</B><I>n</I><B>)</B> attribute.
-
-       The  return values of many of these routines are not mean-
-       ingful (they are implemented as macro-expanded assignments
-       and  simply  return their argument).  The SVr4 manual page
-       claims (falsely) that these routines always return <B>1</B>.
+       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.
 
 
+   <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>.
+
+        <STRONG>A_NORMAL</STRONG>        Normal display (no highlight)
+        <STRONG>A_STANDOUT</STRONG>      Best highlighting mode of the terminal.
+        <STRONG>A_UNDERLINE</STRONG>     Underlining
+        <STRONG>A_REVERSE</STRONG>       Reverse video
+        <STRONG>A_BLINK</STRONG>         Blinking
+        <STRONG>A_DIM</STRONG>           Half bright
+
+        <STRONG>A_BOLD</STRONG>          Extra bright or bold
+        <STRONG>A_PROTECT</STRONG>       Protected mode
+        <STRONG>A_INVIS</STRONG>         Invisible or blank mode
+        <STRONG>A_ALTCHARSET</STRONG>    Alternate character set
+        <STRONG>A_CHARTEXT</STRONG>      Bit-mask to extract a character
+        <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG>   Color-pair number <EM>n</EM>
+
+       The following macro is the reverse of <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG>:
+
+       <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>) Returns the pair number associated
+                          with the <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> attribute.
+
+       The return values of many of these routines are not  mean-
+       ingful (they are implemented as macro-expanded assignments
+       and simply return their argument).  The SVr4  manual  page
+       claims (falsely) that these routines always return <STRONG>1</STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>attroff</B>,  <B>wattroff</B>,  <B>attron</B>,  <B>wattron</B>,  <B>attrset</B>,
-       <B>wattrset</B>, <B>standend</B> and <B>standout</B> may be macros.
+       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.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </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,  <B>attr_t</B>,  which  is  not  defined in SVr4
-       curses. The functions taking <B>attr_t</B> arguments are not sup-
+       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.
 
        ported under SVr4.
 
-       The  XSI  Curses  standard  states that whether the tradi-
-       tional  functions  <B>attron</B>/<B>attroff</B>/<B>attrset</B>  can  manipulate
-       attributes  other  than <B>A_BLINK</B>, <B>A_BOLD</B>, <B>A_DIM</B>, <B>A_REVERSE</B>,
-       <B>A_STANDOUT</B>, or <B>A_UNDERLINE</B> is "unspecified".   Under  this
-       implementation  as  well  as  SVr4 curses, these functions
-       correctly manipulate all other  highlights  (specifically,
-       <B>A_ALTCHARSET</B>, <B>A_PROTECT</B>, and <B>A_INVIS</B>).
-
-       XSI  Curses added the new entry points, <B>attr_get</B>, <B>attr_on</B>,
-       <B>attr_off</B>,  <B>attr_set</B>,   <B>wattr_on</B>,   <B>wattr_off</B>,   <B>wattr_get</B>,
-       <B>wattr_set</B>.   These  are intended to work with a new series
-       of highlight macros prefixed with <B>WA_</B>.
-
-        <B>WA_NORMAL</B>       Normal display (no highlight)
-        <B>WA_STANDOUT</B>     Best highlighting mode of the terminal.
-        <B>WA_UNDERLINE</B>    Underlining
-        <B>WA_REVERSE</B>      Reverse video
-        <B>WA_BLINK</B>        Blinking
-        <B>WA_DIM</B>          Half bright
-        <B>WA_BOLD</B>         Extra bright or bold
-        <B>WA_ALTCHARSET</B>   Alternate character set
+       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,
+       <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>.
+
+        <STRONG>WA_NORMAL</STRONG>       Normal display (no highlight)
+        <STRONG>WA_STANDOUT</STRONG>     Best highlighting mode of the terminal.
+        <STRONG>WA_UNDERLINE</STRONG>    Underlining
+        <STRONG>WA_REVERSE</STRONG>      Reverse video
+        <STRONG>WA_BLINK</STRONG>        Blinking
+        <STRONG>WA_DIM</STRONG>          Half bright
+        <STRONG>WA_BOLD</STRONG>         Extra bright or bold
+        <STRONG>WA_ALTCHARSET</STRONG>   Alternate character set
 
        The XSI curses standard specifies that each pair of corre-
 
        The XSI curses standard specifies that each pair of corre-
-       sponding  <B>A_</B>  and <B>WA_</B>-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-
        current-highlight information.
 
        The XSI standard extended conformance level adds new high-
-       lights <B>A_HORIZONTAL</B>, <B>A_LEFT</B>, <B>A_LOW</B>, <B>A_RIGHT</B>, <B>A_TOP</B>, <B>A_VER-</B>
-       <B>TICAL</B> (and corresponding <B>WA_</B> macros for each)  which  this
+       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.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        curses does not yet support.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,        <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>,        <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>,
-       <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,        <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,        <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 </PRE>
 <HR>
 
 </PRE>
 <HR>
index 516cd688328f9b7644a0ac2058ad0d160c872867..a3df0f94090a9ae55b08f339d79a17082f813abb 100644 (file)
@@ -1,27 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_beep.3x,v 1.7 1998/03/11 21:12:53 juergen Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_beep 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>
 <BODY>
+<H1>curs_beep 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>beep</B>, <B>flash</B> - <B>curses</B> bell and screen flash routines
+       <STRONG>beep</STRONG>, <STRONG>flash</STRONG> - <STRONG>curses</STRONG> bell and screen flash routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>beep(void);</B>
-       <B>int</B> <B>flash(void);</B>
+       <STRONG>int</STRONG> <STRONG>beep(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>flash(void);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>beep</B> and <B>flash</B> routines are used to alert the terminal
-       user.  The routine <B>beep</B> sounds an  audible  alarm  on  the
+       The <STRONG>beep</STRONG> and <STRONG>flash</STRONG> routines are used to alert the terminal
+       user.  The routine <STRONG>beep</STRONG> sounds an  audible  alarm  on  the
        terminal,  if  possible;  otherwise  it flashes the screen
        terminal,  if  possible;  otherwise  it flashes the screen
-       (visible bell).  The routine <B>flash</B> flashes the screen, and
+       (visible bell).  The routine <STRONG>flash</STRONG> flashes the screen, and
        if  that  is  not  possible, sounds the alert.  If neither
        alert is possible, nothing happens.  Nearly all  terminals
        have  an  audible  alert (bell or beep), but only some can
        if  that  is  not  possible, sounds the alert.  If neither
        alert is possible, nothing happens.  Nearly all  terminals
        have  an  audible  alert (bell or beep), but only some can
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These routines return <B>OK</B> if they  succeed  in  beeping  or
-       flashing, <B>ERR</B> otherwise.
+       These routines return <STRONG>OK</STRONG> if they  succeed  in  beeping  or
+       flashing, <STRONG>ERR</STRONG> otherwise.
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       SVr4's  beep  and flash routines always returned <B>OK</B>, so it
+       SVr4's  beep  and flash routines always returned <STRONG>OK</STRONG>, so it
        was not possible to tell when the beep or flash failed.
 
 
        was not possible to tell when the beep or flash failed.
 
 
 <H2>PORTABILITY</H2><PRE>
        These functions are defined in the  XSI  Curses  standard,
        Issue  4.  Like SVr4, it specifies that they always return
 <H2>PORTABILITY</H2><PRE>
        These functions are defined in the  XSI  Curses  standard,
        Issue  4.  Like SVr4, it specifies that they always return
-       <B>OK</B>.
+       <STRONG>OK</STRONG>.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 
 
 
 
index d498f465c74a9bbf605a80293b71735badee883f..178a8f61b7d3da38183b133c4c3b2a33c9686f63 100644 (file)
@@ -1,33 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_bkgd.3x,v 1.18 2002/09/21 19:46:26 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_bkgd 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>
 <BODY>
+<H1>curs_bkgd 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>bkgdset</B>,  <B>wbkgdset</B>,  <B>bkgd</B>,  <B>wbkgd</B>, <B>getbkgd</B> - <B>curses</B> window
+       <STRONG>bkgdset</STRONG>,  <STRONG>wbkgdset</STRONG>,  <STRONG>bkgd</STRONG>,  <STRONG>wbkgd</STRONG>, <STRONG>getbkgd</STRONG> - <STRONG>curses</STRONG> window
        background manipulation routines
 
 
        background manipulation routines
 
 
+
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>void</B> <B>bkgdset(const</B> <B>chtype</B> <B>ch);</B>
-       <B>void</B> <B>wbkgdset(WINDOW</B> <B>*win,</B> <B>const</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>bkgd(const</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>wbkgd(WINDOW</B> <B>*win,</B> <B>const</B> <B>chtype</B> <B>ch);</B>
-       <B>chtype</B> <B>getbkgd(WINDOW</B> <B>*win);</B>
+       <STRONG>void</STRONG> <STRONG>bkgdset(chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wbkgdset(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>bkgd(chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wbkgd(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>chtype</STRONG> <STRONG>getbkgd(WINDOW</STRONG> <STRONG>*win);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>bkgdset</B> and <B>wbkgdset</B>  routines  manipulate  the  back-
+       The <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG>  routines  manipulate  the  back-
        ground  of  the  named window.  The window background is a
        ground  of  the  named window.  The window background is a
-       <B>chtype</B> consisting of any combination of attributes  (i.e.,
+       <STRONG>chtype</STRONG> consisting of any combination of attributes  (i.e.,
        rendition)  and  a  character.   The attribute part of the
        background is combined (OR'ed) with all non-blank  charac-
        rendition)  and  a  character.   The attribute part of the
        background is combined (OR'ed) with all non-blank  charac-
-       ters  that  are written into the window with <B>waddch</B>.  Both
+       ters  that  are written into the window with <STRONG>waddch</STRONG>.  Both
        the character and attribute parts of  the  background  are
        combined   with  the  blank  characters.   The  background
        becomes a property of the character  and  moves  with  the
        the character and attribute parts of  the  background  are
        combined   with  the  blank  characters.   The  background
        becomes a property of the character  and  moves  with  the
@@ -38,7 +77,7 @@
        attribute  part  of  the  background  is  displayed as the
        graphic rendition of the character put on the screen.
 
        attribute  part  of  the  background  is  displayed as the
        graphic rendition of the character put on the screen.
 
-       The <B>bkgd</B> and <B>wbkgd</B> functions set the  background  property
+       The <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> functions set the  background  property
        of  the  current  or  specified window and then apply this
        setting to every character position in that window:
 
        of  the  current  or  specified window and then apply this
        setting to every character position in that window:
 
               Wherever  the  former background character appears,
               it is changed to the new background character.
 
               Wherever  the  former background character appears,
               it is changed to the new background character.
 
-       The <B>getbkgd</B> function returns the  given  window's  current
+       The <STRONG>getbkgd</STRONG> function returns the  given  window's  current
        background character/attribute pair.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        background character/attribute pair.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  routines  <B>bkgd</B>  and <B>wbkgd</B> return the integer <B>OK</B>.  The
-       SVr4.0 manual says "or a non-negative integer  if  <B>immedok</B>
+       The  routines  <STRONG>bkgd</STRONG>  and <STRONG>wbkgd</STRONG> 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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        is set", but this appears to be an error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>bkgdset</B> and <B>bkgd</B> may be macros.
+       Note that <STRONG>bkgdset</STRONG> and <STRONG>bkgd</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
-       Issue 4.  The draft does not include <B>const</B>  qualifiers  on
-       the arguments.  The standard specifies that <B>bkgd</B> and <B>wbkgd</B>
-       return <B>ERR</B>, on failure. but gives no failure conditions.
+       Issue 4.  It specifies that <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> return  <STRONG>ERR</STRONG>  on
+       failure.  but gives no failure conditions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,   <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,   <STRONG>curs_out-</STRONG>
+       <STRONG><A HREF="curs_outopts.3x.html">opts(3x)</A></STRONG>
 
 
 
 
 
 
diff --git a/doc/html/man/curs_bkgrnd.3x.html b/doc/html/man/curs_bkgrnd.3x.html
new file mode 100644 (file)
index 0000000..4a44535
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_bkgrnd 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_bkgrnd 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>bkgrnd</STRONG>,  <STRONG>wbkgrnd</STRONG>,  <STRONG>bkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>getbkgrnd</STRONG>, <STRONG>wget-</STRONG>
+       <STRONG>bkgrnd</STRONG> - <STRONG>curses</STRONG>  window  complex  background  manipulation
+       routines
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>bkgrnd(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wbkgrnd(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>void</STRONG> <STRONG>bkgrndset(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wbkgrndset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>getbkgrnd(cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wgetbkgrnd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines manipulate the back-
+       ground of the named window.  The window  background  is  a
+       <STRONG>cchar_t</STRONG> consisting of any combination of attributes (i.e.,
+       rendition) and a complex character.  The attribute part of
+       the  background  is  combined  (OR'ed)  with all non-blank
+       characters that are written into the window  with  <STRONG>waddch</STRONG>.
+       Both  the  character and attribute parts of the background
+       are combined with the blank  characters.   The  background
+       becomes  a  property  of  the character and moves with the
+       character  through   any   scrolling   and   insert/delete
+       line/character operations.
+
+       To  the  extent  possible  on  a  particular terminal, the
+       attribute part of  the  background  is  displayed  as  the
+       graphic rendition of the character put on the screen.
+
+       The  <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> functions set the background prop-
+       erty of the current or specified  window  and  then  apply
+       this setting to every character position in that window:
+
+              The  rendition  of every character on the screen is
+              changed to the new background rendition.
+
+              Wherever the former background  character  appears,
+              it is changed to the new background character.
+
+       The  <STRONG>getbkgrnd</STRONG> function returns the given window's current
+       background character/attribute pair via the <STRONG>wch</STRONG> pointer.
+
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be  macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       The  <STRONG>bkgrndset</STRONG>  and  <STRONG>wbkgrndset</STRONG>  routines  do not return a
+       value.
+
+       Upon successful completion, the other functions return <STRONG>OK</STRONG>.
+       Otherwise,  they  return  <STRONG>ERR</STRONG>.   A  null window pointer is
+       treated as an error.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 44f6e43510d428c2b183ac131400c4dbeafd8092..e6f9adbfc74cdc599c433f0bb39ae2bbfc06d452 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_border 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>
 <BODY>
+<H1>curs_border 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>border</B>,  <B>wborder</B>,  <B>box</B>, <B>hline</B>, <B>whline</B>, <B>vline</B>, <B>wvline</B>, <B>mvh-</B>
-       <B>line</B>, <B>mvwhline</B>, <B>mvvline</B>, <B>mvwvline</B> - create <B>curses</B> borders,
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        horizontal and vertical lines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>int</B> <B>border(chtype</B> <B>ls,</B> <B>chtype</B> <B>rs,</B> <B>chtype</B> <B>ts,</B> <B>chtype</B> <B>bs,</B>
-          <B>chtype</B> <B>tl,</B> <B>chtype</B> <B>tr,</B> <B>chtype</B> <B>bl,</B> <B>chtype</B> <B>br);</B>
-       <B>int</B> <B>wborder(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ls,</B> <B>chtype</B> <B>rs,</B>
-          <B>chtype</B> <B>ts,</B> <B>chtype</B> <B>bs,</B> <B>chtype</B> <B>tl,</B> <B>chtype</B> <B>tr,</B>
-          <B>chtype</B> <B>bl,</B> <B>chtype</B> <B>br);</B>
-       <B>int</B> <B>box(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>verch,</B> <B>chtype</B> <B>horch);</B>
-       <B>int</B> <B>hline(chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>whline(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>vline(chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>wvline(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>mvhline(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>mvwhline(WINDOW</B> <B>*,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvvline(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwvline(WINDOW</B> <B>*,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch,</B> <B>int</B> <B>n);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>int</STRONG> <STRONG>border(chtype</STRONG> <STRONG>ls,</STRONG> <STRONG>chtype</STRONG> <STRONG>rs,</STRONG> <STRONG>chtype</STRONG> <STRONG>ts,</STRONG> <STRONG>chtype</STRONG> <STRONG>bs,</STRONG>
+          <STRONG>chtype</STRONG> <STRONG>tl,</STRONG> <STRONG>chtype</STRONG> <STRONG>tr,</STRONG> <STRONG>chtype</STRONG> <STRONG>bl,</STRONG> <STRONG>chtype</STRONG> <STRONG>br);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wborder(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ls,</STRONG> <STRONG>chtype</STRONG> <STRONG>rs,</STRONG>
+          <STRONG>chtype</STRONG> <STRONG>ts,</STRONG> <STRONG>chtype</STRONG> <STRONG>bs,</STRONG> <STRONG>chtype</STRONG> <STRONG>tl,</STRONG> <STRONG>chtype</STRONG> <STRONG>tr,</STRONG>
+          <STRONG>chtype</STRONG> <STRONG>bl,</STRONG> <STRONG>chtype</STRONG> <STRONG>br);</STRONG>
+       <STRONG>int</STRONG> <STRONG>box(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>verch,</STRONG> <STRONG>chtype</STRONG> <STRONG>horch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>hline(chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>whline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vline(chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wvline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>mvhline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>mvwhline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvvline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwvline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>border</B>, <B>wborder</B> and <B>box</B> routines draw a box around the
-       edges of a window.  The argument <I>ls</I>  is  a  character  and
-       attributes  used  for  the  left  side of the border, <I>rs</I> -
-       right side, <I>ts</I> - top side, <I>bs</I> -  bottom  side,  <I>tl</I>  -  top
-       left-hand  corner, <I>tr</I> - top right-hand corner, <I>bl</I> - bottom
-       left-hand corner, and <I>br</I> - bottom right-hand  corner.   If
-       any of these arguments is zero, then the following default
-       values (defined in <B>curses.h</B>) are used instead:  <B>ACS_VLINE</B>,
-       <B>ACS_VLINE</B>,     <B>ACS_HLINE</B>,     <B>ACS_HLINE</B>,     <B>ACS_ULCORNER</B>,
-       <B>ACS_URCORNER</B>, <B>ACS_LLCORNER</B>, <B>ACS_LRCORNER</B>.
-
-       <B>box(</B><I>win</I><B>,</B> <I>verch</I><B>,</B> <I>horch</I><B>)</B> is a shorthand  for  the  following
-       call:  <B>wborder(</B><I>win</I><B>,</B>  <I>verch</I><B>,</B>  <I>verch</I><B>,</B> <I>horch</I><B>,</B> <I>horch</I><B>,</B> <B>0,</B> <B>0,</B> <B>0,</B>
-       <B>0)</B>.
-
-       The <B>hline</B> and <B>whline</B> functions draw a horizontal (left  to
-       right)  line using <I>ch</I> starting at the current cursor posi-
+       The <STRONG>border</STRONG>, <STRONG>wborder</STRONG> and <STRONG>box</STRONG> routines draw a box around the
+       edges of a window.  Other than the window,  each  argument
+       is a character with attributes:
+              <EM>ls</EM> - left side,
+              <EM>rs</EM> - right side,
+              <EM>ts</EM> - top side,
+              <EM>bs</EM> - bottom side,
+              <EM>tl</EM> - top left-hand corner,
+              <EM>tr</EM> - top right-hand corner,
+              <EM>bl</EM> - bottom left-hand corner, and
+              <EM>br</EM> - bottom right-hand corner.
+       If  any of these arguments is zero, then the corresponding
+       default values (defined in <STRONG>curses.h</STRONG>) are used instead:
+              <STRONG>ACS_VLINE</STRONG>,
+              <STRONG>ACS_VLINE</STRONG>,
+              <STRONG>ACS_HLINE</STRONG>,
+              <STRONG>ACS_HLINE</STRONG>,
+              <STRONG>ACS_ULCORNER</STRONG>,
+              <STRONG>ACS_URCORNER</STRONG>,
+              <STRONG>ACS_LLCORNER</STRONG>,
+              <STRONG>ACS_LRCORNER</STRONG>.
+
+       <STRONG>box(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>)</STRONG> is a shorthand  for  the  following
+       call:  <STRONG>wborder(</STRONG><EM>win</EM><STRONG>,</STRONG>  <EM>verch</EM><STRONG>,</STRONG>  <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG>
+       <STRONG>0)</STRONG>.
+
+       The <STRONG>hline</STRONG> and <STRONG>whline</STRONG> functions draw a horizontal (left  to
+       right)  line using <EM>ch</EM> starting at the current cursor posi-
        tion in the window.  The current cursor  position  is  not
        tion in the window.  The current cursor  position  is  not
-       changed.   The  line  is  at most <I>n</I> characters long, or as
+       changed.   The  line  is  at most <EM>n</EM> characters long, or as
        many as fit into the window.
        many as fit into the window.
-
-       The <B>vline</B> and <B>wvline</B> functions draw  a  vertical  (top  to
-       bottom) line using <I>ch</I> starting at the current cursor posi-
+       The <STRONG>vline</STRONG> and <STRONG>wvline</STRONG> functions draw  a  vertical  (top  to
+       bottom) line using <EM>ch</EM> starting at the current cursor posi-
        tion in the window.  The current cursor  position  is  not
        tion in the window.  The current cursor  position  is  not
-       changed.   The  line  is  at most <I>n</I> characters long, or as
+       changed.   The  line  is  at most <EM>n</EM> characters long, or as
        many as fit into the window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        many as fit into the window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer  <B>OK</B>.   The  SVr4.0  manual
-       says  "or  a  non-negative integer if <B>immedok</B> is set", but
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        this appears to be an error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The borders generated by these functions are  <I>inside</I>  bor-
+       The borders generated by these functions are  <EM>inside</EM>  bor-
        ders (this is also true of SVr4 curses, though the fact is
        not documented).
 
        ders (this is also true of SVr4 curses, though the fact is
        not documented).
 
-       Note that <B>border</B> and <B>box</B> may be macros.
+       Note that <STRONG>border</STRONG> and <STRONG>box</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
-       Issue 4.  Additional functions <B>mvhline</B>, <B>mvvline</B>, <B>mvwhline</B>,
-       and <B>mvwvline</B> are described there which this implementation
-       does  not  yet  support.  The standard specifies that they
-       return <B>ERR</B> on failure, but specifies no error  conditions.
+       Issue  4.   The standard specifies that they return <STRONG>ERR</STRONG> on
+       failure, but specifies no error conditions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>.
-
-
-
-
-
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>.
 
 
 
 
 
 
diff --git a/doc/html/man/curs_border_set.3x.html b/doc/html/man/curs_border_set.3x.html
new file mode 100644 (file)
index 0000000..b5a3ebb
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_border_set.3x,v 1.3 2002/04/20 16:49:13 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_border_set 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_border_set 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</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>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG> - create <STRONG>curses</STRONG> borders or lines
+       using complex characters and renditions
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>border_set(</STRONG>
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM> <STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wborder_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*win</STRONG>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>box_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*win</STRONG>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>verch</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>horch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>hline_set(</STRONG>
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>whline_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvhline_set(</STRONG>
+          <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwhline_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
+          <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vline_set(</STRONG>
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wvline_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvvline_set(</STRONG>
+          <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwvline_set(</STRONG>
+          <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
+          <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
+          <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The <STRONG>border_set</STRONG> and <STRONG>wborder_set</STRONG>  functions  draw  a  border
+       around  the  edges  of  the  current  or specified window.
+       These functions do not change the cursor position, and  do
+       not wrap.
+       Other  than the window, each argument is a complex charac-
+       ter with attributes:
+              <EM>ls</EM> - left side,
+              <EM>rs</EM> - right side,
+              <EM>ts</EM> - top side,
+              <EM>bs</EM> - bottom side,
+              <EM>tl</EM> - top left-hand corner,
+              <EM>tr</EM> - top right-hand corner,
+              <EM>bl</EM> - bottom left-hand corner, and
+              <EM>br</EM> - bottom right-hand corner.
+
+       If any of these arguments is zero, then the  corresponding
+       default values (defined in <STRONG>curses.h</STRONG>) are used instead:
+              <STRONG>WACS_VLINE</STRONG>,
+              <STRONG>WACS_VLINE</STRONG>,
+              <STRONG>WACS_HLINE</STRONG>,
+              <STRONG>WACS_HLINE</STRONG>,
+              <STRONG>WACS_ULCORNER</STRONG>,
+              <STRONG>WACS_URCORNER</STRONG>,
+              <STRONG>WACS_LLCORNER</STRONG>, and
+              <STRONG>WACS_LRCORNER</STRONG>.
+
+       <STRONG>box_set(</STRONG><EM>win</EM>, <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>);</STRONG> is a shorthand for the follow-
+       ing call:
+
+       <STRONG>wborder_set(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG>
+           <EM>horch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <STRONG>NULL,</STRONG> <STRONG>NULL,</STRONG> <STRONG>NULL,</STRONG> <STRONG>NULL);</STRONG>
+
+       The <STRONG>*line_set</STRONG> functions use <EM>wch</EM> to draw a line starting at
+       the current cursor position in the window.  The line is at
+       most <EM>n</EM> characters long or as many as fit into the  window.
+       The current cursor position is not changed.
+
+       The  <STRONG>hline_set</STRONG>,  <STRONG>mvhline_set</STRONG>, <STRONG>mvwhline_set</STRONG>, and <STRONG>whline_set</STRONG>
+       functions draw a line proceeding toward the last column of
+       the same line.
+
+       The  <STRONG>vline_set</STRONG>,  <STRONG>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG>, and <STRONG>wvline_set</STRONG>
+       functions draw a line proceeding toward the last  line  of
+       the window.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that <STRONG>border_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>mvhline_set</STRONG>, <STRONG>mvvline_set</STRONG>,
+       <STRONG>mvwhline_set</STRONG>, <STRONG>mvwvline_set</STRONG>, and <STRONG>vline_set</STRONG> may be macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       Upon successful completion,  these  functions  return  <STRONG>OK</STRONG>.
+       Otherwise, they return <STRONG>ERR</STRONG>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 1a874f2e8e430ad0901647f9aa757d05cea6cb73..bb5ff2269a333c34bc45658bc432c36460070791 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_clear 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>
 <BODY>
+<H1>curs_clear 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>erase</B>,  <B>werase</B>,  <B>clear</B>,  <B>wclear</B>, <B>clrtobot</B>, <B>wclrtobot</B>, <B>clr-</B>
-       <B>toeol</B>, <B>wclrtoeol</B> - clear all or part of a <B>curses</B> window
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#</B> <B>include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#</STRONG> <STRONG>include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>erase(void);</B>
-       <B>int</B> <B>werase(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>clear(void);</B>
-       <B>int</B> <B>wclear(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>clrtobot(void);</B>
-       <B>int</B> <B>wclrtobot(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>clrtoeol(void);</B>
-       <B>int</B> <B>wclrtoeol(WINDOW</B> <B>*win);</B>
+       <STRONG>int</STRONG> <STRONG>erase(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>werase(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>clear(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wclear(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>clrtobot(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wclrtobot(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>clrtoeol(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wclrtoeol(WINDOW</STRONG> <STRONG>*win);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>erase</B> and <B>werase</B> 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.
 
        tion in the window, clearing the screen.
 
-       The  <B>clear</B>  and <B>wclear</B> routines are like <B>erase</B> and <B>werase</B>,
-       but they also call <B>clearok</B>, so that the screen is  cleared
-       completely  on  the  next call to <B>wrefresh</B> 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.
 
        and repainted from scratch.
 
-       The <B>clrtobot</B> and <B>wclrtobot</B> 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
        right of the cursor, inclusive, is erased.
 
        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.
 
-       The <B>clrtoeol</B> and <B>wclrtoeol</B> routines erase the current line
+       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
        current line.
 
        Blanks created by erasure have the current background ren-
        to the right of the cursor, inclusive, to the end  of  the
        current line.
 
        Blanks created by erasure have the current background ren-
-       dition (as set by <B>wbkgdset</B>) merged into them.
+       dition (as set by <STRONG>wbkgdset</STRONG>) merged into them.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer  <B>OK</B>.   The  SVr4.0  manual
-       says  "or  a  non-negative integer if <B>immedok</B> is set", but
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        this appears to be an error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>erase</B>, <B>werase</B>, <B>clear</B>, <B>wclear</B>, <B>clrtobot</B>, and <B>clr-</B>
-       <B>toeol</B> may be macros.
+       Note that <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, and <STRONG>clr-</STRONG>
+       <STRONG>toeol</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
-       Issue 4.  The standard specifies that they return  <B>ERR</B>  on
+       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
        failure, but specifies no error conditions.
 
        Some  historic  curses  implementations had, as an undocu-
        mented feature,  the  ability  to  do  the  equivalent  of
-       <B>clearok(...,</B>    <B>1)</B>    by    saying   <B>touchwin(stdscr)</B>   or
-       <B>clear(stdscr)</B>.  This will not work under ncurses.
+       <STRONG>clearok(...,</STRONG>    <STRONG>1)</STRONG>    by    saying   <STRONG>touchwin(stdscr)</STRONG>   or
+       <STRONG>clear(stdscr)</STRONG>.  This will not work under ncurses.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(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>
 
 
 
 
 
 
index b24a83c006f92995568e48cc4a16b0391fbdce6b..2165cebf4ff82d394fffb78f366a3dc639835454 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_color 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>
 <BODY>
+<H1>curs_color 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>start_color</B>,     <B>init_pair</B>,     <B>init_color</B>,    <B>has_colors</B>,
-       <B>can_change_color</B>, <B>color_content</B>, <B>pair_content</B>,  <B>COLOR_PAIR</B>
-       - <B>curses</B> color manipulation routines
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#</B> <B>include</B> <B>&lt;curses.h&gt;</B>
-       <B>int</B> <B>start_color(void);</B>
-       <B>int</B> <B>init_pair(short</B> <B>pair,</B> <B>short</B> <B>f,</B> <B>short</B> <B>b);</B>
-       <B>int</B> <B>init_color(short</B> <B>color,</B> <B>short</B> <B>r,</B> <B>short</B> <B>g,</B> <B>short</B> <B>b);</B>
-       <B>bool</B> <B>has_colors(void);</B>
-       <B>bool</B> <B>can_change_color(void);</B>
-       <B>int</B>  <B>color_content(short</B>  <B>color,</B> <B>short</B> <B>*r,</B> <B>short</B> <B>*g,</B> <B>short</B>
-       <B>*b);</B>
-       <B>int</B> <B>pair_content(short</B> <B>pair,</B> <B>short</B> <B>*f,</B> <B>short</B> <B>*b);</B>
+       <STRONG>#</STRONG> <STRONG>include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>init_pair(short</STRONG> <STRONG>pair,</STRONG> <STRONG>short</STRONG> <STRONG>f,</STRONG> <STRONG>short</STRONG> <STRONG>b);</STRONG>
+       <STRONG>int</STRONG> <STRONG>init_color(short</STRONG> <STRONG>color,</STRONG> <STRONG>short</STRONG> <STRONG>r,</STRONG> <STRONG>short</STRONG> <STRONG>g,</STRONG> <STRONG>short</STRONG> <STRONG>b);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>has_colors(void);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>can_change_color(void);</STRONG>
+       <STRONG>int</STRONG>  <STRONG>color_content(short</STRONG>  <STRONG>color,</STRONG> <STRONG>short</STRONG> <STRONG>*r,</STRONG> <STRONG>short</STRONG> <STRONG>*g,</STRONG> <STRONG>short</STRONG>
+       <STRONG>*b);</STRONG>
+       <STRONG>int</STRONG> <STRONG>pair_content(short</STRONG> <STRONG>pair,</STRONG> <STRONG>short</STRONG> <STRONG>*f,</STRONG> <STRONG>short</STRONG> <STRONG>*b);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-   <B>Overview</B>
-       <B>curses</B> support color attributes  on  terminals  with  that
-       capability.   To  use  these  routines <B>start_color</B> must be
-       called, usually right after <B>initscr</B>.   Colors  are  always
+   <STRONG>Overview</STRONG>
+       <STRONG>curses</STRONG> support color attributes  on  terminals  with  that
+       capability.   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
        background color (for the blank field on which the charac-
        ters are displayed).  A programmer  initializes  a  color-
        used  in pairs (referred to as color-pairs).  A color-pair
        consists of a foreground  color  (for  characters)  and  a
        background color (for the blank field on which the charac-
        ters are displayed).  A programmer  initializes  a  color-
-       pair  with  the routine <B>init_pair</B>.  After it has been ini-
-       tialized, <B>COLOR_PAIR</B>(<I>n</I>), a macro  defined  in  <B>&lt;curses.h&gt;</B>,
+       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-
        can be used as a new video attribute.
 
        If  a  terminal  is capable of redefining colors, the pro-
-       grammer can use the routine <B>init_color</B> to change the defi-
-       nition   of   a   color.    The  routines  <B>has_colors</B>  and
-       <B>can_change_color</B>  return  <B>TRUE</B>  or  <B>FALSE</B>,  depending   on
+       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
        whether  the  terminal  has color capabilities and whether
        the  programmer  can  change  the  colors.   The   routine
-       <B>color_content</B>  allows  a programmer to extract the amounts
+       <STRONG>color_content</STRONG>  allows  a programmer to extract the amounts
        of red, green,  and  blue  components  in  an  initialized
        of red, green,  and  blue  components  in  an  initialized
-       color.   The  routine  <B>pair_content</B> allows a programmer to
+       color.   The  routine  <STRONG>pair_content</STRONG> allows a programmer to
        find out how a given color-pair is currently defined.
 
        find out how a given color-pair is currently defined.
 
-   <B>Routine</B> <B>Descriptions</B>
-       The <B>start_color</B> routine requires no arguments.  It must be
+   <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
        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 <B>initscr</B>.
-       <B>start_color</B> initializes eight basic  colors  (black,  red,
+       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
        green,  yellow,  blue,  magenta, cyan, and white), and two
-       global variables,  <B>COLORS</B>  and  <B>COLOR_PAIRS</B>  (respectively
+       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.
 
        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 <B>init_pair</B> routine changes the definition of  a  color-
+       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:
 
        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:
 
-       -    The value of the first argument must be between <B>1</B> and
-            <B>COLOR_PAIRS-1</B>.
+       -    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
 
        -    The value of the second and third arguments  must  be
-            between  0  and  <B>COLORS</B> (the 0 color pair is wired to
+            between  0  and  <STRONG>COLORS</STRONG> (the 0 color pair is wired to
             white on black and cannot be changed).
 
        If the color-pair was previously initialized,  the  screen
             white on black and cannot be changed).
 
        If the color-pair was previously initialized,  the  screen
-       is  refreshed  and  all  occurrences of that color-pair is
+       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
        changed to the new definition.
 
        As an extension, ncurses allows you to set  color  pair  0
-       via  the  <B>assume_default_colors</B> routine, or to specify the
-       use of default colors  (color  number  <B>-1</B>)  if  you  first
-       invoke the <B>use_default_colors</B> routine.
+       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  <B>init_color</B> routine changes the definition of a color.
+       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
        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 <B>0</B> and <B>COLORS</B>.  (See the section
-       <B>Colors</B> for the default color index.)   Each  of  the  last
+       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
        three  arguments must be a value between 0 and 1000.  When
-       <B>init_color</B> is used, all occurrences of that color  on  the
+       <STRONG>init_color</STRONG> is used, all occurrences of that color  on  the
        screen immediately change to the new definition.
 
        screen immediately change to the new definition.
 
-       The  <B>has_colors</B> routine requires no arguments.  It returns
-       <B>TRUE</B> if the terminal can manipulate colors; otherwise,  it
-       returns <B>FALSE</B>.  This routine facilitates writing terminal-
+       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-
        independent programs.  For example, a programmer  can  use
        it  to  decide  whether  to  use color or some other video
        attribute.
 
        independent programs.  For example, a programmer  can  use
        it  to  decide  whether  to  use color or some other video
        attribute.
 
-       The <B>can_change_color</B> routine requires  no  arguments.   It
-       returns  <B>TRUE</B>  if  the  terminal  supports  colors and can
-       change their definitions; other, it returns  <B>FALSE</B>.   This
+       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.
 
        routine facilitates writing terminal-independent programs.
 
-       The <B>color_content</B> routine gives programmers a way to  find
+       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,
        the intensity of the red, green, and blue (RGB) components
        in a color.  It requires four arguments: the color number,
-       and  three addresses of <B>short</B>s for storing the information
+       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
        about the amounts of red, green, and  blue  components  in
        the  given color.  The value of the first argument must be
-       between 0 and <B>COLORS</B>.  The values that are stored  at  the
+       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).
 
        addresses  pointed  to  by  the  last  three arguments are
        between 0 (no component) and 1000 (maximum amount of  com-
        ponent).
 
-       The  <B>pair_content</B>  routine  allows programmers to find out
+       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
        what colors a given color-pair consists of.   It  requires
        three  arguments: the color-pair number, and two addresses
-       of <B>short</B>s for storing the foreground  and  the  background
+       of <STRONG>short</STRONG>s for storing the foreground  and  the  background
        color  numbers.   The  value of the first argument must be
        color  numbers.   The  value of the first argument must be
-       between 1 and <B>COLOR_PAIRS-1</B>.  The values that  are  stored
+       between 1 and <STRONG>COLOR_PAIRS-1</STRONG>.  The values that  are  stored
        at  the addresses pointed to by the second and third argu-
        at  the addresses pointed to by the second and third argu-
-       ments are between 0 and <B>COLORS</B>.
+       ments are between 0 and <STRONG>COLORS</STRONG>.
 
 
-   <B>Colors</B>
-       In <B>&lt;curses.h&gt;</B> the following macros are defined.  These are
-       the  default colors.  <B>curses</B> also assumes that <B>COLOR_BLACK</B>
+   <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.
 
        is the default background color for all terminals.
 
-             <B>COLOR_BLACK</B>
-             <B>COLOR_RED</B>
-             <B>COLOR_GREEN</B>
-             <B>COLOR_YELLOW</B>
-             <B>COLOR_BLUE</B>
-             <B>COLOR_MAGENTA</B>
-             <B>COLOR_CYAN</B>
-             <B>COLOR_WHITE</B>
+             <STRONG>COLOR_BLACK</STRONG>
+             <STRONG>COLOR_RED</STRONG>
+             <STRONG>COLOR_GREEN</STRONG>
+             <STRONG>COLOR_YELLOW</STRONG>
+             <STRONG>COLOR_BLUE</STRONG>
+             <STRONG>COLOR_MAGENTA</STRONG>
+             <STRONG>COLOR_CYAN</STRONG>
+             <STRONG>COLOR_WHITE</STRONG>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The routines <B>can_change_color()</B>  and  <B>has_colors()</B>  return
-       <B>TRUE</B> or <B>FALSE</B>.
+       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 <B>ERR</B> upon failure and
-       an <B>OK</B> (SVr4 specifies only "an integer  value  other  than
-       <B>ERR</B>") upon successful completion.
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       In  the  <I>ncurses</I> implementation, there is a separate color
+       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
        associated  COLORS and COLOR_PAIRS counts for each screen;
-       the <B>start_color</B> function only affects the current  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.
        The SVr4/XSI interface is not really designed with this in
        mind, and historical  implementations  may  use  a  single
        shared color palette.
        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
        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 <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>.
+       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
 
        Several  caveats  apply  on 386 and 486 machines with VGA-
        compatible graphics:
 
        -    COLOR_YELLOW is actually brown.  To get  yellow,  use
-            COLOR_YELLOW combined with the <B>A_BOLD</B> attribute.
+            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,
 
        -    The  A_BLINK  attribute  should  in  theory cause the
             background to go bright.  This often fails  to  work,
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        This implementation satisfies XSI Curses's  minimum  maxi-
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        This implementation satisfies XSI Curses's  minimum  maxi-
-       mums for <B>COLORS</B> and <B>COLOR_PAIRS</B>.
+       mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
 
 
-       The  <B>init_pair</B>  routine  accepts  negative values of fore-
+       The  <STRONG>init_pair</STRONG>  routine  accepts  negative values of fore-
        ground   and   background    color    to    support    the
        ground   and   background    color    to    support    the
-       <B>use_default_colors</B> extension, but only if that routine has
+       <STRONG>use_default_colors</STRONG> extension, but only if that routine has
        been first invoked.
 
        been first invoked.
 
-       The assumption that <B>COLOR_BLACK</B> is the default  background
+       The assumption that <STRONG>COLOR_BLACK</STRONG> is the default  background
        color   for  all  terminals  can  be  modified  using  the
        color   for  all  terminals  can  be  modified  using  the
-       <B>assume_default_colors</B> extension,
+       <STRONG>assume_default_colors</STRONG> extension,
+
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>,  <B>default_col-</B>
-       <B><A HREF="ors.3x.html">ors(3x)</A></B>
-
+       <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>
 
 
 
 
 
 
index 8d37648079e6ee9c18884da76cf9489cea942f3b..10840ed93a7cc1ab034bd001621951eeaafa0dfc 100644 (file)
@@ -1,22 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_delch.3x,v 1.7 2000/07/01 19:55:37 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_delch 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>
 <BODY>
+<H1>curs_delch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>delch</B>,  <B>wdelch</B>, <B>mvdelch</B>, <B>mvwdelch</B> - delete character under
-       the cursor in a <B>curses</B> window
+       <STRONG>delch</STRONG>,  <STRONG>wdelch</STRONG>, <STRONG>mvdelch</STRONG>, <STRONG>mvwdelch</STRONG> - delete character under
+       the cursor in a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>delch(void);</B>
-       <B>int</B> <B>wdelch(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>mvdelch(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>int</B> <B>mvwdelch(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
+       <STRONG>int</STRONG> <STRONG>delch(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wdelch(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvdelch(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwdelch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
 
 
 </PRE>
 
 
 </PRE>
        characters to the right of the cursor on the same line are
        moved to the left one position and the last  character  on
        the line is filled with a blank.  The cursor position does
        characters to the right of the cursor on the same line are
        moved to the left one position and the last  character  on
        the line is filled with a blank.  The cursor position does
-       not change (after moving to <I>y</I>, <I>x</I>,  if  specified).   (This
+       not change (after moving to <EM>y</EM>, <EM>x</EM>,  if  specified).   (This
        does  not  imply use of the hardware delete character fea-
        ture.)
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        does  not  imply use of the hardware delete character fea-
        ture.)
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and an <B>OK</B>
-       (SVr4  specifies  only  "an integer value other than <B>ERR</B>")
+       All 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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>delch</B>, <B>mvdelch</B>, and <B>mvwdelch</B> may be macros.
+       Note that <STRONG>delch</STRONG>, <STRONG>mvdelch</STRONG>, and <STRONG>mvwdelch</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
-       Issue  4.   The standard specifies that they return <B>ERR</B> on
+       Issue  4.   The standard specifies that they return <STRONG>ERR</STRONG> on
        failure, but specifies no error conditions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        failure, but specifies no error conditions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 
 
 
 
index 62cb0a49098bcf183f6d9e13c049995ec7ac46ed..2c3fc1ceba105acbd9418e409d744b72d68baa24 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_deleteln.3x,v 1.7 2000/11/11 20:43:20 Bernhard.Rosenkraenzer Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_deleteln 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>
 <BODY>
+<H1>curs_deleteln 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>deleteln</B>,  <B>wdeleteln</B>,  <B>insdelln</B>, <B>winsdelln</B>, <B>insertln</B>, <B>win-</B>
-       <B>sertln</B> - delete and insert lines in a <B>curses</B> window
+       <STRONG>deleteln</STRONG>,  <STRONG>wdeleteln</STRONG>,  <STRONG>insdelln</STRONG>, <STRONG>winsdelln</STRONG>, <STRONG>insertln</STRONG>, <STRONG>win-</STRONG>
+       <STRONG>sertln</STRONG> - delete and insert lines in a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>deleteln(void);</B>
-       <B>int</B> <B>wdeleteln(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>insdelln(int</B> <B>n);</B>
-       <B>int</B> <B>winsdelln(WINDOW</B> <B>*win,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>insertln(void);</B>
-       <B>int</B> <B>winsertln(WINDOW</B> <B>*win);</B>
+       <STRONG>int</STRONG> <STRONG>deleteln(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wdeleteln(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>insdelln(int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winsdelln(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>insertln(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winsertln(WINDOW</STRONG> <STRONG>*win);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>deleteln</B> and <B>wdeleteln</B> routines delete the line  under
+       The <STRONG>deleteln</STRONG> and <STRONG>wdeleteln</STRONG> routines delete the line  under
        the cursor in the window; all lines below the current line
        are moved up one line.  The bottom line of the  window  is
        cleared.  The cursor position does not change.
 
        the cursor in the window; all lines below the current line
        are moved up one line.  The bottom line of the  window  is
        cleared.  The cursor position does not change.
 
-       The  <B>insdelln</B>  and  <B>winsdelln</B>  routines,  for  positive <I>n</I>,
-       insert <I>n</I> lines into the specified window above the current
-       line.   The  <I>n</I>  bottom  lines  are  lost.  For negative <I>n</I>,
-       delete <I>n</I> lines (starting with the one under  the  cursor),
-       and  move  the remaining lines up.  The bottom <I>n</I> lines are
+       The  <STRONG>insdelln</STRONG>  and  <STRONG>winsdelln</STRONG>  routines,  for  positive <EM>n</EM>,
+       insert <EM>n</EM> lines into the specified window above the current
+       line.   The  <EM>n</EM>  bottom  lines  are  lost.  For negative <EM>n</EM>,
+       delete <EM>n</EM> lines (starting with the one under  the  cursor),
+       and  move  the remaining lines up.  The bottom <EM>n</EM> lines are
        cleared.  The current cursor position remains the same.
 
        cleared.  The current cursor position remains the same.
 
-       The <B>insertln</B> and <B>insertln</B> routines, insert  a  blank  line
+       The <STRONG>insertln</STRONG> and <STRONG>winsertln</STRONG> routines, insert a  blank  line
        above the current line and the bottom line is lost.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        above the current line and the bottom line is lost.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and an <B>OK</B>
-       (SVr4 specifies only "an integer value  other  than  <B>ERR</B>")
+       All 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.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
        upon successful completion.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
-       Issue 4.  The standard specifies that they return  <B>ERR</B>  on
+       Issue 4.  The standard specifies that they return  <STRONG>ERR</STRONG>  on
        failure, but specifies no error conditions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        failure, but specifies no error conditions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that all but <B>winsdelln</B> may be macros.
+       Note that all but <STRONG>winsdelln</STRONG> may be macros.
 
        These  routines  do  not require a hardware line delete or
        insert feature in the terminal.  In fact, they  won't  use
 
        These  routines  do  not require a hardware line delete or
        insert feature in the terminal.  In fact, they  won't  use
-       hardware  line  delete/insert  unless <B>idlok(...,</B> <B>TRUE)</B> has
+       hardware  line  delete/insert  unless <STRONG>idlok(...,</STRONG> <STRONG>TRUE)</STRONG> has
        been set on the current window.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        been set on the current window.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 
 
 
 
index a91102ed3665b33019e73a81a856e3ce6b78222c..188389febe87013c2fb655032f9639fb46b6101f 100644 (file)
@@ -1,20 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1999
+  * @Id: curs_extend.3x,v 1.9 2002/02/16 22:39:04 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_extend 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>
 <BODY>
+<H1>curs_extend 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>curs_extend</B>:  <B>curses_version</B>, <B>use_extended_names</B> - miscel-
-       laneous curses extensions
+       <STRONG>curses_version</STRONG>,  <STRONG>use_extended_names</STRONG> - miscellaneous curses
+       extensions
+
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>const</B> <B>char</B> <B>*</B> <B>curses_version(void);</B>
-       <B>int</B> <B>use_extended_names(bool</B> <B>enable);</B>
+       <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>curses_version(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>use_extended_names(bool</STRONG> <STRONG>enable);</STRONG>
 
 
 </PRE>
 
 
 </PRE>
        These functions are extensions to the curses library which
        do not fit easily into other categories.
 
        These functions are extensions to the curses library which
        do not fit easily into other categories.
 
-       Use  <I>curses</I><B>_</B><I>version()</I> to get the version number, including
-       patch level of the library, e.g., <B>5.0.19991023</B>
+       Use  <EM>curses</EM><STRONG>_</STRONG><EM>version()</EM> to get the version number, including
+       patch level of the library, e.g., <STRONG>5.0.19991023</STRONG>
 
 
-       The <I>use</I><B>_</B><I>extended</I><B>_</B><I>names()</I>  function  controls  whether  the
+       The <EM>use</EM><STRONG>_</STRONG><EM>extended</EM><STRONG>_</STRONG><EM>names()</EM>  function  controls  whether  the
        calling  application  is  able to use user-defined or non-
        standard names which may be  compiled  into  the  terminfo
        description, i.e., via the terminfo or termcap interfaces.
        Normally these names are  available  for  use,  since  the
        calling  application  is  able to use user-defined or non-
        standard names which may be  compiled  into  the  terminfo
        description, i.e., via the terminfo or termcap interfaces.
        Normally these names are  available  for  use,  since  the
-       essential  descision is made by using the <B>-x</B> option of <I>tic</I>
+       essential  descision is made by using the <STRONG>-x</STRONG> option of <EM>tic</EM>
        to compile extended terminal definitions.  However you can
        disable  this  feature  to  ensure compatiblity with other
        implementations of curses
        to compile extended terminal definitions.  However you can
        disable  this  feature  to  ensure compatiblity with other
        implementations of curses
@@ -46,9 +86,9 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>,       <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>,      <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B>,
-       <B><A HREF="default_colors.3x.html">default_colors(3x)</A></B>,     <B><A HREF="define_key.3x.html">define_key(3x)</A></B>,      <B><A HREF="keybound.3x.html">keybound(3x)</A></B>,
-       <B><A HREF="keyok.3x.html">keyok(3x)</A></B>, <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>, <B><A HREF="wresize.3x.html">wresize(3x)</A></B>.
+       <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>,       <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,      <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>,
+       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>,     <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,      <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>,
+       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
 
 
 
 
 
 
-
 </PRE>
 <HR>
 <ADDRESS>
 </PRE>
 <HR>
 <ADDRESS>
diff --git a/doc/html/man/curs_get_wch.3x.html b/doc/html/man/curs_get_wch.3x.html
new file mode 100644 (file)
index 0000000..ddd3f4b
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_get_wch.3x,v 1.3 2002/05/18 21:48:53 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_get_wch 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_get_wch 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>get_wch</STRONG>,  <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvwget_wch</STRONG>, <STRONG>unget_wch</STRONG> - get
+       (or push back) a wide character from curses terminal  key-
+       board
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>get_wch(win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvget_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>win_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> functions
+       read a character from the  terminal  associated  with  the
+       current  or  specified  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 newline (nocbreak  mode).   In  half-delay
+       mode,  the  program waits until the user types a character
+       or the specified timeout interval has elapsed.
+
+       Unless <STRONG>noecho</STRONG> has been set, these routines echo the  char-
+       acter into the designated window.
+
+       If  the window is not a pad and has been moved or modified
+       since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will  be  called
+       before another character is read.
+
+       If  <STRONG>keypad</STRONG>  is  enabled,  these  functions  respond to the
+       pressing of a function key by setting the  object  pointed
+       to  by  <EM>wch</EM>  to  the  corresponding  <STRONG>KEY_</STRONG> value defined in
+       <STRONG>&lt;curses.h&gt;</STRONG> and returning  <STRONG>KEY_CODE_YES</STRONG>.   If  a  character
+       (such as escape) that could be the beginning of a function
+       key is received, curses sets a timer.  If the remainder of
+       the  sequence  does  arrive  within  the  designated time,
+       curses passes through  the  character;  otherwise,  curses
+       returns  the  function  key  value.  For this reason, many
+       terminals experience a  delay  between  the  time  a  user
+       presses the escape key and the time the escape is returned
+       to the program.
+
+       The <STRONG>unget_wch</STRONG> function pushes the wide character <EM>wch</EM>  back
+       onto the head of the input queue, so the wide character is
+       returned by the next call to <STRONG>get_wch</STRONG>.  The pushback of one
+       character  is  guaranteed.  If the program calls <STRONG>unget_wch</STRONG>
+       too many times without an intervening call to <STRONG>get_wch</STRONG>, the
+       operation may fail.
+
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       The  header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes the
+       header file <STRONG>&lt;stdio.h&gt;</STRONG>.
+
+       Applications should not define the escape key by itself as
+       a single-character function.
+
+       When  using  <STRONG>get_wch</STRONG>,  <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, or <STRONG>mvwget_wch</STRONG>,
+       applications should not use <STRONG>nocbreak</STRONG> mode and <STRONG>echo</STRONG> mode at
+       the  same  time.  Depending on the state of the tty driver
+       when each character is  typed,  the  program  may  produce
+       undesirable results.
+
+       All functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>,  and  <STRONG>mvwget_wch</STRONG>  func-
+       tions  successfully report the pressing of a function key,
+       they return <STRONG>KEY_CODE_YES</STRONG>.  When they successfully report a
+       wide  character,  they  return <STRONG>OK</STRONG>.  Otherwise, they return
+       <STRONG>ERR</STRONG>.
+
+       Upon successful completion, <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG>.   Other-
+       wise, the function returns <STRONG>ERR</STRONG>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,        <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>,       <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/doc/html/man/curs_get_wstr.3x.html b/doc/html/man/curs_get_wstr.3x.html
new file mode 100644 (file)
index 0000000..b3b066d
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_get_wstr.3x,v 1.2 2002/05/18 21:48:15 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_get_wstr 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_get_wstr 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</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
+       wide characters from a curses terminal keyboard
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>get_wstr(wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>getn_wstr(wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wget_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wgetn_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvget_wstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvgetn_wstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwget_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwgetn_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The  effect  of <STRONG>get_wstr</STRONG> is as though a series of calls to
+       <STRONG>get_wch</STRONG> were made, until a newline, other end-of-line,  or
+       end-of-file condition is processed.  An end-of-file condi-
+       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>.
+
+       The user's erase and kill characters are interpreted.   If
+       keypad   mode   is   on   for  the  window,  <STRONG>KEY_LEFT</STRONG>  and
+       <STRONG>KEY_BACKSPACE</STRONG> are both considered equivalent to the user's
+       kill character.
+
+       Characters  input are echoed only if <STRONG>echo</STRONG> is currently on.
+       In that case, backspace is echoed as deletion of the  pre-
+       vious character (typically a left motion).
+
+       The  effect of <STRONG>wget_wstr</STRONG> is as though a series of calls to
+       <STRONG>wget_wch</STRONG> were made.
+
+       The effect of <STRONG>mvget_wstr</STRONG> is as though a call to  <STRONG>move</STRONG>  and
+       then a series of calls to <STRONG>get_wch</STRONG> were made.
+
+       The effect of <STRONG>mvwget_wstr</STRONG> is as though a call to <STRONG>wmove</STRONG> and
+       then a series of calls to <STRONG>wget_wch</STRONG> were made.
+
+       The <STRONG>getn_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>,  and  <STRONG>wgetn_wstr</STRONG>
+       functions  are  identical  to  the  <STRONG>get_wstr</STRONG>,  <STRONG>mvget_wstr</STRONG>,
+       <STRONG>mvwget_wstr</STRONG>, and <STRONG>wget_wstr</STRONG> functions, respectively, except
+       that  the <STRONG>*n_*</STRONG> versions read at most <EM>n</EM> characters, letting
+       the application prevent overflow of the input buffer.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Using <STRONG>get_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, or  <STRONG>wget_wstr</STRONG>  to
+       read  a  line  that overflows the array pointed to by <STRONG>wstr</STRONG>
+       causes  undefined  results.    The   use   of   <STRONG>getn_wstr</STRONG>,
+       <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, or <STRONG>wgetn_wstr</STRONG>, respectively, is
+       recommended.
+
+       These functions cannot return <STRONG>KEY_</STRONG> values because there is
+       no  way  to  distinguish a <STRONG>KEY_</STRONG> value from a valid <STRONG>wchar_t</STRONG>
+       value.
+
+       All of these routines except <STRONG>wgetn_wstr</STRONG> may be macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       All of these functions return <STRONG>OK</STRONG> upon  successful  comple-
+       tion.  Otherwise, they return <STRONG>ERR</STRONG>.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       These  functions are described in The Single Unix Specifi-
+       cation, Version 2.  No error conditions are defined.  This
+       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>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       Functions:  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/doc/html/man/curs_getcchar.3x.html b/doc/html/man/curs_getcchar.3x.html
new file mode 100644 (file)
index 0000000..0ae39ca
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_getcchar.3x,v 1.6 2002/03/24 01:08:55 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_getcchar 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_getcchar 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>getcchar</STRONG>,  <STRONG>setcchar</STRONG> - Get a wide character string and ren-
+       dition from a <STRONG>cchar_t</STRONG> or set a <STRONG>cchar_t</STRONG> from a wide-charac-
+       ter string
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>getcchar(</STRONG>
+               <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
+               <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+               <STRONG>attr_t</STRONG> <STRONG>*</STRONG><EM>attrs</EM><STRONG>,</STRONG>
+               <STRONG>short</STRONG> <STRONG>*</STRONG><EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
+               <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>setcchar(</STRONG>
+               <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
+               <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+               <STRONG>const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG>
+               <STRONG>short</STRONG> <EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
+               <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       The  <STRONG>getcchar</STRONG>  function  gets  a wide-character string and
+       rendition from a <STRONG>cchar_t</STRONG> argument.  When <EM>wch</EM> is not a null
+       pointer, the <STRONG>getcchar</STRONG> function does the following:
+
+       -    Extracts information from a <STRONG>cchar_t</STRONG> value <EM>wcval</EM>
+
+       -    Stores  the  character  attributes  in  the  location
+            pointed to by <EM>attrs</EM>
+
+       -    Stores the color-pair in the location pointed  to  by
+            <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+
+       -    Stores  the  wide-character string, characters refer-
+            enced by <EM>wcval</EM>, into the array pointed to by <EM>wch</EM>.
+
+       When <EM>wch</EM> is a null pointer, the <STRONG>getcchar</STRONG> function does the
+       following:
+
+       -    Obtains  the  number of wide characters pointed to by
+            <EM>wcval</EM>
+
+       -    Does not change  the  data  referenced  by  <EM>attrs</EM>  or
+            <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+
+       The  <STRONG>setcchar</STRONG> function initializes the location pointed to
+       by <EM>wcval</EM> by using:
+
+       -    The character attributes in <EM>attrs</EM>
+
+       -    The color pair in <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+
+       -    The wide-character string pointed  to  by  <EM>wch</EM>.   The
+            string  must be L'\0' terminated, contain at most one
+            character with strictly positive width, which must be
+            the  first,  and  contain  no  characters of negative
+            width.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       The <EM>opts</EM> argument is reserved for future use.   Currently,
+       an application must provide a null pointer as <EM>opts</EM>.
+
+       The  <EM>wcval</EM>  argument may be a value generated by a call to
+       <STRONG>setcchar</STRONG> or by a function that has a <STRONG>cchar_t</STRONG> output  argu-
+       ment.   If  <EM>wcval</EM>  is  constructed by any other means, the
+       effect is unspecified.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of
+       wide  characters  referenced  by <EM>wcval</EM>, including the null
+       terminator.
+
+       When <EM>wch</EM> is not a null pointer, <STRONG>getcchar</STRONG> returns  <STRONG>OK</STRONG>  upon
+       successful completion, and <STRONG>ERR</STRONG> otherwise.
+
+       Upon  successful  completion, <STRONG>setcchar</STRONG> returns <STRONG>OK</STRONG>.  Other-
+       wise, it returns <STRONG>ERR</STRONG>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       Functions:  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="wcwidth.3x.html">wcwidth(3x)</A></STRONG>,   <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
+       <STRONG><A HREF="can_change_color.3x.html">can_change_color(3x)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 833b88e6ba33edb39e18269b9bdce5cc33365aaf..76b20e49b4e9b4eb6a325dd912700594aa88f99f 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_getch.3x,v 1.21 2002/03/17 14:36:21 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_getch 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>
 <BODY>
+<H1>curs_getch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>getch</B>,  <B>wgetch</B>,  <B>mvgetch</B>, <B>mvwgetch</B>, <B>ungetch</B>, <B>has_key</B> - get
-       (or push back) characters from <B>curses</B> terminal keyboard
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>getch(void);</B>
-       <B>int</B> <B>wgetch(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>mvgetch(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>int</B> <B>mvwgetch(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>int</B> <B>ungetch(int</B> <B>ch);</B>
-       <B>int</B> <B>has_key(int</B> <B>ch);</B>
+       <STRONG>int</STRONG> <STRONG>getch(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wgetch(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvgetch(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwgetch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>ungetch(int</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>has_key(int</STRONG> <STRONG>ch);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>getch</B>, <B>wgetch</B>, <B>mvgetch</B> and <B>mvwgetch</B>, routines  read  a
+       The <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG> and <STRONG>mvwgetch</STRONG>, routines  read  a
        character  from the window.  In no-delay mode, if no input
        character  from the window.  In no-delay mode, if no input
-       is waiting, the value <B>ERR</B> is returned.  In delay mode, the
+       is waiting, the value <STRONG>ERR</STRONG> is returned.  In delay mode, the
        program  waits until the system passes text through to the
        program  waits until the system passes text through to the
-       program.  Depending on the  setting  of  <B>cbreak</B>,  this  is
+       program.  Depending on the  setting  of  <STRONG>cbreak</STRONG>,  this  is
        after 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.
 
        after 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.
 
-       Unless <B>noecho</B> has been set, then the character  will  also
+       Unless <STRONG>noecho</STRONG> has been set, then the character  will  also
        be echoed into the designated window according to the fol-
        lowing rules: If the character is the current erase  char-
        acter,  left  arrow, or backspace, the cursor is moved one
        space to the left and that screen position is erased as if
        be echoed into the designated window according to the fol-
        lowing rules: If the character is the current erase  char-
        acter,  left  arrow, or backspace, the cursor is moved one
        space to the left and that screen position is erased as if
-       <B>delch</B>  had  been  called.   If  the character value is any
-       other <B>KEY_</B> define, the user is alerted with a  <B>beep</B>  call.
+       <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.
        Otherwise the character is simply output to the screen.
 
        If the window is not a pad, and it has been moved or modi-
        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  <B>wrefresh</B>,  <B>wrefresh</B>  will  be
+       fied since the last call to  <STRONG>wrefresh</STRONG>,  <STRONG>wrefresh</STRONG>  will  be
        called before another character is read.
 
        called before another character is read.
 
-       If  <B>keypad</B>  is  <B>TRUE</B>,  and  a function key is pressed, the
+       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
        token for that function key is returned instead of the raw
        characters.    Possible   function  keys  are  defined  in
-       <B>&lt;curses.h&gt;</B> as macros with  values  outside  the  range  of
-       8-bit  characters  whose  names  begin  with <B>KEY_.</B> Thus, a
+       <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.
 
        When a character that could be the beginning of a function
        key is received (which,  on  modern  terminals,  means  an
        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), <B>curses</B> sets a timer.  If the remainder
+       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
        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
        presses the escape key and the escape is returned  to  the
        program.
 
        presses the escape key and the escape is returned  to  the
        program.
 
-       The <B>ungetch</B> routine places <I>ch</I> back onto the input queue to
-       be returned by the next call to <B>wgetch</B>.  Note  that  there
-       is, in effect, just one input queue for all windows.
+       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
+       input queue for all windows.
 
 
 
 
-   <B>Function</B> <B>Keys</B>
-       The  following function keys, defined in <B>&lt;curses.h&gt;</B>, might
-       be returned by <B>getch</B> if <B>keypad</B>  has  been  enabled.   Note
+   <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
+       The  following function keys, defined in <STRONG>&lt;curses.h&gt;</STRONG>, might
+       be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG>  has  been  enabled.   Note
        that  not  all  of  these are necessarily supported on any
        particular terminal.
 
        that  not  all  of  these are necessarily supported on any
        particular terminal.
 
-           <I>Name</I>            <I>Key</I> <I>name</I>
+           <EM>Name</EM>            <EM>Key</EM> <EM>name</EM>
 
            KEY_BREAK       Break key
            KEY_DOWN        The four arrow keys ...
 
            KEY_BREAK       Break key
            KEY_DOWN        The four arrow keys ...
            KEY_BACKSPACE   Backspace
            KEY_F0          Function keys; space for 64  keys
                            is reserved.
            KEY_BACKSPACE   Backspace
            KEY_F0          Function keys; space for 64  keys
                            is reserved.
-           KEY_F(<I>n</I>)        For 0 &lt;= <I>n</I> &lt;= 63
+           KEY_F(<EM>n</EM>)        For 0 &lt;= <EM>n</EM> &lt;= 63
            KEY_DL          Delete line
            KEY_IL          Insert line
            KEY_DC          Delete character
            KEY_DL          Delete line
            KEY_IL          Insert line
            KEY_DC          Delete character
        Keypad is arranged like this:
 
                          +-----+------+-------+
        Keypad is arranged like this:
 
                          +-----+------+-------+
-                         | <B>A1</B>  |  <B>up</B>  |  <B>A3</B>   |
+                         | <STRONG>A1</STRONG>  |  <STRONG>up</STRONG>  |  <STRONG>A3</STRONG>   |
                          +-----+------+-------+
                          +-----+------+-------+
-                         |<B>left</B> |  <B>B2</B>  | <B>right</B> |
+                         |<STRONG>left</STRONG> |  <STRONG>B2</STRONG>  | <STRONG>right</STRONG> |
                          +-----+------+-------+
                          +-----+------+-------+
-                         | <B>C1</B>  | <B>down</B> |  <B>C3</B>   |
+                         | <STRONG>C1</STRONG>  | <STRONG>down</STRONG> |  <STRONG>C3</STRONG>   |
                          +-----+------+-------+
                          +-----+------+-------+
-       The <B>has_key</B> routine takes a key value from the above list,
-       and returns TRUE or FALSE according as the current  termi-
-       nal type recognizes a key with that value.
+       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.
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  routines  return  the integer <B>ERR</B> upon failure and an
-       integer value other than <B>ERR</B> (<B>OK</B> in the case of ungetch())
+       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.
 
 
        upon successful completion.
 
 
        up to one second while the keypad code looks for a follow-
        ing function-key sequence.
 
        up to one second while the keypad code looks for a follow-
        ing function-key sequence.
 
-       When using <B>getch</B>, <B>wgetch</B>, <B>mvgetch</B>, or  <B>mvwgetch</B>,  nocbreak
-       mode (<B>nocbreak</B>) and echo mode (<B>echo</B>) 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
+       Note that some keys may be the same as commonly used  con-
+       trol keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE
+       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.
+
+       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.
 
        undesirable results.
 
-       Note that <B>getch</B>, <B>mvgetch</B>, and <B>mvwgetch</B> may be macros.
+       Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
 
        Historically, the set of keypad macros was largely defined
 
        Historically, the set of keypad macros was largely defined
-       by  the  extremely  function-key-rich keyboard of the AT&amp;T
-       7300, aka 3B1, aka Safari 4.   Modern  personal  computers
-       usually  have  only a small subset of these.  IBM PC-style
-       consoles  typically  support  little  more  than   <B>KEY_UP</B>,
-       <B>KEY_DOWN</B>,    <B>KEY_LEFT</B>,   <B>KEY_RIGHT</B>,   <B>KEY_HOME</B>,   <B>KEY_END</B>,
-       <B>KEY_NPAGE</B>, <B>KEY_PPAGE</B>, and function keys 1 through 12.  The
-       Ins key is usually mapped to <B>KEY_IC</B>.
+       by the extremely function-key-rich keyboard  of  the  AT&amp;T
+       7300,  aka  3B1,  aka Safari 4.  Modern personal computers
+       usually have only a small subset of these.   IBM  PC-style
+       consoles   typically  support  little  more  than  <STRONG>KEY_UP</STRONG>,
+       <STRONG>KEY_DOWN</STRONG>,   <STRONG>KEY_LEFT</STRONG>,   <STRONG>KEY_RIGHT</STRONG>,   <STRONG>KEY_HOME</STRONG>,    <STRONG>KEY_END</STRONG>,
+       <STRONG>KEY_NPAGE</STRONG>, <STRONG>KEY_PPAGE</STRONG>, and function keys 1 through 12.  The
+       Ins key is usually mapped to <STRONG>KEY_IC</STRONG>.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  *get* functions are described in the XSI Curses stan-
-       dard, Issue 4.  They  read  single-byte  characters  only.
-       The  standard  specifies  that they return <B>ERR</B> on failure,
+       The *get* functions are described in the XSI Curses  stan-
+       dard,  Issue  4.   They  read single-byte characters only.
+       The standard specifies that they return  <STRONG>ERR</STRONG>  on  failure,
        but specifies no error conditions.
 
        but specifies no error conditions.
 
-       The echo behavior of these functions on input of  <B>KEY_</B>  or
-       backspace  characters  was not specified in the SVr4 docu-
-       mentation.  This  description  is  adopted  from  the  XSI
+       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.
 
        Curses standard.
 
-       The  behavior of <B>getch</B> 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
-       <B><A HREF="read.2.html">read(2)</A></B> call in progress or not, and also (in some  imple-
-       mentations)  depending on whether an input timeout or non-
+       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
+       <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 hsd been set.
 
        Programmers concerned about portability should be prepared
        blocking mode hsd been set.
 
        Programmers concerned about portability should be prepared
-       for  either  of  two  cases:  (a)  signal receipt does not
-       interrupt <B>getch</B>; (b) signal receipt interrupts  <B>getch</B>  and
-       causes  it  to  return ERR with <B>errno</B> set to <B>EINTR</B>.  Under
-       the <B>ncurses</B> implementation, handled signals  never  inter-
-       rupt <B>getch</B>.
+       for either of two  cases:  (a)  signal  receipt  does  not
+       interrupt  <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  <B>has_key</B>  function is unique to <B>ncurses</B>.  We recommend
-       that  any  code  using  it  be  conditionalized   on   the
-       <B>NCURSES_VERSION</B> feature macro.
+       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.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,        <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>,        <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>,
-       <B><A HREF="curs_move.3x.html">curs_move(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>.  <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>.
-
-
-
-
-
-
-
-
-
+       <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>.
 
 
 
 
 
 
index 19c8ce16f75412cee78691251604f1ffda298f57..029ce0c376cd821b864e0eb0b27224f129b73c07 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_getstr.3x,v 1.11 2002/04/13 22:14:30 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_getstr 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>
 <BODY>
+<H1>curs_getstr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>getstr</B>,  <B>getnstr</B>,  <B>wgetstr</B>, <B>wgetnstr</B>, <B>mvgetstr</B>, <B>mvgetnstr</B>,
-       <B>mvwgetstr</B>, <B>mvwgetnstr</B>  -  accept  character  strings  from
-       <B>curses</B> terminal keyboard
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>getstr(char</B> <B>*str);</B>
-       <B>int</B> <B>getnstr(char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>wgetstr(WINDOW</B> <B>*win,</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>wgetnstr(WINDOW</B> <B>*win,</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvgetstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvwgetstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvgetnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwgetnstr(WINDOW</B> <B>*,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>getstr(char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>getnstr(char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wgetstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wgetnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvgetstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwgetstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvgetnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwgetnstr(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>getstr</B> is equivalent to a series of calls to
-       <B>getch</B>, until a newline or carriage return is received (the
+       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
        terminating  character  is  not  included  in the returned
        string).  The  resulting  value  is  placed  in  the  area
-       pointed to by the character pointer <I>str</I>.
+       pointed to by the character pointer <EM>str</EM>.
 
 
-       <B>wgetnstr</B>  reads  at  most  <I>n</I> characters, thus preventing a
+       <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
        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 <B>getnstr</B> function reads
-       from the <I>stdscr</I> default window.
+       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
 
        The user's erase and kill characters are interpreted.   If
-       keypad   mode   is   on   for  the  window,  <B>KEY_LEFT</B>  and
-       <B>KEY_BACKSPACE</B> are both considered equivalent to the user's
+       keypad   mode   is   on   for  the  window,  <STRONG>KEY_LEFT</STRONG>  and
+       <STRONG>KEY_BACKSPACE</STRONG> are both considered equivalent to the user's
        kill character.
 
        kill character.
 
-       Characters  input are echoed only if <B>echo</B> is currently on.
+       Characters  input are echoed only if <STRONG>echo</STRONG> is currently on.
        In that case, backspace is echoed as deletion of the  pre-
        vious character (typically a left motion).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        In that case, backspace is echoed as deletion of the  pre-
        vious character (typically a left motion).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon failure and an <B>OK</B>
-       (SVr4 specifies only "an integer value  other  than  <B>ERR</B>")
+       All 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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>getstr</B>, <B>mvgetstr</B>, and <B>mvwgetstr</B> may be macros.
+       Note that <STRONG>getstr</STRONG>, <STRONG>mvgetstr</STRONG>, and <STRONG>mvwgetstr</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
        Issue 4.  They  read  single-byte  characters  only.   The
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
        Issue 4.  They  read  single-byte  characters  only.   The
-       standard  specifies  that  they return <B>ERR</B> on failure, but
-       the  single  error  condition  <B>EOVERFLOW</B>  associated  with
-       extended-level  conformance  is  not yet returned (the XSI
-       curses support for multi-byte characters is not  yet  pre-
-       sent).
-
+       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.
        SVr3  and early SVr4 curses implementations did not reject
        function keys; the SVr4.0 documentation claimed that "spe-
        cial  keys"  (such  as  function keys, "home" key, "clear"
        SVr3  and early SVr4 curses implementations did not reject
        function keys; the SVr4.0 documentation claimed that "spe-
        cial  keys"  (such  as  function keys, "home" key, "clear"
-       key, <I>etc</I>.) are interpreted" without  giving  details.   It
+       key, <EM>etc</EM>.) are interpreted" without  giving  details.   It
        lied.   In  fact,  the  `character'  value appended to the
        string by those implementations was  predictable  but  not
        useful  (being,  in  fact, the low-order eight bits of the
        key's KEY_ value).
 
        lied.   In  fact,  the  `character'  value appended to the
        string by those implementations was  predictable  but  not
        useful  (being,  in  fact, the low-order eight bits of the
        key's KEY_ value).
 
-       The functions <B>getnstr</B>, <B>mvgetnstr</B>, and <B>mvwgetnstr</B> were pre-
+       The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were pre-
        sent but not documented in SVr4.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        sent but not documented in SVr4.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>.
+
+
+
 
 
 
 
 
 
index 562d71062fd74dda5a38fe16a42997961b40af07..d6db1a8bc745af8e763802c46472a1fcc5bdee1b 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_getyx.3x,v 1.8 2002/09/21 19:00:38 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_getyx 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>
 <BODY>
+<H1>curs_getyx 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>getyx</B>,  <B>getparyx</B>,  <B>getbegyx</B>,  <B>getmaxyx</B> - get <B>curses</B> cursor
+       <STRONG>getyx</STRONG>,  <STRONG>getparyx</STRONG>,  <STRONG>getbegyx</STRONG>,  <STRONG>getmaxyx</STRONG> - get <STRONG>curses</STRONG> cursor
        and window coordinates
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        and window coordinates
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>void</B> <B>getyx(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>void</B> <B>getparyx(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>void</B> <B>getbegyx(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>void</B> <B>getmaxyx(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
+       <STRONG>void</STRONG> <STRONG>getyx(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>void</STRONG> <STRONG>getparyx(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>void</STRONG> <STRONG>getbegyx(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>void</STRONG> <STRONG>getmaxyx(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>getyx</B> macro places the current cursor position of  the
-       given window in the two integer variables <I>y</I> and <I>x</I>.
+       The <STRONG>getyx</STRONG> macro places the current cursor position of  the
+       given window in the two integer variables <EM>y</EM> and <EM>x</EM>.
 
 
-       If  <I>win</I>  is  a  subwindow,  the  <B>getparyx</B> macro places the
+       If  <EM>win</EM>  is  a  subwindow,  the  <STRONG>getparyx</STRONG> macro places the
        beginning coordinates of the  subwindow  relative  to  the
        beginning coordinates of the  subwindow  relative  to  the
-       parent  window into two integer variables <I>y</I> and <I>x</I>.  Other-
-       wise, <B>-1</B> is placed into <I>y</I> and <I>x</I>.
+       parent  window into two integer variables <EM>y</EM> and <EM>x</EM>.  Other-
+       wise, <STRONG>-1</STRONG> is placed into <EM>y</EM> and <EM>x</EM>.
 
 
-       Like <B>getyx</B>, the <B>getbegyx</B> and  <B>getmaxyx</B>  macros  store  the
+       Like <STRONG>getyx</STRONG>, the <STRONG>getbegyx</STRONG> and  <STRONG>getmaxyx</STRONG>  macros  store  the
        current  beginning  coordinates  and size of the specified
        window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        current  beginning  coordinates  and size of the specified
        window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The return values of these  macros  are  undefined  (<I>i</I>.<I>e</I>.,
+       The return values of these  macros  are  undefined  (<EM>i</EM>.<EM>e</EM>.,
        they  should not be used as the right-hand side of assign-
        ment statements).
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        they  should not be used as the right-hand side of assign-
        ment statements).
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       All of these interfaces are macros and  that  "<B>&amp;</B>"  is  not
-       necessary before the variables <I>y</I> and <I>x</I>.
+       All of these interfaces are macros.  A "<STRONG>&amp;</STRONG>" is  not  neces-
+       sary before the variables <EM>y</EM> and <EM>x</EM>.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These  functions are described in the XSI Curses standard,
-       Issue 4.
+       The  <STRONG>getyx</STRONG>,  <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG> and <STRONG>getmaxyx</STRONG> functions are
+       described in the XSI Curses standard, Issue 4.
+
+       This  implementation  also  provides   <STRONG>getbegx</STRONG>,   <STRONG>getbegy</STRONG>,
+       <STRONG>getcurx</STRONG>,  <STRONG>getcury</STRONG>,  <STRONG>getmaxx</STRONG>,  <STRONG>getmaxy</STRONG>, <STRONG>getparx</STRONG> and <STRONG>getpary</STRONG>
+       for compatibility with older versions of curses.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 
 
 
 
diff --git a/doc/html/man/curs_in_wch.3x.html b/doc/html/man/curs_in_wch.3x.html
new file mode 100644 (file)
index 0000000..5aa287e
--- /dev/null
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_in_wch.3x,v 1.1 2002/03/10 15:08:57 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_in_wch 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_in_wch 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>in_wch</STRONG>,  <STRONG>mvin_wch</STRONG>,  <STRONG>mvwin_wch</STRONG>, <STRONG>win_wch</STRONG> - extract a complex
+       character and rendition from a window
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>in_wch(cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvin_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwin_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>win_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These functions extract the complex character  and  rendi-
+       tion  from  the  current position in the named window into
+       the <STRONG>cchar_t</STRONG> object referenced by wcval.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+       No errors are defined in the XSI  Curses  standard.   This
+       implementation  checks  for  null pointers, returns ERR in
+       that case.  Also, the <EM>mv</EM> routines check for  error  moving
+       the  cursor,  returning  ERR in that case.  Otherwise they
+       return OK
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that all of these routines may be macros.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       These functions are described in the XSI Curses  standard,
+       Issue 4.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/doc/html/man/curs_in_wchstr.3x.html b/doc/html/man/curs_in_wchstr.3x.html
new file mode 100644 (file)
index 0000000..0277eb4
--- /dev/null
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_in_wchstr 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_in_wchstr 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</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
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>in_wchstr(cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>in_wchnstr(cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>win_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>win_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvin_wchstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvin_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwin_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwin_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM>, int <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These functions return an array of complex  characters  in
+       <EM>wchstr</EM>,  starting  at  the  current cursor position in the
+       named window.  Attributes (rendition) are stored with  the
+       characters.
+
+       The  <STRONG>in_wchnstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> and <STRONG>win_wchn-</STRONG>
+       <STRONG>str</STRONG> fill the array with at most <EM>n</EM> <STRONG>cchar_t</STRONG> elements.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that all routines except <STRONG>win_wchnstr</STRONG> may be macros.
+
+       Reading a line that overflows the array pointed to by <EM>wch-</EM>
+       <EM>str</EM>  with <STRONG>in_wchstr</STRONG>, <STRONG>mvin_wchstr</STRONG>, <STRONG>mvwin_wchstr</STRONG> or <STRONG>win_wch-</STRONG>
+       <STRONG>str</STRONG>  causes  undefined  results.  Therefore,  the  use  of
+       <STRONG>in_wchnstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG>, or <STRONG>win_wchnstr</STRONG> is
+       recommended.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       Upon successful completion,  these  functions  return  <STRONG>OK</STRONG>.
+       Otherwise, they return <STRONG>ERR</STRONG>.
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+       The  XSI  Curses defines no error conditions.  This imple-
+       mentation checks for null pointers, returning ERR in  that
+       case.
+
+
+</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>,
+       <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 2c4b22a576e6cbae716202aad4aec9e806a07258..b3f1485d989a65897389e177885cf0406db44ec1 100644 (file)
@@ -1,41 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_inch.3x,v 1.11 1998/11/29 01:04:34 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_inch 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>
 <BODY>
+<H1>curs_inch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>inch</B>,  <B>winch</B>,  <B>mvinch</B>,  <B>mvwinch</B>  -  get  a  character  and
-       attributes from a <B>curses</B> window
+       <STRONG>inch</STRONG>,  <STRONG>winch</STRONG>,  <STRONG>mvinch</STRONG>,  <STRONG>mvwinch</STRONG>  -  get  a  character  and
+       attributes from a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>chtype</B> <B>inch(void);</B>
-       <B>chtype</B> <B>winch(WINDOW</B> <B>*win);</B>
-       <B>chtype</B> <B>mvinch(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>chtype</B> <B>mvwinch(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
+       <STRONG>chtype</STRONG> <STRONG>inch(void);</STRONG>
+       <STRONG>chtype</STRONG> <STRONG>winch(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>chtype</STRONG> <STRONG>mvinch(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>chtype</STRONG> <STRONG>mvwinch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines return the character, of  type  <B>chtype</B>,  at
+       These routines return the character, of  type  <STRONG>chtype</STRONG>,  at
        the   current  position  in  the  named  window.   If  any
        attributes are set for that  position,  their  values  are
        OR'ed  into  the  value  returned.   Constants  defined in
        the   current  position  in  the  named  window.   If  any
        attributes are set for that  position,  their  values  are
        OR'ed  into  the  value  returned.   Constants  defined in
-       <B>&lt;curses.h&gt;</B> can be used with the <B>&amp;</B> (logical  AND)  operator
+       <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical  AND)  operator
        to extract the character or attributes alone.
 
 
        to extract the character or attributes alone.
 
 
-   <B>Attributes</B>
+   <STRONG>Attributes</STRONG>
        The  following  bit-masks  may  be  AND-ed with characters
        The  following  bit-masks  may  be  AND-ed with characters
-       returned by <B>winch</B>.
+       returned by <STRONG>winch</STRONG>.
 
 
-       <B>A_CHARTEXT</B>     Bit-mask to extract character
-       <B>A_ATTRIBUTES</B>   Bit-mask to extract attributes
-       <B>A_COLOR</B>        Bit-mask to extract color-pair field information
+       <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
 
 
 </PRE>
 
 
 </PRE>
@@ -51,7 +90,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 
 
 
 
index 5688c02aa2e235c2d4df1b79e28b2c0511376e56..cdf33a2a5793e3690ad4c8fd783cd2533f417f52 100644 (file)
@@ -1,54 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_inchstr 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>
 <BODY>
+<H1>curs_inchstr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>inchstr</B>,   <B>inchnstr</B>,   <B>winchstr</B>,   <B>winchnstr</B>,   <B>mvinchstr</B>,
-       <B>mvinchnstr</B>, <B>mvwinchstr</B>, <B>mvwinchnstr</B>  -  get  a  string  of
-       characters (and attributes) from a <B>curses</B> window
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>inchstr(chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>inchnstr(chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>winchstr(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>winchnstr(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvinchstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B> <B>mvinchnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>*chstr,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwinchstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>*chstr);</B>
-       <B>int</B>  <B>mvwinchnstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>*chstr,</B>
-       <B>int</B> <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>inchstr(chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>inchnstr(chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinchstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinchnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+       <STRONG>int</STRONG>  <STRONG>mvwinchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG>
+       <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines return a NULL-terminated  array  of  <B>chtype</B>
+       These routines return a NULL-terminated  array  of  <STRONG>chtype</STRONG>
        quantities, starting at the current cursor position in the
        named window and ending at the right margin of the window.
        quantities, starting at the current cursor position in the
        named window and ending at the right margin of the window.
-       The  four  functions with <I>n</I> as the last argument, return a
-       leading substring at most <I>n</I> characters long (exclusive  of
-       the  trailing (chtype)0).  Constants defined in <B>&lt;curses.h&gt;</B>
-       can be used with the <B>&amp;</B> (logical AND) operator  to  extract
+       The  four  functions with <EM>n</EM> as the last argument, return a
+       leading substring at most <EM>n</EM> characters long (exclusive  of
+       the  trailing (chtype)0).  Constants defined in <STRONG>&lt;curses.h&gt;</STRONG>
+       can be used with the <STRONG>&amp;</STRONG> (logical AND) operator  to  extract
        the  character or the attribute alone from any position in
        the  character or the attribute alone from any position in
-       the <I>chstr</I> [see <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>].
+       the <EM>chstr</EM> [see <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>].
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon  failure  and  an
-       integer  value  other  than <B>ERR</B> upon successful completion
+       All routines return the integer <STRONG>ERR</STRONG> upon  failure  and  an
+       integer  value  other  than <STRONG>ERR</STRONG> upon successful completion
        (the number of  characters  retrieved,  exclusive  of  the
        trailing 0).
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        (the number of  characters  retrieved,  exclusive  of  the
        trailing 0).
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note  that  all  routines  except <B>winchnstr</B> may be macros.
+       Note  that  all  routines  except <STRONG>winchnstr</STRONG> may be macros.
        SVr4 does not document whether the result string is 0-ter-
        minated; it does not document whether a length limit argu-
        ment includes any trailing 0; and it does not document the
        SVr4 does not document whether the result string is 0-ter-
        minated; it does not document whether a length limit argu-
        ment includes any trailing 0; and it does not document the
        These  functions are described in the XSI Curses standard,
        Issue 4.  It is no more specific than the SVr4  documenta-
        tion on the trailing 0.  It does specify that the success-
        These  functions are described in the XSI Curses standard,
        Issue 4.  It is no more specific than the SVr4  documenta-
        tion on the trailing 0.  It does specify that the success-
-       ful return of the functions is <B>OK</B>.
+       ful return of the functions is <STRONG>OK</STRONG>.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
 
 
 
 
 
 
index 81be73b9034806ad039059939aa1faba3e2bbce8..74f72009b2250a1d893ee84a8538b554cd9ba052 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_initscr.3x,v 1.11 2002/07/20 14:51:04 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_initscr 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>
 <BODY>
+<H1>curs_initscr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>initscr</B>,  <B>newterm</B>, <B>endwin</B>, <B>isendwin</B>, <B>set_term</B>, <B>delscreen</B> -
-       <B>curses</B> screen initialization and manipulation routines
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>WINDOW</B> <B>*initscr(void);</B>
-       <B>int</B> <B>endwin(void);</B>
-       <B>bool</B> <B>isendwin(void);</B>
-       <B>SCREEN</B>  <B>*newterm(const</B>  <B>char</B>  <B>*type,</B>  <B>FILE</B>  <B>*outfd,</B>   <B>FILE</B>
-       <B>*infd);</B>
-       <B>SCREEN</B> <B>*set_term(SCREEN</B> <B>*new);</B>
-       <B>void</B> <B>delscreen(SCREEN*</B> <B>sp);</B>
+       <STRONG>WINDOW</STRONG> <STRONG>*initscr(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>endwin(void);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>isendwin(void);</STRONG>
+       <STRONG>SCREEN</STRONG> <STRONG>*newterm(char</STRONG> <STRONG>*type,</STRONG> <STRONG>FILE</STRONG> <STRONG>*outfd,</STRONG> <STRONG>FILE</STRONG> <STRONG>*infd);</STRONG>
+       <STRONG>SCREEN</STRONG> <STRONG>*set_term(SCREEN</STRONG> <STRONG>*new);</STRONG>
+       <STRONG>void</STRONG> <STRONG>delscreen(SCREEN*</STRONG> <STRONG>sp);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>initscr</B>  is normally the first <B>curses</B> routine to call when
-       initializing a program.  A few special routines  sometimes
-       need  to  be called before it; these are <B>slk_init</B>, <B>filter</B>,
-       <B>ripoffline</B>, <B>use_env</B>.  For multiple-terminal  applications,
-       <B>newterm</B> may be called before <B>initscr</B>.
+       <STRONG>initscr</STRONG> is normally the first <STRONG>curses</STRONG> routine to call  when
+       initializing  a program.  A few special routines sometimes
+       need to be called before it; these are  <STRONG>slk_init</STRONG>,  <STRONG>filter</STRONG>,
+       <STRONG>ripoffline</STRONG>,  <STRONG>use_env</STRONG>.  For multiple-terminal applications,
+       <STRONG>newterm</STRONG> may be called before <STRONG>initscr</STRONG>.
 
        The initscr code determines the terminal type and initial-
 
        The initscr code determines the terminal type and initial-
-       izes all <B>curses</B> data structures.  <B>initscr</B> also causes  the
-       first  call  to  <B>refresh</B>  to  clear the screen.  If errors
-       occur, <B>initscr</B> writes  an  appropriate  error  message  to
+       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
        standard error and exits; otherwise, a pointer is returned
-       to <B>stdscr</B>.
+       to <STRONG>stdscr</STRONG>.
 
 
-       A program that outputs to more than  one  terminal  should
-       use  the  <B>newterm</B>  routine  for  each  terminal instead of
-       <B>initscr</B>.  A program that needs to inspect capabilities, so
+       A  program  that  outputs to more than one terminal should
+       use the <STRONG>newterm</STRONG>  routine  for  each  terminal  instead  of
+       <STRONG>initscr</STRONG>.  A program that needs to inspect capabilities, so
        it can continue to run in a line-oriented mode if the ter-
        minal cannot support a screen-oriented program, would also
        it can continue to run in a line-oriented mode if the ter-
        minal cannot support a screen-oriented program, would also
-       use  <B>newterm</B>.   The  routine <B>newterm</B> should be called once
-       for each terminal.  It returns a variable of type <B>SCREEN</B> <B>*</B>
-       which  should  be  saved  as a reference to that terminal.
-       The arguments are the <I>type</I> of the terminal to be  used  in
-       place of <B>$TERM</B>, a file pointer for output to the terminal,
-       and another file pointer for input from the  terminal  (if
-       <I>type</I>  is <B>NULL</B>, <B>$TERM</B> will be used).  The program must also
-       call <B>endwin</B> for each terminal being  used  before  exiting
-       from  <B>curses</B>.  If <B>newterm</B> is called more than once for the
-       same terminal, the first terminal referred to must be  the
-       last one for which <B>endwin</B> is called.
-
-       A  program  should  always  call  <B>endwin</B> before exiting or
-       escaping  from  <B>curses</B>  mode  temporarily.   This  routine
-       restores  tty  modes,  moves the cursor to the lower left-
+       use <STRONG>newterm</STRONG>.  The routine <STRONG>newterm</STRONG> should  be  called  once
+       for each terminal.  It returns a variable of type <STRONG>SCREEN</STRONG> <STRONG>*</STRONG>
+       which should be saved as a  reference  to  that  terminal.
+       The  arguments  are the <EM>type</EM> of the terminal to be used in
+       place of <STRONG>$TERM</STRONG>, a file pointer for output to the terminal,
+       and  another  file pointer for input from the terminal (if
+       <EM>type</EM> is <STRONG>NULL</STRONG>, <STRONG>$TERM</STRONG> will be used).  The program must  also
+       call  <STRONG>endwin</STRONG>  for  each terminal being used before exiting
+       from <STRONG>curses</STRONG>.  If <STRONG>newterm</STRONG> is called more than once for  the
+       same  terminal, the first terminal referred to must be the
+       last one for which <STRONG>endwin</STRONG> is called.
+
+       A program should always  call  <STRONG>endwin</STRONG>  before  exiting  or
+       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
        hand corner of the screen and resets the terminal into the
-       proper non-visual mode.  Calling <B>refresh</B> or <B>doupdate</B> after
-       a temporary escape causes the  program  to  resume  visual
+       proper non-visual mode.  Calling <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> after
+       a  temporary  escape  causes  the program to resume visual
        mode.
 
        mode.
 
-       The  <B>isendwin</B>  routine  returns  <B>TRUE</B>  if  <B>endwin</B> has been
-       called without any subsequent calls to <B>wrefresh</B>, and <B>FALSE</B>
+       The <STRONG>isendwin</STRONG> routine  returns  <STRONG>TRUE</STRONG>  if  <STRONG>endwin</STRONG>  has  been
+       called without any subsequent calls to <STRONG>wrefresh</STRONG>, and <STRONG>FALSE</STRONG>
        otherwise.
 
        otherwise.
 
-       The  <B>set_term</B>  routine is used to switch between different
-       terminals.  The screen reference <B>new</B> becomes the new  cur-
-       rent  terminal.   The previous terminal is returned by the
-       routine.  This  is  the  only  routine  which  manipulates
-       <B>SCREEN</B>  pointers;  all other routines affect only the cur-
+       The <STRONG>set_term</STRONG> routine is used to switch  between  different
+       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  cur-
        rent terminal.
 
        rent terminal.
 
-       The <B>delscreen</B> routine frees storage  associated  with  the
-       <B>SCREEN</B>  data  structure.   The  <B>endwin</B> routine does not do
-       this, so <B>delscreen</B> should be called after <B>endwin</B> if a par-
-       ticular <B>SCREEN</B> is no longer needed.
+       The  <STRONG>delscreen</STRONG>  routine  frees storage associated with the
+       <STRONG>SCREEN</STRONG> data structure.  The <STRONG>endwin</STRONG>  routine  does  not  do
+       this, so <STRONG>delscreen</STRONG> should be called after <STRONG>endwin</STRONG> if a par-
+       ticular <STRONG>SCREEN</STRONG> is no longer needed.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>endwin</B>  returns  the  integer <B>ERR</B> upon failure and <B>OK</B> upon
+       <STRONG>endwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure  and  <STRONG>OK</STRONG>  upon
        successful completion.
 
        successful completion.
 
-       Routines that return pointers always return <B>NULL</B> on error.
+       Routines that return pointers always return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>initscr</B> and <B>newterm</B> may be macros.
+       Note that <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These  functions are described in the XSI Curses standard,
+       These functions are described in the XSI Curses  standard,
        Issue 4.  It specifies that portable applications must not
        Issue 4.  It specifies that portable applications must not
-       call <B>initscr</B> more than once.
+       call <STRONG>initscr</STRONG> more than once.
 
        Old versions of curses, e.g., BSD 4.4, may have returned a
 
        Old versions of curses, e.g., BSD 4.4, may have returned a
-       null pointer from  <B>initscr</B>  when  an  error  is  detected,
-       rather  than  exiting.   It is safe but redundant to check
-       the return value of <B>initscr</B> in XSI Curses.
+       null  pointer  from  <STRONG>initscr</STRONG>  when  an  error is detected,
+       rather than exiting.  It is safe but  redundant  to  check
+       the return value of <STRONG>initscr</STRONG> in XSI Curses.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,       <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>,       <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>,
-       <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>, <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,       <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+
 
 
 
 
 
 
index 13ec59ce0164616796278096c68e17602394f451..9e8ce06e96e074db36921cdde499f237dc41cd77 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_inopts.3x,v 1.9 2002/08/10 22:29:49 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_inopts 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>
 <BODY>
+<H1>curs_inopts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>cbreak</B>, <B>nocbreak</B>, <B>echo</B>, <B>noecho</B>, <B>halfdelay</B>, <B>intrflush</B>, <B>key-</B>
-       <B>pad</B>, <B>meta</B>,  <B>nodelay</B>,  <B>notimeout</B>,  <B>raw</B>,  <B>noraw</B>,  <B>noqiflush</B>,
-       <B>qiflush</B>,  <B>timeout</B>,  <B>wtimeout</B>,  <B>typeahead</B>  -  <B>curses</B>  input
+       <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
        options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-       <B>int</B> <B>cbreak(void);</B>
-       <B>int</B> <B>nocbreak(void);</B>
-       <B>int</B> <B>echo(void);</B>
-       <B>int</B> <B>noecho(void);</B>
-       <B>int</B> <B>halfdelay(int</B> <B>tenths);</B>
-       <B>int</B> <B>intrflush(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>keypad(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>meta(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>nodelay(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>raw(void);</B>
-       <B>int</B> <B>noraw(void);</B>
-       <B>void</B> <B>noqiflush(void);</B>
-       <B>void</B> <B>qiflush(void);</B>
-       <B>int</B> <B>notimeout(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>void</B> <B>timeout(int</B> <B>delay);</B>
-       <B>void</B> <B>wtimeout(WINDOW</B> <B>*win,</B> <B>int</B> <B>delay);</B>
-       <B>int</B> <B>typeahead(int</B> <B>fd);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>cbreak(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>nocbreak(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>echo(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>noecho(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>halfdelay(int</STRONG> <STRONG>tenths);</STRONG>
+       <STRONG>int</STRONG> <STRONG>intrflush(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>keypad(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>meta(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>nodelay(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>raw(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>noraw(void);</STRONG>
+       <STRONG>void</STRONG> <STRONG>noqiflush(void);</STRONG>
+       <STRONG>void</STRONG> <STRONG>qiflush(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>notimeout(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>void</STRONG> <STRONG>timeout(int</STRONG> <STRONG>delay);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wtimeout(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>delay);</STRONG>
+       <STRONG>int</STRONG> <STRONG>typeahead(int</STRONG> <STRONG>fd);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Normally, the tty driver buffers typed characters until  a
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Normally, the tty driver buffers typed characters until  a
-       newline  or  carriage return is typed.  The <B>cbreak</B> routine
+       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
        disables line buffering and erase/kill  character-process-
        ing  (interrupt  and  flow  control  characters  are unaf-
        fected), making characters typed by the  user  immediately
-       available  to  the  program.  The <B>nocbreak</B> routine returns
+       available  to  the  program.  The <STRONG>nocbreak</STRONG> routine returns
        the terminal to normal (cooked) mode.
 
        the terminal to normal (cooked) mode.
 
-       Initially the terminal may or may not be in  <B>cbreak</B>  mode,
+       Initially the terminal may or may not be in  <STRONG>cbreak</STRONG>  mode,
        as the mode is inherited; therefore, a program should call
        as the mode is inherited; therefore, a program should call
-       <B>cbreak</B> or <B>nocbreak</B> explicitly.  Most interactive  programs
-       using  <B>curses</B> set the <B>cbreak</B> mode.  Note that <B>cbreak</B> over-
-       rides <B>raw</B>.  [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a  discussion  of  how
-       these routines interact with <B>echo</B> and <B>noecho</B>.]
+       <STRONG>cbreak</STRONG> or <STRONG>nocbreak</STRONG> explicitly.  Most interactive  programs
+       using  <STRONG>curses</STRONG> set the <STRONG>cbreak</STRONG> mode.  Note that <STRONG>cbreak</STRONG> over-
+       rides <STRONG>raw</STRONG>.  [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a  discussion  of  how
+       these routines interact with <STRONG>echo</STRONG> and <STRONG>noecho</STRONG>.]
 
 
-       The  <B>echo</B>  and  <B>noecho</B> routines control whether characters
-       typed by the user are echoed by <B>getch</B> as they  are  typed.
+       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-
        Echoing  by  the  tty  driver is always disabled, but ini-
-       tially <B>getch</B> is in echo  mode,  so  characters  typed  are
+       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
        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
-       <B>noecho</B>.  [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a discussion of how these
-       routines interact with <B>cbreak</B> and <B>nocbreak</B>.]
+       <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  <B>halfdelay</B>  routine is used for half-delay mode, which
-       is similar to <B>cbreak</B> mode in that characters typed by  the
+       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,
        user  are  immediately available to the program.  However,
-       after blocking  for  <I>tenths</I>  tenths  of  seconds,  ERR  is
-       returned  if  nothing has been typed.  The value of <B>tenths</B>
-       must be a number between 1 and 255.  Use <B>nocbreak</B> to leave
+       after blocking  for  <EM>tenths</EM>  tenths  of  seconds,  ERR  is
+       returned  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.
 
        half-delay mode.
 
-       If  the <B>intrflush</B> option is enabled, (<I>bf</I> is <B>TRUE</B>), when an
+       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 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  <B>curses</B> to have the wrong idea of
-       what is on the  screen.   Disabling  (<I>bf</I>  is  <B>FALSE</B>),  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.
 
        option  prevents the flush.  The default for the option is
        inherited from the tty driver settings.  The window  argu-
        ment is ignored.
 
-       The  <B>keypad</B> option enables the keypad of the user's termi-
-       nal.  If enabled (<I>bf</I> is <B>TRUE</B>), the user can press a  func-
-       tion  key (such as an arrow key) and <B>wgetch</B> returns a sin-
-       gle value representing the function key, as  in  <B>KEY_LEFT</B>.
-       If  disabled (<I>bf</I> is <B>FALSE</B>), <B>curses</B> does not treat function
+       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-
+       tion  key (such as an arrow key) and <STRONG>wgetch</STRONG> returns a sin-
+       gle value representing the function key, as  in  <STRONG>KEY_LEFT</STRONG>.
+       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-
        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 <B>wgetch</B> is  called.   The  default
+       pad 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
        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  <B><A HREF="termio.7.html">termio(7)</A></B>].  To force 8 bits to be returned,
-       invoke <B>meta</B>(<I>win</I>, <B>TRUE</B>); this is equivalent,  under  POSIX,
+       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  setting the CS8 flag on the terminal.  To force 7 bits
-       to be returned, invoke <B>meta</B>(<I>win</I>, <B>FALSE</B>); this  is  equiva-
-       lent,  under  POSIX, to setting the CS8 flag on the termi-
-       nal.  The window argument, <I>win</I>, is always ignored.  If the
-       terminfo capabilities <B>smm</B> (meta_on) and <B>rmm</B> (meta_off) are
-       defined for the terminal, <B>smm</B> is sent to the terminal when
-       <B>meta</B>(<I>win</I>,  <B>TRUE</B>)  is called and <B>rmm</B> is sent when <B>meta</B>(<I>win</I>,
-       <B>FALSE</B>) is called.
-
-       The <B>nodelay</B> option causes <B>getch</B> to be a non-blocking call.
-       If  no input is ready, <B>getch</B> returns <B>ERR</B>.  If disabled (<I>bf</I>
-       is <B>FALSE</B>), <B>getch</B> waits until a key is pressed.
-
-       While interpreting an input escape sequence, <B>wgetch</B> sets a
-       timer  while  waiting  for the next character.  If <B>notime-</B>
-       <B>out(</B><I>win</I>, <B>TRUE</B>) is called,  then  <B>wgetch</B>  does  not  set  a
+       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
+       <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.
+
+       The <STRONG>nodelay</STRONG> option causes <STRONG>getch</STRONG> to be a non-blocking call.
+       If  no input is ready, <STRONG>getch</STRONG> returns <STRONG>ERR</STRONG>.  If disabled (<EM>bf</EM>
+       is <STRONG>FALSE</STRONG>), <STRONG>getch</STRONG> waits until a key is pressed.
+
+       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
        typed by a user.
 
        timer.   The  purpose  of  the timeout is to differentiate
        between sequences received from a function key  and  those
        typed by a user.
 
-       The  <B>raw</B> and <B>noraw</B> routines place the terminal into or out
-       of raw mode.  Raw mode is similar to <B>cbreak</B> mode, in  that
+       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
        all passed through uninterpreted, instead of generating  a
        signal.   The  behavior  of the BREAK key depends on other
        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
        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 <B>curses</B>.
+       bits in the tty driver that are not set by <STRONG>curses</STRONG>.
 
 
-       When the <B>noqiflush</B> routine is used, normal flush of  input
-       and  output queues associated with the <B>INTR</B>, <B>QUIT</B> and <B>SUSP</B>
-       characters will not be done [see <B><A HREF="termio.7.html">termio(7)</A></B>].  When <B>qiflush</B>
+       When the <STRONG>noqiflush</STRONG> routine is used, normal flush of  input
+       and  output queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG>
+       characters will not be done [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>].  When <STRONG>qiflush</STRONG>
        is  called,  the queues will be flushed when these control
        is  called,  the queues will be flushed when these control
-       characters are read.  You may want to call <B>noqiflush()</B>  in
+       characters are read.  You may want to call <STRONG>noqiflush()</STRONG>  in
        a  signal handler if you want output to continue as though
        the interrupt had not occurred, after the handler exits.
 
        a  signal handler if you want output to continue as though
        the interrupt had not occurred, after the handler exits.
 
-       The <B>timeout</B> and <B>wtimeout</B> routines  set  blocking  or  non-
-       blocking  read  for a given window.  If <I>delay</I> is negative,
-       blocking  read  is  used  (<I>i</I>.<I>e</I>.,  waits  indefinitely  for
-       input).   If <I>delay</I> is zero, then non-blocking read is used
-       (<I>i</I>.<I>e</I>., read returns <B>ERR</B> if no input is waiting).  If <I>delay</I>
-       is  positive, then read blocks for <I>delay</I> milliseconds, and
-       returns <B>ERR</B> if there is still no input.  Hence, these rou-
-       tines  provide the same functionality as <B>nodelay</B>, plus the
+       The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines  set  blocking  or  non-
+       blocking  read  for a given window.  If <EM>delay</EM> is negative,
+       blocking  read  is  used  (<EM>i</EM>.<EM>e</EM>.,  waits  indefinitely  for
+       input).   If <EM>delay</EM> is zero, then non-blocking read is used
+       (<EM>i</EM>.<EM>e</EM>., read returns <STRONG>ERR</STRONG> if no input is waiting).  If <EM>delay</EM>
+       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
        additional capability of being  able  to  block  for  only
-       <I>delay</I> milliseconds (where <I>delay</I> is positive).
+       <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
 
 
-       The  <B>curses</B> library does ``line-breakout optimization'' by
+       The  <STRONG>curses</STRONG> library does ``line-breakout optimization'' by
        looking for  typeahead  periodically  while  updating  the
        screen.   If  input is found, and it is coming from a tty,
        looking for  typeahead  periodically  while  updating  the
        screen.   If  input is found, and it is coming from a tty,
-       the current update is postponed until <B>refresh</B> or  <B>doupdate</B>
+       the current update is postponed until <STRONG>refresh</STRONG> or  <STRONG>doupdate</STRONG>
        is  called again.  This allows faster response to commands
        typed in advance.  Normally, the input FILE pointer passed
        is  called again.  This allows faster response to commands
        typed in advance.  Normally, the input FILE pointer passed
-       to  <B>newterm</B>,  or  <B>stdin</B> in the case that <B>initscr</B> was used,
-       will be used to do this typeahead checking.  The <B>typeahead</B>
-       routine  specifies  that  the  file descriptor <I>fd</I> is to be
-       used to check for typeahead instead.  If <I>fd</I> is -1, then no
+       to  <STRONG>newterm</STRONG>,  or  <STRONG>stdin</STRONG> in the case that <STRONG>initscr</STRONG> was used,
+       will be used to do this typeahead checking.  The <STRONG>typeahead</STRONG>
+       routine  specifies  that  the  file descriptor <EM>fd</EM> is to be
+       used to check for typeahead instead.  If <EM>fd</EM> is -1, then no
        typeahead checking is done.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        typeahead checking is done.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  routines that return an integer return <B>ERR</B> upon fail-
+       All  routines that return an integer return <STRONG>ERR</STRONG> upon fail-
        ure and OK (SVr4 specifies only "an  integer  value  other
        ure and OK (SVr4 specifies only "an  integer  value  other
-       than  <B>ERR</B>")  upon  successful completion, unless otherwise
+       than  <STRONG>ERR</STRONG>")  upon  successful completion, unless otherwise
        noted in the preceding routine descriptions.
 
 
        noted in the preceding routine descriptions.
 
 
        torical practice of the AT&amp;T  curses  implementations,  in
        that  the  echo bit is cleared when curses initializes the
        terminal state.  BSD curses differed from  this  slightly;
        torical practice of the AT&amp;T  curses  implementations,  in
        that  the  echo bit is cleared when curses initializes the
        terminal state.  BSD curses differed from  this  slightly;
-       it left the echo bit on at initialization, but the BSD <B>raw</B>
+       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-
        tion, even if your program remains in cooked mode.
        call turned it off as a side-effect.  For  best  portabil-
        ity,  set echo or noecho explicitly just after initializa-
        tion, even if your program remains in cooked mode.
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>echo</B>, <B>noecho</B>, <B>halfdelay</B>, <B>intrflush</B>, <B>meta</B>,  <B>node-</B>
-       <B>lay</B>,  <B>notimeout</B>, <B>noqiflush</B>, <B>qiflush</B>, <B>timeout</B>, and <B>wtimeout</B>
+       Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>,  <STRONG>node-</STRONG>
+       <STRONG>lay</STRONG>,  <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
        may be macros.
 
        may be macros.
 
-       The <B>noraw</B> and <B>nocbreak</B> calls follow historical practice in
+       The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in
        that  they  attempt  to  restore to normal (`cooked') mode
        from raw and cbreak modes respectively.  Mixing  raw/noraw
        and  cbreak/nocbreak  calls  leads  to  tty driver control
        that  they  attempt  to  restore to normal (`cooked') mode
        from raw and cbreak modes respectively.  Mixing  raw/noraw
        and  cbreak/nocbreak  calls  leads  to  tty driver control
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="termio.7.html">termio(7)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>
 
 
 
 
 
 
diff --git a/doc/html/man/curs_ins_wch.3x.html b/doc/html/man/curs_ins_wch.3x.html
new file mode 100644 (file)
index 0000000..aa07ca3
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_ins_wch.3x,v 1.2 2002/03/10 23:43:27 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_ins_wch 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_ins_wch 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>ins_wch</STRONG>,  <STRONG>mvins_wch</STRONG>,  <STRONG>mvwins_wch</STRONG>, <STRONG>wins_wch</STRONG> - insert a com-
+       plex character and rendition into a window
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       #include &lt;curses.h&gt;
+
+       <STRONG>int</STRONG> <STRONG>ins_wch(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win,</EM> <EM>const</EM> <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> <EM>*wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvins_wch(int</STRONG> <EM>y,</EM> <EM>int</EM> <EM>x,</EM> <EM>const</EM> <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> <EM>*wch</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win,</EM> <EM>int</EM> <EM>y,</EM> <EM>int</EM>  <EM>x,</EM>  <EM>const</EM>  <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
+       <EM>*wch</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These routines, insert the complex character <EM>wch</EM> with ren-
+       dition before the character under the cursor.  All charac-
+       ters to the right of the cursor are moved one space to the
+       right, with the possibility of the rightmost character  on
+       the  line  being  lost.   The insertion operation does not
+       change the cursor position.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+       If successful, these functions return OK.   If  not,  they
+       return ERR.
+
+
+</PRE>
+<H2>ERRORS</H2><PRE>
+       No errors are defined.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/doc/html/man/curs_ins_wstr.3x.html b/doc/html/man/curs_ins_wstr.3x.html
new file mode 100644 (file)
index 0000000..43e874b
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_ins_wstr 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_ins_wstr 3x</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</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-
+       character string into a curses window
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>ins_wstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr);</EM>
+       <STRONG>int</STRONG> <STRONG>ins_nwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wins_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wins_nwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvins_wstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvins_nwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwins_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwins_nwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These  routines insert a <STRONG>wchar_t</STRONG> character string (as many
+       characters as will fit on the line) before  the  character
+       under the cursor.  All characters to the right of the cur-
+       sor are shifted right, with the possibility of the  right-
+       most  characters  on  the line being lost.  No wrapping is
+       performed.  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 substring of at most
+       <EM>n</EM>  <STRONG>wchar_t</STRONG>  characters.   If  <EM>n</EM> is less than 1, the entire
+       string is inserted.
+
+       If a character in <EM>wstr</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>wstr</EM> is  another  control  character,  it  is
+       drawn  in the <STRONG>^</STRONG><EM>X</EM> notation.  Calling <STRONG>win_wch</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  charac-
+       ter.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that all but wins_nwstr may be macros.
+
+       If the first character in the string is a nonspacing char-
+       acter, these functions will fail.   XSI  does  not  define
+       what  will happen if a nonspacing character follows a con-
+       trol character.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       Upon successful completion,  these  functions  return  OK.
+       Otherwise, they return ERR.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,        <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>,       <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 5a1610b5f96ada6389e42fa0bf199e0bcce479ca..4ad06bdf1213b67070df109c4940cb5b76593620 100644 (file)
@@ -1,27 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_insch.3x,v 1.7 2000/07/01 19:57:21 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_insch 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>
 <BODY>
+<H1>curs_insch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>insch</B>,  <B>winsch</B>,  <B>mvinsch</B>,  <B>mvwinsch</B>  -  insert a character
-       before cursor in a <B>curses</B> window
+       <STRONG>insch</STRONG>,  <STRONG>winsch</STRONG>,  <STRONG>mvinsch</STRONG>,  <STRONG>mvwinsch</STRONG>  -  insert a character
+       before cursor in a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>insch(chtype</B> <B>ch);</B>
-       <B>int</B> <B>winsch(WINDOW</B> <B>*win,</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>mvinsch(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch);</B>
-       <B>int</B> <B>mvwinsch(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>chtype</B> <B>ch);</B>
+       <STRONG>int</STRONG> <STRONG>insch(chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winsch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinsch(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinsch(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines, insert the character <I>ch</I> before the charac-
+       These routines, insert the character <EM>ch</EM> before the charac-
        ter  under the cursor.  All characters to the right of the
        cursor are moved one space to the right, with  the  possi-
        bility  of the rightmost character on the line being lost.
        ter  under the cursor.  All characters to the right of the
        cursor are moved one space to the right, with  the  possi-
        bility  of the rightmost character on the line being lost.
@@ -31,9 +69,9 @@
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  routines that return an integer return <B>ERR</B> upon fail-
+       All  routines that return an integer return <STRONG>ERR</STRONG> upon fail-
        ure and OK (SVr4 specifies only "an  integer  value  other
        ure and OK (SVr4 specifies only "an  integer  value  other
-       than  <B>ERR</B>")  upon  successful completion, unless otherwise
+       than  <STRONG>ERR</STRONG>")  upon  successful completion, unless otherwise
        noted in the preceding routine descriptions.
 
 
        noted in the preceding routine descriptions.
 
 
@@ -42,7 +80,7 @@
        These routines do not necessarily imply use of a  hardware
        insert character feature.
 
        These routines do not necessarily imply use of a  hardware
        insert character feature.
 
-       Note that <B>insch</B>, <B>mvinsch</B>, and <B>mvwinsch</B> may be macros.
+       Note that <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> may be macros.
 
 
 </PRE>
 
 
 </PRE>
@@ -53,7 +91,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 
 
 
 
index 2349cbc28668e8bd96c2e831449a38cb3a34befa..0e95f5651e36bc9badb446c7fab72bb79ec9acfd 100644 (file)
@@ -1,27 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_insstr 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>
 <BODY>
+<H1>curs_insstr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>insstr</B>,  <B>insnstr</B>,  <B>winsstr</B>, <B>winsnstr</B>, <B>mvinsstr</B>, <B>mvinsnstr</B>,
-       <B>mvwinsstr</B>, <B>mvwinsnstr</B> - insert string before cursor  in  a
-       <B>curses</B> window
+       <STRONG>insstr</STRONG>,  <STRONG>insnstr</STRONG>,  <STRONG>winsstr</STRONG>, <STRONG>winsnstr</STRONG>, <STRONG>mvinsstr</STRONG>, <STRONG>mvinsnstr</STRONG>,
+       <STRONG>mvwinsstr</STRONG>, <STRONG>mvwinsnstr</STRONG> - insert string before cursor  in  a
+       <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>int</B> <B>insstr(const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>insnstr(const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>winsstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>winsnstr(WINDOW</B> <B>*win,</B> <B>const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvinsstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvinsnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwinsstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvwinsnstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>const</B> <B>char</B> <B>*str,</B>
-       <B>int</B> <B>n);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>int</STRONG> <STRONG>insstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>insnstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winsstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winsnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinsstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinsnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinsstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinsnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG>
+       <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 
 
 </PRE>
        the cursor.  All characters to the right of the cursor are
        shifted right, with the possibility of the rightmost char-
        acters  on  the line being lost.  The cursor position does
        the cursor.  All characters to the right of the cursor are
        shifted right, with the possibility of the rightmost char-
        acters  on  the line being lost.  The cursor position does
-       not change (after moving to <I>y</I>, <I>x</I>, if specified). The  four
-       routines with <I>n</I> as the last argument insert a leading sub-
-       string of at most <I>n</I> characters.  If <I>n</I>&lt;=0, then the  entire
+       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.
 
        string is inserted.
 
-       If  a  character in <I>str</I> is a tab, newline, carriage return
+       If  a  character in <EM>str</EM> is a tab, newline, carriage return
        or backspace, the cursor is moved appropriately within the
        or backspace, the cursor is moved appropriately within the
-       window.   A  newline  also  does a <B>clrtoeol</B> before moving.
+       window.   A  newline  also  does a <STRONG>clrtoeol</STRONG> before moving.
        Tabs are considered to be at every eighth  column.   If  a
        Tabs are considered to be at every eighth  column.   If  a
-       character in <I>str</I> is another control character, it is drawn
-       in the <B>^</B><I>X</I> notation.  Calling <B>winch</B> after adding a  control
+       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.
        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.
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  routines that return an integer return <B>ERR</B> upon fail-
+       All  routines that return an integer return <STRONG>ERR</STRONG> upon fail-
        ure and OK (SVr4 specifies only "an  integer  value  other
        ure and OK (SVr4 specifies only "an  integer  value  other
-       than  <B>ERR</B>")  upon  successful completion, unless otherwise
+       than  <STRONG>ERR</STRONG>")  upon  successful completion, unless otherwise
        noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        noted in the preceding routine descriptions.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that all but <B>winsnstr</B> may be macros.
+       Note that all but <STRONG>winsnstr</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
        Issue  4,  which  adds  const qualifiers to the arguments.
 
 
 </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  <B>EILSEQ</B>  and  <B>EILOVERFLOW</B>
+       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
        associated  with  extended-level  conformance  are not yet
        detected (this implementation does not  yet  support  XPG4
-       multi-byte characters).
+       multibyte characters).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>, <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>.
+       <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>.
 
 
 
 
 
 
index 30746395a1d5374c37aa2af202d57b2b9f712ecd..3bd43e81190a5c12363602c1f1779ac289426850 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_instr 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>
 <BODY>
+<H1>curs_instr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>instr</B>,  <B>innstr</B>, <B>winstr</B>, <B>winnstr</B>, <B>mvinstr</B>, <B>mvinnstr</B>, <B>mvwin-</B>
-       <B>str</B>, <B>mvwinnstr</B> - get a string of characters from a  <B>curses</B>
+       <STRONG>instr</STRONG>,  <STRONG>innstr</STRONG>, <STRONG>winstr</STRONG>, <STRONG>winnstr</STRONG>, <STRONG>mvinstr</STRONG>, <STRONG>mvinnstr</STRONG>, <STRONG>mvwin-</STRONG>
+       <STRONG>str</STRONG>, <STRONG>mvwinnstr</STRONG> - get a string of characters from a  <STRONG>curses</STRONG>
        window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>instr(char</B> <B>*str);</B>
-       <B>int</B> <B>innstr(char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>winstr(WINDOW</B> <B>*win,</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>winnstr(WINDOW</B> <B>*win,</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvinstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>mvinnstr(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str,</B> <B>int</B> <B>n);</B>
-       <B>int</B> <B>mvwinstr(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str);</B>
-       <B>int</B>  <B>mvwinnstr(WINDOW</B>  <B>*win,</B>  <B>int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*str,</B> <B>int</B>
-       <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>instr(char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>innstr(char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str);</STRONG>
+       <STRONG>int</STRONG>  <STRONG>mvwinnstr(WINDOW</STRONG>  <STRONG>*win,</STRONG>  <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG>
+       <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines return  a  string  of  characters  in  <I>str</I>,
+       These routines return  a  string  of  characters  in  <EM>str</EM>,
        extracted  starting  at the current cursor position in the
        named window.  Attributes are stripped  from  the  charac-
        extracted  starting  at the current cursor position in the
        named window.  Attributes are stripped  from  the  charac-
-       ters.   The  four  functions  with  <I>n</I> as the last argument
-       return a leading  substring  at  most  <I>n</I>  characters  long
+       ters.   The  four  functions  with  <EM>n</EM> as the last argument
+       return a leading  substring  at  most  <EM>n</EM>  characters  long
        (exclusive of the trailing NUL).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        (exclusive of the trailing NUL).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  of the functions return <B>ERR</B> upon failure, or the num-
+       All  of the functions return <STRONG>ERR</STRONG> upon failure, or the num-
        ber of characters actually read into the string.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        ber of characters actually read into the string.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that all routines except <B>winnstr</B> may be macros.
+       Note that all routines except <STRONG>winnstr</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses error  conditions  <B>EILSEQ</B>  and  <B>EILOVERFLOW</B>
+       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
        associated  with  extended-level  conformance  are not yet
        detected (this implementation does not  yet  support  XPG4
-       multi-byte  characters).  SVr4 does not document whether a
+       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-
        length limit includes or excludes the trailing NUL.
 
        The ncurses library extends the XSI description by  allow-
-       ing  a  negative value for <I>n</I>.  In this case, the functions
+       ing  a  negative value for <EM>n</EM>.  In this case, the functions
        return the string ending at the right margin.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        return the string ending at the right margin.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 
 
 
 
diff --git a/doc/html/man/curs_inwstr.3x.html b/doc/html/man/curs_inwstr.3x.html
new file mode 100644 (file)
index 0000000..297e06b
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp @
+-->
+<HTML>
+<HEAD>
+<TITLE>curs_inwstr 3</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
+<BODY>
+<H1>curs_inwstr 3</H1>
+<HR>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+       <STRONG>inwstr</STRONG>,  <STRONG>innwstr</STRONG>,  <STRONG>winwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinwstr</STRONG>, <STRONG>mvinnwstr</STRONG>,
+       <STRONG>mvwinwstr</STRONG>, <STRONG>mvwinnwstr</STRONG> - get a string of <STRONG>wchar_t</STRONG> characters
+       from a curses window
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>inwstr(wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>innwstr(wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>winnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvinnwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwinnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These  routines  return  a string of <STRONG>wchar_t</STRONG> characters in
+       <EM>wstr</EM>, extracted starting at the current cursor position in
+       the  named window.  Attributes are stripped from the char-
+       acters.  The four functions with <EM>n</EM> as  the  last  argument
+       return a leading substring at most <EM>n</EM> bytes long (exclusive
+       of the trailing NUL).  Transfer stops at the  end  of  the
+       current  line,  or  when  <EM>n</EM>  bytes have been stored at the
+       location referenced by <EM>wstr</EM>.
+
+       If the size <EM>n</EM> is not large  enough  to  store  a  complete
+       character, an error is generated.
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       Note that all routines except <STRONG>winnwstr</STRONG> may be macros.
+
+
+</PRE>
+<H2>RETURN VALUES</H2><PRE>
+       All routines return <STRONG>ERR</STRONG> upon failure. Upon successful com-
+       pletion, the *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the  *<STRONG>innwstr</STRONG>
+       routines  return  the  number  of characters read into the
+       string.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
index 094f396ea793a31c9aa17a9411610fef479d29c8..beaea46f5d137d6f1d35874d3cffcd37553d32ed 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_kernel 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>
 <BODY>
+<H1>curs_kernel 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>def_prog_mode</B>,       <B>def_shell_mode</B>,      <B>reset_prog_mode</B>,
-       <B>reset_shell_mode</B>, <B>resetty</B>, <B>savetty</B>, <B>getsyx</B>, <B>setsyx</B>, <B>ripof-</B>
-       <B>fline</B>, <B>curs_set</B>, <B>napms</B> - low-level <B>curses</B> 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>ripof-</STRONG>
+       <STRONG>fline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>def_prog_mode(void);</B>
-       <B>int</B> <B>def_shell_mode(void);</B>
-       <B>int</B> <B>reset_prog_mode(void);</B>
-       <B>int</B> <B>reset_shell_mode(void);</B>
-       <B>int</B> <B>resetty(void);</B>
-       <B>int</B> <B>savetty(void);</B>
-       <B>void</B> <B>getsyx(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>void</B> <B>setsyx(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>int</B> <B>ripoffline(int</B> <B>line,</B> <B>int</B> <B>(*init)(WINDOW</B> <B>*,</B> <B>int));</B>
-       <B>int</B> <B>curs_set(int</B> <B>visibility);</B>
-       <B>int</B> <B>napms(int</B> <B>ms);</B>
+       <STRONG>int</STRONG> <STRONG>def_prog_mode(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>def_shell_mode(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>reset_prog_mode(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>reset_shell_mode(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>resetty(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>savetty(void);</STRONG>
+       <STRONG>void</STRONG> <STRONG>getsyx(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>void</STRONG> <STRONG>setsyx(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>ripoffline(int</STRONG> <STRONG>line,</STRONG> <STRONG>int</STRONG> <STRONG>(*init)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int));</STRONG>
+       <STRONG>int</STRONG> <STRONG>curs_set(int</STRONG> <STRONG>visibility);</STRONG>
+       <STRONG>int</STRONG> <STRONG>napms(int</STRONG> <STRONG>ms);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The  following  routines  give low-level access to various
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The  following  routines  give low-level access to various
-       <B>curses</B> capabilities.  Theses routines typically  are  used
+       <STRONG>curses</STRONG> capabilities.  Theses routines typically  are  used
        inside library routines.
 
        inside library routines.
 
-       The  <B>def_prog_mode</B>  and  <B>def_shell_mode</B>  routines save the
-       current terminal modes as the  "program"  (in  <B>curses</B>)  or
-       "shell"   (not   in   <B>curses</B>)   state   for   use  by  the
-       <B>reset_prog_mode</B> and <B>reset_shell_mode</B>  routines.   This  is
-       done  automatically  by  <B>initscr</B>.   There is one such save
-       area for each screen context allocated by <B>newterm()</B>.
-
-       The <B>reset_prog_mode</B> and <B>reset_shell_mode</B> routines  restore
-       the  terminal  to "program" (in <B>curses</B>) or "shell" (out of
-       <B>curses</B>) state.  These are  done  automatically  by  <B>endwin</B>
-       and,  after  an  <B>endwin</B>, by <B>doupdate</B>, so they normally are
+       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>.
+
+       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
+       <STRONG>curses</STRONG>) state.  These are  done  automatically  by  <STRONG>endwin</STRONG>
+       and,  after  an  <STRONG>endwin</STRONG>, by <STRONG>doupdate</STRONG>, so they normally are
        not called.
 
        not called.
 
-       The <B>resetty</B> and <B>savetty</B>  routines  save  and  restore  the
-       state  of  the  terminal modes.  <B>savetty</B> saves the current
-       state in a buffer and <B>resetty</B> restores the state  to  what
-       it was at the last call to <B>savetty</B>.
-
-       The  <B>getsyx</B> routine returns the current coordinates of the
-       virtual screen cursor in <I>y</I> and <I>x</I>.  If <B>leaveok</B> is currently
-       <B>TRUE</B>,  then <B>-1</B>,<B>-1</B> is returned.  If lines have been removed
-       from the top of the screen,  using  <B>ripoffline</B>,  <I>y</I>  and  <I>x</I>
-       include  these  lines;  therefore,  <I>y</I> and <I>x</I> should be used
-       only as arguments for <B>setsyx</B>.
-
-       The <B>setsyx</B> routine sets the virtual screen cursor to <I>y</I>, <I>x</I>.
-       If <I>y</I> and <I>x</I> are both <B>-1</B>, then <B>leaveok</B> is set.  The two rou-
-       tines <B>getsyx</B> and <B>setsyx</B> are  designed  to  be  used  by  a
-       library routine, which manipulates <B>curses</B> windows but does
+       The <STRONG>resetty</STRONG> and <STRONG>savetty</STRONG>  routines  save  and  restore  the
+       state  of  the  terminal modes.  <STRONG>savetty</STRONG> saves the current
+       state in a buffer and <STRONG>resetty</STRONG> restores the state  to  what
+       it was at the last call to <STRONG>savetty</STRONG>.
+
+       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>.
+
+       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
        not want to change the current position of  the  program's
        not want to change the current position of  the  program's
-       cursor.   The  library  routine  would  call <B>getsyx</B> at the
+       cursor.   The  library  routine  would  call <STRONG>getsyx</STRONG> at the
        beginning, do its manipulation of its own  windows,  do  a
        beginning, do its manipulation of its own  windows,  do  a
-       <B>wnoutrefresh</B>  on  its  windows, call <B>setsyx</B>, and then call
-       <B>doupdate</B>.
-
-       The <B>ripoffline</B> routine provides access to the same  facil-
-       ity  that  <B>slk_init</B>  [see <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>] uses to reduce the
-       size of the screen.   <B>ripoffline</B>  must  be  called  before
-       <B>initscr</B> or <B>newterm</B> is called.  If <I>line</I> is positive, a line
-       is removed from the top of <B>stdscr</B>; if <I>line</I> is negative,  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
+       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
        line is removed from the bottom.  When this is done inside
        line is removed from the bottom.  When this is done inside
-       <B>initscr</B>, the routine <B>init</B> (supplied by the user) is called
+       <STRONG>initscr</STRONG>, the routine <STRONG>init</STRONG> (supplied by the user) is called
        with  two arguments: a window pointer to the one-line win-
        dow that has been allocated and an integer with the number
        of columns in the window.  Inside this initialization rou-
        with  two arguments: a window pointer to the one-line win-
        dow that has been allocated and an integer with the number
        of columns in the window.  Inside this initialization rou-
-       tine, the integer variables <B>LINES</B>  and  <B>COLS</B>  (defined  in
-       <B>&lt;curses.h&gt;</B>) are not guaranteed to be accurate and <B>wrefresh</B>
-       or <B>doupdate</B> must not be called.  It is allowable  to  call
-       <B>wnoutrefresh</B> during the initialization routine.
+       tine, the integer variables <STRONG>LINES</STRONG>  and  <STRONG>COLS</STRONG>  (defined  in
+       <STRONG>&lt;curses.h&gt;</STRONG>) are not guaranteed to be accurate and <STRONG>wrefresh</STRONG>
+       or <STRONG>doupdate</STRONG> must not be called.  It is allowable  to  call
+       <STRONG>wnoutrefresh</STRONG> during the initialization routine.
 
 
-       <B>ripoffline</B>  can  be called up to five times before calling
-       <B>initscr</B> or <B>newterm</B>.
+       <STRONG>ripoffline</STRONG>  can  be called up to five times before calling
+       <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.
 
 
-       The <B>curs_set</B> routine sets  the  cursor  state  is  set  to
-       invisible, normal, or very visible for <B>visibility</B> equal to
-       <B>0</B>, <B>1</B>, or <B>2</B> respectively.  If  the  terminal  supports  the
-       <I>visibility</I>   requested,   the  previous  <I>cursor</I>  state  is
-       returned; otherwise, <B>ERR</B> is returned.
+       The <STRONG>curs_set</STRONG> routine sets  the  cursor  state  is  set  to
+       invisible, 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.
 
 
-       The <B>napms</B> routine is used to sleep for <I>ms</I> milliseconds.
+       The <STRONG>napms</STRONG> routine is used to sleep for <EM>ms</EM> milliseconds.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>curs_set</B>,  these  routines  always  return  <B>OK</B>.
-       <B>curs_set</B>  returns the previous cursor state, or <B>ERR</B> if the
-       requested <I>visibility</I> is not supported.
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>getsyx</B> is a macro, so <B>&amp;</B> is not necessary  before
-       the variables <I>y</I> and <I>x</I>.
+       Note that <STRONG>getsyx</STRONG> is a macro, so <STRONG>&amp;</STRONG> is not necessary  before
+       the variables <EM>y</EM> and <EM>x</EM>.
 
        Older  SVr4  man  pages  warn  that  the  return  value of
 
        Older  SVr4  man  pages  warn  that  the  return  value of
-       <B>curs_set</B> "is currently  incorrect".   This  implementation
+       <STRONG>curs_set</STRONG> "is currently  incorrect".   This  implementation
        gets  it  right, but it may be unwise to count on the cor-
        rectness of the return value anywhere else.
 
        gets  it  right, but it may be unwise to count on the cor-
        rectness of the return value anywhere else.
 
-       Both ncurses and SVr4 will  call  <B>curs_set</B>  in  <B>endwin</B>  if
-       <B>curs_set</B>  has  been  called  to make the cursor other than
-       normal, i.e., either visible or very visible.  There is no
-       way  for  ncurses to determine the initial cursor state to
-       restore that.
+       Both ncurses and SVr4 will  call  <STRONG>curs_set</STRONG>  in  <STRONG>endwin</STRONG>  if
+       <STRONG>curs_set</STRONG>  has  been  called  to make the cursor other than
+       normal, i.e., either invisible or very visible.  There  is
+       no  way  for ncurses to determine the initial cursor state
+       to restore that.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The functions <B>setsyx</B> and <B>getsyx</B> are not described  in  the
+       The functions <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> are not described  in  the
        XSI  Curses standard, Issue 4.  All other functions are as
        described in XSI Curses.
 
        XSI  Curses standard, Issue 4.  All other functions are as
        described in XSI Curses.
 
-       The SVr4 documentation describes <B>setsyx</B> and <B>getsyx</B> as hav-
+       The SVr4 documentation describes <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> as hav-
        ing  return  type  int.  This  is  misleading, as they are
        macros with no documented semantics for the return  value.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        ing  return  type  int.  This  is  misleading, as they are
        macros with no documented semantics for the return  value.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,       <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>,      <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>,
-       <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>, <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>, <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
+       <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>
 
 
 
 
 
 
index 6e1ca87acec5824e17e34f06a9358aa921204de3..9a09a3f4ec2d8a059c86371502dd86c66e65c771 100644 (file)
@@ -1,45 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_mouse.3x,v 1.20 2002/07/20 14:52:14 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_mouse 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>
 <BODY>
+<H1>curs_mouse 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>getmouse</B>,  <B>ungetmouse</B>,  <B>mousemask</B>,  <B>wenclose</B>, <B>mouse_trafo</B>,
-       <B>wmouse_trafo</B>,  <B>mouseinterval</B>  -  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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        curses
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-       <B>typedef</B> <B>unsigned</B> <B>long</B> <B>mmask_t;</B>
-
-       <B>typedef</B> <B>struct</B>
-       <B>{</B>
-           <B>short</B> <B>id;</B>         <I>/*</I> <I>ID</I> <I>to</I> <I>distinguish</I> <I>multiple</I> <I>devices</I> <I>*/</I>
-           <B>int</B> <B>x,</B> <B>y,</B> <B>z;</B>      <I>/*</I> <I>event</I> <I>coordinates</I> <I>*/</I>
-           <B>mmask_t</B> <B>bstate;</B>   <I>/*</I> <I>button</I> <I>state</I> <I>bits</I> <I>*/</I>
-       <B>}</B>
-       <B>MEVENT;</B>
-       <B>int</B> <B>getmouse(MEVENT</B> <B>*event);</B>
-       <B>int</B> <B>ungetmouse(MEVENT</B> <B>*event);</B>
-       <B>mmask_t</B> <B>mousemask(mmask_t</B> <B>newmask,</B> <B>mmask_t</B> <B>*oldmask);</B>
-       <B>bool</B> <B>wenclose(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>bool</B> <B>mouse_trafo(int*</B> <B>pY,</B> <B>int*</B> <B>pX,</B> <B>bool</B> <B>to_screen);</B>
-       <B>bool</B> <B>wmouse_trafo(const</B> <B>WINDOW*</B> <B>win,</B> <B>int*</B> <B>pY,</B> <B>int*</B> <B>pX,</B>
-            <B>bool</B> <B>to_screen);</B>
-       <B>int</B> <B>mouseinterval(int</B> <B>erval);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>typedef</STRONG> <STRONG>unsigned</STRONG> <STRONG>long</STRONG> <STRONG>mmask_t;</STRONG>
+
+       <STRONG>typedef</STRONG> <STRONG>struct</STRONG>
+       <STRONG>{</STRONG>
+           <STRONG>short</STRONG> <STRONG>id;</STRONG>         <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM>
+           <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>y,</STRONG> <STRONG>z;</STRONG>      <EM>/*</EM> <EM>event</EM> <EM>coordinates</EM> <EM>*/</EM>
+           <STRONG>mmask_t</STRONG> <STRONG>bstate;</STRONG>   <EM>/*</EM> <EM>button</EM> <EM>state</EM> <EM>bits</EM> <EM>*/</EM>
+       <STRONG>}</STRONG>
+       <STRONG>MEVENT;</STRONG>
+       <STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+       <STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+       <STRONG>mmask_t</STRONG> <STRONG>mousemask(mmask_t</STRONG> <STRONG>newmask,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*oldmask);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>wenclose(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>mouse_trafo(int*</STRONG> <STRONG>pY,</STRONG> <STRONG>int*</STRONG> <STRONG>pX,</STRONG> <STRONG>bool</STRONG> <STRONG>to_screen);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>wmouse_trafo(const</STRONG> <STRONG>WINDOW*</STRONG> <STRONG>win,</STRONG> <STRONG>int*</STRONG> <STRONG>pY,</STRONG> <STRONG>int*</STRONG> <STRONG>pX,</STRONG>
+            <STRONG>bool</STRONG> <STRONG>to_screen);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mouseinterval(int</STRONG> <STRONG>erval);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  functions provide an interface to mouse events from
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  functions provide an interface to mouse events from
-       <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>.  Mouse events are  represented  by  <B>KEY_MOUSE</B>
-       pseudo-key values in the <B>wgetch</B> input stream.
+       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.  Mouse events are  represented  by  <STRONG>KEY_MOUSE</STRONG>
+       pseudo-key values in the <STRONG>wgetch</STRONG> input stream.
 
 
-       To  make mouse events visible, use the <B>mousemask</B> function.
+       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
        return a mask to indicate which  of  the  specified  mouse
        This will  set  the  mouse  events  to  be  reported.   By
        default,  no mouse events are reported.  The function will
        return a mask to indicate which  of  the  specified  mouse
@@ -54,7 +93,7 @@
 
        Here are the mouse event type masks:
 
 
        Here are the mouse event type masks:
 
-       <I>Name</I>                     <I>Description</I>
+       <EM>Name</EM>                     <EM>Description</EM>
        ---------------------------------------------------------------------
        BUTTON1_PRESSED          mouse button 1 down
        BUTTON1_RELEASED         mouse button 1 up
        ---------------------------------------------------------------------
        BUTTON1_PRESSED          mouse button 1 down
        BUTTON1_RELEASED         mouse button 1 up
        REPORT_MOUSE_POSITION    report mouse movement
 
        Once a class of mouse events have been made visible  in  a
        REPORT_MOUSE_POSITION    report mouse movement
 
        Once a class of mouse events have been made visible  in  a
-       window,  calling  the  <B>wgetch</B>  function on that window may
-       return <B>KEY_MOUSE</B> as an indicator that a  mouse  event  has
+       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
        been queued.  To read the event data and pop the event off
-       the queue, call <B>getmouse</B>.  This function will return <B>OK</B> if
-       a mouse event is actually visible in the given window, <B>ERR</B>
-       otherwise.  When <B>getmouse</B> returns <B>OK</B>, the  data  deposited
+       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
        state  mask  will have exactly one bit set to indicate the
        event type.
 
        as  y  and  x  in  the event structure coordinates will be
        screen-relative character-cell coordinates.  The  returned
        state  mask  will have exactly one bit set to indicate the
        event type.
 
-       The <B>ungetmouse</B> function behaves  analogously  to  <B>ungetch</B>.
-       It  pushes  a  <B>KEY_MOUSE</B>  event  onto the input queue, and
+       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.
 
        associates with  that  event  the  given  state  data  and
        screen-relative character-cell coordinates.
 
-       The  <B>wenclose</B>  function  tests  whether  a  given  pair of
+       The  <STRONG>wenclose</STRONG>  function  tests  whether  a  given  pair of
        screen-relative character-cell coordinates is enclosed  by
        a  given  window, returning TRUE if it is and FALSE other-
        wise.  It is useful for determining  what  subset  of  the
        screen windows enclose the location of a mouse event.
 
        screen-relative character-cell coordinates is enclosed  by
        a  given  window, returning TRUE if it is and FALSE other-
        wise.  It is useful for determining  what  subset  of  the
        screen windows enclose the location of a mouse event.
 
-       The <B>wmouse_trafo</B> function transforms a given pair of coor-
+       The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coor-
        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
        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
-       the parameter <B>to_screen</B> is <B>TRUE</B>, the pointers <B>pY,</B> <B>pX</B>  must
+       purposes (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
        reference  the coordinates of a location inside the window
-       <B>win</B>. They are converted to screen-relative coordinates and
-       returned  through the pointers. If the conversion was suc-
-       cessful, the function returns <B>TRUE</B>. If one of the  parame-
-       ters  was  NULL  or the location is not inside the window,
-       <B>FALSE</B> is returned. If <B>to_screen</B> is <B>FALSE</B>, the pointers <B>pY,</B>
-       <B>pX</B>  must  reference  screen-relative coordinates. They are
-       converted to stdscr-relative coordinates if the window <B>win</B>
-       encloses  this  point.  In  this case the function returns
-       <B>TRUE</B>. If one of the parameters is NULL or the point is not
-       inside  the window, <B>FALSE</B> is returned. Please notice, that
-       the referenced coordinates are only replaced by  the  con-
-       verted coordinates if the transformation was successful.
-
-       The <B>mouseinterval</B> function sets the maximum time (in thou-
-       sands 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.
+       <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-
+       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
+       window <STRONG>win</STRONG> encloses this point.  In this case the function
+       returns <STRONG>TRUE</STRONG>.  If one of the parameters  is  NULL  or  the
+       point is not inside the window, <STRONG>FALSE</STRONG> is returned.  Please
+       notice, that the referenced coordinates are only  replaced
+       by  the  converted  coordinates  if the transformation was
+       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
        cooked mode, and will cause an error beep when cooked mode
 
        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 <B>get-</B>
-       <B>str</B> that expects a linefeed for input-loop termination.
+       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>
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>getmouse</B>, <B>ungetmouse</B> and <B>mouseinterval</B> return the  integer
-       <B>ERR</B>  upon failure or <B>OK</B> upon successful completion. <B>mouse-</B>
-       <B>mask</B> returns the mask of reportable events.  <B>wenclose</B>  and
-       <B>wmouse_trafo</B> are boolean functions returning <B>TRUE</B> or <B>FALSE</B>
+       <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.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        depending on their test result.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These calls were designed for  <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>,  and  are  not
+       These calls were designed for  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  and  are  not
        found in SVr4 curses, 4.4BSD curses, or any other previous
        version of curses.
 
        found in SVr4 curses, 4.4BSD curses, or any other previous
        version of curses.
 
-       The feature macro <B>NCURSES_MOUSE_VERSION</B> is provided so the
+       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
        preprocessor  can  be  used to test whether these features
        are present  (its  value  is  1).   If  the  interface  is
-       changed, the value of <B>NCURSES_MOUSE_VERSION</B> will be incre-
+       changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incre-
        mented.
 
        mented.
 
-       The order of the <B>MEVENT</B> structure members is  not  guaran-
+       The order of the <STRONG>MEVENT</STRONG> structure members is  not  guaran-
        teed.   Additional fields may be added to the structure in
        the future.
 
        teed.   Additional fields may be added to the structure in
        the future.
 
-       Under  <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>,  these  calls  are  implemented  using
+       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 Alessandro
        Rubini's gpm server.  If you  are  using  something  other
        than  xterm  and  there  is  no gpm daemon running on your
        either  xterm's  built-in mouse-tracking API or Alessandro
        Rubini's gpm server.  If you  are  using  something  other
        than  xterm  and  there  is  no gpm daemon running on your
-       machine, mouse events will not be visible  to  <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>
-       (and the <B>wmousemask</B> function will always return <B>0</B>).
-
+       machine, mouse events will not be visible  to  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+       (and the <STRONG>wmousemask</STRONG> function will always return <STRONG>0</STRONG>).
        The z member in the event structure is not presently used.
        It is intended for use with touch screens  (which  may  be
        pressure-sensitive)   or   with   3D-mice/trackballs/power
        The z member in the event structure is not presently used.
        It is intended for use with touch screens  (which  may  be
        pressure-sensitive)   or   with   3D-mice/trackballs/power
 </PRE>
 <H2>BUGS</H2><PRE>
        Mouse events under xterm will not in fact be ignored  dur-
 </PRE>
 <H2>BUGS</H2><PRE>
        Mouse events under xterm will not in fact be ignored  dur-
-       ing  cooked mode, if they have been enabled by <B>wmousemask</B>.
+       ing  cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
        Instead, the xterm mouse report sequence  will  appear  in
        the string read.
 
        Mouse events under xterm will not be detected correctly in
        a window with its keypad bit off, since  they  are  inter-
        preted  as  a  variety  of  function  key.   Your terminfo
        Instead, the xterm mouse report sequence  will  appear  in
        the string read.
 
        Mouse events under xterm will not be detected correctly in
        a window with its keypad bit off, since  they  are  inter-
        preted  as  a  variety  of  function  key.   Your terminfo
-       description must have <B>kmous</B> set to "\E[M"  (the  beginning
+       description must have <STRONG>kmous</STRONG> set to "\E[M"  (the  beginning
        of the response from xterm for mouse clicks).
 
        Because  there  are  no  standard  terminal responses that
        would serve to identify terminals which support the  xterm
        of the response from xterm for mouse clicks).
 
        Because  there  are  no  standard  terminal responses that
        would serve to identify terminals which support the  xterm
-       mouse  protocol,  <B>ncurses</B>  assumes  that  if your $DISPLAY
-       environment variable is set, and <B>kmous</B> is defined  in  the
-       terminal  description,  then  the  terminal may send mouse
+       mouse  protocol,  <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
+       ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined  in
+       the terminal description, then the terminal may send mouse
        events.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        events.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 
 
 
 
index 7a73e48745b4f8f73ea273f3f5e5986fcb2eb898..890b78a985c14c964129795de871374cec46131d 100644 (file)
@@ -1,40 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_move 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>
 <BODY>
+<H1>curs_move 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>move</B>, <B>wmove</B> - move <B>curses</B> window cursor
+       <STRONG>move</STRONG>, <STRONG>wmove</STRONG> - move <STRONG>curses</STRONG> window cursor
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>move(int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>int</B> <B>wmove(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
+       <STRONG>int</STRONG> <STRONG>move(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wmove(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  routines move the cursor associated with the window
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These  routines move the cursor associated with the window
-       to line <I>y</I> and column <I>x</I>.  This routine does  not  move  the
-       physical  cursor  of the terminal until <B>refresh</B> is called.
+       to line <EM>y</EM> and column <EM>x</EM>.  This routine does  not  move  the
+       physical  cursor  of the terminal until <STRONG>refresh</STRONG> is called.
        The position specified is relative to the upper  left-hand
        corner of the window, which is (0,0).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        The position specified is relative to the upper  left-hand
        corner of the window, which is (0,0).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These routines return <B>ERR</B> upon failure and OK (SVr4 speci-
-       fies only "an integer value other than <B>ERR</B>") upon success-
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        ful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>move</B> may be a macro.
+       Note that <STRONG>move</STRONG> may be a macro.
 
 
 </PRE>
 
 
 </PRE>
        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
        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 multi-byte
+       does  not  yet  support  the  extended-level XSI multibyte
        characters.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        characters.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
 
 
 
 
 
 
index a7a0a456cad6bb8297f2bd061e64f6292bfacb16..9d2d1735b8dcf4adeaa0ccacd654aa81801b0387 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_outopts.3x,v 1.17 2001/10/14 00:50:30 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_outopts 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>
 <BODY>
+<H1>curs_outopts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>clearok</B>,   <B>idlok</B>,   <B>idcok</B>   <B>immedok</B>,  <B>leaveok</B>,  <B>setscrreg</B>,
-       <B>wsetscrreg</B>, <B>scrollok</B>, <B>nl</B>, <B>nonl</B> - <B>curses</B> output options
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>clearok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>idlok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>void</B> <B>idcok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>void</B> <B>immedok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>leaveok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>setscrreg(int</B> <B>top,</B> <B>int</B> <B>bot);</B>
-       <B>int</B> <B>wsetscrreg(WINDOW</B> <B>*win,</B> <B>int</B> <B>top,</B> <B>int</B> <B>bot);</B>
-       <B>int</B> <B>scrollok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>int</B> <B>nl(void);</B>
-       <B>int</B> <B>nonl(void);</B>
+       <STRONG>int</STRONG> <STRONG>clearok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>idlok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>void</STRONG> <STRONG>idcok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>void</STRONG> <STRONG>immedok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>leaveok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>setscrreg(int</STRONG> <STRONG>top,</STRONG> <STRONG>int</STRONG> <STRONG>bot);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wsetscrreg(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>top,</STRONG> <STRONG>int</STRONG> <STRONG>bot);</STRONG>
+       <STRONG>int</STRONG> <STRONG>scrollok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>int</STRONG> <STRONG>nl(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>nonl(void);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These routines set options that change the style of output
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These routines set options that change the style of output
-       within  <B>curses</B>.   All  options are initially <B>FALSE</B>, unless
+       within  <STRONG>curses</STRONG>.   All  options are initially <STRONG>FALSE</STRONG>, unless
        otherwise stated.  It  is  not  necessary  to  turn  these
        otherwise stated.  It  is  not  necessary  to  turn  these
-       options off before calling <B>endwin</B>.
+       options off before calling <STRONG>endwin</STRONG>.
 
 
-       If  <B>clearok</B> is called with <B>TRUE</B> as argument, the next call
-       to <B>wrefresh</B> with this window will clear  the  screen  com-
+       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-
        pletely  and  redraw the entire screen from scratch.  This
        is useful when the contents of the screen  are  uncertain,
        or  in  some  cases for a more pleasing visual effect.  If
        pletely  and  redraw the entire screen from scratch.  This
        is useful when the contents of the screen  are  uncertain,
        or  in  some  cases for a more pleasing visual effect.  If
-       the <I>win</I> argument to <B>clearok</B> is the global variable <B>curscr</B>,
-       the  next  call  to  <B>wrefresh</B>  with  any window causes the
+       the <EM>win</EM> argument to <STRONG>clearok</STRONG> is the global variable <STRONG>curscr</STRONG>,
+       the  next  call  to  <STRONG>wrefresh</STRONG>  with  any window causes the
        screen to be cleared and repainted from scratch.
 
        screen to be cleared and repainted from scratch.
 
-       If <B>idlok</B> is called with <B>TRUE</B> as  second  argument,  <B>curses</B>
+       If <STRONG>idlok</STRONG> is called with <STRONG>TRUE</STRONG> as  second  argument,  <STRONG>curses</STRONG>
        considers using the hardware insert/delete line feature of
        considers using the hardware insert/delete line feature of
-       terminals so equipped.  Calling <B>idlok</B> with <B>FALSE</B> as second
+       terminals so equipped.  Calling <STRONG>idlok</STRONG> with <STRONG>FALSE</STRONG> as second
        argument  disables  use  of  line  insertion and deletion.
        This option should be  enabled  only  if  the  application
        needs  insert/delete  line, for example, for a screen edi-
        tor.  It is 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  can-
        argument  disables  use  of  line  insertion and deletion.
        This option should be  enabled  only  if  the  application
        needs  insert/delete  line, for example, for a screen edi-
        tor.  It is 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  can-
-       not  be  used,  <B>curses</B> redraws the changed portions of all
+       not  be  used,  <STRONG>curses</STRONG> redraws the changed portions of all
        lines.
 
        lines.
 
-       If <B>idcok</B> is called with <B>FALSE</B> as second  argument,  <B>curses</B>
+       If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as second  argument,  <STRONG>curses</STRONG>
        no longer considers using the hardware insert/delete char-
        acter feature of terminals so equipped.  Use of  character
        no longer considers using the hardware insert/delete char-
        acter feature of terminals so equipped.  Use of  character
-       insert/delete  is  enabled by default.  Calling <B>idcok</B> with
-       <B>TRUE</B> as second argument re-enables use of character inser-
+       insert/delete  is  enabled by default.  Calling <STRONG>idcok</STRONG> with
+       <STRONG>TRUE</STRONG> as second argument re-enables use of character inser-
        tion and deletion.
 
        tion and deletion.
 
-       If  <B>immedok</B> is called with <B>TRUE</B> <B>as</B> <B>argument</B>, any change in
-       the window image, such  as  the  ones  caused  by  <B>waddch,</B>
-       <B>wclrtobot,</B> <B>wscrl</B>, <I>etc</I>., automatically cause a call to <B>wre-</B>
-       <B>fresh</B>.  However, it may degrade performance  considerably,
-       due  to  repeated  calls  to  <B>wrefresh</B>.  It is disabled by
+       If  <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> <STRONG>as</STRONG> <STRONG>argument</STRONG>, any change in
+       the window image, such  as  the  ones  caused  by  <STRONG>waddch,</STRONG>
+       <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>, <EM>etc</EM>., automatically cause a call to <STRONG>wre-</STRONG>
+       <STRONG>fresh</STRONG>.  However, it may degrade performance  considerably,
+       due  to  repeated  calls  to  <STRONG>wrefresh</STRONG>.  It is disabled by
        default.
 
        Normally, the hardware cursor is left at the  location  of
        default.
 
        Normally, the hardware cursor is left at the  location  of
-       the  window  cursor  being  refreshed.  The <B>leaveok</B> option
+       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
        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.   If  possible, the cursor is made invisible when
-       this option is enabled.
+       motions.
 
 
-       The <B>setscrreg</B> and <B>wsetscrreg</B> routines allow  the  applica-
-       tion  programmer  to  set a software scrolling region in a
-       window.  <I>top</I> and <I>bot</I> are the line numbers of the  top  and
+       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
        bottom margin of the scrolling region.  (Line 0 is the top
-       line of the window.)  If  this  option  and  <B>scrollok</B>  are
-       enabled,  an  attempt  to  move off the bottom margin line
-       causes all lines in the scrolling  region  to  scroll  one
+       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 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 <B>idlok</B> is enabled
-       and   the  terminal  has  either  a  scrolling  region  or
-       insert/delete line capability, they will probably be  used
+       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.)
 
        by the output routines.)
 
-       The  <B>scrollok</B> 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 line.  If disabled, (<I>bf</I> is <B>FALSE</B>), the cursor is left
-       on the bottom line.  If enabled, (<I>bf</I> is <B>TRUE</B>), the  window
-       is  scrolled  up  one  line (Note that in order to get the
-       physical scrolling effect on the terminal, it is also nec-
-       essary to call <B>idlok</B>).
-
-       The  <B>nl</B>  and  <B>nonl</B> 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 call  <B>addch('\n')</B>
+       The <STRONG>scrollok</STRONG> 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 line.  If disabled, (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the cursor is left
+       on  the bottom line.  If enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the window
+       is scrolled up one line (Note that  to  get  the  physical
+       scrolling  effect on the terminal, it is also necessary to
+       call <STRONG>idlok</STRONG>).
+
+       The <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> 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 call <STRONG>addch('\n')</STRONG>
        does the equivalent of return and line feed on the virtual
        does the equivalent of return and line feed on the virtual
-       screen).  Initially, these translations do occur.  If  you
-       disable  them using <B>nonl</B>, <B>curses</B> will be able to make bet-
-       ter use of the line-feed capability, resulting  in  faster
-       cursor  motion.   Also, <B>curses</B> will then be able to detect
+       screen).   Initially, these translations do occur.  If you
+       disable them using <STRONG>nonl</STRONG>, <STRONG>curses</STRONG> will be able to make  bet-
+       ter  use  of the line-feed capability, resulting in faster
+       cursor motion.  Also, <STRONG>curses</STRONG> will then be able  to  detect
        the return key.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        the return key.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The functions <B>setscrreg</B> and <B>wsetscrreg</B> return <B>OK</B> upon suc-
-       cess  and <B>ERR</B> upon failure. All other routines that return
-       an integer always return <B>OK</B>.
+       The functions <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> return <STRONG>OK</STRONG> upon suc-
+       cess and <STRONG>ERR</STRONG> upon failure.  All other routines that return
+       an integer always return <STRONG>OK</STRONG>.
+
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These functions are described in the XSI Curses  standard,
+       These  functions are described in the XSI Curses standard,
        Issue 4.
 
        Issue 4.
 
-       The  XSI  Curses  standard is ambiguous on the question of
-       whether <B>raw</B>() should disable the  CRLF  translations  con-
-       trolled by <B>nl</B>() and <B>nonl</B>().  BSD curses did turn off these
-       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)
+       The XSI Curses standard is ambiguous on  the  question  of
+       whether  <STRONG>raw</STRONG>()  should  disable the CRLF translations con-
+       trolled by <STRONG>nl</STRONG>() and <STRONG>nonl</STRONG>().  BSD curses did turn off these
+       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 does not mess with.
 
-       Some  historic  curses  implementations had, as an undocu-
-       mented feature,  the  ability  to  do  the  equivalent  of
-       <B>clearok(...,</B>  <B>1)</B>  by saying <B>touchwin(stdscr)</B> or <B>clear(std-</B>
-       <B>scr)</B>.  This will not work under ncurses.
+       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.
 
 
-       Earlier System V  curses  implementations  specified  that
-       with  <B>scrollok</B> enabled, any window modification triggering
-       a scroll also forced a physical refresh.  XSI Curses  does
-       not  require this, and <B>ncurses</B> avoids doing it in order to
-       perform better vertical-motion  optimization  at  <B>wrefresh</B>
-       time.
+       Earlier  System  V  curses  implementations specified that
+       with <STRONG>scrollok</STRONG> enabled, any window modification  triggering
+       a  scroll also forced a physical refresh.  XSI Curses does
+       not require this, and <STRONG>ncurses</STRONG> avoids doing it  to  perform
+       better vertical-motion optimization at <STRONG>wrefresh</STRONG> time.
 
        The  XSI  Curses standard does not mention that the cursor
 
        The  XSI  Curses standard does not mention that the cursor
-       should be made invisible  as  a  side-effect  of  <B>leaveok</B>.
+       should be made invisible  as  a  side-effect  of  <STRONG>leaveok</STRONG>.
        SVr4  curses  documentation  does  this, but the code does
        SVr4  curses  documentation  does  this, but the code does
-       not.  Use <B>curs_set</B> to make the cursor invisible.
+       not.  Use <STRONG>curs_set</STRONG> to make the cursor invisible.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>clearok</B>, <B>leaveok</B>, <B>scrollok</B>, <B>idcok</B>, <B>nl</B>, <B>nonl</B>  and
-       <B>setscrreg</B> may be macros.
+       Note that <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG>  and
+       <STRONG>setscrreg</STRONG> may be macros.
 
 
-       The <B>immedok</B> routine is useful for windows that are used as
+       The <STRONG>immedok</STRONG> routine is useful for windows that are used as
        terminal emulators.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        terminal emulators.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,        <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>,         <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>,
-       <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,        <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,         <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+
 
 
 
 
 
 
index d2af67a8f566b851bfdefd9cefec1e9f3a2e49d8..64b4f71e61d656dc0807cb44ec044414bf46f8df 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_overlay 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>
 <BODY>
+<H1>curs_overlay 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>overlay</B>, <B>overwrite</B>, <B>copywin</B> - overlay and manipulate over-
-       lapped <B>curses</B> windows
+       <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate over-
+       lapped <STRONG>curses</STRONG> windows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>overlay(const</B> <B>WINDOW</B> <B>*srcwin,</B> <B>WINDOW</B> <B>*dstwin);</B>
-       <B>int</B> <B>overwrite(const</B> <B>WINDOW</B> <B>*srcwin,</B> <B>WINDOW</B> <B>*dstwin);</B>
-       <B>int</B> <B>copywin(WINDOW</B> <B>*srcwin,</B> <B>WINDOW</B> <B>*dstwin,</B> <B>int</B> <B>sminrow,</B>
-             <B>int</B> <B>smincol,</B> <B>int</B> <B>dminrow,</B> <B>int</B> <B>dmincol,</B> <B>int</B> <B>dmaxrow,</B>
-             <B>int</B> <B>dmaxcol,</B> <B>int</B> <B>overlay);</B>
+       <STRONG>int</STRONG> <STRONG>overlay(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*srcwin,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*dstwin);</STRONG>
+       <STRONG>int</STRONG> <STRONG>overwrite(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*srcwin,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*dstwin);</STRONG>
+       <STRONG>int</STRONG> <STRONG>copywin(const</STRONG>  <STRONG>WINDOW</STRONG>  <STRONG>*srcwin,</STRONG>  <STRONG>WINDOW</STRONG>  <STRONG>*dstwin,</STRONG>  <STRONG>int</STRONG>
+       <STRONG>sminrow,</STRONG>
+             <STRONG>int</STRONG> <STRONG>smincol,</STRONG> <STRONG>int</STRONG> <STRONG>dminrow,</STRONG> <STRONG>int</STRONG> <STRONG>dmincol,</STRONG> <STRONG>int</STRONG> <STRONG>dmaxrow,</STRONG>
+             <STRONG>int</STRONG> <STRONG>dmaxcol,</STRONG> <STRONG>int</STRONG> <STRONG>overlay);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>overlay</B> and <B>overwrite</B> routines overlay <I>srcwin</I>  on  top
-       of  <I>dstwin</I>.   <I>scrwin</I> and <I>dstwin</I> are not required to be the
-       same size; only text where  the  two  windows  overlap  is
-       copied.  The difference is that <B>overlay</B> is non-destructive
-       (blanks are not copied) whereas <B>overwrite</B> is  destructive.
+       The  <STRONG>overlay</STRONG>  and <STRONG>overwrite</STRONG> routines overlay <EM>srcwin</EM> on top
+       of <EM>dstwin</EM>.  <EM>scrwin</EM> and <EM>dstwin</EM> are not required to  be  the
+       same  size;  only  text  where  the two windows overlap is
+       copied.  The difference is that <STRONG>overlay</STRONG> is non-destructive
+       (blanks  are not copied) whereas <STRONG>overwrite</STRONG> is destructive.
 
 
-       The  <B>copywin</B>  routine provides a finer granularity of con-
-       trol over the <B>overlay</B> and <B>overwrite</B> routines.  Like in the
-       <B>prefresh</B> routine, a rectangle is specified in the destina-
-       tion window, (<I>dminrow</I>, <I>dmincol</I>)  and  (<I>dmaxrow</I>,  <I>dmaxcol</I>),
-       and  the  upper-left-corner coordinates of the source win-
-       dow, (<I>sminrow</I>, <I>smincol</I>).  If the argument <I>overlay</I> is <B>true</B>,
-       then copying is non-destructive, as in <B>overlay</B>.
+       The <STRONG>copywin</STRONG> routine provides a finer granularity  of  con-
+       trol over the <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines.  Like in the
+       <STRONG>prefresh</STRONG> routine, a rectangle is specified in the destina-
+       tion  window,  (<EM>dminrow</EM>,  <EM>dmincol</EM>) and (<EM>dmaxrow</EM>, <EM>dmaxcol</EM>),
+       and the upper-left-corner coordinates of the  source  win-
+       dow, (<EM>sminrow</EM>, <EM>smincol</EM>).  If the argument <EM>overlay</EM> is <STRONG>true</STRONG>,
+       then copying is non-destructive, as in <STRONG>overlay</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines  that  return an integer return <B>ERR</B> upon failure,
-       and <B>OK</B> (SVr4 only specifies "an integer value  other  than
-       <B>ERR</B>") upon successful completion.
+       Routines that return an integer return <STRONG>ERR</STRONG>  upon  failure,
+       and  <STRONG>OK</STRONG>  (SVr4 only specifies "an integer value other than
+       <STRONG>ERR</STRONG>") upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>overlay</B> and <B>overwrite</B> may be macros.
+       Note that <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue 4 describes these functions
        (adding the const qualifiers).  It further specifies their
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue 4 describes these functions
        (adding the const qualifiers).  It further specifies their
-       behavior  in  the  presence  of characters with multi-byte
-       renditions (not yet supported in this implementation).
+       behavior in the presence of characters with multibyte ren-
+       ditions (not yet supported in this implementation).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
 
 
 
 
 
 
index 6172c57700024f50ae18c528dbd87a1f96f1fac9..0da61e87c0d72946a6a3245e0336fb7fb4477c7a 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_pad.3x,v 1.9 2000/07/04 22:38:13 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_pad 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>
 <BODY>
+<H1>curs_pad 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>newpad</B>, <B>subpad</B>, <B>prefresh</B>, <B>pnoutrefresh</B>, <B>pechochar</B> - create
-       and display <B>curses</B> pads
+       <STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG> - create
+       and display <STRONG>curses</STRONG> pads
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>WINDOW</B> <B>*newpad(int</B> <B>nlines,</B> <B>int</B> <B>ncols);</B>
-       <B>WINDOW</B> <B>*subpad(WINDOW</B> <B>*orig,</B> <B>int</B> <B>nlines,</B> <B>int</B> <B>ncols,</B>
-             <B>int</B> <B>begin_y,</B> <B>int</B> <B>begin_x);</B>
-       <B>int</B> <B>prefresh(WINDOW</B> <B>*pad,</B> <B>int</B> <B>pminrow,</B> <B>int</B> <B>pmincol,</B>
-             <B>int</B> <B>sminrow,</B> <B>int</B> <B>smincol,</B> <B>int</B> <B>smaxrow,</B> <B>int</B> <B>smaxcol);</B>
-       <B>int</B> <B>pnoutrefresh(WINDOW</B> <B>*pad,</B> <B>int</B> <B>pminrow,</B> <B>int</B> <B>pmincol,</B>
-             <B>int</B> <B>sminrow,</B> <B>int</B> <B>smincol,</B> <B>int</B> <B>smaxrow,</B> <B>int</B> <B>smaxcol);</B>
-       <B>int</B> <B>pechochar(WINDOW</B> <B>*pad,</B> <B>chtype</B> <B>ch);</B>
+       <STRONG>WINDOW</STRONG> <STRONG>*newpad(int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols);</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*subpad(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
+             <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>prefresh(WINDOW</STRONG> <STRONG>*pad,</STRONG> <STRONG>int</STRONG> <STRONG>pminrow,</STRONG> <STRONG>int</STRONG> <STRONG>pmincol,</STRONG>
+             <STRONG>int</STRONG> <STRONG>sminrow,</STRONG> <STRONG>int</STRONG> <STRONG>smincol,</STRONG> <STRONG>int</STRONG> <STRONG>smaxrow,</STRONG> <STRONG>int</STRONG> <STRONG>smaxcol);</STRONG>
+       <STRONG>int</STRONG> <STRONG>pnoutrefresh(WINDOW</STRONG> <STRONG>*pad,</STRONG> <STRONG>int</STRONG> <STRONG>pminrow,</STRONG> <STRONG>int</STRONG> <STRONG>pmincol,</STRONG>
+             <STRONG>int</STRONG> <STRONG>sminrow,</STRONG> <STRONG>int</STRONG> <STRONG>smincol,</STRONG> <STRONG>int</STRONG> <STRONG>smaxrow,</STRONG> <STRONG>int</STRONG> <STRONG>smaxcol);</STRONG>
+       <STRONG>int</STRONG> <STRONG>pechochar(WINDOW</STRONG> <STRONG>*pad,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>newpad</B> routine creates and returns a pointer to a  new
-       pad data structure with the given number of lines, <I>nlines</I>,
-       and columns, <I>ncols</I>.  A pad is like a window,  except  that
+       The <STRONG>newpad</STRONG> routine creates and returns a pointer to a  new
+       pad data structure with the given number of lines, <EM>nlines</EM>,
+       and columns, <EM>ncols</EM>.  A pad is like a window,  except  that
        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.
        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 (<I>e</I>.<I>g</I>., from scrolling or echo-
-       ing of input) do not occur.  It is not legal to call  <B>wre-</B>
-       <B>fresh</B>  with a <I>pad</I> as an argument; the routines <B>prefresh</B> or
-       <B>pnoutrefresh</B> should be called instead.   Note  that  these
+       Automatic refreshes of pads (<EM>e</EM>.<EM>g</EM>., from scrolling or echo-
+       ing of input) do not occur.  It is not legal to call  <STRONG>wre-</STRONG>
+       <STRONG>fresh</STRONG>  with a <EM>pad</EM> as an argument; the routines <STRONG>prefresh</STRONG> or
+       <STRONG>pnoutrefresh</STRONG> should be called instead.   Note  that  these
        routines require additional parameters to specify the part
        of the pad to be displayed and the location on the  screen
        to be used for the display.
 
        routines require additional parameters to specify the part
        of the pad to be displayed and the location on the  screen
        to be used for the display.
 
-       The <B>subpad</B> routine creates and returns a pointer to a sub-
+       The <STRONG>subpad</STRONG> routine creates and returns a pointer to a sub-
        window within a  pad  with  the  given  number  of  lines,
        window within a  pad  with  the  given  number  of  lines,
-       <I>nlines</I>,  and  columns,  <I>ncols</I>.   Unlike <B>subwin</B>, which uses
-       screen coordinates, the window is  at  position  (<I>begin</I>_<I>x</I><B>,</B>
-       <I>begin</I>_<I>y</I>)  on the pad.  The window is made in the middle of
-       the window <I>orig</I>, so that changes made to one window affect
+       <EM>nlines</EM>,  and  columns,  <EM>ncols</EM>.   Unlike <STRONG>subwin</STRONG>, which uses
+       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
        both  windows.   During  the  use of this routine, it will
-       often be necessary to call <B>touchwin</B> or <B>touchline</B>  on  <I>orig</I>
-       before calling <B>prefresh</B>.
+       often be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG>  on  <EM>orig</EM>
+       before calling <STRONG>prefresh</STRONG>.
 
 
-       The  <B>prefresh</B>  and  <B>pnoutrefresh</B> routines are analogous to
-       <B>wrefresh</B> and <B>wnoutrefresh</B> except that they relate to  pads
+       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
        instead  of windows.  The additional parameters are needed
        to indicate what part of the pad and screen are  involved.
        instead  of windows.  The additional parameters are needed
        to indicate what part of the pad and screen are  involved.
-       <I>pminrow</I>  and <I>pmincol</I> specify the upper left-hand corner of
-       the rectangle to be displayed in the pad.  <I>sminrow</I>,  <I>smin-</I>
-       <I>col</I>, <I>smaxrow</I>, and <I>smaxcol</I> specify the edges of the rectan-
+       <EM>pminrow</EM>  and <EM>pmincol</EM> specify the upper left-hand corner of
+       the rectangle to be displayed in the pad.  <EM>sminrow</EM>,  <EM>smin-</EM>
+       <EM>col</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> specify the edges of the rectan-
        gle to be displayed on the screen.  The  lower  right-hand
        corner of the rectangle to be displayed in the pad is cal-
        culated from the screen coordinates, since the  rectangles
        must  be  the same size.  Both rectangles must be entirely
        contained within their  respective  structures.   Negative
        gle to be displayed on the screen.  The  lower  right-hand
        corner of the rectangle to be displayed in the pad is cal-
        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  <I>pminrow</I>,  <I>pmincol</I>,  <I>sminrow</I>,  or  <I>smincol</I>  are
+       values  of  <EM>pminrow</EM>,  <EM>pmincol</EM>,  <EM>sminrow</EM>,  or  <EM>smincol</EM>  are
        treated as if they were zero.
 
        treated as if they were zero.
 
-       The <B>pechochar</B> routine is functionally equivalent to a call
-       to  <B>addch</B>  followed by a call to <B>refresh</B>, a call to <B>waddch</B>
-       followed by a call to <B>wrefresh</B>, or a call to  <B>waddch</B>  fol-
-       lowed  by  a  call  to <B>prefresh.</B> The knowledge that only a
+       The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call
+       to  <STRONG>addch</STRONG>  followed by a call to <STRONG>refresh</STRONG>, a call to <STRONG>waddch</STRONG>
+       followed by a call to <STRONG>wrefresh</STRONG>, or a call to  <STRONG>waddch</STRONG>  fol-
+       lowed  by  a  call  to <STRONG>prefresh.</STRONG> The knowledge that only a
        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
        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 <B>pechochar</B>,
+       instead  of  their equivalents.  In the case of <STRONG>pechochar</STRONG>,
        the last location of the pad on the screen is  reused  for
        the last location of the pad on the screen is  reused  for
-       the arguments to <B>prefresh</B>.
+       the arguments to <STRONG>prefresh</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines  that  return  an integer return <B>ERR</B> upon failure
-       and <B>OK</B> (SVr4 only specifies "an integer value  other  than
-       <B>ERR</B>") upon successful completion.
+       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.
 
 
-       Routines  that  return  pointers return <B>NULL</B> on error, and
-       set <B>errno</B> to <B>ENOMEM</B>.
+       Routines  that  return  pointers return <STRONG>NULL</STRONG> on error, and
+       set <STRONG>errno</STRONG> to <STRONG>ENOMEM</STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>pechochar</B> may be a macro.
+       Note that <STRONG>pechochar</STRONG> may be a macro.
 
 
 </PRE>
 
 
 </PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,        <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>,       <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>,
-       <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>.
+       <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>.
 
 
 
 
 
 
index 1319ba6d35abec4f0939875e5adfdaf9bb800345..adf7ccc0e8b14af8b9959c3c82b1ec1daf9c9929 100644 (file)
@@ -1,27 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_print.3x,v 1.5 2002/02/16 22:39:04 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_print 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>
 <BODY>
+<H1>curs_print 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mcprint</B> - ship binary data to printer
+       <STRONG>mcprint</STRONG> - ship binary data to printer
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>mcprint(char</B> <B>*data,</B> <B>int</B> <B>len);</B>
+       <STRONG>int</STRONG> <STRONG>mcprint(char</STRONG> <STRONG>*data,</STRONG> <STRONG>int</STRONG> <STRONG>len);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       This  function  uses the <B>mc5p</B> or <B>mc4</B> and <B>mc5</B> capabilities,
+       This  function  uses the <STRONG>mc5p</STRONG> or <STRONG>mc4</STRONG> and <STRONG>mc5</STRONG> capabilities,
        if they are present, to  ship  given  data  to  a  printer
        attached to the terminal.
 
        if they are present, to  ship  given  data  to  a  printer
        attached to the terminal.
 
-       Note  that  the <B>mcprint</B> code has no way to do flow control
+       Note  that  the <STRONG>mcprint</STRONG> code has no way to do flow control
        with the printer or to know how  much  buffering  it  has.
        Your  application  is  responsible for keeping the rate of
        writes to the printer below its continuous throughput rate
        with the printer or to know how  much  buffering  it  has.
        Your  application  is  responsible for keeping the rate of
        writes to the printer below its continuous throughput rate
@@ -34,9 +72,9 @@
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  <B>mcprint</B>  function  returns <B>ERR</B> if the write operation
+       The  <STRONG>mcprint</STRONG>  function  returns <STRONG>ERR</STRONG> if the write operation
        aborted for some reason.  In this case, errno will contain
        aborted for some reason.  In this case, errno will contain
-       either  an  error  associated  with <B>write(2)</B> or one of the
+       either  an  error  associated  with <STRONG>write(2)</STRONG> or one of the
        following:
 
        ENODEV
        following:
 
        ENODEV
             Couldn't allocate sufficient  memory  to  buffer  the
             printer write.
 
             Couldn't allocate sufficient  memory  to  buffer  the
             printer write.
 
-            When <B>mcprint</B> succeeds, it returns the number of char-
+            When <STRONG>mcprint</STRONG> succeeds, it returns the number of char-
             acters actually sent to the printer.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
             acters actually sent to the printer.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The <B>mcprint</B> call was designed for <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>, and is  not
+       The <STRONG>mcprint</STRONG> call was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and is  not
        found in SVr4 curses, 4.4BSD curses, or any other previous
        version of curses.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
        found in SVr4 curses, 4.4BSD curses, or any other previous
        version of curses.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       Padding in the <B>mc5p</B>, <B>mc4</B> and <B>mc5</B> capabilities will not  be
+       Padding in the <STRONG>mc5p</STRONG>, <STRONG>mc4</STRONG> and <STRONG>mc5</STRONG> capabilities will not  be
        interpreted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        interpreted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 
 
 
 
index 95424b3a430e26faa327e027a78346e8bf882a51..0a61b82c781ff5cceff4da196a358acff8f1aff8 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_printw.3x,v 1.12 2002/07/20 15:01:43 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_printw 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>
 <BODY>
+<H1>curs_printw 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>printw</B>,  <B>wprintw</B>, <B>mvprintw</B>, <B>mvwprintw</B>, <B>vwprintw</B>, <B>vw_printw</B>
-       - print formatted output in <B>curses</B> windows
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-       <B>int</B> <B>printw(char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>wprintw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>mvprintw(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>mvwprintw(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B>
-             <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg]</B> ...);
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>#include</B> <B>&lt;varargs.h&gt;</B>
-       <B>int</B> <B>vwprintw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt,</B> <B>varglist);</B>
-       <B>int</B> <B>vw_printw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt,</B> <B>varglist);</B>
+       <STRONG>int</STRONG> <STRONG>printw(char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvprintw(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vw_printw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>printw</B>, <B>wprintw</B>, <B>mvprintw</B> and <B>mvwprintw</B>  routines  are
-       analogous  to  <B>printf</B>  [see  <B><A HREF="printf.3S.html">printf(3S)</A></B>].   In effect, the
-       string that would be output by <B>printf</B> is output instead as
-       though <B>waddstr</B> were used on the given window.
+       The <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG>  routines  are
+       analogous  to  <STRONG>printf</STRONG>  [see  <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>].   In effect, the
+       string that would be output by <STRONG>printf</STRONG> is output instead as
+       though <STRONG>waddstr</STRONG> were used on the given window.
 
 
-       The   <B>vwprintw</B>   routine  is  analogous  to  <B>vprintf</B>  [see
-       <B><A HREF="printf.3S.html">printf(3S)</A></B>] and performs a <B>wprintw</B> using a variable  argu-
-       ment  list.  The third argument is a <B>va_list</B>, a pointer to
-       a list of arguments, as defined in <B>&lt;varargs.h&gt;</B>.
+       The  <STRONG>vwprintw</STRONG>  and  <STRONG>wv_printw</STRONG>  routines  are  analogous to
+       <STRONG>vprintf</STRONG> [see <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>] and perform  a  <STRONG>wprintw</STRONG>  using  a
+       variable  argument list.  The third argument is a <STRONG>va_list</STRONG>,
+       a  pointer  to  a  list  of  arguments,  as   defined   in
+       <STRONG>&lt;stdarg.h&gt;</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer return  <B>ERR</B>  upon  failure
-       and  <B>OK</B>  (SVr4 only specifies "an integer value other than
-       <B>ERR</B>") upon successful completion.
+       Routines  that  return  an integer return <STRONG>ERR</STRONG> upon failure
+       and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value  other  than
+       <STRONG>ERR</STRONG>") upon successful completion.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses standard, Issue  4  describes  these  func-
-       tions.   The  function <B>vwprintw</B> is marked TO BE WITHDRAWN,
-       and is to be replaced by a function  <B>vw_printw</B>  using  the
-       <B>&lt;stdarg.h&gt;</B> interface.
+       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;.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="printf.3S.html">printf(3S)</A></B>, <B>vprintf(3S)</B>
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG>vprintf(3S)</STRONG>
 
 
 
 
 
 
index a0c616c80059ae36ed382b33c46430a7e4696d00..3ac1d00ee18c0d35550fc73e565986e7c3fcb982 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_refresh 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>
 <BODY>
+<H1>curs_refresh 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>refresh</B>, <B>wrefresh</B>, <B>wnoutrefresh</B>, <B>doupdate</B>, <B>redrawwin</B>, <B>wre-</B>
-       <B>drawln</B> - refresh <B>curses</B> windows and lines
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>refresh(void);</B>
-       <B>int</B> <B>wrefresh(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>wnoutrefresh(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>doupdate(void);</B>
-       <B>int</B> <B>redrawwin(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>wredrawln(WINDOW</B> <B>*win,</B> <B>int</B> <B>beg_line,</B> <B>int</B> <B>num_lines);</B>
+       <STRONG>int</STRONG> <STRONG>refresh(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wrefresh(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wnoutrefresh(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>doupdate(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>redrawwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wredrawln(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>beg_line,</STRONG> <STRONG>int</STRONG> <STRONG>num_lines);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>refresh</B> and <B>wrefresh</B>  routines  (or  <B>wnoutrefresh</B>  and
-       <B>doupdate</B>)  must be called to get actual output to the ter-
+       The <STRONG>refresh</STRONG> and <STRONG>wrefresh</STRONG>  routines  (or  <STRONG>wnoutrefresh</STRONG>  and
+       <STRONG>doupdate</STRONG>)  must be called to get actual output to the ter-
        minal, as other routines  merely  manipulate  data  struc-
        minal, as other routines  merely  manipulate  data  struc-
-       tures.   The  routine  <B>wrefresh</B> copies the named window to
+       tures.   The  routine  <STRONG>wrefresh</STRONG> copies the named window to
        the physical terminal screen, taking into account what  is
        the physical terminal screen, taking into account what  is
-       already  there  in order to do optimizations.  The <B>refresh</B>
-       routine is the same, using <B>stdscr</B> as the  default  window.
-       Unless  <B>leaveok</B>  has  been enabled, the physical cursor of
-       the terminal is left at the location  of  the  cursor  for
-       that window.
-
-       The  <B>wnoutrefresh</B>  and  <B>doupdate</B>  routines  allow multiple
-       updates with more  efficiency  than  <B>wrefresh</B>  alone.   In
-       addition  to  all  the window structures, <B>curses</B> keeps two
+       already there to do optimizations.  The <STRONG>refresh</STRONG> routine is
+       the same, using <STRONG>stdscr</STRONG>  as  the  default  window.   Unless
+       <STRONG>leaveok</STRONG>  has been enabled, the physical cursor of the ter-
+       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
        have on the screen.
 
        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
        have on the screen.
 
-       The  routine <B>wrefresh</B> works by first calling <B>wnoutrefresh</B>,
+       The  routine <STRONG>wrefresh</STRONG> works by first calling <STRONG>wnoutrefresh</STRONG>,
        which copies the named window to the virtual  screen,  and
        which copies the named window to the virtual  screen,  and
-       then  calling  <B>doupdate</B>, which compares the virtual screen
+       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
        to the physical screen and does the actual update.  If the
        programmer  wishes  to  output  several windows at once, a
-       series of calls to <B>wrefresh</B> results in  alternating  calls
-       to  <B>wnoutrefresh</B>  and  <B>doupdate</B>, causing several bursts of
-       output to the screen.  By first calling  <B>wnoutrefresh</B>  for
-       each  window,  it  is then possible to call <B>doupdate</B> once,
+       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
        resulting in only one burst of output,  with  fewer  total
-       characters transmitted and less CPU time used.  If the <I>win</I>
-       argument to <B>wrefresh</B> is the global  variable  <B>curscr</B>,  the
+       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.
 
        The phrase "copies the named window to the virtual screen"
        above  is  ambiguous.   What  actually happens is that all
        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
-       <I>touched</I> (changed) lines in the window are  copied  to  the
+       <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
        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 <B>PORTABILITY</B> below for a warning about
+       see  the  section on <STRONG>PORTABILITY</STRONG> below for a warning about
        exploiting this behavior.)
 
        exploiting this behavior.)
 
-       The <B>wredrawln</B> routine indicates to <B>curses</B> that some screen
+       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  are corrupted and should be thrown away before any-
        thing is written over  them.   It  touches  the  indicated
-       lines  (marking  them  changed).   The routine <B>redrawwin</B>()
+       lines  (marking  them  changed).   The routine <STRONG>redrawwin</STRONG>()
        touches the entire window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        touches the entire window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer return <B>ERR</B>  upon  failure,
-       and  <B>OK</B>  (SVr4 only specifies "an integer value other than
-       <B>ERR</B>") upon successful completion.
+       Routines that return an integer return <STRONG>ERR</STRONG>  upon  failure,
+       and  <STRONG>OK</STRONG>  (SVr4 only specifies "an integer value other than
+       <STRONG>ERR</STRONG>") upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>refresh</B> and <B>redrawwin</B> may be macros.
+       Note that <STRONG>refresh</STRONG> and <STRONG>redrawwin</STRONG> may be macros.
 
 
 </PRE>
 
 
 </PRE>
        The XSI Curses standard, Issue  4  describes  these  func-
        tions.
 
        The XSI Curses standard, Issue  4  describes  these  func-
        tions.
 
-       Whether  <B>wnoutrefresh()</B>  copies  to the virtual screen the
+       Whether  <STRONG>wnoutrefresh()</STRONG>  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).  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
        entire contents of a window or just its  changed  portions
        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  <B>touchwin()</B>  before  the  <B>wnoutrefresh()</B>  call to
+       explicit  <STRONG>touchwin()</STRONG>  before  the  <STRONG>wnoutrefresh()</STRONG>  call to
        guarantee an entire-contents copy anywhere.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        guarantee an entire-contents copy anywhere.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 
 
 
 
 
 
index 1fb1ba9ed2950dfcf56671159fb81b90253ed094..3e132c16c0bbb36dd4d31ef719ac2281cdea9080 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_scanw.3x,v 1.12 2002/07/20 15:48:09 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_scanw 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>
 <BODY>
+<H1>curs_scanw 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>scanw</B>, <B>wscanw</B>, <B>mvscanw</B>, <B>mvwscanw</B>, <B>vwscanw</B>, <B>vw_scanw</B> - con-
-       vert formatted input from a <B>curses</B> window
+       <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG>, <STRONG>mvscanw</STRONG>, <STRONG>mvwscanw</STRONG>, <STRONG>vwscanw</STRONG>, <STRONG>vw_scanw</STRONG> - con-
+       vert formatted input from a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>scanw(char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>wscanw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>mvscanw(int</B> <B>y,</B> <B>int</B> <B>x,</B> <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg</B>] <B>...);</B>
-       <B>int</B> <B>mvwscanw(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x,</B>
-             <B>char</B> <B>*fmt</B> [<B>,</B> <B>arg]</B> <B>...);</B>
-       <B>int</B> <B>vw_scanw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt,</B> <B>va_list</B> <B>varglist);</B>
-       <B>int</B> <B>vwscanw(WINDOW</B> <B>*win,</B> <B>char</B> <B>*fmt,</B> <B>va_list</B> <B>varglist);</B>
+       <STRONG>int</STRONG> <STRONG>scanw(char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wscanw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvscanw(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwscanw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vw_scanw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vwscanw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>scanw</B>, <B>wscanw</B> and <B>mvscanw</B> routines  are  analogous  to
-       <B>scanf</B> [see <B><A HREF="scanf.3S.html">scanf(3S)</A></B>].  The effect of these routines is as
-       though <B>wgetstr</B> were called on the window, and the  result-
-       ing line used as input for <B><A HREF="sscanf.3.html">sscanf(3)</A></B>.  Fields which do not
-       map to a variable in the <I>fmt</I> field are lost.
+       The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines  are  analogous  to
+       <STRONG>scanf</STRONG> [see <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>].  The effect of these routines is as
+       though <STRONG>wgetstr</STRONG> were called on the window, and the  result-
+       ing line used as input for <STRONG><A HREF="sscanf.3.html">sscanf(3)</A></STRONG>.  Fields which do not
+       map to a variable in the <EM>fmt</EM> field are lost.
 
 
-       The <B>vwscanw</B> routine is similar to <B>vwprintw</B> in that it per-
-       forms  a <B>wscanw</B> using a variable argument list.  The third
-       argument is a <I>va</I>_<I>list</I>, a pointer to a list  of  arguments,
-       as defined in <B>&lt;varargs.h&gt;</B>.
+       The <STRONG>vwscanw</STRONG> and <STRONG>vw_scanw</STRONG> routines are analogous to <STRONG>vscanf</STRONG>.
+       They perform a <STRONG>wscanw</STRONG> using a variable argument list.  The
+       third argument is a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, a pointer to a list of  argu-
+       ments, as defined in <STRONG>&lt;stdarg.h&gt;</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>vwscanw</B> returns <B>ERR</B> on failure and an integer equal to the
+       <STRONG>vwscanw</STRONG> returns <STRONG>ERR</STRONG> on failure and an integer equal to the
        number of fields scanned on success.
 
        number of fields scanned on success.
 
-       Applications may use the  return  value  from  the  <B>scanw</B>,
-       <B>wscanw</B>,  <B>mvscanw</B>  and  <B>mvwscanw</B>  routines to determine the
+       Applications may use the  return  value  from  the  <STRONG>scanw</STRONG>,
+       <STRONG>wscanw</STRONG>,  <STRONG>mvscanw</STRONG>  and  <STRONG>mvwscanw</STRONG>  routines to determine the
        number of fields which were mapped in the call.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue  4  describes  these  func-
        number of fields which were mapped in the call.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue  4  describes  these  func-
-       tions.   The  function  <B>vwscanw</B> is marked TO BE WITHDRAWN,
-       and is to be replaced by a  function  <B>vw_scanw</B>  using  the
-       <B>&lt;stdarg.h&gt;</B> interface.
+       tions.   The  function  <STRONG>vwscanw</STRONG> is marked TO BE WITHDRAWN,
+       and is to be replaced by a  function  <STRONG>vw_scanw</STRONG>  using  the
+       <STRONG>&lt;stdarg.h&gt;</STRONG> interface.  The Single Unix Specification, Ver-
+       sion 2 states that <STRONG>vw_scanw</STRONG>  is preferred to <STRONG>vwscanw</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;.
+
+       Both XSI and The  Single  Unix  Specification,  Version  2
+       state  that  these  functions return ERR or OK.  Since the
+       underlying <STRONG>scanf</STRONG> can return the number of  items  scanned,
+       and the SVr4 code was documented to use this feature, this
+       is probably an editing error which was introduced in  XSI,
+       rather  than  being done intentionally.  Portable applica-
+       tions should only test if the return value is  ERR,  since
+       the  OK value (zero) is likely to be misleading.  One pos-
+       sible way to get useful results would be  to  use  a  "%n"
+       conversion  at the end of the format string to ensure that
+       something was processed.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>, <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>, <B><A HREF="scanf.3S.html">scanf(3S)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
 
 
 
index 7931102dcb7248174703da007827864e72bf86da..c64c48ce4415d4970e26067adaca3df30e421030 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_scr_dump.3x,v 1.2 2000/07/01 20:06:53 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_scr_dump 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>
 <BODY>
+<H1>curs_scr_dump 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>scr_dump</B>,  <B>scr_restore</B>, <B>scr_init</B>, <B>scr_set</B> - read (write) a
-       <B>curses</B> screen from (to) a file
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>scr_dump(const</B> <B>char</B> <B>*filename);</B>
-       <B>int</B> <B>scr_restore(const</B> <B>char</B> <B>*filename);</B>
-       <B>int</B> <B>scr_init(const</B> <B>char</B> <B>*filename);</B>
-       <B>int</B> <B>scr_set(const</B> <B>char</B> <B>*filename);</B>
+       <STRONG>int</STRONG> <STRONG>scr_dump(const</STRONG> <STRONG>char</STRONG> <STRONG>*filename);</STRONG>
+       <STRONG>int</STRONG> <STRONG>scr_restore(const</STRONG> <STRONG>char</STRONG> <STRONG>*filename);</STRONG>
+       <STRONG>int</STRONG> <STRONG>scr_init(const</STRONG> <STRONG>char</STRONG> <STRONG>*filename);</STRONG>
+       <STRONG>int</STRONG> <STRONG>scr_set(const</STRONG> <STRONG>char</STRONG> <STRONG>*filename);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>scr_dump</B> routine dumps the  current  contents  of  the
-       virtual screen to the file <I>filename</I>.
+       The <STRONG>scr_dump</STRONG> routine dumps the  current  contents  of  the
+       virtual screen to the file <EM>filename</EM>.
 
 
-       The  <B>scr_restore</B>  routine  sets  the virtual screen to the
-       contents of <I>filename</I>, which must have been  written  using
-       <B>scr_dump</B>.   The  next call to <B>doupdate</B> restores the screen
+       The  <STRONG>scr_restore</STRONG>  routine  sets  the virtual screen to the
+       contents of <EM>filename</EM>, which must have been  written  using
+       <STRONG>scr_dump</STRONG>.   The  next call to <STRONG>doupdate</STRONG> restores the screen
        to the way it looked in the dump file.
 
        to the way it looked in the dump file.
 
-       The <B>scr_init</B> routine reads in the contents of <I>filename</I> and
-       uses  them  to initialize the <B>curses</B> data structures about
+       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
        what the terminal currently has on  its  screen.   If  the
-       data  is  determined  to  be  valid, <B>curses</B> bases its next
+       data  is  determined  to  be  valid, <STRONG>curses</STRONG> bases its next
        update of the  screen  on  this  information  rather  than
        update of the  screen  on  this  information  rather  than
-       clearing  the  screen and starting from scratch.  <B>scr_init</B>
-       is used after <B>initscr</B> or  a  <B>system</B>  [see  <B>system</B>(BA_LIB)]
+       clearing  the  screen and starting from scratch.  <STRONG>scr_init</STRONG>
+       is used after <STRONG>initscr</STRONG> or  a  <STRONG>system</STRONG>  [see  <STRONG>system</STRONG>(BA_LIB)]
        call  to  share  the screen with another process which has
        call  to  share  the screen with another process which has
-       done a <B>scr_dump</B>  after  its  <B>endwin</B>  call.   The  data  is
-       declared  invalid  if  the terminfo capabilities <B>rmcup</B> and
-       <B>nrrmc</B> exist; also if the  terminal  has  been  written  to
-       since the preceding <B>scr_dump</B> call.
-
-       The  <B>scr_set</B>  routine  is a combination of <B>scr_restore</B> and
-       <B>scr_init</B>.  It tells the program that  the  information  in
-       <I>filename</I> is what is currently on the screen, and also what
+       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.
+
+       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
+       <EM>filename</EM> is what is currently on the screen, and also what
        the program wants on the screen.  This can be  thought  of
        as a screen inheritance function.
 
        the program wants on the screen.  This can be  thought  of
        as a screen inheritance function.
 
-       To  read (write) a window from (to) a file, use the <B>getwin</B>
-       and <B>putwin</B> routines [see <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>].
+       To  read (write) a window from (to) a file, use the <STRONG>getwin</STRONG>
+       and <STRONG>putwin</STRONG> routines [see <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>].
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon  failure  and  <B>OK</B>
+       All routines return the integer <STRONG>ERR</STRONG> upon  failure  and  <STRONG>OK</STRONG>
        upon success.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        upon success.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note  that  <B>scr_init</B>,  <B>scr_set</B>,  and  <B>scr_restore</B>  may  be
+       Note  that  <STRONG>scr_init</STRONG>,  <STRONG>scr_set</STRONG>,  and  <STRONG>scr_restore</STRONG>  may  be
        macros.
 
 
        macros.
 
 
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue 4,  describes  these  func-
        tions (adding the const qualifiers).
 <H2>PORTABILITY</H2><PRE>
        The XSI Curses standard, Issue 4,  describes  these  func-
        tions (adding the const qualifiers).
-       The SVr4 docs merely say under <B>scr_init</B> that the dump data
+       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".
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        is also considered invalid "if the time-stamp of  the  tty
        is old" but don't define "old".
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,       <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>,      <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>,
-       <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>, <B><A HREF="system.3S.html">system(3S)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,       <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,      <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3S.html">system(3S)</A></STRONG>
 
 
 
 
 
 
index fb2abac9527c2d3ee599df22dca9934210621df7..cd50d76ea44b69b2c9273c0e7315fa24506d0da6 100644 (file)
@@ -1,58 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_scroll.3x,v 1.9 2001/10/14 00:51:56 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_scroll 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>
 <BODY>
+<H1>curs_scroll 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>scroll</B>, <B>scrl</B>, <B>wscrl</B> - scroll a <B>curses</B> window
+       <STRONG>scroll</STRONG>, <STRONG>scrl</STRONG>, <STRONG>wscrl</STRONG> - scroll a <STRONG>curses</STRONG> window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>scroll(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>scrl(int</B> <B>n);</B>
-       <B>int</B> <B>wscrl(WINDOW</B> <B>*win,</B> <B>int</B> <B>n);</B>
+       <STRONG>int</STRONG> <STRONG>scroll(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>scrl(int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wscrl(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>scroll</B>  routine scrolls the window up one line.  This
+       The  <STRONG>scroll</STRONG>  routine scrolls the window up one line.  This
        involves moving the lines in the  window  data  structure.
        As  an optimization, if the scrolling region of the window
        is the entire screen, the physical screen may be  scrolled
        at the same time.
 
        involves moving the lines in the  window  data  structure.
        As  an optimization, if the scrolling region of the window
        is the entire screen, the physical screen may be  scrolled
        at the same time.
 
-       For  positive  <I>n</I>,  the  <B>scrl</B> and <B>wscrl</B> routines scroll the
-       window up <I>n</I> lines (line <I>i</I>+<I>n</I> becomes <I>i</I>);  otherwise  scroll
-       the  window  down <I>n</I> lines.  This involves moving the lines
+       For  positive  <EM>n</EM>,  the  <STRONG>scrl</STRONG> and <STRONG>wscrl</STRONG> routines scroll the
+       window up <EM>n</EM> lines (line <EM>i</EM>+<EM>n</EM> becomes <EM>i</EM>);  otherwise  scroll
+       the  window  down <EM>n</EM> lines.  This involves moving the lines
        in the window character image structure.  The current cur-
        sor position is not changed.
 
        For these functions to work, scrolling must be enabled via
        in the window character image structure.  The current cur-
        sor position is not changed.
 
        For these functions to work, scrolling must be enabled via
-       <B>scrollok</B>.
+       <STRONG>scrollok</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These routines return <B>ERR</B> upon failure, and <B>OK</B> (SVr4  only
-       specifies "an integer value other than <B>ERR</B>") upon success-
+       These routines 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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        ful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>scrl</B> and <B>scroll</B> may be macros.
+       Note that <STRONG>scrl</STRONG> and <STRONG>scroll</STRONG> may be macros.
 
        The SVr4 documentation says that the optimization of phys-
        ically  scrolling  immediately if the scroll region is the
        entire screen "is"  performed,  not  "may  be"  performed.
        This  implementation  deliberately does not guarantee that
 
        The SVr4 documentation says that the optimization of phys-
        ically  scrolling  immediately if the scroll region is the
        entire screen "is"  performed,  not  "may  be"  performed.
        This  implementation  deliberately does not guarantee that
-       this will occur, in order to leave open the possibility of
-       smarter  optimization  of  multiple  scroll actions on the
-       next update.
+       this will occur, to leave open the possibility of  smarter
+       optimization  of  multiple  scroll  actions  on  the  next
+       update.
 
        Neither the SVr4 nor the XSI documentation specify whether
        the current attribute or current color-pair of blanks gen-
 
        Neither the SVr4 nor the XSI documentation specify whether
        the current attribute or current color-pair of blanks gen-
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 
 </PRE>
 <HR>
 
 </PRE>
 <HR>
index cf77d62daa946c6f58d1b7de187bfca94e75f359..9a0a29a4a6ef5814507b1b9ffb98090eaa9a8772 100644 (file)
@@ -1,47 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_slk.3x,v 1.11 2001/03/03 21:05:41 Todd.C.Miller Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_slk 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>
 <BODY>
+<H1>curs_slk 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>slk_init</B>,     <B>slk_set</B>,    <B>slk_refresh</B>,    <B>slk_noutrefresh</B>,
-       <B>slk_label</B>, <B>slk_clear</B>, <B>slk_restore</B>, <B>slk_touch</B>,  <B>slk_attron</B>,
-       <B>slk_attrset</B>,   <B>slk_attroff</B>,   <B>slk_attr_on</B>,   <B>slk_attr_set</B>,
-       <B>slk_attr_off</B>, <B>slk_attr</B> <B>slk_color</B> - <B>curses</B> soft label  rou-
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        tines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-       <B>int</B> <B>slk_init(int</B> <B>fmt);</B>
-       <B>int</B> <B>slk_set(int</B> <B>labnum,</B> <B>const</B> <B>char</B> <B>*label,</B> <B>int</B> <B>fmt);</B>
-       <B>int</B> <B>slk_refresh(void);</B>
-       <B>int</B> <B>slk_noutrefresh(void);</B>
-       <B>char</B> <B>*slk_label(int</B> <B>labnum);</B>
-       <B>int</B> <B>slk_clear(void);</B>
-       <B>int</B> <B>slk_restore(void);</B>
-       <B>int</B> <B>slk_touch(void);</B>
-       <B>int</B> <B>slk_attron(const</B> <B>chtype</B> <B>attrs);</B>
-       <B>int</B> <B>slk_attroff(const</B> <B>chtype</B> <B>attrs);</B>
-       <B>int</B> <B>slk_attrset(const</B> <B>chtype</B> <B>attrs);</B>
-       <B>int</B> <B>slk_attr_on(attr_t</B> <B>attrs,</B> <B>void*</B> <B>opts);</B>
-       <B>int</B> <B>slk_attr_off(const</B> <B>attr_t</B> <B>attrs,</B> <B>void</B> <B>*</B> <B>opts);</B>
-       <B>int</B> <B>slk_attr_set(const</B> <B>attr_t</B> <B>attrs,</B>
-            <B>short</B> <B>color_pair_number,</B> <B>void*</B> <B>opts);</B>
-       <B>attr_t</B> <B>slk_attr(void);</B>
-       <B>int</B> <B>slk_color(short</B> <B>color_pair_number);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>slk_init(int</STRONG> <STRONG>fmt);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_set(int</STRONG> <STRONG>labnum,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*label,</STRONG> <STRONG>int</STRONG> <STRONG>fmt);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_refresh(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_noutrefresh(void);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*slk_label(int</STRONG> <STRONG>labnum);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_clear(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_restore(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_touch(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attron(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attroff(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attrset(const</STRONG> <STRONG>chtype</STRONG> <STRONG>attrs);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attr_on(attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attr_off(const</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG> <STRONG>opts);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_attr_set(const</STRONG> <STRONG>attr_t</STRONG> <STRONG>attrs,</STRONG>
+            <STRONG>short</STRONG> <STRONG>color_pair_number,</STRONG> <STRONG>void*</STRONG> <STRONG>opts);</STRONG>
+       <STRONG>attr_t</STRONG> <STRONG>slk_attr(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>slk_color(short</STRONG> <STRONG>color_pair_number);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The slk* functions manipulate the set of soft function-key
        labels that exist on many terminals.  For those  terminals
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The slk* functions manipulate the set of soft function-key
        labels that exist on many terminals.  For those  terminals
-       that do not have soft labels, <B>curses</B> takes over the bottom
-       line of <B>stdscr</B>, reducing the size of <B>stdscr</B> and the  vari-
-       able  <B>LINES</B>.  <B>curses</B> standardizes on eight labels of up to
+       that do not have soft labels, <STRONG>curses</STRONG> takes over the bottom
+       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
        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
        at  the  bottom  of  the screen, it doesn't try to use any
        hardware support for this mode.
 
        at  the  bottom  of  the screen, it doesn't try to use any
        hardware support for this mode.
 
-       The <B>slk_init</B> routine must  be  called  before  <B>initscr</B>  or
-       <B>newterm</B> is called.  If <B>initscr</B> eventually uses a line from
-       <B>stdscr</B> to emulate the soft labels, then <I>fmt</I> determines how
-       the  labels  are arranged on the screen.  Setting <I>fmt</I> to <B>0</B>
-       indicates a 3-2-3 arrangement of the labels, <B>1</B> indicates a
-       4-4 arrangement and <B>2</B> indicates the PC like 4-4-4 mode. If
-       <B>fmt</B> is set to <B>3</B>, it is again the PC like 4-4-4  mode,  but
+       The <STRONG>slk_init</STRONG> routine must  be  called  before  <STRONG>initscr</STRONG>  or
+       <STRONG>newterm</STRONG> is called.  If <STRONG>initscr</STRONG> eventually uses a line from
+       <STRONG>stdscr</STRONG> to emulate the soft labels, then <EM>fmt</EM> determines how
+       the  labels  are arranged on the screen.  Setting <EM>fmt</EM> to <STRONG>0</STRONG>
+       indicates a 3-2-3 arrangement of the labels, <STRONG>1</STRONG> indicates a
+       4-4 arrangement and <STRONG>2</STRONG> indicates the PC like 4-4-4 mode. If
+       <STRONG>fmt</STRONG> is set to <STRONG>3</STRONG>, it is again the PC like 4-4-4  mode,  but
        in  addition  an index line is generated, helping the user
        to identify the key numbers easily.
 
        in  addition  an index line is generated, helping the user
        to identify the key numbers easily.
 
-       The <B>slk_set</B> routine requires <I>labnum</I> to be a label  number,
-       from <B>1</B> to <B>8</B> (resp. <B>12</B>); <I>label</I> must be the string to be put
+       The <STRONG>slk_set</STRONG> routine requires <EM>labnum</EM> to be a label  number,
+       from <STRONG>1</STRONG> to <STRONG>8</STRONG> (resp. <STRONG>12</STRONG>); <EM>label</EM> must be the string to be put
        on the label, up  to  eight  (resp.  five)  characters  in
        length.   A  null string or a null pointer sets up a blank
        on the label, up  to  eight  (resp.  five)  characters  in
        length.   A  null string or a null pointer sets up a blank
-       label. <I>fmt</I> is either <B>0</B>, <B>1</B>, or <B>2</B>,  indicating  whether  the
+       label. <EM>fmt</EM> is either <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>,  indicating  whether  the
        label  is  to be left-justified, centered, or right-justi-
        fied, respectively, within the label.
 
        label  is  to be left-justified, centered, or right-justi-
        fied, respectively, within the label.
 
-       The <B>slk_refresh</B> and <B>slk_noutrefresh</B> routines correspond to
-       the <B>wrefresh</B> and <B>wnoutrefresh</B> routines.
+       The <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> routines correspond to
+       the <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> routines.
 
 
-       The  <B>slk_label</B> routine returns the current label for label
-       number <I>labnum</I>, with leading and trailing blanks  stripped.
+       The  <STRONG>slk_label</STRONG> routine returns the current label for label
+       number <EM>labnum</EM>, with leading and trailing blanks  stripped.
 
 
-       The  <B>slk_clear</B>  routine  clears  the  soft labels from the
+       The  <STRONG>slk_clear</STRONG>  routine  clears  the  soft labels from the
        screen.
 
        screen.
 
-       The <B>slk_restore</B> routine, restores the soft labels  to  the
-       screen after a <B>slk_clear</B> has been performed.
+       The <STRONG>slk_restore</STRONG> routine, restores the soft labels  to  the
+       screen after a <STRONG>slk_clear</STRONG> has been performed.
 
 
-       The  <B>slk_touch</B>  routine  forces  all the soft labels to be
-       output the next time a <B>slk_noutrefresh</B> is performed.
+       The  <STRONG>slk_touch</STRONG>  routine  forces  all the soft labels to be
+       output the next time a <STRONG>slk_noutrefresh</STRONG> is performed.
 
 
-       The <B>slk_attron</B>, <B>slk_attrset</B>, <B>slk_attroff</B> and <B>slk_attr</B> rou-
-       tines correspond to <B>attron</B>, <B>attrset</B>, <B>attroff</B> and <B>attr_get</B>.
+       The <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG> and <STRONG>slk_attr</STRONG> rou-
+       tines correspond to <STRONG>attron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>attroff</STRONG> and <STRONG>attr_get</STRONG>.
        They have an effect only if soft labels are  simulated  on
        the  bottom line of the screen.  The default highlight for
        soft keys is A_STANDOUT (as in System V curses, which does
        not document this fact).
 
        They have an effect only if soft labels are  simulated  on
        the  bottom line of the screen.  The default highlight for
        soft keys is A_STANDOUT (as in System V curses, which does
        not document this fact).
 
-       The  <B>slk_color</B> routine corresponds to <B>color_set</B>. It has an
+       The  <STRONG>slk_color</STRONG> routine corresponds to <STRONG>color_set</STRONG>. It has an
        effect only if soft labels are  simulated  on  the  bottom
        line of the screen.
 
        effect only if soft labels are  simulated  on  the  bottom
        line of the screen.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These routines return <B>ERR</B> upon failure and OK (SVr4 speci-
-       fies only "an integer value other than <B>ERR</B>") upon success-
-       ful  completion.  <B>slk_attr</B>  returns the attribute used for
+       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.
 
        the soft keys.
 
-       <B>slk_label</B> returns <B>NULL</B> on error.
+       <STRONG>slk_label</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Most applications would use <B>slk_noutrefresh</B> because a <B>wre-</B>
-       <B>fresh</B> is likely to follow soon.
+       Most applications would use <STRONG>slk_noutrefresh</STRONG> because a <STRONG>wre-</STRONG>
+       <STRONG>fresh</STRONG> is likely to follow soon.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The  XSI  Curses  standard, Issue 4, describes these func-
        tions.  It changes the argument  type  of  the  attribute-
 
 
 </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     <B>slk_attron</B>,    <B>slk_attroff</B>,
-       <B>slk_attrset</B> to be <B>attr_t</B>, and adds <B>const</B>  qualifiers.  The
-       format  codes  <B>2</B>  and  <B>3</B>  for  <B>slk_init()</B> and the function
-       <B>slk_attr</B> are specific to ncurses.
+       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.
 
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,        <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>,        <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>,
-       <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
+       <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>
 
 
 
 
 
 
index 21191777d9cc49c434ed022ca505535d81c69f66..dc35ff7c4f248631384ed2a40fc502804d644e77 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_termattrs.3x,v 1.8 2002/05/11 21:32:26 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_termattrs 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>
 <BODY>
+<H1>curs_termattrs 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>baudrate</B>,  <B>erasechar</B>,  <B>has_ic</B>, <B>has_il</B>, <B>killchar</B>, <B>longname</B>,
-       <B>termattrs</B>, <B>termname</B> - <B>curses</B> environment query routines
+       <STRONG>baudrate</STRONG>, <STRONG>erasechar</STRONG>, <STRONG>erasewchar</STRONG>, <STRONG>has_ic</STRONG>, <STRONG>has_il</STRONG>, <STRONG>killchar</STRONG>,
+       <STRONG>killwchar</STRONG>, <STRONG>longname</STRONG>,  <STRONG>term_attrs</STRONG>,  <STRONG>termattrs</STRONG>,  <STRONG>termname</STRONG>  -
+       <STRONG>curses</STRONG> environment query routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>baudrate(void);</B>
-       <B>char</B> <B>erasechar(void);</B>
-       <B>bool</B> <B>has_ic(void);</B>
-       <B>bool</B> <B>has_il(void);</B>
-       <B>char</B> <B>killchar(void);</B>
-       <B>char</B> <B>*longname(void);</B>
-       <B>attr_t</B> <B>termattrs(void);</B>
-       <B>char</B> <B>*termname(void);</B>
+       <STRONG>int</STRONG> <STRONG>baudrate(void);</STRONG>
+       <STRONG>char</STRONG> <STRONG>erasechar(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>erasewchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>ch</EM><STRONG>);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>has_ic(void);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>has_il(void);</STRONG>
+       <STRONG>char</STRONG> <STRONG>killchar(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>killwchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>ch</EM><STRONG>);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*longname(void);</STRONG>
+       <STRONG>attr_t</STRONG> <STRONG>term_attrs(void);</STRONG>
+       <STRONG>chtype</STRONG> <STRONG>termattrs(void);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*termname(void);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>baudrate</B> routine returns the output speed of the  ter-
-       minal.   The  number  returned  is in bits per second, for
-       example <B>9600</B>, and is an integer.
+       The  <STRONG>baudrate</STRONG> routine returns the output speed of the ter-
+       minal.  The number returned is in  bits  per  second,  for
+       example <STRONG>9600</STRONG>, and is an integer.
 
 
-       The <B>erasechar</B> routine returns  the  user's  current  erase
+       The  <STRONG>erasechar</STRONG>  routine  returns  the user's current erase
        character.
 
        character.
 
-       The <B>has_ic</B> routine is true if the terminal has insert- and
+       The <STRONG>erasewchar</STRONG> routine stores the current erase  character
+       in  the  location referenced by <EM>ch</EM>.  If no erase character
+       has been defined, the routine fails and the location  ref-
+       erenced by <EM>ch</EM> is not changed.
+
+       The <STRONG>has_ic</STRONG> routine is true if the terminal has insert- and
        delete- character capabilities.
 
        delete- character capabilities.
 
-       The <B>has_il</B> routine is true if the terminal has insert- and
+       The <STRONG>has_il</STRONG> routine is true if the terminal has insert- and
        delete-line  capabilities,  or  can  simulate  them  using
        scrolling regions.  This might be used to determine if  it
        would  be  appropriate to turn on physical scrolling using
        delete-line  capabilities,  or  can  simulate  them  using
        scrolling regions.  This might be used to determine if  it
        would  be  appropriate to turn on physical scrolling using
-       <B>scrollok</B>.
+       <STRONG>scrollok</STRONG>.
 
 
-       The <B>killchar</B> routine returns the user's current line  kill
+       The <STRONG>killchar</STRONG> routine returns the user's current line  kill
        character.
 
        character.
 
-       The  <B>longname</B>  routine  returns a pointer to a static area
-       containing a verbose description of the current  terminal.
+       The <STRONG>killwchar</STRONG> routine stores the current line-kill charac-
+       ter in the location referenced by  <EM>ch</EM>.   If  no  line-kill
+       character  has  been  defined,  the  routine fails and the
+       location referenced by <EM>ch</EM> is not changed.
+
+       The <STRONG>longname</STRONG> routine returns a pointer to  a  static  area
+       containing  a verbose description of the current terminal.
        The maximum length of a verbose description is 128 charac-
        The maximum length of a verbose description is 128 charac-
-       ters.  It is defined only after the  call  to  <B>initscr</B>  or
-       <B>newterm</B>.   The area is overwritten by each call to <B>newterm</B>
-       and is not restored by <B>set_term</B>, so the  value  should  be
-       saved  between calls to <B>newterm</B> if <B>longname</B> is going to be
+       ters.   It  is  defined  only after the call to <STRONG>initscr</STRONG> or
+       <STRONG>newterm</STRONG>.  The area is overwritten by each call to  <STRONG>newterm</STRONG>
+       and  is  not  restored by <STRONG>set_term</STRONG>, so the value should be
+       saved between calls to <STRONG>newterm</STRONG> if <STRONG>longname</STRONG> is going to  be
        used with multiple terminals.
 
        If a given terminal doesn't support a video attribute that
        used with multiple terminals.
 
        If a given terminal doesn't support a video attribute that
-       an  application  program is trying to use, <B>curses</B> may sub-
-       stitute a different video attribute for it.  The <B>termattrs</B>
-       function returns a logical <B>OR</B> of all video attributes sup-
-       ported by the terminal.  This information is useful when a
-       <B>curses</B>  program needs complete control over the appearance
+       an application program is trying to use, <STRONG>curses</STRONG>  may  sub-
+       stitute a different video attribute for it.  The <STRONG>termattrs</STRONG>
+       and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of all  video
+       attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> and <EM>WA</EM><STRONG>_</STRONG> con-
+       stants respectively.  This information is  useful  when  a
+       <STRONG>curses</STRONG>  program needs complete control over the appearance
        of the screen.
 
        of the screen.
 
-       The  <B>termname</B>   routine   returns   the   value   of   the
-       environmental  variable <B>TERM</B> (truncated to 14 characters).
+       The <STRONG>termname</STRONG> routine returns the value of the  environmen-
+       tal variable <STRONG>TERM</STRONG> (truncated to 14 characters).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>longname</B> and <B>termname</B> return <B>NULL</B> on error.
+       <STRONG>longname</STRONG> and <STRONG>termname</STRONG> return <STRONG>NULL</STRONG> on error.
 
 
-       Routines that return an integer return  <B>ERR</B>  upon  failure
-       and  <B>OK</B>  (SVr4 only specifies "an integer value other than
-       <B>ERR</B>") upon successful completion.
+       Routines  that  return  an integer return <STRONG>ERR</STRONG> upon failure
+       and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value  other  than
+       <STRONG>ERR</STRONG>") upon successful completion.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that <B>termattrs</B> may be a macro.
+       Note that <STRONG>termattrs</STRONG> may be a macro.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses standard, Issue  4  describes  these  func-
-       tions.  It changes the return type of <B>termattrs</B> to the new
-       type <B>attr_t</B>.
+       The  XSI  Curses  standard,  Issue 4 describes these func-
+       tions.  It changes the return type of <STRONG>termattrs</STRONG> to the new
+       type <STRONG>attr_t</STRONG>.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+       <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>
 
 
 
 
 
 
index a301dd18f7537026caf8a882d77fec9224e13fd4..f510812b7f29a254c4434e85a61ec7ccdc45178b 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_termcap.3x,v 1.16 2002/02/16 19:26:41 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_termcap 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>
 <BODY>
+<H1>curs_termcap 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>tgetent</B>, <B>tgetflag</B>, <B>tgetnum</B>, <B>tgetstr</B>, <B>tgoto</B>, <B>tputs</B> - direct
-       <B>curses</B> interface to the terminfo capability database
+       <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, <STRONG>tgetstr</STRONG>, <STRONG>tgoto</STRONG>, <STRONG>tputs</STRONG> - direct
+       <STRONG>curses</STRONG> interface to the terminfo capability database
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>#include</B> <B>&lt;term.h&gt;</B>
-       <B>int</B> <B>tgetent(const</B> <B>char</B> <B>*bp,</B> <B>char</B> <B>*name);</B>
-       <B>int</B> <B>tgetflag(const</B> <B>char</B> <B>*id);</B>
-       <B>int</B> <B>tgetnum(const</B> <B>char</B> <B>*id);</B>
-       <B>char</B> <B>*tgetstr(const</B> <B>char</B> <B>*id,</B> <B>char</B> <B>**area);</B>
-       <B>char</B> <B>*tgoto(const</B> <B>char</B> <B>*cap,</B> <B>int</B> <B>col,</B> <B>int</B> <B>row);</B>
-       <B>int</B> <B>tputs(const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>affcnt,</B> <B>int</B> <B>(*putc)(int));</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>
+       <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>PC;</STRONG> <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>UP;</STRONG> <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>BC;</STRONG> <STRONG>extern</STRONG>
+       <STRONG>short</STRONG> <STRONG>ospeed;</STRONG>
+       <STRONG>int</STRONG> <STRONG>tgetent(char</STRONG> <STRONG>*bp,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*name);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tgetflag(char</STRONG> <STRONG>*id);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tgetnum(char</STRONG> <STRONG>*id);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*tgetstr(char</STRONG> <STRONG>*id,</STRONG> <STRONG>char</STRONG> <STRONG>**area);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*tgoto(const</STRONG> <STRONG>char</STRONG> <STRONG>*cap,</STRONG> <STRONG>int</STRONG> <STRONG>col,</STRONG> <STRONG>int</STRONG> <STRONG>row);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>affcnt,</STRONG> <STRONG>int</STRONG> <STRONG>(*putc)(int));</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These routines are included as a conversion aid  for  pro-
-       grams  that use the <I>termcap</I> library.  Their parameters are
-       the same and the routines are emulated using the  <I>terminfo</I>
-       database.   Thus, they can only be used to query the capa-
-       bilities of entries for which a terminfo  entry  has  been
+       These  routines  are included as a conversion aid for pro-
+       grams that use the <EM>termcap</EM> library.  Their parameters  are
+       the  same and the routines are emulated using the <EM>terminfo</EM>
+       database.  Thus, they can only be used to query the  capa-
+       bilities  of  entries  for which a terminfo entry has been
        compiled.
 
        compiled.
 
-       The  <B>tgetent</B> routine loads the entry for <I>name</I>.  It returns
-       1 on success, 0 if there is no such entry, and -1  if  the
-       terminfo  database  could  not  be  found.   The emulation
-       ignores the buffer pointer <I>bp</I>.
+       The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>.  It  returns
+       1  on  success, 0 if there is no such entry, and -1 if the
+       terminfo database  could  not  be  found.   The  emulation
+       ignores the buffer pointer <EM>bp</EM>.
 
 
-       The <B>tgetflag</B> routine gets the boolean  entry  for  <I>id</I>,  or
+       The  <STRONG>tgetflag</STRONG>  routine  gets  the boolean entry for <EM>id</EM>, or
        zero if it is not available.
 
        zero if it is not available.
 
-       The  <B>tgetnum</B>  routine gets the numeric entry for <I>id</I>, or -1
+       The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>,  or  -1
        if it is not available.
 
        if it is not available.
 
-       The <B>tgetstr</B> routine returns the string entry  for  <I>id</I>,  or
-       zero  if  it  is  not  available.  Use <B>tputs</B> to output the
-       returned string.  The return value will also be copied  to
-       the  buffer pointed to by <I>area</I>, and the <I>area</I> value will be
+       The  <STRONG>tgetstr</STRONG>  routine  returns the string entry for <EM>id</EM>, or
+       zero if it is not available.   Use  <STRONG>tputs</STRONG>  to  output  the
+       returned  string.  The return value will also be copied to
+       the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will  be
        updated to point past the null ending this value.
 
        updated to point past the null ending this value.
 
-       The <B>tgoto</B> routine instantiates  the  parameters  into  the
+       Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG>
+       <STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups.
+
+       The <STRONG>tgoto</STRONG> routine instantiates  the  parameters  into  the
        given  capability.   The output from this routine is to be
        given  capability.   The output from this routine is to be
-       passed to <B>tputs</B>.
+       passed to <STRONG>tputs</STRONG>.
 
 
-       The <B>tputs</B> routine is described  on  the  <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
+       The <STRONG>tputs</STRONG> routine is described  on  the  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
        manual page.  It can retrieve capabilities by either term-
        cap or terminfo name.
 
        manual page.  It can retrieve capabilities by either term-
        cap or terminfo name.
 
+       The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the ter-
+       minfo   entry's   data   for   <STRONG>pad_char</STRONG>,   <STRONG>cursor_up</STRONG>   and
+       <STRONG>backspace_if_not_bs</STRONG>, respectively.   <STRONG>UP</STRONG>  is  not  used  by
+       ncurses.  <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function.  <STRONG>BC</STRONG> is
+       used in the <STRONG>tgoto</STRONG> emulation.  The variable <STRONG>ospeed</STRONG>  is  set
+       by ncurses in a system-specific coding to reflect the ter-
+       minal speed.
+
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        Except where explicitly noted,  routines  that  return  an
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        Except where explicitly noted,  routines  that  return  an
-       integer  return  <B>ERR</B> upon failure and <B>OK</B> (SVr4 only speci-
-       fies "an integer value other than  <B>ERR</B>")  upon  successful
+       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.
 
        completion.
 
-       Routines that return pointers return <B>NULL</B> on error.
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       If you call <B>tgetstr</B> to fetch <B>ca</B> or any other parameterized
+       If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized
        string, be aware that it  will  be  returned  in  terminfo
        notation,  not  the older and not-quite-compatible termcap
        notation.  This won't cause problems if all you do with it
        string, be aware that it  will  be  returned  in  terminfo
        notation,  not  the older and not-quite-compatible termcap
        notation.  This won't cause problems if all you do with it
-       is  call <B>tgoto</B> or <B>tparm</B>, which both expand terminfo-style.
+       is  call  <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-style
+       strings as terminfo.  (The <STRONG>tgoto</STRONG> function,  if  configured
+       to  support  termcap,  will  check if the string is indeed
+       terminfo-style by looking for "%p" parameters  or  "$&lt;..&gt;"
+       delays,  and  invoke  a termcap-style parser if the string
+       does not appear to be terminfo).
 
        Because terminfo conventions for representing  padding  in
 
        Because terminfo conventions for representing  padding  in
-       string  capabilities  differ  from termcap's, <B>tputs("50");</B>
+       string  capabilities  differ  from termcap's, <STRONG>tputs("50");</STRONG>
        will put out a literal "50" rather than  busy-waiting  for
        50 milliseconds.  Cope with it.
 
        will put out a literal "50" rather than  busy-waiting  for
        50 milliseconds.  Cope with it.
 
        be removed in future versions.
 
        Neither  the  XSI  Curses  standard nor the SVr4 man pages
        be removed in future versions.
 
        Neither  the  XSI  Curses  standard nor the SVr4 man pages
-       documented the return values of <B>tgetent</B> correctly,  though
-       all three were in fact returned ever since SVr1.
+       documented the return values of <STRONG>tgetent</STRONG> correctly,  though
+       all  three were in fact returned ever since SVr1.  In par-
+       ticular, an omission in the XSI Curses  documentation  has
+       been  misinterpreted  to  mean  that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
+       <STRONG>ERR</STRONG>.  Because the purpose of these functions is to provide
+       compatibility  with  the <EM>termcap</EM> library, that is a defect
+       in XCurses, Issue 4, Version 2 rather than in ncurses.
+
+       External variables are provided  for  support  of  certain
+       termcap  applications.  However, termcap applications' use
+       of those variables is poorly documented, e.g., not distin-
+       guishing  between  input  and output.  In particular, some
+       applications are reported to declare and/or modify <STRONG>ospeed</STRONG>.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>, <B><A HREF="putc.3S.html">putc(3S)</A></B>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
 </PRE>
 <HR>
 <ADDRESS>
 </PRE>
 <HR>
 <ADDRESS>
index 8a53cbca02647006654e829d041d1a128a7e1542..4163fbb781f651839b57f4ac67088b8d811a62b0 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_terminfo.3x,v 1.16 2002/07/20 16:05:19 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_terminfo 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>
 <BODY>
+<H1>curs_terminfo 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>setupterm</B>, <B>setterm</B>, <B>set_curterm</B>, <B>del_curterm</B>, <B>restartterm</B>,
-       <B>tparm</B>, <B>tputs</B>, <B>putp</B>, <B>vidputs</B>,  <B>vidattr</B>,  <B>mvcur</B>,  <B>tigetflag</B>,
-       <B>tigetnum</B>,   <B>tigetstr</B>   -  <B>curses</B>  interfaces  to  terminfo
-       database
+       <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>
+       interfaces to terminfo database
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>#include</B> <B>&lt;term.h&gt;</B>
-
-       <B>int</B> <B>setupterm(const</B> <B>char</B> <B>*term,</B> <B>int</B> <B>fildes,</B> <B>int</B> <B>*errret);</B>
-       <B>int</B> <B>setterm(const</B> <B>char</B> <B>*term);</B>
-       <B>TERMINAL</B> <B>*set_curterm(TERMINAL</B> <B>*nterm);</B>
-       <B>int</B> <B>del_curterm(TERMINAL</B> <B>*oterm);</B>
-       <B>int</B>  <B>restartterm(const</B>  <B>char</B>  <B>*term,</B>   <B>int</B>   <B>fildes,</B>   <B>int</B>
-       <B>*errret);</B>
-       <B>char</B> <B>*tparm(const</B> <B>char</B> <B>*str,</B> <B>...);</B>
-       <B>int</B> <B>tputs(const</B> <B>char</B> <B>*str,</B> <B>int</B> <B>affcnt,</B> <B>int</B> <B>(*putc)(int));</B>
-       <B>int</B> <B>putp(const</B> <B>char</B> <B>*str);</B>
-       <B>int</B> <B>vidputs(chtype</B> <B>attrs,</B> <B>int</B> <B>(*putc)(char));</B>
-       <B>int</B> <B>vidattr(chtype</B> <B>attrs);</B>
-       <B>int</B> <B>mvcur(int</B> <B>oldrow,</B> <B>int</B> <B>oldcol,</B> <B>int</B> <B>newrow,</B> <B>int</B> <B>newcol);</B>
-       <B>int</B> <B>tigetflag(const</B> <B>char</B> <B>*capname);</B>
-       <B>int</B> <B>tigetnum(const</B> <B>char</B> <B>*capname);</B>
-       <B>char</B> <B>*tigetstr(const</B> <B>char</B> <B>*capname);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>
+
+       <STRONG>int</STRONG> <STRONG>setupterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>setterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>);</STRONG>
+       <STRONG>TERMINAL</STRONG> <STRONG>*set_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>nterm</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>del_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>oterm</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>restartterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*tparm(char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
+       <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vidputs(chtype</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
+       <STRONG>int</STRONG> <STRONG>vidattr(chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(char));</STRONG>
+       <STRONG>int</STRONG> <STRONG>vid_attr(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM>, int <EM>newcol</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tigetflag(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>tigetnum(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*tigetstr(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These low-level routines must be called by  programs  that
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        These low-level routines must be called by  programs  that
-       have to deal directly with the <B>terminfo</B> database to handle
+       have to deal directly with the <STRONG>terminfo</STRONG> database to handle
        certain terminal capabilities, such as  programming  func-
        certain terminal capabilities, such as  programming  func-
-       tion  keys.   For all other functionality, <B>curses</B> routines
+       tion  keys.   For all other functionality, <STRONG>curses</STRONG> routines
        are more suitable and their use is recommended.
 
        are more suitable and their use is recommended.
 
-       Initially,  <B>setupterm</B>  should  be   called.    Note   that
-       <B>setupterm</B>  is automatically called by <B>initscr</B> and <B>newterm</B>.
+       Initially,  <STRONG>setupterm</STRONG>  should  be   called.    Note   that
+       <STRONG>setupterm</STRONG>  is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>.
        This  defines  the  set  of  terminal-dependent  variables
        This  defines  the  set  of  terminal-dependent  variables
-       [listed in <B><A HREF="terminfo.5.html">terminfo(5)</A></B>].  The <B>terminfo</B> variables <B>lines</B> and
-       <B>columns</B>  are  initialized  by  <B>setupterm</B>  as  follows:  If
-       <B>use_env(FALSE)</B>  has  been  called,  values  for  <B>lines</B> and
-       <B>columns</B> specified in <B>terminfo</B> are used.  Otherwise, if the
-       environment  variables <B>LINES</B> and <B>COLUMNS</B> exist, their val-
+       [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
+       <STRONG>use_env(FALSE)</STRONG>  has  been  called,  values  for  <STRONG>lines</STRONG> and
+       <STRONG>columns</STRONG> specified in <STRONG>terminfo</STRONG> are used.  Otherwise, if the
+       environment  variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> exist, their val-
        ues are used.  If these environment variables do not exist
        and the program is running in a window, the current window
        size is used.  Otherwise, if the environment variables  do
        ues are used.  If these environment variables do not exist
        and the program is running in a window, the current window
        size is used.  Otherwise, if the environment variables  do
-       not  exist,  the values for <B>lines</B> and <B>columns</B> specified in
-       the <B>terminfo</B> database are used.
+       not  exist,  the values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in
+       the <STRONG>terminfo</STRONG> database are used.
 
 
-       The header files <B>curses.h</B> and <B>term.h</B>  should  be  included
+       The header files <STRONG>curses.h</STRONG> and <STRONG>term.h</STRONG>  should  be  included
        (in  this order) to get the definitions for these strings,
        numbers,  and  flags.   Parameterized  strings  should  be
        (in  this order) to get the definitions for these strings,
        numbers,  and  flags.   Parameterized  strings  should  be
-       passed  through  <B>tparm</B>  to instantiate them.  All <B>terminfo</B>
-       strings [including the output of <B>tparm</B>] should be  printed
-       with  <B>tputs</B> or <B>putp</B>.  Call the <B>reset_shell_mode</B> to restore
-       the  tty  modes  before  exiting  [see   <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>].
-       Programs   which   use  cursor  addressing  should  output
-       <B>enter_ca_mode</B> upon startup and should output  <B>exit_ca_mode</B>
+       passed  through  <STRONG>tparm</STRONG>  to instantiate them.  All <STRONG>terminfo</STRONG>
+       strings [including the output of <STRONG>tparm</STRONG>] should be  printed
+       with  <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>.  Call the <STRONG>reset_shell_mode</STRONG> to restore
+       the tty modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>].   Pro-
+       grams   which   use   cursor   addressing   should  output
+       <STRONG>enter_ca_mode</STRONG> upon startup and should output  <STRONG>exit_ca_mode</STRONG>
        before  exiting.   Programs  desiring shell escapes should
        call
 
        before  exiting.   Programs  desiring shell escapes should
        call
 
-       <B>reset_shell_mode</B> and output <B>exit_ca_mode</B> before the  shell
-       is   called  and  should  output  <B>enter_ca_mode</B>  and  call
-       <B>reset_prog_mode</B> after returning from the shell.
-
-       The <B>setupterm</B> routine reads in the <B>terminfo</B> database, ini-
-       tializing the <B>terminfo</B> structures, but does not set up the
-       output virtualization structures used by <B>curses</B>.  The ter-
-       minal  type is the character string <I>term</I>; if <I>term</I> is null,
-       the environment variable <B>TERM</B> is used.  All output  is  to
-       file  descriptor  <B>fildes</B>  which is initialized for output.
-       If <I>errret</I> is not null, then <B>setupterm</B> returns  <B>OK</B>  or  <B>ERR</B>
+       <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.
+
+       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
+       output virtualization structures used by <STRONG>curses</STRONG>.  The ter-
+       minal  type is the character string <EM>term</EM>; if <EM>term</EM> is null,
+       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
        and  stores  a  status  value in the integer pointed to by
-       <I>errret</I>.  A return value of <B>OK</B> combined with status of <B>1</B> in
-       <I>errret</I> is normal.  If <B>ERR</B> is returned, examine <I>errret</I>:
+       <EM>errret</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>:
 
 
-              <B>1</B>    means that the terminal is hardcopy, cannot be
+              <STRONG>1</STRONG>    means that the terminal is hardcopy, cannot be
                    used for curses applications.
 
                    used for curses applications.
 
-              <B>0</B>    means that the terminal could not be found, or
+              <STRONG>0</STRONG>    means that the terminal could not be found, or
                    that  it  is a generic type, having too little
                    information for curses applications to run.
 
                    that  it  is a generic type, having too little
                    information for curses applications to run.
 
-              <B>-1</B>   means that the <B>terminfo</B> database could not  be
+              <STRONG>-1</STRONG>   means that the <STRONG>terminfo</STRONG> database could not  be
                    found.
 
                    found.
 
-       If  <I>errret</I> is null, <B>setupterm</B> prints an error message upon
+       If  <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon
        finding an error and exits.  Thus, the simplest call is:
 
        finding an error and exits.  Thus, the simplest call is:
 
-             <B>setupterm((char</B> <B>*)0,</B> <B>1,</B> <B>(int</B> <B>*)0);</B>,
+             <STRONG>setupterm((char</STRONG> <STRONG>*)0,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0);</STRONG>,
 
 
-       which uses all the defaults and sends the output  to  <B>std-</B>
-       <B>out</B>.
+       which uses all the defaults and sends the output  to  <STRONG>std-</STRONG>
+       <STRONG>out</STRONG>.
 
 
-       The  <B>setterm</B>  routine is being replaced by <B>setupterm</B>.  The
+       The  <STRONG>setterm</STRONG>  routine is being replaced by <STRONG>setupterm</STRONG>.  The
        call:
 
        call:
 
-             <B>setupterm(</B><I>term</I><B>,</B> <B>1,</B> <B>(int</B> <B>*)0)</B>
+             <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
 
 
-       provides the same  functionality  as  <B>setterm(</B><I>term</I><B>)</B>.   The
-       <B>setterm</B>  routine  is  included here for BSD compatibility,
+       provides the same  functionality  as  <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>.   The
+       <STRONG>setterm</STRONG>  routine  is  included here for BSD compatibility,
        and is not recommended for new programs.
 
        and is not recommended for new programs.
 
-       The <B>set_curterm</B> routine  sets  the  variable  <B>cur_term</B>  to
-       <I>nterm</I>, and makes all of the <B>terminfo</B> boolean, numeric, and
-       string variables use the values from  <I>nterm</I>.   It  returns
-       the old value of <B>cur_term</B>.
+       The <STRONG>set_curterm</STRONG> routine  sets  the  variable  <STRONG>cur_term</STRONG>  to
+       <EM>nterm</EM>, and makes all of the <STRONG>terminfo</STRONG> boolean, numeric, and
+       string variables use the values from  <EM>nterm</EM>.   It  returns
+       the old value of <STRONG>cur_term</STRONG>.
 
 
-       The  <B>del_curterm</B>  routine  frees  the  space pointed to by
-       <I>oterm</I> and makes it available for further use.  If <I>oterm</I> is
-       the  same  as  <B>cur_term</B>, references to any of the <B>terminfo</B>
+       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
        boolean, numeric,  and  string  variables  thereafter  may
-       refer  to invalid memory locations until another <B>setupterm</B>
+       refer  to invalid memory locations until another <STRONG>setupterm</STRONG>
        has been called.
 
        has been called.
 
-       The  <B>restartterm</B>  routine  is  similar  to  <B>setupterm</B>  and
-       <B>initscr</B>,  except  that it is called after restoring memory
+       The  <STRONG>restartterm</STRONG>  routine  is  similar  to  <STRONG>setupterm</STRONG>  and
+       <STRONG>initscr</STRONG>,  except  that it is called after restoring memory
        to a previous state (for example, when  reloading  a  game
        saved  as a core image dump).  It assumes that the windows
        and the input and output options are the same as when mem-
        to a previous state (for example, when  reloading  a  game
        saved  as a core image dump).  It assumes that the windows
        and the input and output options are the same as when mem-
        different.  Accordingly, it saves various tty state  bits,
        does a setupterm, and then restores the bits.
 
        different.  Accordingly, it saves various tty state  bits,
        does a setupterm, and then restores the bits.
 
-       The <B>tparm</B> routine instantiates the string <I>str</I> with parame-
-       ters <I>pi</I>.  A pointer is returned to the result of <I>str</I>  with
+       The <STRONG>tparm</STRONG> routine instantiates the string <EM>str</EM> with parame-
+       ters <EM>pi</EM>.  A pointer is returned to the result of <EM>str</EM>  with
        the parameters applied.
 
        the parameters applied.
 
-       The  <B>tputs</B>  routine  applies  padding  information  to the
-       string <I>str</I> and outputs it.  The <I>str</I>  must  be  a  terminfo
-       string  variable  or the return value from <B>tparm</B>, <B>tgetstr</B>,
-       or <B>tgoto</B>.  <I>affcnt</I> is the number of lines affected, or 1 if
-       not  applicable.   <I>putc</I> is a <B>putchar</B>-like routine to which
+       The  <STRONG>tputs</STRONG>  routine  applies  padding  information  to the
+       string <EM>str</EM> and outputs it.  The <EM>str</EM>  must  be  a  terminfo
+       string  variable  or the return value from <STRONG>tparm</STRONG>, <STRONG>tgetstr</STRONG>,
+       or <STRONG>tgoto</STRONG>.  <EM>affcnt</EM> is the number of lines affected, or 1 if
+       not  applicable.   <EM>putc</EM> is a <STRONG>putchar</STRONG>-like routine to which
        the characters are passed, one at a time.
 
        the characters are passed, one at a time.
 
-       The <B>putp</B> routine calls <B>tputs(</B><I>str</I><B>,</B> <B>1,</B> <B>putchar)</B>.  Note  that
-       the  output  of  <B>putp</B>  always  goes  to <B>stdout</B>, not to the
-       <I>fildes</I> specified in <B>setupterm</B>.
-
-       The <B>vidputs</B> routine displays the string on the terminal in
-       the  video  attribute mode <I>attrs</I>, which is any combination
-       of the attributes listed in  <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.   The  characters
-       are passed to the <B>putchar</B>-like routine <I>putc</I>.
-
-       The  <B>vidattr</B>  routine  is like the <B>vidputs</B> routine, except
-       that it outputs through <B>putchar</B>.
-
-       The <B>mvcur</B> routine provides low-level  cursor  motion.   It
+       The <STRONG>putp</STRONG> routine calls <STRONG>tputs(</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>putchar)</STRONG>.  Note  that
+       the  output  of  <STRONG>putp</STRONG>  always  goes  to <STRONG>stdout</STRONG>, not to the
+       <EM>fildes</EM> specified in <STRONG>setupterm</STRONG>.
+
+       The <STRONG>vidputs</STRONG> routine displays the string on the terminal in
+       the  video  attribute mode <EM>attrs</EM>, which is any combination
+       of the attributes listed in  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.   The  characters
+       are passed to the <STRONG>putchar</STRONG>-like routine <EM>putc</EM>.
+
+       The  <STRONG>vidattr</STRONG>  routine  is like the <STRONG>vidputs</STRONG> routine, except
+       that it outputs through <STRONG>putchar</STRONG>.
+
+       The <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> routines correspond  to  vidattr
+       and  vidputs,  respectively.   They use a set of arguments
+       for representing the video attributes  plus  color,  i.e.,
+       one of type attr_t for the attributes and one of short for
+       the color_pair number.  The <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> routines
+       are  designed  to use the attribute constants with the <EM>WA</EM><STRONG>_</STRONG>
+       prefix.  The opts argument is  reserved  for  future  use.
+       Currently,  applications  must  provide a null pointer for
+       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
        refresh).
 
-       The <B>tigetflag</B>, <B>tigetnum</B> and <B>tigetstr</B> routines  return  the
-       value of the capability corresponding to the <B>terminfo</B> <I>cap-</I>
-       <I>name</I> passed to them, such as <B>xenl</B>.
+       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>capname</EM> passed to them, such as <STRONG>xenl</STRONG>.
 
 
-       The <B>tigetflag</B> routine returns the value <B>-1</B> if  <I>capname</I>  is
-       not a boolean capability, or <B>0</B> if it is canceled or absent
+       The <STRONG>tigetflag</STRONG> routine returns the value <STRONG>-1</STRONG> if  <EM>capname</EM>  is
+       not a boolean capability, or <STRONG>0</STRONG> if it is canceled or absent
        from the terminal description.
 
        from the terminal description.
 
-       The <B>tigetnum</B> routine returns the value <B>-2</B>  if  <I>capname</I>  is
-       not  a  numeric  capability,  or  <B>-1</B>  if it is canceled or
+       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.
 
        absent from the terminal description.
 
-       The <B>tigetstr</B> routine  returns  the  value  <B>(char</B>  <B>*)-1</B>  if
-       <I>capname</I> is not a string capability, or <B>0</B> if it is canceled
-       or absent from the terminal description.
+       The <STRONG>tigetstr</STRONG> routine returns the value <STRONG>(char</STRONG> <STRONG>*)-1</STRONG> if  <EM>cap-</EM>
+       <EM>name</EM> is not a string capability, or <STRONG>0</STRONG> if it is canceled or
+       absent from the terminal description.
 
 
-       The <I>capname</I> for each capability is given in the table col-
-       umn  entitled  <I>capname</I> code in the capabilities section of
-       <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
+       The <EM>capname</EM> for each capability is given in the table col-
+       umn  entitled  <EM>capname</EM> code in the capabilities section of
+       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
-       <B>char</B> <B>*boolnames</B>, <B>*boolcodes</B>, <B>*boolfnames</B>
+       <STRONG>char</STRONG> <STRONG>*boolnames</STRONG>, <STRONG>*boolcodes</STRONG>, <STRONG>*boolfnames</STRONG>
 
 
-       <B>char</B> <B>*numnames</B>, <B>*numcodes</B>, <B>*numfnames</B>
+       <STRONG>char</STRONG> <STRONG>*numnames</STRONG>, <STRONG>*numcodes</STRONG>, <STRONG>*numfnames</STRONG>
 
 
-       <B>char</B> <B>*strnames</B>, <B>*strcodes</B>, <B>*strfnames</B>
+       <STRONG>char</STRONG> <STRONG>*strnames</STRONG>, <STRONG>*strcodes</STRONG>, <STRONG>*strfnames</STRONG>
 
 
-       These null-terminated arrays  contain  the  <I>capnames</I>,  the
-       <B>termcap</B>  codes, and the full C names, for each of the <B>ter-</B>
-       <B>minfo</B> variables.
+       These null-terminated arrays  contain  the  <EM>capnames</EM>,  the
+       <STRONG>termcap</STRONG>  codes, and the full C names, for each of the <STRONG>ter-</STRONG>
+       <STRONG>minfo</STRONG> variables.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer return  <B>ERR</B>  upon  failure
-       and  <B>OK</B>  (SVr4 only specifies "an integer value other than
-       <B>ERR</B>") upon successful completion, unless  otherwise  noted
+       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, unless  otherwise  noted
        in the preceding routine descriptions.
 
        in the preceding routine descriptions.
 
-       Routines that return pointers always return <B>NULL</B> on error.
+       Routines that return pointers always return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The <B>setupterm</B> routine should be used in place of  <B>setterm</B>.
+       The <STRONG>setupterm</STRONG> routine should be used in place of  <STRONG>setterm</STRONG>.
        It  may be useful when you want to test for terminal capa-
        bilities without committing to the allocation  of  storage
        It  may be useful when you want to test for terminal capa-
        bilities without committing to the allocation  of  storage
-       involved in <B>initscr</B>.
+       involved in <STRONG>initscr</STRONG>.
 
 
-       Note that <B>vidattr</B> and <B>vidputs</B> may be macros.
+       Note that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  function  <B>setterm</B>  is not described in the XSI Curses
+       The  function  <STRONG>setterm</STRONG>  is not described in the XSI Curses
        standard and must be considered non-portable.   All  other
        functions are as described in the XSI curses standard.
 
        standard and must be considered non-portable.   All  other
        functions are as described in the XSI curses standard.
 
-       In  System V Release 4, <B>set_curterm</B> has an <B>int</B> return type
-       and returns <B>OK</B> or <B>ERR</B>.  We have chosen  to  implement  the
+       In  System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type
+       and returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>.  We have chosen  to  implement  the
        XSI Curses semantics.
 
        XSI Curses semantics.
 
-       In System V Release 4, the third argument of <B>tputs</B> has the
-       type <B>int</B> <B>(*putc)(char)</B>.
-
-       The XSI Curses standard prototypes <B>tparm</B> with a fixed num-
-       ber of parameters, rather than a variable argument list.
-
-       XSI  notes  that after calling <B>mvcur</B>, the curses state may
-       not match the actual terminal state, and that an  applica-
-       tion  should  touch and refresh the window before resuming
-       normal curses calls.  Both ncurses and System V Release  4
-       curses  implement <B>mvcur</B> using the SCREEN data allocated in
-       either <B>initscr</B> or <B>newterm</B>.  So though it is documented  as
-       a  terminfo  function,  <B>mvcur</B>  is really a curses function
+       In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the
+       type <STRONG>int</STRONG> <STRONG>(*putc)(char)</STRONG>.
+
+       The XSI Curses standard prototypes <STRONG>tparm</STRONG> with a fixed num-
+       ber  of  parameters, rather than a variable argument list.
+       This  implementation  uses  a  variable   argument   list.
+       Portable  applications  should  provide 9 parameters after
+       the format; zeroes are fine for this purpose.
+
+       XSI notes that after calling <STRONG>mvcur</STRONG>, the curses  state  may
+       not  match the actual terminal state, and that an applica-
+       tion should touch and refresh the window  before  resuming
+       normal  curses calls.  Both ncurses and System V Release 4
+       curses implement <STRONG>mvcur</STRONG> using the SCREEN data allocated  in
+       either  <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.  So though it is documented as
+       a terminfo function, <STRONG>mvcur</STRONG> is  really  a  curses  function
        which is not well specified.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        which is not well specified.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>,  <B>curs_term-</B>
-       <B><A HREF="cap.3x.html">cap(3x)</A></B>, <B><A HREF="putc.3S.html">putc(3S)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG>
+       <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
 
 
index 198fc85237c13a95ea7959c0374a81d7223e9f2b..eec4c7a19971a890d3f1c2aac550cea1a0bd0c40 100644 (file)
@@ -1,55 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_touch 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>
 <BODY>
+<H1>curs_touch 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>touchwin</B>, <B>touchline</B>, <B>untouchwin</B>, <B>wtouchln</B>, <B>is_linetouched</B>,
-       <B>is_wintouched</B> - <B>curses</B> refresh control routines
+       <STRONG>touchwin</STRONG>, <STRONG>touchline</STRONG>, <STRONG>untouchwin</STRONG>, <STRONG>wtouchln</STRONG>, <STRONG>is_linetouched</STRONG>,
+       <STRONG>is_wintouched</STRONG> - <STRONG>curses</STRONG> refresh control routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>int</B> <B>touchwin(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>touchline(WINDOW</B> <B>*win,</B> <B>int</B> <B>start,</B> <B>int</B> <B>count);</B>
-       <B>int</B> <B>untouchwin(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>wtouchln(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>n,</B> <B>int</B> <B>changed);</B>
-       <B>bool</B> <B>is_linetouched(WINDOW</B> <B>*win,</B> <B>int</B> <B>line);</B>
-       <B>bool</B> <B>is_wintouched(WINDOW</B> <B>*win);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+       <STRONG>int</STRONG> <STRONG>touchwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>touchline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>start,</STRONG> <STRONG>int</STRONG> <STRONG>count);</STRONG>
+       <STRONG>int</STRONG> <STRONG>untouchwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>wtouchln(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>n,</STRONG> <STRONG>int</STRONG> <STRONG>changed);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>is_linetouched(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>line);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>is_wintouched(WINDOW</STRONG> <STRONG>*win);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>touchwin</B> and <B>touchline</B> routines throw away  all  opti-
+       The <STRONG>touchwin</STRONG> and <STRONG>touchline</STRONG> routines throw away  all  opti-
        mization  information about which parts of the window have
        been touched, by pretending that  the  entire  window  has
        been  drawn  on.   This  is sometimes necessary when using
        overlapping windows, since a change to one window  affects
        the other window, but the records of which lines have been
        changed in the other window do  not  reflect  the  change.
        mization  information about which parts of the window have
        been touched, by pretending that  the  entire  window  has
        been  drawn  on.   This  is sometimes necessary when using
        overlapping windows, since a change to one window  affects
        the other window, but the records of which lines have been
        changed in the other window do  not  reflect  the  change.
-       The  routine <B>touchline</B> only pretends that <I>count</I> lines have
-       been changed, beginning with line <I>start</I>.
+       The  routine <STRONG>touchline</STRONG> only pretends that <EM>count</EM> lines have
+       been changed, beginning with line <EM>start</EM>.
 
 
-       The <B>untouchwin</B> routine marks all lines in  the  window  as
-       unchanged since the last call to <B>wrefresh</B>.
+       The <STRONG>untouchwin</STRONG> routine marks all lines in  the  window  as
+       unchanged since the last call to <STRONG>wrefresh</STRONG>.
 
 
-       The <B>wtouchln</B> routine makes <I>n</I> lines in the window, starting
-       at line <I>y</I>, look as if they have (<I>changed</I><B>=1</B>)  or  have  not
-       (<I>changed</I><B>=0</B>)  been changed since the last call to <B>wrefresh</B>.
+       The <STRONG>wtouchln</STRONG> routine makes <EM>n</EM> lines in the window, starting
+       at line <EM>y</EM>, look as if they have (<EM>changed</EM><STRONG>=1</STRONG>)  or  have  not
+       (<EM>changed</EM><STRONG>=0</STRONG>)  been changed since the last call to <STRONG>wrefresh</STRONG>.
 
 
-       The <B>is_linetouched</B> and <B>is_wintouched</B> routines return  <B>TRUE</B>
+       The <STRONG>is_linetouched</STRONG> and <STRONG>is_wintouched</STRONG> routines return  <STRONG>TRUE</STRONG>
        if  the  specified line/window was modified since the last
        if  the  specified line/window was modified since the last
-       call to <B>wrefresh</B>; otherwise they return <B>FALSE</B>.   In  addi-
-       tion,  <B>is_linetouched</B> returns <B>ERR</B> if <I>line</I> is not valid for
+       call to <STRONG>wrefresh</STRONG>; otherwise they return <STRONG>FALSE</STRONG>.   In  addi-
+       tion,  <STRONG>is_linetouched</STRONG> returns <STRONG>ERR</STRONG> if <EM>line</EM> is not valid for
        the given window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        the given window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer <B>ERR</B> upon  failure  and  an
-       integer  value  other than <B>ERR</B> upon successful completion,
+       All routines return the integer <STRONG>ERR</STRONG> upon  failure  and  an
+       integer  value  other than <STRONG>ERR</STRONG> upon successful completion,
        unless otherwise noted in the preceding  routine  descrip-
        tions.
 
        unless otherwise noted in the preceding  routine  descrip-
        tions.
 
 
        Some historic curses implementations had,  as  an  undocu-
        mented  feature,  the  ability  to  do  the  equivalent of
 
        Some historic curses implementations had,  as  an  undocu-
        mented  feature,  the  ability  to  do  the  equivalent of
-       <B>clearok(...,</B> <B>1)</B> by saying <B>touchwin(stdscr)</B>  or  <B>clear(std-</B>
-       <B>scr)</B>.  This will not work under ncurses.
+       <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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Note that all routines except <B>wtouchln</B> may be macros.
+       Note that all routines except <STRONG>wtouchln</STRONG> may be macros.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>.
 
 
 
 
 
 
index 51d082c52e67d0a31213c35ceab1fba2b0254295..c4a52c4dde620c389a50d4839eaa17914fb569a9 100644 (file)
@@ -1,48 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 2000,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_trace 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>
 <BODY>
+<H1>curs_trace 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>_tracef</B>,      <B>_tracedump</B>,     <B>_traceattr</B>,     <B>_traceattr2</B>,
-       <B>_nc_tracebits</B>,  <B>_tracechar</B>,  <B>_tracechtype</B>,  <B>_tracechtype2</B>,
-       <B>_tracemouse</B>, <B>trace</B> - <B>curses</B> debugging routines
+       <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>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-       <B>void</B> <B>_tracef(const</B> <B>char</B> <B>*format,</B> <B>...);</B>
-       <B>void</B> <B>_tracedump(const</B> <B>char</B> <B>*label,</B> <B>WINDOW</B> <B>*win);</B>
-       <B>char</B> <B>*_traceattr(attr_t</B> <B>attr);</B>
-       <B>char</B> <B>*_traceattr2(int</B> <B>buffer,</B> <B>chtype</B> <B>ch);</B>
-       <B>char</B> <B>*_nc_tracebits(void);</B>
-       <B>char</B> <B>*_tracechar(const</B> <B>unsigned</B> <B>char</B> <B>ch);</B>
-       <B>char</B> <B>*_tracechtype(chtype</B> <B>ch);</B>
-       <B>char</B> <B>*_tracechtype2(int</B> <B>buffer,</B> <B>chtype</B> <B>ch);</B>
-       <B>char</B> <B>*_tracemouse(const</B> <B>MEVENT</B> <B>*event);</B>
-       <B>void</B> <B>trace(const</B> <B>unsigned</B> <B>int</B> <B>param);</B>
+       <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>
+       <STRONG>char</STRONG> <STRONG>*_traceattr2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_nc_tracebits(void);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_tracechar(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>char</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_tracechtype(chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_tracechtype2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_tracemouse(const</STRONG> <STRONG>MEVENT</STRONG> <STRONG>*event);</STRONG>
+       <STRONG>void</STRONG> <STRONG>trace(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>int</STRONG> <STRONG>param);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>trace</B>  routines  are  used  for debugging the ncurses
+       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
        libraries, as well as applications which use  the  ncurses
        libraries.   These  functions  are normally available only
-       with the debugging library <I>libncurses</I><B>_</B><I>g.a</I>, but may be com-
+       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
        piled into any model (shared, static, profile) by defining
-       the symbol <B>TRACE</B>.
+       the symbol <STRONG>TRACE</STRONG>.
 
 
-       The principal parts of this interface are the  <B>trace</B>  rou-
+       The principal parts of this interface are the  <STRONG>trace</STRONG>  rou-
        tine which selectively enables different tracing features,
        tine which selectively enables different tracing features,
-       and the <B>_tracef</B> routine which writes formatted data to the
-       <I>trace</I> file.
+       and the <STRONG>_tracef</STRONG> routine which writes formatted data to the
+       <EM>trace</EM> file.
 
 
-       Calling  <B>trace</B>  with  a  nonzero  parameter opens the file
-       <B>trace</B> in the current directory for output.  The  parameter
-       is formed by OR'ing values from the list of <B>TRACE_</B><I>xxx</I> def-
-       initions in <B>&lt;curses.h&gt;</B>.  These include:
+       Calling  <STRONG>trace</STRONG>  with  a  nonzero  parameter opens the file
+       <STRONG>trace</STRONG> in the current directory for output.  The  parameter
+       is formed by OR'ing values from the list of <STRONG>TRACE_</STRONG><EM>xxx</EM> def-
+       initions in <STRONG>&lt;curses.h&gt;</STRONG>.  These include:
 
        TRACE_DISABLE
             turn off tracing.
 
        TRACE_DISABLE
             turn off tracing.
             are traced, as well as return values.
 
        TRACE_VIRTPUT
             are traced, as well as return values.
 
        TRACE_VIRTPUT
-            trace virtual character puts, i.e., calls to <B>addch</B>.
+            trace virtual character puts, i.e., calls to <STRONG>addch</STRONG>.
 
        TRACE_IEVENT
             trace low-level input processing, including timeouts.
 
        TRACE_IEVENT
             trace low-level input processing, including timeouts.
             maximum trace level,  enables  all  of  the  separate
             trace features.
 
             maximum trace level,  enables  all  of  the  separate
             trace features.
 
-            Some  tracing features are enabled whenever the <B>trace</B>
+            Some  tracing features are enabled whenever the <STRONG>trace</STRONG>
             parameter is nonzero.  Some  features  overlap.   The
             specific names are used as a guideline.
 
             parameter is nonzero.  Some  features  overlap.   The
             specific names are used as a guideline.
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        Routines  which  return a value are designed to be used as
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        Routines  which  return a value are designed to be used as
-       parameters to the <B>_tracef</B> routine.
+       parameters to the <STRONG>_tracef</STRONG> routine.
 
 
 </PRE>
 
 
 </PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
 
 
 
 
 
 
index 5fc178cc7f76474098c556f4266173906a0714f6..0fed7678fc28f6d363f73c3d0c3149d79dd20ae3 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_util.3x,v 1.9 2002/09/01 19:44:37 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_util 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>
 <BODY>
+<H1>curs_util 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>unctrl</B>,   <B>keyname</B>,   <B>filter</B>,   <B>use_env</B>,   <B>putwin</B>,  <B>getwin</B>,
-       <B>delay_output</B>, <B>flushinp</B> - miscellaneous <B>curses</B> utility rou-
-       tines
+       <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>
+       utility routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>char</B> <B>*unctrl(chtype</B> <B>c);</B>
-       <B>char</B> <B>*keyname(int</B> <B>c);</B>
-       <B>void</B> <B>filter(void);</B>
-       <B>void</B> <B>use_env(char</B> <B>bool);</B>
-       <B>int</B> <B>putwin(WINDOW</B> <B>*win,</B> <B>FILE</B> <B>*filep);</B>
-       <B>WINDOW</B> <B>*getwin(FILE</B> <B>*filep);</B>
-       <B>int</B> <B>delay_output(int</B> <B>ms);</B>
-       <B>int</B> <B>flushinp(void);</B>
+       <STRONG>char</STRONG> <STRONG>*unctrl(chtype</STRONG> <STRONG>c);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*wunctrl(wchar_t</STRONG> <STRONG>w);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*keyname(int</STRONG> <STRONG>c);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*key_name(wchar_t</STRONG> <STRONG>w);</STRONG>
+       <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
+       <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <STRONG>f);</STRONG>
+       <STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>FILE</STRONG> <STRONG>*filep);</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*filep);</STRONG>
+       <STRONG>int</STRONG> <STRONG>delay_output(int</STRONG> <STRONG>ms);</STRONG>
+       <STRONG>int</STRONG> <STRONG>flushinp(void);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>unctrl</B> macro expands to a character string which is a
-       printable representation  of  the  character  <I>c</I>.   Control
-       characters  are  displayed  in  the <B>^</B><I>X</I> notation.  Printing
-       characters are displayed as is.
-
-       The <B>keyname</B> routine returns a character string correspond-
-       ing to the key <I>c</I>.
-
-       The <B>filter</B> routine, if used, must be called before <B>initscr</B>
-       or <B>newterm</B> are called.  The effect is that,  during  those
-       calls,  <B>LINES</B>  is  set  to 1; the capabilities <B>clear</B>, <B>cup</B>,
-       <B>cud</B>, <B>cud1</B>, <B>cuu1</B>, <B>cuu</B>,  <B>vpa</B>  are  disabled;  and  the  <B>home</B>
-       string is set to the value of <B>cr</B>.
-
-       The  <B>use_env</B> routine, if used, is called before <B>initscr</B> or
-       <B>newterm</B> are called.  When called with <B>FALSE</B>  as  an  argu-
-       ment,  the  values  of  <B>lines</B> and <B>columns</B> specified in the
-       <I>terminfo</I> database will be used, even if environment  vari-
-       ables  <B>LINES</B>  and <B>COLUMNS</B> (used by default) are set, or if
-       <B>curses</B> is running in  a  window  (in  which  case  default
-       behavior  would  be  to  use  the window size if <B>LINES</B> and
-       <B>COLUMNS</B> are not set).
-
-       The <B>putwin</B> routine writes all data associated with  window
-       <I>win</I> into the file to which <I>filep</I> points.  This information
-       can be later retrieved using the <B>getwin</B> function.
-
-       The <B>getwin</B> routine reads window related data stored in the
-       file  by <B>putwin</B>.  The routine then creates and initializes
+       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
+       corresponding  <STRONG>wunctrl</STRONG>  returns a printable representation
+       of a wide-character.
+
+       The <STRONG>keyname</STRONG> routine returns a character string correspond-
+       ing to the key <EM>c</EM>.  Control characters are displayed in the
+       <STRONG>^</STRONG><EM>X</EM> notation.  Values above 128 are either meta characters,
+       shown  in the <STRONG>M-</STRONG><EM>X</EM> notation, or the names of function keys,
+       or null.  The corresponding <STRONG>key_name</STRONG> returns  a  character
+       string  corresponding  to the wide-character value <EM>w</EM>.  The
+       two functions do not return the same set of  strings;  the
+       latter  returns null where the former would display a meta
+       character.
+
+       The <STRONG>filter</STRONG> routine, if used, must be called before <STRONG>initscr</STRONG>
+       or  <STRONG>newterm</STRONG>  are called.  The effect is that, during those
+       calls, <STRONG>LINES</STRONG> is set to 1;  the  capabilities  <STRONG>clear</STRONG>,  <STRONG>cup</STRONG>,
+       <STRONG>cud</STRONG>,  <STRONG>cud1</STRONG>,  <STRONG>cuu1</STRONG>,  <STRONG>cuu</STRONG>,  <STRONG>vpa</STRONG>  are  disabled; and the <STRONG>home</STRONG>
+       string is set to the value of <STRONG>cr</STRONG>.
+
+       The <STRONG>use_env</STRONG> routine, if used, is called before <STRONG>initscr</STRONG>  or
+       <STRONG>newterm</STRONG>  are  called.   When called with <STRONG>FALSE</STRONG> as an argu-
+       ment, the values of <STRONG>lines</STRONG> and  <STRONG>columns</STRONG>  specified  in  the
+       <EM>terminfo</EM>  database will be used, even if environment vari-
+       ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set,  or  if
+       <STRONG>curses</STRONG>  is  running  in  a  window  (in which case default
+       behavior would be to use the  window  size  if  <STRONG>LINES</STRONG>  and
+       <STRONG>COLUMNS</STRONG> are not set).
+
+       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
+       can be later retrieved using the <STRONG>getwin</STRONG> function.
+
+       The <STRONG>getwin</STRONG> routine reads window related data stored in the
+       file by <STRONG>putwin</STRONG>.  The routine then creates and  initializes
        a new window using that data.  It returns a pointer to the
        new window.
 
        a new window using that data.  It returns a pointer to the
        new window.
 
-       The  <B>delay_output</B>  routine inserts an <I>ms</I> millisecond pause
-       in output.  This routine should not  be  used  extensively
-       because  padding  characters  are  used  rather than a CPU
+       The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM>  millisecond  pause
+       in  output.   This  routine should not be used extensively
+       because padding characters are  used  rather  than  a  CPU
        pause.
        pause.
-       The <B>flushinp</B> routine throws away any  typeahead  that  has
-       been  typed  by  the user and has not yet been read by the
+
+       The  <STRONG>flushinp</STRONG>  routine  throws away any typeahead that has
+       been typed by the user and has not yet been  read  by  the
        program.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        program.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for  <B>flushinp</B>,  routines  that  return  an  integer
-       return  <B>ERR</B>  upon  failure and <B>OK</B> (SVr4 specifies only "an
-       integer value other than <B>ERR</B>") upon successful completion.
+       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.
 
 
-       <B>flushinp</B> always returns <B>OK</B>.
+       <STRONG>flushinp</STRONG> always returns <STRONG>OK</STRONG>.
 
 
-       Routines that return pointers return <B>NULL</B> on error.
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  XSI  Curses  standard,  Issue 4 describes these func-
-       tions.
-
-       The SVr4 documentation describes the action of <B>filter</B> only
-       in  the  vaguest  terms.   The description here is adapted
-       from the XSI Curses standard (which erroneously  fails  to
-       describe the disabling of <B>cuu</B>).
-
+       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.
 
 
-</PRE>
-<H2>NOTES</H2><PRE>
-       Note  that  <B>unctrl</B>  is  a macro, which is defined in &lt;<B>unc-</B>
-       <B>trl.h</B>&gt;.
+       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>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>.
-
-
-
-
-
-
-
-
-
-
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
 
 
 
 
 
 
index 1fae384fb8c8bfd09b9f096ad240c5352eee3e47..0b9d2a34eeba1c054719c74316e465f17fb3b5a4 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: curs_window.3x,v 1.9 2000/07/01 20:08:37 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>curs_window 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>
 <BODY>
+<H1>curs_window 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>newwin</B>,  <B>delwin</B>,  <B>mvwin</B>, <B>subwin</B>, <B>derwin</B>, <B>mvderwin</B>, <B>dupwin</B>,
-       <B>wsyncup</B>, <B>syncok</B>, <B>wcursyncup</B>,  <B>wsyncdown</B>  -  create  <B>curses</B>
+       <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
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        windows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-       <B>WINDOW</B> <B>*newwin(int</B> <B>nlines,</B> <B>int</B> <B>ncols,</B> <B>int</B> <B>begin_y,</B>
-             <B>int</B> <B>begin_x);</B>
-       <B>int</B> <B>delwin(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>mvwin(WINDOW</B> <B>*win,</B> <B>int</B> <B>y,</B> <B>int</B> <B>x);</B>
-       <B>WINDOW</B> <B>*subwin(WINDOW</B> <B>*orig,</B> <B>int</B> <B>nlines,</B> <B>int</B> <B>ncols,</B>
-             <B>int</B> <B>begin_y,</B> <B>int</B> <B>begin_x);</B>
-       <B>WINDOW</B> <B>*derwin(WINDOW</B> <B>*orig,</B> <B>int</B> <B>nlines,</B> <B>int</B> <B>ncols,</B>
-             <B>int</B> <B>begin_y,</B> <B>int</B> <B>begin_x);</B>
-       <B>int</B> <B>mvderwin(WINDOW</B> <B>*win,</B> <B>int</B> <B>par_y,</B> <B>int</B> <B>par_x);</B>
-       <B>WINDOW</B> <B>*dupwin(WINDOW</B> <B>*win);</B>
-       <B>void</B> <B>wsyncup(WINDOW</B> <B>*win);</B>
-       <B>int</B> <B>syncok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
-       <B>void</B> <B>wcursyncup(WINDOW</B> <B>*win);</B>
-       <B>void</B> <B>wsyncdown(WINDOW</B> <B>*win);</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+       <STRONG>WINDOW</STRONG> <STRONG>*newwin(int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG> <STRONG>int</STRONG> <STRONG>begin_y,</STRONG>
+             <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>delwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*subwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
+             <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*derwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
+             <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvderwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>par_y,</STRONG> <STRONG>int</STRONG> <STRONG>par_x);</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*dupwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wsyncup(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>int</STRONG> <STRONG>syncok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wcursyncup(WINDOW</STRONG> <STRONG>*win);</STRONG>
+       <STRONG>void</STRONG> <STRONG>wsyncdown(WINDOW</STRONG> <STRONG>*win);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       Calling <B>newwin</B> creates and returns a pointer to a new win-
+       Calling <STRONG>newwin</STRONG> creates and returns a pointer to a new win-
        dow with the given number of lines and columns.  The upper
        dow with the given number of lines and columns.  The upper
-       left-hand  corner of the window is at line <I>begin</I>_<I>y</I>, column
-       <I>begin</I>_<I>x</I>.  If either <I>nlines</I> or <I>ncols</I> is zero, they  default
-       to  <B>LINES</B> <B>-</B> <I>begin</I>_<I>y</I> and <B>COLS</B> <B>-</B> <I>begin</I>_<I>x</I>.  A new full-screen
-       window is created by calling <B>newwin(0,0,0,0)</B>.
+       left-hand  corner of the window is at line <EM>begin</EM>_<EM>y</EM>, column
+       <EM>begin</EM>_<EM>x</EM>.  If either <EM>nlines</EM> or <EM>ncols</EM> is zero, they  default
+       to  <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>.  A new full-screen
+       window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
 
 
-       Calling <B>delwin</B> deletes the named window, freeing all  mem-
+       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
        the main window can be deleted.
 
        ory  associated  with  it  (it does not actually erase the
        window's screen image).  Subwindows must be deleted before
        the main window can be deleted.
 
-       Calling <B>mvwin</B> moves the window so that the upper left-hand
-       corner is at position (<I>x</I>, <I>y</I>).  If the move would cause the
+       Calling <STRONG>mvwin</STRONG> moves the window so that the upper left-hand
+       corner is at position (<EM>x</EM>, <EM>y</EM>).  If the move would cause the
        window to be off the screen, it is an error and the window
        is not moved.  Moving subwindows is allowed, but should be
        avoided.
 
        window to be off the screen, it is an error and the window
        is not moved.  Moving subwindows is allowed, but should be
        avoided.
 
-       Calling <B>subwin</B> creates and returns a pointer to a new win-
-       dow with the given number of lines, <I>nlines</I>,  and  columns,
-       <I>ncols</I>.   The  window  is at position (<I>begin</I>_<I>y</I>, <I>begin</I>_<I>x</I>) on
+       Calling <STRONG>subwin</STRONG> creates and returns a pointer to a new win-
+       dow with the given number of lines, <EM>nlines</EM>,  and  columns,
+       <EM>ncols</EM>.   The  window  is at position (<EM>begin</EM>_<EM>y</EM>, <EM>begin</EM>_<EM>x</EM>) on
        the screen.  (This position is relative to the screen, and
        the screen.  (This position is relative to the screen, and
-       not to the window <I>orig</I>.)  The window is made in the middle
-       of the window <I>orig</I>, so that changes  made  to  one  window
+       not to the window <EM>orig</EM>.)  The window is made in the middle
+       of the window <EM>orig</EM>, so that changes  made  to  one  window
        will  affect  both  windows.   The subwindow shares memory
        will  affect  both  windows.   The subwindow shares memory
-       with the window <I>orig</I>.  When using this routine, it is nec-
-       essary  to call <B>touchwin</B> or <B>touchline</B> on <I>orig</I> before call-
-       ing <B>wrefresh</B> on the subwindow.
+       with the window <EM>orig</EM>.  When using this routine, it is nec-
+       essary  to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before call-
+       ing <STRONG>wrefresh</STRONG> on the subwindow.
 
 
-       Calling <B>derwin</B> is the same as calling <B>subwin,</B> except  that
-       <I>begin</I>_<I>y</I> and <I>begin</I>_<I>x</I> are relative to the origin of the win-
-       dow <I>orig</I> rather than the screen.  There is  no  difference
+       Calling <STRONG>derwin</STRONG> is the same as calling <STRONG>subwin,</STRONG> except  that
+       <EM>begin</EM>_<EM>y</EM> and <EM>begin</EM>_<EM>x</EM> are relative to the origin of the win-
+       dow <EM>orig</EM> rather than the screen.  There is  no  difference
        between the subwindows and the derived windows.
 
        between the subwindows and the derived windows.
 
-       Calling  <B>mvderwin</B>  moves  a  derived window (or subwindow)
+       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
        physical position on the screen.
 
        inside its parent window.  The screen-relative  parameters
        of  the  window  are not changed.  This routine is used to
        display different parts of the parent window at  the  same
        physical position on the screen.
 
-       Calling  <B>dupwin</B>  creates  an exact duplicate of the window
-       <I>win</I>.
+       Calling  <STRONG>dupwin</STRONG>  creates  an exact duplicate of the window
+       <EM>win</EM>.
 
 
-       Calling <B>wsyncup</B> touches all locations in ancestors of  <I>win</I>
-       that  are changed in <I>win</I>.  If <B>syncok</B> is called with second
-       argument <B>TRUE</B> then <B>wsyncup</B> is called  automatically  when-
+       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.
 
        ever there is a change in the window.
 
-       The  <B>wsyncdown</B>  routine  touches each location in <I>win</I> that
+       The  <STRONG>wsyncdown</STRONG>  routine  touches each location in <EM>win</EM> that
        has been touched in any of  its  ancestor  windows.   This
        has been touched in any of  its  ancestor  windows.   This
-       routine  is  called by <B>wrefresh</B>, so it should almost never
+       routine  is  called by <STRONG>wrefresh</STRONG>, so it should almost never
        be necessary to call it manually.
 
        be necessary to call it manually.
 
-       The routine <B>wcursyncup</B> updates the current cursor position
+       The routine <STRONG>wcursyncup</STRONG> updates the current cursor position
        of  all the ancestors of the window to reflect the current
        cursor position of the window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        of  all the ancestors of the window to reflect the current
        cursor position of the window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer  return  the  integer  <B>ERR</B>
-       upon failure and <B>OK</B> (SVr4 only specifies "an integer value
-       other than <B>ERR</B>") upon successful completion.
+       Routines that return an integer  return  the  integer  <STRONG>ERR</STRONG>
+       upon failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
+       other than <STRONG>ERR</STRONG>") upon successful completion.
 
 
-       <B>delwin</B> returns the integer <B>ERR</B> upon failure  and  <B>OK</B>  upon
+       <STRONG>delwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure  and  <STRONG>OK</STRONG>  upon
        successful completion.
 
        successful completion.
 
-       Routines that return pointers return <B>NULL</B> on error.
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       If  many small changes are made to the window, the <B>wsyncup</B>
+       If  many small changes are made to the window, the <STRONG>wsyncup</STRONG>
        option could degrade performance.
 
        option could degrade performance.
 
-       Note that <B>syncok</B> may be a macro.
+       Note that <STRONG>syncok</STRONG> may be a macro.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       The subwindow functions (<I>subwin</I>, <I>derwin</I>,  <I>mvderwin</I>,  <B>wsyn-</B>
-       <B>cup</B>,  <B>wsyncdown</B>,  <B>wcursyncup</B>,  <B>syncok</B>)  are  flaky, incom-
+       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 System V curses documentation is  very  unclear  about
        pletely implemented, and not well tested.
 
        The System V curses documentation is  very  unclear  about
-       what <B>wsyncup</B> and <B>wsyncdown</B> actually do.  It seems to imply
+       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 are affected by ancestor changes.  The language here,
        that they are only supposed to touch exactly  those  lines
        that are affected by ancestor changes.  The language here,
-       and the behavior of the  <B>curses</B>  implementation,  is  pat-
+       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.
 
        terned  on the XPG4 curses standard.  The weaker XPG4 spec
        may result in slower updates.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>, <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
+       <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>
 
 
 
 
 
 
index 8b6cdca4652fad0867adb9610c57de8b4b013633..d0be6fb6a2042323a0116e35503ba71eade4f471 100644 (file)
@@ -1,25 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1997,1999,2000
+  * @Id: default_colors.3x,v 1.16 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>default_colors 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>
 <BODY>
+<H1>default_colors 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>default_colors</B>:  <B>use_default_colors</B>, <B>assume_default_colors</B>
-       - use terminal's default colors
+       <STRONG>use_default_colors</STRONG>, <STRONG>assume_default_colors</STRONG> - use terminal's
+       default colors
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>use_default_colors(void);</B>
-       <B>int</B> <B>assume_default_colors(int</B> <B>fg,</B> <B>int</B> <B>bg);</B>
+       <STRONG>int</STRONG> <STRONG>use_default_colors(void);</STRONG>
+       <STRONG>int</STRONG> <STRONG>assume_default_colors(int</STRONG> <STRONG>fg,</STRONG> <STRONG>int</STRONG> <STRONG>bg);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <I>use</I><B>_</B><I>default</I><B>_</B><I>colors()</I> and <I>assume</I><B>_</B><I>default</I><B>_</B><I>colors()</I> func-
+       The <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> and <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> func-
        tions are extensions to the curses library.  They are used
        with terminals that support ISO 6429 color, or equivalent.
        These terminals allow the application to reset color to an
        tions are extensions to the curses library.  They are used
        with terminals that support ISO 6429 color, or equivalent.
        These terminals allow the application to reset color to an
        whole  screen  do not take advantage of SGR 39 and SGR 49.
        Some applications are designed to work  with  the  default
        background,  using  colors  only  for  text.  For example,
        whole  screen  do not take advantage of SGR 39 and SGR 49.
        Some applications are designed to work  with  the  default
        background,  using  colors  only  for  text.  For example,
-       there are several implementations of the <B>ls</B> program  which
+       there are several implementations of the <STRONG>ls</STRONG> program  which
        use  colors to denote different file types or permissions.
        These "color ls" programs do not  necessarily  modify  the
        use  colors to denote different file types or permissions.
        These "color ls" programs do not  necessarily  modify  the
-       background  color, typically using only the <I>setaf</I> terminfo
+       background  color, typically using only the <EM>setaf</EM> terminfo
        capability  to  set  the  foreground  color.   Full-screen
        applications  that  use default colors can achieve similar
        visual effects.
 
        capability  to  set  the  foreground  color.   Full-screen
        applications  that  use default colors can achieve similar
        visual effects.
 
-       The first function, <I>use</I><B>_</B><I>default</I><B>_</B><I>colors()</I> tells the  curses
+       The first function, <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> tells the  curses
        library  to  assign terminal default foreground/background
        colors to color number  -1.  So  init_pair(x,COLOR_RED,-1)
        will  initialize  pair  x as red on default background and
        init_pair(x,-1,COLOR_BLUE)  will  initialize  pair  x   as
        default foreground on blue.
 
        library  to  assign terminal default foreground/background
        colors to color number  -1.  So  init_pair(x,COLOR_RED,-1)
        will  initialize  pair  x as red on default background and
        init_pair(x,-1,COLOR_BLUE)  will  initialize  pair  x   as
        default foreground on blue.
 
-       The  other,  <I>assume</I><B>_</B><I>default</I><B>_</B><I>colors()</I> is a refinement which
+       The  other,  <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> is a refinement which
        tells which colors to paint for color pair 0.  This  func-
        tion  recognizes  a special color number -1, which denotes
        the default terminal color.
 
        The following are equivalent:
        tells which colors to paint for color pair 0.  This  func-
        tion  recognizes  a special color number -1, which denotes
        the default terminal color.
 
        The following are equivalent:
-              <I>use</I><B>_</B><I>default</I><B>_</B><I>colors();</I>
-              <I>assume</I><B>_</B><I>default</I><B>_</B><I>colors(-1,-1);</I>
+              <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors();</EM>
+              <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors(-1,-1);</EM>
 
        These are ncurses extensions.  For other curses  implemen-
        tations,  color  number -1 does not mean anything, just as
 
        These are ncurses extensions.  For other curses  implemen-
        tations,  color  number -1 does not mean anything, just as
-       for ncurses before a successful call  of  <I>use</I><B>_</B><I>default</I><B>_</B><I>col-</I>
-       <I>ors()</I> or <I>assume</I><B>_</B><I>default</I><B>_</B><I>colors()</I>.
+       for ncurses before a successful call  of  <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>col-</EM>
+       <EM>ors()</EM> or <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM>.
 
        Other  curses  implementations do not allow an application
        to modify color pair 0.  They assume that  the  background
        is COLOR_BLACK, but do not ensure that the color pair 0 is
        painted to match the assumption.  If your application does
 
        Other  curses  implementations do not allow an application
        to modify color pair 0.  They assume that  the  background
        is COLOR_BLACK, but do not ensure that the color pair 0 is
        painted to match the assumption.  If your application does
-       not use either <I>use</I><B>_</B><I>default</I><B>_</B><I>colors()</I> or <I>assume</I><B>_</B><I>default</I><B>_</B><I>col-</I>
-       <I>ors()</I> ncurses will paint a white  foreground  (text)  with
+       not use either <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> or <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>col-</EM>
+       <EM>ors()</EM> ncurses will paint a white  foreground  (text)  with
        black background for color pair 0.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        black background for color pair 0.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These functions return the integer <B>ERR</B> upon failure and <B>OK</B>
+       These functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
        on success.  They will fail if either  the  terminal  does
        on success.  They will fail if either  the  terminal  does
-       not  support  the <I>orig</I><B>_</B><I>pair</I> or <I>orig</I><B>_</B><I>colors</I> capability.  If
-       the <I>initialize</I><B>_</B><I>pair</I> capability is found,  this  causes  an
+       not  support  the <EM>orig</EM><STRONG>_</STRONG><EM>pair</EM> or <EM>orig</EM><STRONG>_</STRONG><EM>colors</EM> capability.  If
+       the <EM>initialize</EM><STRONG>_</STRONG><EM>pair</EM> capability is found,  this  causes  an
        error as well.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        error as well.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Associated with this extension, the <B><A HREF="init_pair.3x.html">init_pair(3x)</A></B> function
+       Associated with this extension, the <STRONG><A HREF="init_pair.3x.html">init_pair(3x)</A></STRONG> function
        accepts negative arguments to specify  default  foreground
        or background colors.
 
        accepts negative arguments to specify  default  foreground
        or background colors.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>, <B><A HREF="ded.1.html">ded(1)</A></B>.
+       <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ded.1.html">ded(1)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 7e914c7e0388dae045ffdae53624c0acc5c13279..0be1e0002120130e9664b0936b075836a75504f4 100644 (file)
@@ -1,18 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1997
+  * @Id: define_key.3x,v 1.8 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>define_key 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>
 <BODY>
+<H1>define_key 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>define_key</B> - define a keycode
+       <STRONG>define_key</STRONG> - define a keycode
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>define_key(char</B> <B>*definition,</B> <B>int</B> <B>keycode);</B>
+       <STRONG>int</STRONG> <STRONG>define_key(char</STRONG> <STRONG>*definition,</STRONG> <STRONG>int</STRONG> <STRONG>keycode);</STRONG>
 
 
 </PRE>
 
 
 </PRE>
@@ -45,7 +84,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="keyok.3x.html">keyok(3x)</A></B>.
+       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index a15a712696195b8013fc65c8343c09756365406a..27ff8706619b33583230a0532204a514dfdca55d 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form.3x,v 1.15 2002/01/19 22:48:05 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form 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>
 <BODY>
+<H1>form 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form</B> - curses extension for programming forms
+       <STRONG>form</STRONG> - curses extension for programming forms
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>form</B> library provides terminal-independent facilities
+       The  <STRONG>form</STRONG> library provides terminal-independent facilities
        for composing form screens  on  character-cell  terminals.
        The  library  includes:  field  routines, which create and
        modify form fields; and form routines, which group  fields
        into forms, display forms on the screen, and handle inter-
        action with the user.
 
        for composing form screens  on  character-cell  terminals.
        The  library  includes:  field  routines, which create and
        modify form fields; and form routines, which group  fields
        into forms, display forms on the screen, and handle inter-
        action with the user.
 
-       The <B>form</B> library uses the <B>curses</B> libraries, and  a  curses
-       initialization  routine  such  as  <B>initscr</B>  must be called
-       before using any of these  functions.   To  use  the  <B>form</B>
-       library, link with the options <B>-lform</B> <B>-lcurses</B>.
+       The <STRONG>form</STRONG> library uses the <STRONG>curses</STRONG> libraries, and  a  curses
+       initialization  routine  such  as  <STRONG>initscr</STRONG>  must be called
+       before using any of these  functions.   To  use  the  <STRONG>form</STRONG>
+       library, link with the options <STRONG>-lform</STRONG> <STRONG>-lcurses</STRONG>.
 
 
 
 
-   <B>Current</B> <B>Default</B> <B>Values</B> <B>for</B> <B>Field</B> <B>Attributes</B>
-       The  <B>form</B>  library  maintains  a  default  value for field
+   <STRONG>Current</STRONG> <STRONG>Default</STRONG> <STRONG>Values</STRONG> <STRONG>for</STRONG> <STRONG>Field</STRONG> <STRONG>Attributes</STRONG>
+       The  <STRONG>form</STRONG>  library  maintains  a  default  value for field
        attributes.  You can get or set this  default  by  calling
        attributes.  You can get or set this  default  by  calling
-       the  appropriate  <B>set_</B>  or  retrieval  routine with a <B>NULL</B>
-       field pointer.  Changing this default with a <B>set_</B> function
+       the  appropriate  <STRONG>set_</STRONG>  or  retrieval  routine with a <STRONG>NULL</STRONG>
+       field pointer.  Changing this default with a <STRONG>set_</STRONG> function
        affects  future  field  creations, but does not change the
        rendering of fields already created.
 
 
        affects  future  field  creations, but does not change the
        rendering of fields already created.
 
 
-   <B>Routine</B> <B>Name</B> <B>Index</B>
-       The following table lists each <B>form</B> routine and  the  name
+   <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
+       The following table lists each <STRONG>form</STRONG> routine and  the  name
        of the manual page on which it is described.
 
        of the manual page on which it is described.
 
-       <B>curses</B> Routine Name    Manual Page Name
+       <STRONG>curses</STRONG> Routine Name    Manual Page Name
        -------------------------------------------------
        -------------------------------------------------
-       current_field          <B><A HREF="form_page.3x.html">form_page(3x)</A></B>
-       data_ahead             <B><A HREF="form_data.3x.html">form_data(3x)</A></B>
-       data_behind            <B><A HREF="form_data.3x.html">form_data(3x)</A></B>
-       dup_field              <B><A HREF="form_field_new.3x.html">form_field_new(3x)</A></B>
-       dynamic_fieldinfo      <B><A HREF="form_field_info.3x.html">form_field_info(3x)</A></B>
-       field_arg              <B><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></B>
-       field_back             <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-       field_buffer           <B><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></B>
-       field_count            <B><A HREF="form_field.3x.html">form_field(3x)</A></B>
-       field_fore             <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-       field_index            <B><A HREF="form_page.3x.html">form_page(3x)</A></B>
-       field_info             <B><A HREF="form_field_info.3x.html">form_field_info(3x)</A></B>
-       field_init             <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       field_just             <B><A HREF="form_field_just.3x.html">form_field_just(3x)</A></B>
-       field_opts             <B><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></B>
-       field_opts_off         <B><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></B>
-       field_opts_on          <B><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></B>
-       field_pad              <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-
-       field_status           <B><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></B>
-       field_term             <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       field_type             <B><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></B>
-       field_userptr          <B><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></B>
-       form_driver            <B><A HREF="form_driver.3x.html">form_driver(3x)</A></B>
-       form_fields            <B><A HREF="form_field.3x.html">form_field(3x)</A></B>
-       form_init              <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       form_opts              <B><A HREF="form_opts.3x.html">form_opts(3x)</A></B>
-       form_opts_off          <B><A HREF="form_opts.3x.html">form_opts(3x)</A></B>
-       form_opts_on           <B><A HREF="form_opts.3x.html">form_opts(3x)</A></B>
-       form_page              <B><A HREF="form_page.3x.html">form_page(3x)</A></B>
-       form_request_by_name   <B><A HREF="form_requestname.3x.html">form_requestname(3x)</A></B>
-       form_request_name      <B><A HREF="form_requestname.3x.html">form_requestname(3x)</A></B>
-       form_sub               <B><A HREF="form_win.3x.html">form_win(3x)</A></B>
-       form_term              <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       form_userptr           <B><A HREF="form_userptr.3x.html">form_userptr(3x)</A></B>
-       form_win               <B><A HREF="form_win.3x.html">form_win(3x)</A></B>
-       free_field             <B><A HREF="form_field_new.3x.html">form_field_new(3x)</A></B>
-       free_form              <B><A HREF="form_new.3x.html">form_new(3x)</A></B>
-       link_field             <B><A HREF="form_field_new.3x.html">form_field_new(3x)</A></B>
-       link_fieldtype         <B><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></B>
-       move_field             <B><A HREF="form_field.3x.html">form_field(3x)</A></B>
-       new_field              <B><A HREF="form_field_new.3x.html">form_field_new(3x)</A></B>
-       new_form               <B><A HREF="form_new.3x.html">form_new(3x)</A></B>
-       new_page               <B><A HREF="form_new_page.3x.html">form_new_page(3x)</A></B>
-       pos_form_cursor        <B><A HREF="form_cursor.3x.html">form_cursor(3x)</A></B>
-       post_form              <B><A HREF="form_post.3x.html">form_post(3x)</A></B>
-       scale_form             <B><A HREF="form_win.3x.html">form_win(3x)</A></B>
-       set_current_field      <B><A HREF="form_page.3x.html">form_page(3x)</A></B>
-       set_field_back         <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-       set_field_buffer       <B><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></B>
-       set_field_fore         <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-       set_field_init         <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       set_field_just         <B><A HREF="form_field_just.3x.html">form_field_just(3x)</A></B>
-       set_field_opts         <B><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></B>
-       set_field_pad          <B><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></B>
-       set_field_status       <B><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></B>
-       set_field_term         <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       set_field_type         <B><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></B>
-       set_field_userptr      <B><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></B>
-       set_fieldtype_arg      <B><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></B>
-       set_fieldtype_choice   <B><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></B>
-       set_form_fields        <B><A HREF="form_field.3x.html">form_field(3x)</A></B>
-       set_form_init          <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       set_form_opts          <B><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></B>
-       set_form_page          <B><A HREF="form_page.3x.html">form_page(3x)</A></B>
-       set_form_sub           <B><A HREF="form_win.3x.html">form_win(3x)</A></B>
-       set_form_term          <B><A HREF="form_hook.3x.html">form_hook(3x)</A></B>
-       set_form_userptr       <B><A HREF="form_userptr.3x.html">form_userptr(3x)</A></B>
-       set_form_win           <B><A HREF="form_win.3x.html">form_win(3x)</A></B>
-       set_max_field          <B><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></B>
-       set_new_page           <B><A HREF="form_new_page.3x.html">form_new_page(3x)</A></B>
-       unpost_form            <B><A HREF="form_post.3x.html">form_post(3x)</A></B>
+       current_field          <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+       data_ahead             <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+       data_behind            <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+       dup_field              <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+       dynamic_fieldinfo      <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+       field_arg              <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+       field_back             <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+       field_buffer           <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+       field_count            <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+       field_fore             <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+       field_index            <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+       field_info             <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+       field_init             <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       field_just             <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+       field_opts             <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+       field_opts_off         <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+       field_opts_on          <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+       field_pad              <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+
+       field_status           <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+       field_term             <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       field_type             <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+       field_userptr          <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(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_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>
+       form_request_by_name   <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+       form_request_name      <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+       form_sub               <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+       form_term              <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       form_userptr           <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+       form_win               <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+       free_field             <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+       free_form              <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+       link_field             <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+       link_fieldtype         <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+       move_field             <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+       new_field              <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+       new_form               <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+       new_page               <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+       pos_form_cursor        <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+       post_form              <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+       scale_form             <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+       set_current_field      <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+       set_field_back         <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+       set_field_buffer       <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+       set_field_fore         <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+       set_field_init         <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       set_field_just         <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+       set_field_opts         <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+       set_field_pad          <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+       set_field_status       <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+       set_field_term         <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       set_field_type         <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+       set_field_userptr      <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+       set_fieldtype_arg      <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+       set_fieldtype_choice   <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+       set_form_fields        <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+       set_form_init          <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       set_form_opts          <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+       set_form_page          <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+       set_form_sub           <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+       set_form_term          <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+       set_form_userptr       <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+       set_form_win           <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+       set_max_field          <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+       set_new_page           <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+       unpost_form            <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines  that return pointers return <B>NULL</B> on error.  Rou-
+       Routines  that return pointers return <STRONG>NULL</STRONG> on error.  Rou-
        tines that return an integer return one of  the  following
        error codes:
 
        tines that return an integer return one of  the  following
        error codes:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_CONNECTED</B>
+       <STRONG>E_CONNECTED</STRONG>
             The field is already connected to a form.
 
             The field is already connected to a form.
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The form is already posted.
 
             The form is already posted.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NO_ROOM</B>
+       <STRONG>E_NO_ROOM</STRONG>
             Form is too large for its window.
 
             Form is too large for its window.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The form has not been posted.
 
             The form has not been posted.
 
-       <B>E_UNKNOWN_COMMAND</B>
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>
             The form driver code saw an unknown request code.
 
             The form driver code saw an unknown request code.
 
-       <B>E_INVALID_FIELD</B>
+       <STRONG>E_INVALID_FIELD</STRONG>
             Contents of a field are not valid.
 
             Contents of a field are not valid.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No fields are connected to the form.
 
             No fields are connected to the form.
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  and  3x  pages  whose  names begin "form_" for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       files <B>&lt;curses.h&gt;</B> and <B>&lt;eti.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
 
        In  your  library  list,  libform.a should be before libn-
        curses.a; that is, you want to say `-lform -lncurses', not
        the  other  way  around (which would give you a link error
 
        In  your  library  list,  libform.a should be before libn-
        curses.a; that is, you want to say `-lform -lncurses', not
        the  other  way  around (which would give you a link error
-       using GNU <B><A HREF="ld.1.html">ld(1)</A></B> and many other linkers).
+       using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and many other linkers).
 
 
 </PRE>
 
 
 </PRE>
index b99b8241c9efcf7f1f9c2de684345f9c98e6a145..af7d8d7df7dfa1420a79559a20ea71bc5f61b9b7 100644 (file)
@@ -1,24 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_cursor.3x,v 1.4 1998/11/29 01:05:43 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_cursor 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>
 <BODY>
+<H1>form_cursor 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_cursor</B> - position a form window cursor
+       <STRONG>form_cursor</STRONG> - position a form window cursor
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int pos_form_cursor(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int pos_form_cursor(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>pos_form_cursor</B>  restores the cursor to the
+       The  function  <STRONG>pos_form_cursor</STRONG>  restores the cursor to the
        position required for the forms driver  to  continue  pro-
        position required for the forms driver  to  continue  pro-
-       cessing  requests.   This  is useful after <B>curses</B> routines
+       cessing  requests.   This  is useful after <STRONG>curses</STRONG> routines
        have been called to do screen-painting in  response  to  a
        form operation.
 
        have been called to do screen-painting in  response  to  a
        form operation.
 
 <H2>RETURN VALUE</H2><PRE>
        This routine returns one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        This routine returns one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The form has not been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The form has not been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 502495edfde303fc98e14a4e5f5f7d86e5287455..277b54bf7a4fe5f8fcaa5976acdf7176510125e9 100644 (file)
@@ -1,40 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_data.3x,v 1.7 1998/11/29 01:13:22 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_data 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>
 <BODY>
+<H1>form_data 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_data</B> - test for off-screen data in given forms
+       <STRONG>form_data</STRONG> - test for off-screen data in given forms
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        bool data_ahead(const FORM *form);
        bool data_behind(const FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        bool data_ahead(const FORM *form);
        bool data_behind(const FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>data_ahead</B> tests whether there is off-screen
+       The  function <STRONG>data_ahead</STRONG> tests whether there is off-screen
        data ahead in the given form.   It  returns  TRUE  (1)  or
        FALSE (0).
 
        data ahead in the given form.   It  returns  TRUE  (1)  or
        FALSE (0).
 
-       The function <B>data_behind</B> tests whether there is off-screen
+       The function <STRONG>data_behind</STRONG> tests whether there is off-screen
        data behind in the given form.  It  returns  TRUE  (1)  or
        FALSE (0).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        data behind in the given form.  It  returns  TRUE  (1)  or
        FALSE (0).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 36a27aa81bc531a45453985b2f6eeaf47cc7ce20..061519f5af7150c24a4a83bc4c922af1aae06fa4 100644 (file)
@@ -1,23 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_driver.3x,v 1.9 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_driver 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>
 <BODY>
+<H1>form_driver 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_driver</B> - command-processing loop of the form system
+       <STRONG>form_driver</STRONG> - command-processing loop of the form system
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int form_driver(FORM *form, int c);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Once a form has been posted (displayed), you should funnel
        int form_driver(FORM *form, int c);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Once a form has been posted (displayed), you should funnel
-       input events to it through <B>form_driver</B>.  This routine  has
+       input events to it through <STRONG>form_driver</STRONG>.  This routine  has
        two  major input cases; either the input is a form naviga-
        tion request or it's a  printable  ASCII  character.   The
        form driver requests are as follows:
        two  major input cases; either the input is a form naviga-
        tion request or it's a  printable  ASCII  character.   The
        form driver requests are as follows:
        If the second argument is neither printable ASCII nor  one
        of the above pre-defined form requests, the driver assumes
        it  is  an  application-specific   command   and   returns
        If the second argument is neither printable ASCII nor  one
        of the above pre-defined form requests, the driver assumes
        it  is  an  application-specific   command   and   returns
-       <B>E_UNKNOWN_COMMAND</B>.  Application-defined commands should be
-       defined relative to  <B>MAX_COMMAND</B>,  the  maximum  value  of
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>.  Application-defined commands should be
+       defined relative to  <STRONG>MAX_COMMAND</STRONG>,  the  maximum  value  of
        these pre-defined requests.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        these pre-defined requests.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>form_driver</B> return one of the following error codes:
+       <STRONG>form_driver</STRONG> return one of the following error codes:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine  was  called  from   an   initialization   or
             termination function.
 
             Routine  was  called  from   an   initialization   or
             termination function.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The form has not been posted.
 
             The form has not been posted.
 
-       <B>E_UNKNOWN_COMMAND</B>
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>
             The form driver code saw an unknown request code.
 
             The form driver code saw an unknown request code.
 
-       <B>E_INVALID_FIELD</B>
+       <STRONG>E_INVALID_FIELD</STRONG>
             Contents of field is invalid.
 
             Contents of field is invalid.
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       files <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       files <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 2f14eafb5a65708568536f6ad158ce64b325bb7d..35d82339d822688ffa4e21aff17427e04ec69c28 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field.3x,v 1.5 1998/11/29 01:05:52 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field 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>
 <BODY>
+<H1>form_field 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field</B> - make and break connections between fields and
+       <STRONG>form_field</STRONG> - make and break connections between fields and
        forms
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        forms
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_form_fields(FORM *form, FIELD **fields);
        FIELD **form_fields(const FORM *form);
        int field_count(const FORM *form);
        int set_form_fields(FORM *form, FIELD **fields);
        FIELD **form_fields(const FORM *form);
        int field_count(const FORM *form);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>set_form_fields</B>  changes  the  field  pointer
-       array  of the given <I>form</I>.  The array must be terminated by
-       a <B>NULL</B>.
+       The function <STRONG>set_form_fields</STRONG>  changes  the  field  pointer
+       array  of the given <EM>form</EM>.  The array must be terminated by
+       a <STRONG>NULL</STRONG>.
 
 
-       The function <B>form_fields</B> returns the field  array  of  the
+       The function <STRONG>form_fields</STRONG> returns the field  array  of  the
        given form.
 
        given form.
 
-       The  function  <B>field_count</B>  returns the count of fields in
-       <I>form</I>.
+       The  function  <STRONG>field_count</STRONG>  returns the count of fields in
+       <EM>form</EM>.
 
 
-       The function <B>move_field</B> move the given field  (which  must
+       The function <STRONG>move_field</STRONG> move the given field  (which  must
        be disconnected) to a specified location on the screen.
 
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
        be disconnected) to a specified location on the screen.
 
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
-       The function <B>form_fields</B> returns <B>NULL</B> on error.
+       The function <STRONG>form_fields</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       The  function  <B>field_count</B> returns <B>ERR</B> (the general <B>curses</B>
+       The  function  <STRONG>field_count</STRONG> returns <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG>
        error return value) on error.
 
        error return value) on error.
 
-       The functions <B>set_form_fields</B> and <B>move_field</B> return one of
+       The functions <STRONG>set_form_fields</STRONG> and <STRONG>move_field</STRONG> return one of
        the following codes on error:
 
        the following codes on error:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The form is already posted.
 
             The form is already posted.
 
-       <B>E_CONNECTED</B>
+       <STRONG>E_CONNECTED</STRONG>
             The field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
        were not supported on Version 7 or BSD versions.
 
        The  SVr4  forms  library  documentation   specifies   the
        were not supported on Version 7 or BSD versions.
 
        The  SVr4  forms  library  documentation   specifies   the
-       <B>field_count</B> error value as -1 (which is the value of <B>ERR</B>).
+       <STRONG>field_count</STRONG> error value as -1 (which is the value of <STRONG>ERR</STRONG>).
 
 
 </PRE>
 
 
 </PRE>
index 9e11aaf55b4bb0faacefda7e79baa49491808c6c..bb5e210d3b07a29e1dbbbc47e6a54f44362541ba 100644 (file)
@@ -1,39 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2001,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_attributes.3x,v 1.7 2002/01/19 22:48:14 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_attributes 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>
 <BODY>
+<H1>form_field_attributes 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_attributes</B>  -  color  and attribute control for
+       <STRONG>form_field_attributes</STRONG>  -  color  and attribute control for
        form fields
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        form fields
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_fore(FIELD *field, chtype attr);
        chtype field_fore(const FIELD *field);
        int set_field_back(FIELD *field, chtype attr);
        chtype field_back(const FIELD *field);
        int set_field_pad(FIELD *field, int pad);
        int set_field_fore(FIELD *field, chtype attr);
        chtype field_fore(const FIELD *field);
        int set_field_back(FIELD *field, chtype attr);
        chtype field_back(const FIELD *field);
        int set_field_pad(FIELD *field, int pad);
-       chtype field_pad(const FIELD *field);
+       int field_pad(const FIELD *field);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>set_field_fore</B> sets the foreground  attribute
-       of  <I>field</I>. This is the highlight used to display the field
-       contents.  The function <B>field_fore</B> returns the  foreground
-       attribute.  The default is <B>A_STANDOUT</B>.
-
-       The  function <B>set_field_back</B> sets the background attribute
-       of <I>form</I>. This is the highlight used to display the  extent
-       fields  in  the form.  The function <B>field_back</B> returns the
-       background attribute.  The default is <B>A_NORMAL</B>.
-
-       The function <B>set_field_pad</B> sets the character used to fill
-       the  field.   The  function  <B>field_pad</B>  returns  the given
+       The function <STRONG>set_field_fore</STRONG> sets the foreground  attribute
+       of  <EM>field</EM>. This is the highlight used to display the field
+       contents.  The function <STRONG>field_fore</STRONG> returns the  foreground
+       attribute.  The default is <STRONG>A_STANDOUT</STRONG>.
+
+       The  function <STRONG>set_field_back</STRONG> sets the background attribute
+       of <EM>form</EM>. This is the highlight used to display the  extent
+       fields  in  the form.  The function <STRONG>field_back</STRONG> returns the
+       background attribute.  The default is <STRONG>A_NORMAL</STRONG>.
+
+       The function <STRONG>set_field_pad</STRONG> sets the character used to fill
+       the  field.   The  function  <STRONG>field_pad</STRONG>  returns  the given
        form's pad character.  The default is a blank.
 
 
        form's pad character.  The default is a blank.
 
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  and  3x  pages  whose  names begin "form_" for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index a4f3dcda1516fbe7f7dcad545aa4a96861dfb7e8..c23ac00396c8f23f0511d1e4599ef6044c4854ec 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_buffer.3x,v 1.9 2002/01/19 22:48:23 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_buffer 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>
 <BODY>
+<H1>form_field_buffer 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_buffer</B> - field buffer control
+       <STRONG>form_field_buffer</STRONG> - field buffer control
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int  set_field_buffer(FIELD  *field,  int  buf, const char
        *value);
        char *field_buffer(const FIELD *field, int buffer);
        int  set_field_buffer(FIELD  *field,  int  buf, const char
        *value);
        char *field_buffer(const FIELD *field, int buffer);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>set_field_buffer</B> sets the numbered buffer  of
+       The function <STRONG>set_field_buffer</STRONG> sets the numbered buffer  of
        the  given  field  to contain a given string.  Buffer 0 is
        the displayed value of the field; other  numbered  buffers
        the  given  field  to contain a given string.  Buffer 0 is
        the displayed value of the field; other  numbered  buffers
-       may be allocated by applications through the <B>nbuf</B> argument
-       of (see <B><A HREF="form_field_new.3x.html">form_field_new(3x)</A></B>) but are not manipulated by the
-       forms  library.   The  function  <B>field_buffer</B>  returns the
+       may be allocated by applications through the <STRONG>nbuf</STRONG> argument
+       of (see <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>) but are not manipulated by the
+       forms  library.   The  function  <STRONG>field_buffer</STRONG>  returns the
        address of the buffer.  Please note that this  buffer  has
        always  the  length  of the buffer, that means that it may
        typically contain trailing spaces. If you entered  leading
        address of the buffer.  Please note that this  buffer  has
        always  the  length  of the buffer, that means that it may
        typically contain trailing spaces. If you entered  leading
        buffer. So don't use it  for  long  term  storage  of  the
        entered form data.
 
        buffer. So don't use it  for  long  term  storage  of  the
        entered form data.
 
-       The  function  <B>set_field_status</B> sets the associated status
-       flag of <I>field</I>; <B>field_status</B> gets the current  value.   The
+       The  function  <STRONG>set_field_status</STRONG> sets the associated status
+       flag of <EM>field</EM>; <STRONG>field_status</STRONG> gets the current  value.   The
        status  flag  is set to a nonzero value whenever the field
        changes.
 
        status  flag  is set to a nonzero value whenever the field
        changes.
 
-       The function <B>set_max_field</B> sets the  maximum  size  for  a
+       The function <STRONG>set_max_field</STRONG> sets the  maximum  size  for  a
        dynamic  field.   An  argument  of 0 turns off any maximum
        size threshold for that field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        dynamic  field.   An  argument  of 0 turns off any maximum
        size threshold for that field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The <B>field_buffer</B> function returns NULL on error.
+       The <STRONG>field_buffer</STRONG> function returns NULL on error.
 
 
-       The <B>field_status</B> function returns <B>TRUE</B> or <B>FALSE</B>.
+       The <STRONG>field_status</STRONG> function returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
 
        The remaining routines return one of the following:
 
 
        The remaining routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  and  3x  pages  whose  names begin "form_" for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 40ef3a2d801a1814e24728cc554c98c4d1c04841..db2e5247b2684a3280efcddc4e454249980e4ab7 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_info 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>
 <BODY>
+<H1>form_field_info 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_info</B> - retrieve field characteristics
+       <STRONG>form_field_info</STRONG> - retrieve field characteristics
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int field_info(const FIELD *field, int *rows, int *cols,
                      int *frow, int *fcol, int *nrow, int *nbuf);
        int dynamic_field_info(const FIELD *field, int *rows,  int
        int field_info(const FIELD *field, int *rows, int *cols,
                      int *frow, int *fcol, int *nrow, int *nbuf);
        int dynamic_field_info(const FIELD *field, int *rows,  int
-       *cols, *max);
+       *cols, int *max);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>field_info</B>  returns  the  sizes  and  other
+       The  function  <STRONG>field_info</STRONG>  returns  the  sizes  and  other
        attributes passed in to the field at  its  creation  time.
        The  attributes are: height, width, row of upper-left cor-
        ner, column of upper-left corner, number off-screen  rows,
        and number of working buffers.
 
        attributes passed in to the field at  its  creation  time.
        The  attributes are: height, width, row of upper-left cor-
        ner, column of upper-left corner, number off-screen  rows,
        and number of working buffers.
 
-       The function <B>dynamic_field_info</B> returns the actual size of
+       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
        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 <B>O_STATIC</B>).
+       by turning off the <STRONG>O_STATIC</STRONG>).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B> and 3x pages  whose  names  begin  "form_"  for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 1643c44941011c37b4c63c425a3ceee524d78994..c4c989c6fcff6b2c816b11e16767152e3dbb0743 100644 (file)
@@ -1,24 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_just.3x,v 1.6 2002/01/19 22:48:41 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_just 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>
 <BODY>
+<H1>form_field_just 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_just</B> - retrieve field characteristics
+       <STRONG>form_field_just</STRONG> - retrieve field characteristics
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_just(FIELD *field, int justification);
        int field_just(const FIELD *field);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int set_field_just(FIELD *field, int justification);
        int field_just(const FIELD *field);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The   function   <B>set_field_just</B>   sets  the  justification
-       attribute of a field; <B>field_just</B> returns a field's  justi-
+       The   function   <STRONG>set_field_just</STRONG>   sets  the  justification
+       attribute of a field; <STRONG>field_just</STRONG> returns a field's  justi-
        fication attribute.  The attribute may be one of NO_JUSTI-
        FICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or  JUSTIFY_CENTER.
 
        fication attribute.  The attribute may be one of NO_JUSTI-
        FICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or  JUSTIFY_CENTER.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  function <B>field_just</B> returns one of: NO_JUSTIFICATION,
+       The  function <STRONG>field_just</STRONG> returns one of: NO_JUSTIFICATION,
        JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
 
        JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
 
-       The function <B>set_field_just</B> return one of the following:
+       The function <STRONG>set_field_just</STRONG> return one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  and  3x  pages  whose  names begin "form_" for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index f6dd76a161ed79bb076fe349a58bc370f76879a7..54e94e516a737a9d3431135979a52686a013e29d 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_new.3x,v 1.11 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_new 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>
 <BODY>
+<H1>form_field_new 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_new</B> - create and destroy form fields
+       <STRONG>form_field_new</STRONG> - create and destroy form fields
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        FIELD *new_field(int height, int width,
                         int toprow, int leftcol,
                         int offscreen, int nbuffers);
        FIELD *new_field(int height, int width,
                         int toprow, int leftcol,
                         int offscreen, int nbuffers);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>new_field</B> allocates a new field and initial-
+       The  function <STRONG>new_field</STRONG> allocates a new field and initial-
        izes it from the parameters given: height, width,  row  of
        upper-left  corner,  column  of  upper-left corner, number
        off-screen rows, and number of additional working buffers.
 
        izes it from the parameters given: height, width,  row  of
        upper-left  corner,  column  of  upper-left corner, number
        off-screen rows, and number of additional working buffers.
 
-       The  function  <B>dup_field</B> duplicates a field at a new loca-
+       The  function  <STRONG>dup_field</STRONG> duplicates a field at a new loca-
        tion.  Most attributes (including current contents,  size,
        validation  type, buffer count, growth threshold, justifi-
        cation, foreground, background,  pad  character,  options,
        and  user pointer) are copied.  Field status and the field
        page bit are not copied.
 
        tion.  Most attributes (including current contents,  size,
        validation  type, buffer count, growth threshold, justifi-
        cation, foreground, background,  pad  character,  options,
        and  user pointer) are copied.  Field status and the field
        page bit are not copied.
 
-       The function <B>link_field</B> acts like <B>dup_field</B>, but  the  new
+       The function <STRONG>link_field</STRONG> acts like <STRONG>dup_field</STRONG>, but  the  new
        field  shares  buffers with its parent.  Attribute data is
        separate.
 
        field  shares  buffers with its parent.  Attribute data is
        separate.
 
-       The function <B>free_field</B>  de-allocates  storage  associated
+       The function <STRONG>free_field</STRONG>  de-allocates  storage  associated
        with a field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        with a field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function, <B>new_field</B>, <B>dup_field</B>, <B>link_field</B> return <B>NULL</B>
+       The function, <STRONG>new_field</STRONG>, <STRONG>dup_field</STRONG>, <STRONG>link_field</STRONG> return <STRONG>NULL</STRONG>
        on error.
 
        on error.
 
-       The function <B>free_field</B> returns one of the following:
+       The function <STRONG>free_field</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
        were not supported on Version 7 or BSD versions.
 
        It  may be unwise to count on the set of attributes copied
        were not supported on Version 7 or BSD versions.
 
        It  may be unwise to count on the set of attributes copied
-       by  <B><A HREF="dup_field.3x.html">dup_field(3x)</A></B>  being  portable;  the  System  V  forms
+       by  <STRONG><A HREF="dup_field.3x.html">dup_field(3x)</A></STRONG>  being  portable;  the  System  V  forms
        library  documents  are  not  very  explicit  on what gets
        copied and was not.
 
        library  documents  are  not  very  explicit  on what gets
        copied and was not.
 
index 576dcad8a2701297ac6e6f2d297e0f3f8e7bb325..c1ff6a30ae524515bf9fbe41d2eeec6bac3345df 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_opts.3x,v 1.7 1998/11/29 01:06:54 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_opts 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>
 <BODY>
+<H1>form_field_opts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_opts</B> - set and get field options
+       <STRONG>form_field_opts</STRONG> - set and get field options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_opts(FIELD *field, OPTIONS opts);
        int field_opts_on(FIELD *field, OPTIONS opts);
        int field_opts_off(FIELD *field, OPTIONS opts);
        int set_field_opts(FIELD *field, OPTIONS opts);
        int field_opts_on(FIELD *field, OPTIONS opts);
        int field_opts_off(FIELD *field, OPTIONS opts);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_field_opts</B>  sets  all the given field's
+       The  function  <STRONG>set_field_opts</STRONG>  sets  all the given field's
        option bits (field  option  bits  may  be  logically-OR'ed
        together).
 
        option bits (field  option  bits  may  be  logically-OR'ed
        together).
 
-       The function <B>field_opts_on</B> turns on the given option bits,
+       The function <STRONG>field_opts_on</STRONG> turns on the given option bits,
        and leaves others alone.
 
        and leaves others alone.
 
-       The function <B>field_opts_off</B> turns  off  the  given  option
+       The function <STRONG>field_opts_off</STRONG> turns  off  the  given  option
        bits, and leaves others alone.
 
        bits, and leaves others alone.
 
-       The function <B>field_opts</B> returns the field's current option
+       The function <STRONG>field_opts</STRONG> returns the field's current option
        bits.
 
        The following options are defined (all are on by default):
        bits.
 
        The following options are defined (all are on by default):
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>field_opts</B>, each routine  returns  one  of  the
+       Except for <STRONG>field_opts</STRONG>, each routine  returns  one  of  the
        following:
 
        following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_CURRENT</B>
+       <STRONG>E_CURRENT</STRONG>
             The field is the current field.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The field is the current field.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 
 
-       <B>NOTES</B>  The header file <B>&lt;form.h&gt;</B> automatically includes the
-              header file <B>&lt;curses.h&gt;</B>.
+       <STRONG>NOTES</STRONG>  The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the
+              header file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 46977c9ffcc535a0f8621ec942796fb810183e5e..0041a562976abc116ea01fb85017bdfcfce270aa 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_userptr.3x,v 1.6 1998/11/29 01:07:05 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_userptr 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>
 <BODY>
+<H1>form_field_userptr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_userptr</B>  -  associate  application  data with a
+       <STRONG>form_field_userptr</STRONG>  -  associate  application  data with a
        form field
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        form field
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_userptr(FIELD *field, void*userptr);
        void *field_userptr(const FIELD *field);
 
        int set_field_userptr(FIELD *field, void*userptr);
        void *field_userptr(const FIELD *field);
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  function  <B>field_userptr</B>  returns  <B>NULL</B>  on error. The
-       function <B>set_field_userptr</B> returns one of the following:
+       The  function  <STRONG>field_userptr</STRONG>  returns  <STRONG>NULL</STRONG>  on error. The
+       function <STRONG>set_field_userptr</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 34ae0dc78902eb62728b9c41bf2ae725c8a56b53..93cae7f4c5d745cd462256407f99b6cdd73045f3 100644 (file)
@@ -1,16 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_field_validation.3x,v 1.12 2002/02/16 22:39:52 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_field_validation 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>
 <BODY>
+<H1>form_field_validation 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_field_validation</B> - data type validation for fields
+       <STRONG>form_field_validation</STRONG> - data type validation for fields
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_type(FIELD *field, FIELDTYPE *type, ...);
        FIELDTYPE *field_type(const FIELD *field);
        void *field_arg(const FIELD *field);
        int set_field_type(FIELD *field, FIELDTYPE *type, ...);
        FIELDTYPE *field_type(const FIELD *field);
        void *field_arg(const FIELD *field);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_field_type</B>  declares  a data type for a
+       The  function  <STRONG>set_field_type</STRONG>  declares  a data type for a
        given form field.  This is the type checked by  validation
        functions.  The types are as follows:
 
        TYPE_ALNUM
        given form field.  This is the type checked by  validation
        functions.  The types are as follows:
 
        TYPE_ALNUM
-            Alphanumeric  data.  Requires a third <B>int</B> argument, a
+            Alphanumeric  data.  Requires a third <STRONG>int</STRONG> argument, a
             minimum field width.
 
        TYPE_ALPHA
             minimum field width.
 
        TYPE_ALPHA
-            Character data.  Requires a  third  <B>int</B>  argument,  a
+            Character data.  Requires a  third  <STRONG>int</STRONG>  argument,  a
             minimum field width.
 
        TYPE_ENUM
             Accept one of a specified set of strings.  Requires a
             minimum field width.
 
        TYPE_ENUM
             Accept one of a specified set of strings.  Requires a
-            third <B>(char</B> <B>**)</B> argument pointing to a string list; a
-            fourth  <B>int</B> flag argument to enable case-sensitivity;
-            and a fifth <B>int</B> flag argument  specifying  whether  a
+            third <STRONG>(char</STRONG> <STRONG>**)</STRONG> argument pointing to a string list; a
+            fourth  <STRONG>int</STRONG> flag argument to enable case-sensitivity;
+            and a fifth <STRONG>int</STRONG> flag argument  specifying  whether  a
             partial  match  must be a unique one (if this flag is
             off, a prefix matches the first of any  set  of  more
             than  one  list  elements  with  that prefix). Please
             partial  match  must be a unique one (if this flag is
             off, a prefix matches the first of any  set  of  more
             than  one  list  elements  with  that prefix). Please
             on the stack.
 
        TYPE_INTEGER
             on the stack.
 
        TYPE_INTEGER
-            Integer  data,  parsable  to  an  integer by <B>atoi(3)</B>.
-            Requires a third <B>int</B> argument controlling the  preci-
-            sion,  a  fourth  <B>long</B>  argument constraining minimum
-            value, and a fifth <B>long</B> constraining  maximum  value.
+            Integer  data,  parsable  to  an  integer by <STRONG>atoi(3)</STRONG>.
+            Requires a third <STRONG>int</STRONG> argument controlling the  preci-
+            sion,  a  fourth  <STRONG>long</STRONG>  argument constraining minimum
+            value, and a fifth <STRONG>long</STRONG> constraining  maximum  value.
             If  the  maximum  value  is less or equal the minimum
             value, the range is simply  ignored.  On  return  the
             If  the  maximum  value  is less or equal the minimum
             value, the range is simply  ignored.  On  return  the
-            field  buffer  is  formatted  according to the <B>printf</B>
+            field  buffer  is  formatted  according to the <STRONG>printf</STRONG>
             format  specification  ".*ld",  where  the   '*'   is
             replaced  by  the precision argument.  For details of
             format  specification  ".*ld",  where  the   '*'   is
             replaced  by  the precision argument.  For details of
-            the precision handling see <B>printf's</B> man-page.
+            the precision handling see <STRONG>printf's</STRONG> man-page.
 
        TYPE_NUMERIC
             Numeric  data  (may  have  a   decimal-point   part).
 
        TYPE_NUMERIC
             Numeric  data  (may  have  a   decimal-point   part).
-            Requires  a third <B>int</B> argument controlling the preci-
-            sion, a fourth <B>double</B> argument  constraining  minimum
-            value, and a fifth <B>double</B> constraining maximum value.
+            Requires  a third <STRONG>int</STRONG> argument controlling the preci-
+            sion, a fourth <STRONG>double</STRONG> argument  constraining  minimum
+            value, and a fifth <STRONG>double</STRONG> constraining maximum value.
             If your system supports locale's, the  decimal  point
             character  to  be  used  must be the one specified by
             your locale.  If the maximum value is less  or  equal
             the  minimum  value,  the range is simply ignored. On
             return the field buffer is formatted according to the
             If your system supports locale's, the  decimal  point
             character  to  be  used  must be the one specified by
             your locale.  If the maximum value is less  or  equal
             the  minimum  value,  the range is simply ignored. On
             return the field buffer is formatted according to the
-            <B>printf</B>  format  specification ".*f", where the '*' is
+            <STRONG>printf</STRONG>  format  specification ".*f", where the '*' is
             replaced by the precision argument.  For  details  of
             replaced by the precision argument.  For  details  of
-            the precision handling see <B>printf's</B> man-page.
+            the precision handling see <STRONG>printf's</STRONG> man-page.
 
        TYPE_REGEXP
             Regular  expression data.  Requires a regular expres-
 
        TYPE_REGEXP
             Regular  expression data.  Requires a regular expres-
-            sion <B>(char</B> <B>*)</B> third argument; the data  is  valid  if
+            sion <STRONG>(char</STRONG> <STRONG>*)</STRONG> third argument; the data  is  valid  if
             the  regular  expression matches it.  Regular expres-
             the  regular  expression matches it.  Regular expres-
-            sions  are  in  the   format   of   <B><A HREF="regcomp.3x.html">regcomp(3x)</A></B>   and
-            <B><A HREF="regexec.3x.html">regexec(3x)</A></B>.  Please  notice that the regular expres-
+            sions  are  in  the   format   of   <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG>   and
+            <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>.  Please  notice that the regular expres-
             sion must match the whole  field.  If  you  have  for
             example  an  eight  character  wide  field, a regular
             expression "^[0-9]*$" always means that you  have  to
             sion must match the whole  field.  If  you  have  for
             example  an  eight  character  wide  field, a regular
             expression "^[0-9]*$" always means that you  have  to
             implementations.
 
             It is possible to set up new programmer-defined field
             implementations.
 
             It is possible to set up new programmer-defined field
-            types.  See the <B><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></B> manual page.
+            types.  See the <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> manual page.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  functions  <B>field_type</B>  and  <B>field_arg</B>  return <B>NULL</B> on
-       error. The function <B>set_field_type</B> returns one of the fol-
+       The  functions  <STRONG>field_type</STRONG>  and  <STRONG>field_arg</STRONG>  return <STRONG>NULL</STRONG> on
+       error. The function <STRONG>set_field_type</STRONG> returns one of the fol-
        lowing:
 
        lowing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index dec43a354d1368605ee4b0f4daedba055f395c32..d4ff4f34b8efb213865eb393d2fc3d4c0f5ec6de 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_fieldtype.3x,v 1.9 2001/08/04 20:36:25 William.Setzer Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_fieldtype 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>
 <BODY>
+<H1>form_fieldtype 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_fieldtype</B> - define validation-field types
+       <STRONG>form_fieldtype</STRONG> - define validation-field types
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        FIELDTYPE *new_fieldtype(
            bool (* const field_check)(FIELD *, const void *),
            bool (* const char_check)(int, const void *));
        FIELDTYPE *new_fieldtype(
            bool (* const field_check)(FIELD *, const void *),
            bool (* const char_check)(int, const void *));
@@ -21,7 +60,7 @@
            void *(* const copy_arg)(const void *),
            void  (* const free_arg)(void *));
        int set_fieldtype_choice(
            void *(* const copy_arg)(const void *),
            void  (* const free_arg)(void *));
        int set_fieldtype_choice(
-           FIELDTYPE *fieldtype
+           FIELDTYPE *fieldtype,
            bool (* const next_choice)(FIELD *, const void *),
            bool (* const prev_choice)(FIELD *, const void *));
        FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
            bool (* const next_choice)(FIELD *, const void *),
            bool (* const prev_choice)(FIELD *, const void *));
        FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
@@ -30,8 +69,8 @@
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>new_fieldtype</B> creates a new field type usable
-       for data validation.  You supply it  with  <I>field</I><B>_</B><I>check</I>,  a
+       The function <STRONG>new_fieldtype</STRONG> creates a new field type usable
+       for data validation.  You supply it  with  <EM>field</EM><STRONG>_</STRONG><EM>check</EM>,  a
        predicate  to check the validity of an entered data string
        whenever the user attempt to leave a field.  The (FIELD *)
        argument  is passed in so the validation predicate can see
        predicate  to check the validity of an entered data string
        whenever the user attempt to leave a field.  The (FIELD *)
        argument  is passed in so the validation predicate can see
        argument  is an argument-block structure, about which more
        below.
 
        argument  is an argument-block structure, about which more
        below.
 
-       You also supply <B>new_fieldtype</B> with <I>char</I><B>_</B><I>check</I>, a  function
+       You also supply <STRONG>new_fieldtype</STRONG> with <EM>char</EM><STRONG>_</STRONG><EM>check</EM>, a  function
        to  validate input characters as they are entered; it will
        be passed the character to be checked and a pointer to  an
        argument-block structure.
 
        to  validate input characters as they are entered; it will
        be passed the character to be checked and a pointer to  an
        argument-block structure.
 
-       The  function <B>free_fieldtype</B> frees the space allocated for
+       The  function <STRONG>free_fieldtype</STRONG> frees the space allocated for
        a given validation type.
 
        a given validation type.
 
-       The function <B>set_fieldtype</B> associates  three  storage-man-
-       agement functions with a field type.  The <I>mak</I><B>_</B><I>arg</I> function
+       The function <STRONG>set_fieldtype</STRONG> associates  three  storage-man-
+       agement functions with a field type.  The <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function
        is automatically applied to the list of arguments you give
        is automatically applied to the list of arguments you give
-       <B>set_field_type</B>  when  attaching validation to a field; its
+       <STRONG>set_field_type</STRONG>  when  attaching validation to a field; its
        job is to bundle these into  an  allocated  argument-block
        object which can later be passed to validation predicated.
        The other two hook arguments should copy  and  free  argu-
        ment-block  structures.   They  will be used by the forms-
        job is to bundle these into  an  allocated  argument-block
        object which can later be passed to validation predicated.
        The other two hook arguments should copy  and  free  argu-
        ment-block  structures.   They  will be used by the forms-
-       driver code. You must supply  the  <I>mak</I><B>_</B><I>arg</I>  function,  the
+       driver code. You must supply  the  <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM>  function,  the
        other  two  are optional, you may supply NULL for them. In
        other  two  are optional, you may supply NULL for them. In
-       this case it is assumed,  that  <I>mak</I><B>_</B><I>arg</I>  doesn't  allocate
+       this case it is assumed,  that  <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM>  doesn't  allocate
        memory  but simply loads the argument into a single scalar
        value.
 
        memory  but simply loads the argument into a single scalar
        value.
 
-       The   form    driver    requests    <B>REQ_NEXT_CHOICE</B>    and
-       <B>REQ_PREV_CHOICE</B> assume that the possible values of a field
+       The   form    driver    requests    <STRONG>REQ_NEXT_CHOICE</STRONG>    and
+       <STRONG>REQ_PREV_CHOICE</STRONG> assume that the possible values of a field
        form an ordered set, and provide the forms user with a way
        form an ordered set, and provide the forms user with a way
-       to  move  through the set.  The <B>set_fieldtype_choice</B> func-
+       to  move  through the set.  The <STRONG>set_fieldtype_choice</STRONG> func-
        tion allows forms programmers to define successor and pre-
        decessor  functions  for  the field type.  These functions
        take the field pointer and an argument-block structure  as
        tion allows forms programmers to define successor and pre-
        decessor  functions  for  the field type.  These functions
        take the field pointer and an argument-block structure  as
        The  integer-valued  routines  return one of the following
        codes on error:
 
        The  integer-valued  routines  return one of the following
        codes on error:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_CONNECTED</B>
+       <STRONG>E_CONNECTED</STRONG>
             The field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
-       All of the <B>(char</B> <B>*)</B> arguments of  these  functions  should
-       actually  be <B>(void</B> <B>*)</B>.  The type has been left uncorrected
+       All of the <STRONG>(char</STRONG> <STRONG>*)</STRONG> arguments of  these  functions  should
+       actually  be <STRONG>(void</STRONG> <STRONG>*)</STRONG>.  The type has been left uncorrected
        for strict compatibility with System V.
 
 
        for strict compatibility with System V.
 
 
index 87628aa2da4dafc845196d9c5313c11419b4b7f2..5f6af22f2f890053396b659abec6027ee4ac6770 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_hook.3x,v 1.6 1999/03/20 22:37:15 Todd.Miller Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_hook 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>
 <BODY>
+<H1>form_hook 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_hook</B> - set hooks for automatic invocation by applica-
+       <STRONG>form_hook</STRONG> - set hooks for automatic invocation by applica-
        tions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        tions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_field_init(FORM *form, void (*func)(FORM *));
        void (*)(FORM *) field_init(const FORM *form);
        int set_field_term(FORM *form, void (*func)(FORM *));
        int set_field_init(FORM *form, void (*func)(FORM *));
        void (*)(FORM *) field_init(const FORM *form);
        int set_field_term(FORM *form, void (*func)(FORM *));
 <H2>DESCRIPTION</H2><PRE>
        These functions make it possible to set hook functions  to
        be called at various points in the automatic processing of
 <H2>DESCRIPTION</H2><PRE>
        These functions make it possible to set hook functions  to
        be called at various points in the automatic processing of
-       input event codes by <B>form_driver</B>.
+       input event codes by <STRONG>form_driver</STRONG>.
 
 
-       The function <B>set_field_init</B> sets a hook to  be  called  at
+       The function <STRONG>set_field_init</STRONG> sets a hook to  be  called  at
        form-post  time  and  each time the selected field changes
        form-post  time  and  each time the selected field changes
-       (after the change).  <B>field_init</B> returns the current  field
-       init hook, if any (<B>NULL</B> if there is no such hook).
+       (after the change).  <STRONG>field_init</STRONG> returns the current  field
+       init hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The  function  <B>set_field_term</B>  sets a hook to be called at
+       The  function  <STRONG>set_field_term</STRONG>  sets a hook to be called at
        form-unpost time and each time the selected field  changes
        form-unpost time and each time the selected field  changes
-       (before the change).  <B>field_term</B> returns the current field
-       term hook, if any (<B>NULL</B> if there is no such hook).
+       (before the change).  <STRONG>field_term</STRONG> returns the current field
+       term hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The function <B>set_form_init</B> sets a hook  to  be  called  at
+       The function <STRONG>set_form_init</STRONG> sets a hook  to  be  called  at
        form-post  time  and  just  after a page change once it is
        form-post  time  and  just  after a page change once it is
-       posted.  <B>form_init</B> returns the current form init hook,  if
-       any (<B>NULL</B> if there is no such hook).
+       posted.  <STRONG>form_init</STRONG> returns the current form init hook,  if
+       any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The  function  <B>set_form_term</B>  sets  a hook to be called at
+       The  function  <STRONG>set_form_term</STRONG>  sets  a hook to be called at
        form-unpost time and just before a page change once it  is
        form-unpost time and just before a page change once it  is
-       posted.   <B>form_init</B> returns the current form term hook, if
-       any (<B>NULL</B> if there is no such hook).
+       posted.   <STRONG>form_init</STRONG> returns the current form term hook, if
+       any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return pointers return <B>NULL</B> on error.  Other
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.  Other
        routines return one of the following:
 
        routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 7b0d91bbdd073ce8a1b17fa48305f909ecc32f81..c90a023e58ee257b166beedeaa65e9bb3fccab81 100644 (file)
@@ -1,58 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_new.3x,v 1.5 1998/11/29 01:07:37 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_new 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>
 <BODY>
+<H1>form_new 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_new</B> - create and destroy forms
+       <STRONG>form_new</STRONG> - create and destroy forms
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        FORM *new_form(FIELD **fields);
        int free_form(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        FORM *new_form(FIELD **fields);
        int free_form(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>new_form</B>  creates a new form connected to a
-       specified field pointer array (which must  be  <B>NULL</B>-termi-
+       The  function  <STRONG>new_form</STRONG>  creates a new form connected to a
+       specified field pointer array (which must  be  <STRONG>NULL</STRONG>-termi-
        nated).
 
        nated).
 
-       The  function  <B>free_form</B>  disconnects  <I>form</I> from its field
+       The  function  <STRONG>free_form</STRONG>  disconnects  <EM>form</EM> from its field
        array and frees the storage allocated for the form.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        array and frees the storage allocated for the form.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>new_form</B> returns <B>NULL</B> on error.
+       The function <STRONG>new_form</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       The function <B>free_form</B> returns one of the following:
+       The function <STRONG>free_form</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The form has already been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The form has already been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 1a8d4ea832ab866983ba4b15f72c74a77b3022a8..ae2cc2d9c50600bfa18ff6f961524c796963b928 100644 (file)
@@ -1,55 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_new_page.3x,v 1.6 2002/01/19 22:48:51 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_new_page 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>
 <BODY>
+<H1>form_new_page 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_new_page</B> - form pagination functions
+       <STRONG>form_new_page</STRONG> - form pagination functions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_new_page(FIELD *field, bool new_page_flag);
        bool new_page(const FIELD *field);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int set_new_page(FIELD *field, bool new_page_flag);
        bool new_page(const FIELD *field);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_new_page</B>  sets or resets a flag marking
+       The  function  <STRONG>set_new_page</STRONG>  sets or resets a flag marking
        the given field as the beginning of  a  new  page  on  its
        form.
 
        the given field as the beginning of  a  new  page  on  its
        form.
 
-       The  function  <B>new_page</B>  is  a  predicate which tests if a
+       The  function  <STRONG>new_page</STRONG>  is  a  predicate which tests if a
        given field marks a page beginning on its form.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        given field marks a page beginning on its form.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>new_page</B> returns <B>TRUE</B> or <B>FALSE</B>.
+       The function <STRONG>new_page</STRONG> returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
 
 
-       The function <B>set_new_page</B> return one of the following:
+       The function <STRONG>set_new_page</STRONG> return one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_CONNECTED</B>
+       <STRONG>E_CONNECTED</STRONG>
             The given field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The given field is already connected to a form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B> and 3x pages  whose  names  begin  "form_"  for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 5ae1cc4abc239a95185cc144fd973f767f438d70..38f970be2b62d59d800190d477418c3982190ccf 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_opts.3x,v 1.6 1998/11/29 01:07:53 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_opts 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>
 <BODY>
+<H1>form_opts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_opts</B> - set and get form options
+       <STRONG>form_opts</STRONG> - set and get form options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_form_opts(FORM *form, OPTIONS opts);
        int form_opts_on(FORM *form, OPTIONS opts);
        int form_opts_off(FORM *form, OPTIONS opts);
        int set_form_opts(FORM *form, OPTIONS opts);
        int form_opts_on(FORM *form, OPTIONS opts);
        int form_opts_off(FORM *form, OPTIONS opts);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_form_opts</B>  sets  all  the  given form's
+       The  function  <STRONG>set_form_opts</STRONG>  sets  all  the  given form's
        option bits  (form  option  bits  may  be  logically-OR'ed
        together).
 
        option bits  (form  option  bits  may  be  logically-OR'ed
        together).
 
-       The  function <B>form_opts_on</B> turns on the given option bits,
+       The  function <STRONG>form_opts_on</STRONG> turns on the given option bits,
        and leaves others alone.
 
        and leaves others alone.
 
-       The function <B>form_opts_off</B>  turns  off  the  given  option
+       The function <STRONG>form_opts_off</STRONG>  turns  off  the  given  option
        bits, and leaves others alone.
 
        bits, and leaves others alone.
 
-       The  function  <B>form_opts</B> returns the form's current option
+       The  function  <STRONG>form_opts</STRONG> returns the form's current option
        bits.
 
        The following options are defined (all are on by default):
 
        O_NL_OVERLOAD
        bits.
 
        The following options are defined (all are on by default):
 
        O_NL_OVERLOAD
-            Overload  the  <B>REQ_NEW_LINE</B>  forms  driver request so
+            Overload  the  <STRONG>REQ_NEW_LINE</STRONG>  forms  driver request so
             that calling it at the end of a  field  goes  to  the
             next field.
 
        O_BS_OVERLOAD
             that calling it at the end of a  field  goes  to  the
             next field.
 
        O_BS_OVERLOAD
-            Overload  the  <B>REQ_DEL_PREV</B>  forms  driver request so
+            Overload  the  <STRONG>REQ_DEL_PREV</STRONG>  forms  driver request so
             that calling it at the beginning of a field  goes  to
             the previous field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
             that calling it at the beginning of a field  goes  to
             the previous field.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>form_opts</B>, each routine returns one of the fol-
+       Except for <STRONG>form_opts</STRONG>, each routine returns one of the fol-
        lowing:
 
        lowing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 874bda872de15e3a5f68eb138ed171e7554b747c..84d9f7b7de11bbf8495cf2ada8400e740e1aac7f 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_page.3x,v 1.8 1998/11/29 01:08:02 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_page 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>
 <BODY>
+<H1>form_page 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_page</B> - set and get form page number
+       <STRONG>form_page</STRONG> - set and get form page number
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_current_field(FORM *form, FIELD *field);
        FIELD *current_field(const FORM *);
        int set_form_page(FORM *form, int n);
        int set_current_field(FORM *form, FIELD *field);
        FIELD *current_field(const FORM *);
        int set_form_page(FORM *form, int n);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_current</B> <B>field</B> sets the current field of
-       the given form; <B>current_field</B> returns the current field of
+       The  function  <STRONG>set_current</STRONG> <STRONG>field</STRONG> sets the current field of
+       the given form; <STRONG>current_field</STRONG> returns the current field of
        the given form.
 
        the given form.
 
-       The  function  <B>set_form_page</B>  sets  the form's page number
-       (goes to page <I>n</I> of the form).
+       The  function  <STRONG>set_form_page</STRONG>  sets  the form's page number
+       (goes to page <EM>n</EM> of the form).
 
 
-       The function <B>form_page</B> returns  the  form's  current  page
+       The function <STRONG>form_page</STRONG> returns  the  form's  current  page
        number.
 
        number.
 
-       The function <B>field_index</B> returns the index of the field in
+       The function <STRONG>field_index</STRONG> returns the index of the field in
        the field array of the form it is connected to. It returns
        the field array of the form it is connected to. It returns
-       <B>ERR</B>  if  the  argument is the null pointer or the field is
+       <STRONG>ERR</STRONG>  if  the  argument is the null pointer or the field is
        not connected.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        not connected.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>form_page</B>, each routine returns one of the fol-
+       Except for <STRONG>form_page</STRONG>, each routine returns one of the fol-
        lowing:
 
        lowing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_INVALID_FIELD</B>
+       <STRONG>E_INVALID_FIELD</STRONG>
             Contents of a field are not valid.
 
             Contents of a field are not valid.
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The form driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index e52967e8f603893fc6adb22d6706015ce94589e5..2730fddb4724f1d6600eaef66e9f557731a20a51 100644 (file)
@@ -1,30 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_post.3x,v 1.4 1998/11/29 01:08:10 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_post 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>
 <BODY>
+<H1>form_post 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_post</B>  -  write or erase forms from associated subwin-
+       <STRONG>form_post</STRONG>  -  write or erase forms from associated subwin-
        dows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        dows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int post_form(FORM *form);
        int unpost_form(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int post_form(FORM *form);
        int unpost_form(FORM *form);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>post_form</B> displays a form to  its  associated
+       The function <STRONG>post_form</STRONG> displays a form to  its  associated
        subwindow.   To trigger physical display of the subwindow,
        subwindow.   To trigger physical display of the subwindow,
-       use  <B>refresh</B>  or  some  equivalent  <B>curses</B>  routine   (the
-       implicit  <B>doupdate</B>  triggered  by  an <B>curses</B> input request
+       use  <STRONG>refresh</STRONG>  or  some  equivalent  <STRONG>curses</STRONG>  routine   (the
+       implicit  <STRONG>doupdate</STRONG>  triggered  by  an <STRONG>curses</STRONG> input request
        will do).
 
        will do).
 
-       The function <B>unpost_form</B> erases form from  its  associated
+       The function <STRONG>unpost_form</STRONG> erases form from  its  associated
        subwindow.
 
 
        subwindow.
 
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The form has already been posted.
 
             The form has already been posted.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NO_ROOM</B>
+       <STRONG>E_NO_ROOM</STRONG>
             Form is too large for its window.
 
             Form is too large for its window.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The form has not been posted.
 
             The form has not been posted.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index dcf5065ed0df08494a8508c83fac6bc02a43e2d4..093f1f1299b261bf01cb666c6a9980f221608ab4 100644 (file)
@@ -1,45 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_requestname.3x,v 1.6 1998/11/29 01:08:18 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_requestname 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>
 <BODY>
+<H1>form_requestname 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_requestname</B> - handle printable form request names
+       <STRONG>form_requestname</STRONG> - handle printable form request names
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        const char *form_request_name(int request);
        int form_request_by_name(const char *name);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        const char *form_request_name(int request);
        int form_request_by_name(const char *name);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>form_request_name</B> returns the printable name
+       The  function <STRONG>form_request_name</STRONG> returns the printable name
        of a form request code.
        of a form request code.
-       The function <B>form_request_by_name</B> searches  in  the  name-
+       The function <STRONG>form_request_by_name</STRONG> searches  in  the  name-
        table  for  a  request with the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        table  for  a  request with the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>form_request_name</B> returns <B>NULL</B> on error and sets errno  to
-       <B>E_BAD_ARGUMENT</B>.
-       <B>form_request_by_name</B> returns <B>E_NO_MATCH</B> on error.
+       <STRONG>form_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets errno  to
+       <STRONG>E_BAD_ARGUMENT</STRONG>.
+       <STRONG>form_request_by_name</STRONG> returns <STRONG>E_NO_MATCH</STRONG> on error.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 4ac76f8bbe5171f1b890a19ce77b4799d75a5b91..325df02b0f0996563b5276899badf0df5bd0a5e7 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_userptr.3x,v 1.9 1998/11/29 01:08:39 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_userptr 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>
 <BODY>
+<H1>form_userptr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_userptr</B> - associate application data with a form item
+       <STRONG>form_userptr</STRONG> - associate application data with a form item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_form_userptr(FORM *form, void *userptr);
        void* form_userptr(const FORM *form);
 
        int set_form_userptr(FORM *form, void *userptr);
        void* form_userptr(const FORM *form);
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The  function  <B>form_userptr</B>  returns  <B>NULL</B>  on error.  The
-       function <B>set_form_userptr</B> returns one of the following:
+       The  function  <STRONG>form_userptr</STRONG>  returns  <STRONG>NULL</STRONG>  on error.  The
+       function <STRONG>set_form_userptr</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 4f73a6410cf59abdbdab1f28c3ab2a4757cf44a7..13d39e3a8429696c425db19726b3c700e9cae038 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: form_win.3x,v 1.8 1999/04/10 23:36:08 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>form_win 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>
 <BODY>
+<H1>form_win 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>form_win</B>  - make and break form window and subwindow asso-
+       <STRONG>form_win</STRONG>  - make and break form window and subwindow asso-
        ciations
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        ciations
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;form.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
        int set_form_win(FORM *form, WINDOW *win);
        WINDOW *form_win(const FORM *form);
        int set_form_sub(FORM *form, WINDOW *sub);
        int set_form_win(FORM *form, WINDOW *win);
        WINDOW *form_win(const FORM *form);
        int set_form_sub(FORM *form, WINDOW *sub);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       Every  form has an associated pair of <B>curses</B> windows.  The
+       Every  form has an associated pair of <STRONG>curses</STRONG> windows.  The
        form window displays any title and border associated  with
        the  window;  the form subwindow displays the items of the
        form that are currently available for selection.
 
        The first four functions get and set those windows.  It is
        not necessary to set either window; by default, the driver
        form window displays any title and border associated  with
        the  window;  the form subwindow displays the items of the
        form that are currently available for selection.
 
        The first four functions get and set those windows.  It is
        not necessary to set either window; by default, the driver
-       code uses <B>stdscr</B> for both.
+       code uses <STRONG>stdscr</STRONG> for both.
 
 
-       In the <B>set_</B> functions, window argument of <B>NULL</B> is  treated
-       as  though  it  were  <B>stsdcr</B>.   A form argument of <B>NULL</B> is
+       In the <STRONG>set_</STRONG> functions, window argument of <STRONG>NULL</STRONG> is  treated
+       as  though  it  were  <STRONG>stsdcr</STRONG>.   A form argument of <STRONG>NULL</STRONG> is
        treated as a request to change  the  system  default  form
        window or subwindow.
 
        treated as a request to change  the  system  default  form
        window or subwindow.
 
-       The  function <B>scale_form</B> returns the minimum size required
-       for the subwindow of <I>form</I>.
+       The  function <STRONG>scale_form</STRONG> returns the minimum size required
+       for the subwindow of <EM>form</EM>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return pointers return <B>NULL</B> on error.   Rou-
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.   Rou-
        tines  that  return an integer return one of the following
        error codes:
 
        tines  that  return an integer return one of the following
        error codes:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The form has already been posted.
 
             The form has already been posted.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the form.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="form.3x.html">form(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;form.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 5f77495f95bb7b02860cdf271dbe36cda871013f..099b3ef069e053bf54f7370a765c55e8b6edb859 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: infocmp.1m,v 1.30 2002/10/05 21:22:21 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>infocmp 1m</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>infocmp 1m</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>infocmp</B> - compare or print out <I>terminfo</I> descriptions
+       <STRONG>infocmp</STRONG> - compare or print out <EM>terminfo</EM> descriptions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>infocmp</B> [<B>-dceEGgnpqrILCuV1</B>] [<B>-v</B> <I>n</I>] [<B>-s</B> <B>d</B>| <B>i</B>| <B>l</B>| <B>c</B>]
-             [<B>-w</B> <I>width</I>] [<B>-A</B> <I>directory</I>] [<B>-B</B> <I>directory</I>]
-             [<I>termname</I>...]
+       <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTVcdegilnpqrtu</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>...]
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>infocmp</B>  can  be  used  to compare a binary <B>terminfo</B> entry
-       with other terminfo entries, rewrite a  <B>terminfo</B>  descrip-
-       tion  to  take  advantage  of  the <B>use=</B> terminfo field, or
-       print out a <B>terminfo</B>  description  from  the  binary  file
-       (<B>term</B>) in a variety of formats.  In all cases, the boolean
+       <STRONG>infocmp</STRONG>  can  be  used  to compare a binary <STRONG>terminfo</STRONG> entry
+       with other terminfo entries, rewrite a  <STRONG>terminfo</STRONG>  descrip-
+       tion  to  take  advantage  of  the <STRONG>use=</STRONG> terminfo field, or
+       print out a <STRONG>terminfo</STRONG>  description  from  the  binary  file
+       (<STRONG>term</STRONG>) in a variety of formats.  In all cases, the boolean
        fields will be printed  first,  followed  by  the  numeric
        fields, followed by the string fields.
 
        fields will be printed  first,  followed  by  the  numeric
        fields, followed by the string fields.
 
-   <B>Default</B> <B>Options</B>
-       If  no options are specified and zero or one <I>termnames</I> are
-       specified, the <B>-I</B> option will be assumed.   If  more  than
-       one  <I>termname</I> is specified, the <B>-d</B> option will be assumed.
+   <STRONG>Default</STRONG> <STRONG>Options</STRONG>
+       If  no options are specified and zero or one <EM>termnames</EM> are
+       specified, the <STRONG>-I</STRONG> option will be assumed.   If  more  than
+       one  <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
 
 
-   <B>Comparison</B> <B>Options</B> <B>[-d]</B> <B>[-c]</B> <B>[-n]</B>
-       <B>infocmp</B> compares the <B>terminfo</B>  description  of  the  first
-       terminal  <I>termname</I>  with each of the descriptions given by
-       the entries for the  other  terminal's  <I>termnames</I>.   If  a
+   <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
+       <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG>  description  of  the  first
+       terminal  <EM>termname</EM>  with each of the descriptions given by
+       the entries for the  other  terminal's  <EM>termnames</EM>.   If  a
        capability  is  defined for only one of the terminals, the
        value returned will depend on the type of the  capability:
        capability  is  defined for only one of the terminals, the
        value returned will depend on the type of the  capability:
-       <B>F</B>  for  boolean  variables,  <B>-1</B> for integer variables, and
-       <B>NULL</B> for string variables.
+       <STRONG>F</STRONG>  for  boolean  variables,  <STRONG>-1</STRONG> for integer variables, and
+       <STRONG>NULL</STRONG> for string variables.
 
 
-       The <B>-d</B> option produces a list of each capability  that  is
+       The <STRONG>-d</STRONG> option produces a list of each capability  that  is
        different  between  two entries.  This option is useful to
        show the difference between two entries, created  by  dif-
        ferent people, for the same or similar terminals.
 
        different  between  two entries.  This option is useful to
        show the difference between two entries, created  by  dif-
        ferent people, for the same or similar terminals.
 
-       The  <B>-c</B>  option produces a list of each capability that is
+       The  <STRONG>-c</STRONG>  option produces a list of each capability that is
        common between two entries.  Capabilities that are not set
        are  ignored.  This option can be used as a quick check to
        common between two entries.  Capabilities that are not set
        are  ignored.  This option can be used as a quick check to
-       see if the <B>-u</B> option is worth using.
+       see if the <STRONG>-u</STRONG> option is worth using.
 
 
-       The <B>-n</B> option produces a list of each capability  that  is
-       in neither entry.  If no <I>termnames</I> are given, the environ-
-       ment variable <B>TERM</B> will be used for both of the <I>termnames</I>.
+       The <STRONG>-n</STRONG> option produces a list of each capability  that  is
+       in neither entry.  If no <EM>termnames</EM> are given, the environ-
+       ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
        This  can  be used as a quick check to see if anything was
        left out of a description.
 
        This  can  be used as a quick check to see if anything was
        left out of a description.
 
-   <B>Source</B> <B>Listing</B> <B>Options</B> <B>[-I]</B> <B>[-L]</B> <B>[-C]</B> <B>[-r]</B>
-       The <B>-I</B>, <B>-L</B>, and <B>-C</B> options will produce a  source  listing
+   <STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG>
+       The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a  source  listing
        for each terminal named.
 
        for each terminal named.
 
-      <B>-I</B>   use the <B>terminfo</B> names
-      <B>-L</B>   use the long C variable name listed in &lt;<B>term.h</B>&gt;
+      <STRONG>-I</STRONG>   use the <STRONG>terminfo</STRONG> names
 
 
-      <B>-C</B>   use the <B>termcap</B> names
-      <B>-r</B>   when using <B>-C</B>, put out all capabilities in <B>termcap</B> form
+      <STRONG>-L</STRONG>   use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt;
+      <STRONG>-C</STRONG>   use the <STRONG>termcap</STRONG> names
+      <STRONG>-r</STRONG>   when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
 
 
-       If  no  <I>termnames</I> are given, the environment variable <B>TERM</B>
+       If  no  <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
        will be used for the terminal name.
 
        will be used for the terminal name.
 
-       The source produced by the <B>-C</B> option may be used  directly
-       as  a <B>termcap</B> entry, but not all parameterized strings can
-       be changed to the <B>termcap</B> format.  <B>infocmp</B> will attempt to
+       The source produced by the <STRONG>-C</STRONG> option may be used  directly
+       as  a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
+       be changed to the <STRONG>termcap</STRONG> format.  <STRONG>infocmp</STRONG> will attempt to
        convert  most  of  the parameterized information, and any-
        thing not converted will be plainly marked in  the  output
        and commented out.  These should be edited by hand.
 
        All  padding  information  for  strings  will be collected
        together and placed at the beginning of the  string  where
        convert  most  of  the parameterized information, and any-
        thing not converted will be plainly marked in  the  output
        and commented out.  These should be edited by hand.
 
        All  padding  information  for  strings  will be collected
        together and placed at the beginning of the  string  where
-       <B>termcap</B>  expects  it.  Mandatory padding (padding informa-
+       <STRONG>termcap</STRONG>  expects  it.  Mandatory padding (padding informa-
        tion with a trailing '/') will become optional.
 
        tion with a trailing '/') will become optional.
 
-       All <B>termcap</B> variables no longer supported by <B>terminfo</B>, but
-       which are derivable from other <B>terminfo</B> variables, will be
-       output.  Not all <B>terminfo</B> capabilities will be translated;
-       only  those variables which were part of <B>termcap</B> will nor-
-       mally be output.  Specifying the <B>-r</B> option will  take  off
+       All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
+       which are derivable from other <STRONG>terminfo</STRONG> variables, will be
+       output.  Not all <STRONG>terminfo</STRONG> capabilities will be translated;
+       only  those variables which were part of <STRONG>termcap</STRONG> will nor-
+       mally be output.  Specifying the <STRONG>-r</STRONG> option will  take  off
        this  restriction,  allowing all capabilities to be output
        this  restriction,  allowing all capabilities to be output
-       in <I>termcap</I> form.
+       in <EM>termcap</EM> form.
 
        Note that because padding is collected to the beginning of
        the  capability,  not all capabilities are output.  Manda-
 
        Note that because padding is collected to the beginning of
        the  capability,  not all capabilities are output.  Manda-
-       tory padding is not supported.   Because  <B>termcap</B>  strings
+       tory padding is not supported.   Because  <STRONG>termcap</STRONG>  strings
        are  not as flexible, it is not always possible to convert
        are  not as flexible, it is not always possible to convert
-       a <B>terminfo</B> string capability into  an  equivalent  <B>termcap</B>
-       format.   A subsequent conversion of the <B>termcap</B> file back
-       into <B>terminfo</B> format will not  necessarily  reproduce  the
-       original <B>terminfo</B> source.
+       a <STRONG>terminfo</STRONG> string capability into  an  equivalent  <STRONG>termcap</STRONG>
+       format.   A subsequent conversion of the <STRONG>termcap</STRONG> file back
+       into <STRONG>terminfo</STRONG> format will not  necessarily  reproduce  the
+       original <STRONG>terminfo</STRONG> source.
 
 
-       Some  common  <B>terminfo</B>  parameter sequences, their <B>termcap</B>
+       Some  common  <STRONG>terminfo</STRONG>  parameter sequences, their <STRONG>termcap</STRONG>
        equivalents, and some terminal types which  commonly  have
        such sequences, are:
 
        equivalents, and some terminal types which  commonly  have
        such sequences, are:
 
-     <B>terminfo</B>                    <B>termcap</B>   Representative Terminals
+     <STRONG>terminfo</STRONG>                    <STRONG>termcap</STRONG>   Representative Terminals
      ---------------------------------------------------------------
      ---------------------------------------------------------------
-     <B>%p1%c</B>                       <B>%.</B>        adm
-     <B>%p1%d</B>                       <B>%d</B>        hp, ANSI standard, vt100
-     <B>%p1%'x'%+%c</B>                 <B>%+x</B>       concept
-     <B>%i</B>                          <B>%i</B>q       ANSI standard, vt100
-     <B>%p1%?%'x'%&gt;%t%p1%'y'%+%;</B>    <B>%&gt;xy</B>      concept
-     <B>%p2</B> is printed before <B>%p1</B>   <B>%r</B>        hp
-
-   <B>Use=</B> <B>Option</B> <B>[-u]</B>
-       The  <B>-u</B>  option  produces a <B>terminfo</B> source description of
-       the first terminal <I>termname</I> which is relative to  the  sum
+     <STRONG>%p1%c</STRONG>                       <STRONG>%.</STRONG>        adm
+     <STRONG>%p1%d</STRONG>                       <STRONG>%d</STRONG>        hp, ANSI standard, vt100
+     <STRONG>%p1%'x'%+%c</STRONG>                 <STRONG>%+x</STRONG>       concept
+     <STRONG>%i</STRONG>                          <STRONG>%i</STRONG>q       ANSI standard, vt100
+     <STRONG>%p1%?%'x'%&gt;%t%p1%'y'%+%;</STRONG>    <STRONG>%&gt;xy</STRONG>      concept
+     <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG>   <STRONG>%r</STRONG>        hp
+
+   <STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG>
+       The  <STRONG>-u</STRONG>  option  produces a <STRONG>terminfo</STRONG> source description of
+       the first terminal <EM>termname</EM> which is relative to  the  sum
        of  the  descriptions  given  by the entries for the other
        of  the  descriptions  given  by the entries for the other
-       terminals <I>termnames</I>.  It does this by analyzing  the  dif-
-       ferences   between   the  first  <I>termname</I>  and  the  other
-       <I>termnames</I> and producing a description with <B>use=</B> fields for
+       terminals  <EM>termnames</EM>.   It  does  this  by  analyzing  the
+       differences  between  the  first  <EM>termname</EM>  and  the other
+       <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for
        the  other  terminals.   In this manner, it is possible to
        retrofit  generic  terminfo  entries  into  a   terminal's
        description.  Or, if two similar terminals exist, but were
        coded at different times or by different  people  so  that
        the  other  terminals.   In this manner, it is possible to
        retrofit  generic  terminfo  entries  into  a   terminal's
        description.  Or, if two similar terminals exist, but were
        coded at different times or by different  people  so  that
-       each description is a full description, using <B>infocmp</B> will
+       each description is a full description, using <STRONG>infocmp</STRONG> will
        show what can be done to change one description to be rel-
        ative to the other.
 
        A capability will get printed with an at-sign (@) if it no
        show what can be done to change one description to be rel-
        ative to the other.
 
        A capability will get printed with an at-sign (@) if it no
-       longer exists in the first <I>termname</I>, but one of the  other
-       <I>termname</I>  entries contains a value for it.  A capability's
-       value gets printed if the value in the first  <I>termname</I>  is
-       not  found in any of the other <I>termname</I> entries, or if the
-       first of the other <I>termname</I> entries that has this capabil-
+       longer exists in the first <EM>termname</EM>, but one of the  other
+       <EM>termname</EM>  entries contains a value for it.  A capability's
+       value gets printed if the value in the first  <EM>termname</EM>  is
+       not  found in any of the other <EM>termname</EM> entries, or if the
+       first of the other <EM>termname</EM> entries that has this capabil-
        ity  gives  a different value for the capability than that
        ity  gives  a different value for the capability than that
-       in the first <I>termname</I>.
+       in the first <EM>termname</EM>.
 
 
-       The order of the other <I>termname</I>  entries  is  significant.
-       Since  the terminfo compiler <B>tic</B> does a left-to-right scan
-       of the capabilities, specifying two <B>use=</B> entries that con-
+       The order of the other <EM>termname</EM>  entries  is  significant.
+       Since  the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
+       of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
        tain differing entries for the same capabilities will pro-
        duce different results depending on  the  order  that  the
        tain differing entries for the same capabilities will pro-
        duce different results depending on  the  order  that  the
-       entries  are  given in.  <B>infocmp</B> will flag any such incon-
-       sistencies between the other <I>termname</I> entries as they  are
+       entries  are  given in.  <STRONG>infocmp</STRONG> will flag any such incon-
+       sistencies between the other <EM>termname</EM> entries as they  are
        found.
 
        found.
 
-       Alternatively,  specifying a capability <I>after</I> a <B>use=</B> entry
+       Alternatively,  specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
        that contains that capability will cause the second speci-
        that contains that capability will cause the second speci-
-       fication  to  be  ignored.   Using  <B>infocmp</B>  to recreate a
+       fication  to  be  ignored.   Using  <STRONG>infocmp</STRONG>  to recreate a
        description can be a useful check to make sure that every-
        thing  was  specified  correctly  in  the  original source
        description.
 
        Another error  that  does  not  cause  incorrect  compiled
        files,  but will slow down the compilation time, is speci-
        description can be a useful check to make sure that every-
        thing  was  specified  correctly  in  the  original source
        description.
 
        Another error  that  does  not  cause  incorrect  compiled
        files,  but will slow down the compilation time, is speci-
-       fying extra <B>use=</B> fields  that  are  superfluous.   <B>infocmp</B>
-       will  flag  any  other  <I>termname</I> <I>use=</I> fields that were not
+       fying extra <STRONG>use=</STRONG> fields  that  are  superfluous.   <STRONG>infocmp</STRONG>
+       will  flag  any  other  <EM>termname</EM> <EM>use=</EM> fields that were not
        needed.
 
        needed.
 
-   <B>Changing</B> <B>Databases</B> <B>[-A</B> <I>directory</I>] [-B <I>directory</I>]
-       The location of the compiled <B>terminfo</B>  database  is  taken
-       from  the environment variable <B>TERMINFO</B> .  If the variable
+   <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
+       The location of the compiled <STRONG>terminfo</STRONG>  database  is  taken
+       from  the environment variable <STRONG>TERMINFO</STRONG> .  If the variable
        is not defined, or the terminal is not found in that loca-
        is not defined, or the terminal is not found in that loca-
-       tion,  the  system  <B>terminfo</B>  database, in <B>/usr/share/ter-</B>
-       <B>minfo</B>, will be used.  The options <B>-A</B> and <B>-B</B> may be used to
-       override  this  location.  The <B>-A</B> option will set <B>TERMINFO</B>
-       for the first <I>termname</I> and the <B>-B</B> option will set <B>TERMINFO</B>
-       for  the  other  <I>termnames</I>.   With this, it is possible to
+       tion,  the  system  <STRONG>terminfo</STRONG>  database, in <STRONG>/usr/share/ter-</STRONG>
+       <STRONG>minfo</STRONG>, will be used.  The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
+       override  this  location.  The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
+       for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
+       for  the  other  <EM>termnames</EM>.   With this, it is possible to
        compare descriptions for a terminal  with  the  same  name
        located  in  two  different databases.  This is useful for
        comparing descriptions for the same  terminal  created  by
        different people.
 
        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.
 
-   <B>Other</B>  <B>Options</B>  <B>[-s</B> <B>d|i|l|c]</B> <B>[-1FTVefip]</B> <B>[-Rsubset]</B> <B>[-v</B> <I>n</I>] [-w
-       <I>width</I>]
-       The <B>-s</B> option sorts the fields within each type  according
-       to the argument below:
-
-       <B>d</B>    leave fields in the order that they are stored in the
-            <I>terminfo</I> database.
-
-       <B>i</B>    sort by <I>terminfo</I> name.
+   <STRONG>Other</STRONG> <STRONG>Options</STRONG>
+       <STRONG>-1</STRONG>   causes  the  fields  to be printed out one to a line.
+            Otherwise, the fields will be printed  several  to  a
+            line to a maximum width of 60 characters.
 
 
-       <B>l</B>    sort by the long C variable name.
+       <STRONG>-a</STRONG>   tells  <STRONG>infocmp</STRONG>  to  retain commented-out capabilities
+            rather than discarding them.  Capabilities  are  com-
+            mented by prefixing them with a period.
 
 
-       <B>c</B>    sort by the <I>termcap</I> name.
+       <STRONG>-E</STRONG>   Dump  the  capabilities  of  the  given  terminal  as
+            tables, needed in the C initializer  for  a  TERMTYPE
+            structure  (the  terminal capability structure in the
+            <STRONG>&lt;term.h&gt;</STRONG>).  This option is useful for preparing  ver-
+            sions  of  the  curses  library hardwired for a given
+            terminal type.  The tables are all  declared  static,
+            and  are  named according to the type and the name of
+            the corresponding terminal entry.
 
 
-            If the <B>-s</B> option is not given, the fields printed out
-            will  be  sorted  alphabetically by the <B>terminfo</B> name
-            within each type, except in the case of the <B>-C</B> or the
-            <B>-L</B> options, which cause the sorting to be done by the
-            <B>termcap</B> name or the long  C  variable  name,  respec-
-            tively.
+            Before ncurses 5.0, the split between the <STRONG>-e</STRONG>  and  <STRONG>-E</STRONG>
+            options  was  not  needed;  but  support for extended
+            names required making the arrays of terminal capabil-
+            ities separate from the TERMTYPE structure.
 
 
-       <B>-1</B>   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.
+       <STRONG>-e</STRONG>   Dump  the  capabilities  of the given terminal as a C
+            initializer for a TERMTYPE  structure  (the  terminal
+            capability  structure  in the <STRONG>&lt;term.h&gt;</STRONG>).  This option
+            is  useful  for  preparing  versions  of  the  curses
+            library hardwired for a given terminal type.
 
 
-       <B>-F</B>   compare  terminfo  files.  This assumes that two fol-
+       <STRONG>-F</STRONG>   compare  terminfo  files.  This assumes that two fol-
             lowing  arguments  are  filenames.   The  files   are
             searched  for  pairwise matches between entries, with
             two entries considered to match if any of their names
             lowing  arguments  are  filenames.   The  files   are
             searched  for  pairwise matches between entries, with
             two entries considered to match if any of their names
             Normally,  to  reduce  the  volume of the report, use
             references are not resolved before looking  for  dif-
             ferences, but resolution can be forced by also speci-
             Normally,  to  reduce  the  volume of the report, use
             references are not resolved before looking  for  dif-
             ferences, but resolution can be forced by also speci-
-            fying <B>-r</B>.
-
-       <B>-G</B>   Display constant literals in decimal form rather than
-            their character equivalents.
+            fying <STRONG>-r</STRONG>.
 
 
-       <B>-a</B>   tells  <B>infocmp</B>  to  retain commented-out capabilities
-            rather than discarding them.  Capabilities  are  com-
-            mented by prefixing them with a period.
-
-       <B>-q</B>   Make  the comparison listing shorter by omitting sub-
-            headings, and using "-" for absent capabilities,  "@"
-            for canceled rather than "NULL".
-
-       <B>-R</B><I>subset</I>
-            Restrict  output  to  a given subset.  This option is
-            for use with archaic versions of terminfo like  those
-            on  SVr1,  Ultrix,  or  HP/UX that do not support the
-            full set of SVR4/XSI Curses  terminfo;  and  variants
-            such as AIX that have their own extensions incompati-
-            ble with SVr4/XSI.  Available  terminfo  subsets  are
-            "SVr1",  "Ultrix",  "HP",  and "AIX"; see <B><A HREF="terminfo.5.html">terminfo(5)</A></B>
-            for details.  You can also choose  the  subset  "BSD"
-            which  selects only capabilities with termcap equiva-
-            lents recognized by 4.4BSD.
-
-       <B>-T</B>   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).
-
-       <B>-V</B>   reports the version of ncurses which was used in this
-            program, and exits.
-
-       <B>-e</B>   Dump the capabilities of the given terminal  as  a  C
-            initializer  for  a  TERMTYPE structure (the terminal
-            capability structure in the <B>&lt;term.h&gt;</B>).   This  option
-            is  useful  for  preparing  versions  of  the  curses
-            library hardwired for a given terminal type.
-
-       <B>-E</B>   Dump  the  capabilities  of  the  given  terminal  as
-            tables,  needed  in  the C initializer for a TERMTYPE
-            structure (the terminal capability structure  in  the
-            <B>&lt;term.h&gt;</B>).   This option is useful for preparing ver-
-            sions of the curses library  hardwired  for  a  given
-            terminal  type.   The tables are all declared static,
-            and are named according to the type and the  name  of
-            the corresponding terminal entry.
-
-            Before  ncurses  5.0, the split between the <B>-e</B> and <B>-E</B>
-            options was not  needed;  but  support  for  extended
-            names required making the arrays of terminal capabil-
-            ities separate from the TERMTYPE structure.
-
-       <B>-f</B>   Display  complex  terminfo  strings   which   contain
+       <STRONG>-f</STRONG>   Display  complex  terminfo  strings   which   contain
             if/then/else/endif expressions indented for readabil-
             ity.
 
             if/then/else/endif expressions indented for readabil-
             ity.
 
-       <B>-g</B>   Display constant character literals  in  quoted  form
+       <STRONG>-G</STRONG>   Display constant literals in decimal form rather than
+            their character equivalents.
+
+       <STRONG>-g</STRONG>   Display  constant  character  literals in quoted form
             rather than their decimal equivalents.
 
             rather than their decimal equivalents.
 
-       <B>-i</B>   Analyze the initialization (<B>is1</B>, <B>is2</B>, <B>is3</B>), and reset
-            (<B>rs1</B>, <B>rs2</B>, <B>rs3</B>), strings  in  the  entry.   For  each
-            string,  the code tries to analyze it into actions in
+       <STRONG>-i</STRONG>   Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
+            (<STRONG>rs1</STRONG>,  <STRONG>rs2</STRONG>,  <STRONG>rs3</STRONG>),  strings  in  the entry.  For each
+            string, the code tries to analyze it into actions  in
             terms of the other capabilities in the entry, certain
             terms of the other capabilities in the entry, certain
-            X3.64/ISO  6429/ECMA-48 capabilities, and certain DEC
-            VT-series private modes (the set of  recognized  spe-
-            cial  sequences  has  been  selected for completeness
-            over the existing terminfo  database).   Each  report
-            line  consists  of the capability name, followed by a
+            X3.64/ISO 6429/ECMA-48 capabilities, and certain  DEC
+            VT-series  private  modes (the set of recognized spe-
+            cial sequences has  been  selected  for  completeness
+            over  the  existing  terminfo database).  Each report
+            line consists of the capability name, followed  by  a
             colon and space, followed by a printable expansion of
             colon and space, followed by a printable expansion of
-            the  capability  string with sections matching recog-
-            nized   actions    translated    into    {}-bracketed
-            descriptions.  Here is a list of the DEC/ANSI special
+            the capability string with sections  matching  recog-
+            nized  actions  translated into {}-bracketed descrip-
+            tions.  Here  is  a  list  of  the  DEC/ANSI  special
             sequences recognized:
 
                   Action        Meaning
             sequences recognized:
 
                   Action        Meaning
                   DEC[+-]AWM    wraparound mode
                   DEC[+-]ARM    auto-repeat mode
 
                   DEC[+-]AWM    wraparound mode
                   DEC[+-]ARM    auto-repeat mode
 
-            It also recognizes  a  SGR  action  corresponding  to
-            ANSI/ISO  6429/ECMA  Set Graphics Rendition, with the
-            values NORMAL, BOLD, UNDERLINE, BLINK,  and  REVERSE.
-            All  but NORMAL may be prefixed with `+' (turn on) or
+            It  also  recognizes  a  SGR  action corresponding to
+            ANSI/ISO 6429/ECMA Set Graphics Rendition,  with  the
+            values  NORMAL,  BOLD, UNDERLINE, BLINK, and REVERSE.
+            All but NORMAL may be prefixed with `+' (turn on)  or
             `-' (turn off).
 
             `-' (turn off).
 
-            An  SGR0  designates  an  empty  highlight   sequence
+            An   SGR0  designates  an  empty  highlight  sequence
             (equivalent to {SGR:NORMAL}).
             (equivalent to {SGR:NORMAL}).
+       -
+       l    Set output format to terminfo.
+
+       <STRONG>-p</STRONG>   Ignore padding specifications when comparing strings.
+
+       <STRONG>-q</STRONG>   Make  the comparison listing shorter by omitting sub-
+            headings, and using "-" for absent capabilities,  "@"
+            for canceled rather than "NULL".
+
+       <STRONG>-R</STRONG><EM>subset</EM>
+            Restrict  output  to  a given subset.  This option is
+            for use with archaic versions of terminfo like  those
+            on  SVr1,  Ultrix,  or  HP/UX that do not support the
+            full set of SVR4/XSI Curses  terminfo;  and  variants
+            such as AIX that have their own extensions incompati-
+            ble with SVr4/XSI.  Available  terminfo  subsets  are
+            "SVr1",  "Ultrix",  "HP",  and "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+            for details.  You can also choose  the  subset  "BSD"
+            which  selects only capabilities with termcap equiva-
+            lents recognized by 4.4BSD.
+
+       <STRONG>-s</STRONG> <EM>[d|i|l|c]</EM>
+            The <STRONG>-s</STRONG> option  sorts  the  fields  within  each  type
+            according to the argument below:
+
+            <STRONG>d</STRONG>    leave  fields  in the order that they are stored
+                 in the <EM>terminfo</EM> database.
+
+            <STRONG>i</STRONG>    sort by <EM>terminfo</EM> name.
+
+            <STRONG>l</STRONG>    sort by the long C variable name.
+
+            <STRONG>c</STRONG>    sort by the <EM>termcap</EM> name.
+
+            If the <STRONG>-s</STRONG> option is not given, the fields printed out
+            will  be  sorted  alphabetically by the <STRONG>terminfo</STRONG> name
+            within each type, except in the case of the <STRONG>-C</STRONG> or the
+            <STRONG>-L</STRONG> options, which cause the sorting to be done by the
+            <STRONG>termcap</STRONG> name or the long  C  variable  name,  respec-
+            tively.
+
+       <STRONG>-T</STRONG>   eliminates  size-restrictions  on the generated text.
+            This is mainly useful for testing and analysis, since
+            the compiled descriptions are limited (e.g., 1023 for
+            termcap, 4096 for terminfo).
 
 
-       <B>-p</B>   Ignore padding specifications when comparing strings.
+       <STRONG>-t</STRONG>   tells  <STRONG>tic</STRONG>  to  discard  commented-out  capabilities.
+            Normally  when  translating from terminfo to termcap,
+            untranslatable capabilities are commented-out.
+
+       <STRONG>-V</STRONG>   reports the version of ncurses which was used in this
+            program, and exits.
 
 
-       <B>-v</B> <I>n</I> prints out tracing information on standard  error  as
-            the  program runs.  Higher values of n induce greater
+       <STRONG>-v</STRONG> <EM>n</EM> prints  out  tracing information on standard error as
+            the program runs.  Higher values of n induce  greater
             verbosity.
 
             verbosity.
 
-       <B>-w</B> <I>width</I>
-            changes the output to <I>width</I> characters.
+       <STRONG>-w</STRONG> <EM>width</EM>
+            changes the output to <EM>width</EM> characters.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
 
 
 </PRE>
 <H2>FILES</H2><PRE>
-       /usr/share/terminfo Compiled     terminal      description
+       /usr/share/terminfo Compiled      terminal     description
                            database.
 
 
                            database.
 
 
-
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       The <B>-E</B>, <B>-F</B>, <B>-G</B>, <B>-R</B>, <B>-T</B>, <B>-V</B>, <B>-a</B>, <B>-e</B>, <B>-f</B>, <B>-g</B>, <B>-i</B>, <B>-p</B>, and <B>-q</B>
-       options are not supported in SVr4 curses.
+       The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
+       and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
 
 
-       The <B>-r</B> option's notion of `termcap' capabilities is System
-       V  Release  4's.   Actual  BSD curses versions will have a
-       more restricted set.  To see only the 4.4BSD set,  use  -r
+       The <STRONG>-r</STRONG> option's notion of `termcap' capabilities is System
+       V Release 4's.  Actual BSD curses  versions  will  have  a
+       more  restricted  set.  To see only the 4.4BSD set, use -r
        -RBSD.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
        -RBSD.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       The -F option of <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B> should be a <B><A HREF="toe.1m.html">toe(1m)</A></B> mode.
+       The -F option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> should be a <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> mode.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B>,    <B><A HREF="captoinfo.1m.html">captoinfo(1m)</A></B>,   <B><A HREF="infotocap.1m.html">infotocap(1m)</A></B>,   <B><A HREF="tic.1m.html">tic(1m)</A></B>,
-       <B><A HREF="toe.1m.html">toe(1m)</A></B>, <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
+       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,    <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,
+       <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
 </PRE>
 <H2>AUTHOR</H2><PRE>
 
 
 </PRE>
 <H2>AUTHOR</H2><PRE>
-       Eric S.  Raymond  &lt;esr@snark.thyrsus.com&gt;  and  Thomas  E.
-       Dickey &lt;dickey@herndon4.his.com&gt;
-
-
-
-
+       Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
+       Thomas E. Dickey &lt;dickey@herndon4.his.com&gt;
 
 
 
 
 
 
index 38ab95cc982b563d7449021bc1879fab6d729577..b4738d72d5a1a2c9faf463b043479fb168f24f4f 100644 (file)
@@ -1,37 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: infotocap.1m,v 1.3 2000/08/13 01:56:03 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>infotocap 1m</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>infotocap 1m</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>infotocap</B>  - convert a <I>terminfo</I> description into a <I>termcap</I>
+       <STRONG>infotocap</STRONG>  - convert a <EM>terminfo</EM> description into a <EM>termcap</EM>
        description
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        description
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>infotocap</B> [<B>-v</B><I>n</I> <I>width</I>]  [<B>-V</B>] [<B>-1</B>] [<B>-w</B> <I>width</I>] <I>file</I> . . .
+       <STRONG>infotocap</STRONG> [<STRONG>-v</STRONG><EM>n</EM> <EM>width</EM>]  [<STRONG>-V</STRONG>] [<STRONG>-1</STRONG>] [<STRONG>-w</STRONG> <EM>width</EM>] <EM>file</EM> . . .
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>infotocap</B> looks in <I>file</I> for  <B>terminfo</B>  descriptions.   For
-       each one found, an equivalent <B>termcap</B> description is writ-
-       ten to standard output.   Terminfo  <B>use</B>  capabilities  are
-       translated directly to termcap <B>tc</B> capabilities.
+       <STRONG>infotocap</STRONG> looks in <EM>file</EM> for  <STRONG>terminfo</STRONG>  descriptions.   For
+       each one found, an equivalent <STRONG>termcap</STRONG> description is writ-
+       ten to standard output.   Terminfo  <STRONG>use</STRONG>  capabilities  are
+       translated directly to termcap <STRONG>tc</STRONG> capabilities.
 
 
-       <B>-v</B>   print  out  tracing  information on standard error as
+       <STRONG>-v</STRONG>   print  out  tracing  information on standard error as
             the program runs.
 
             the program runs.
 
-       <B>-V</B>   print out the version of the program in use on  stan-
+       <STRONG>-V</STRONG>   print out the version of the program in use on  stan-
             dard error and exit.
 
             dard error and exit.
 
-       <B>-1</B>   cause  the fields to print out one to a line.  Other-
+       <STRONG>-1</STRONG>   cause  the fields to print out one to a line.  Other-
             wise, the fields will be printed several to a line to
             a maximum width of 60 characters.
 
             wise, the fields will be printed several to a line to
             a maximum width of 60 characters.
 
-       <B>-w</B>   change the output to <I>width</I> characters.
+       <STRONG>-w</STRONG>   change the output to <EM>width</EM> characters.
 
 
 </PRE>
 
 
 </PRE>
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       This utility is actually a link to <B><A HREF="tic.1m.html">tic(1m)</A></B>, running in  <I>-C</I>
-       mode.  You can use other <I>tic</I> options such as <B>-f</B> and  <B>-x</B>.
+       This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-C</EM>
+       mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="tic.1m.html">tic(1m)</A></B>, <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
 
 
 
index 11af1ac3341f66135d51c02dd4edf6cfbf0af29e..99da0c76a0043f3c1d4ec3470aa99015135ed124 100644 (file)
@@ -1,18 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1999,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1999
+  * @Id: keybound.3x,v 1.3 2002/02/16 22:30:36 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>keyok 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>
 <BODY>
+<H1>keyok 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>keybound</B> - return definition of keycode
+       <STRONG>keybound</STRONG> - return definition of keycode
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>keybound(int</B> <B>keycode,</B> <B>int</B> <B>count);</B>
+       <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keybound(int</STRONG> <STRONG>keycode,</STRONG> <STRONG>int</STRONG> <STRONG>count);</STRONG>
 
 
 </PRE>
 
 
 </PRE>
@@ -40,7 +79,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="define_key.3x.html">define_key(3x)</A></B>, <B><A HREF="keyok.3x.html">keyok(3x)</A></B>.
+       <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 1dbe4551dec8a6bc2c519462d48ed90bb1500454..001445e2126b6efb3f8d6435b320f7966a85655b 100644 (file)
@@ -1,25 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1997
+  * @Id: keyok.3x,v 1.7 2002/02/16 22:40:59 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>keyok 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>
 <BODY>
+<H1>keyok 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>keyok</B> - enable or disable a keycode
+       <STRONG>keyok</STRONG> - enable or disable a keycode
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>keyok(int</B> <B>keycode,</B> <B>bool</B> <B>enable);</B>
+       <STRONG>int</STRONG> <STRONG>keyok(int</STRONG> <STRONG>keycode,</STRONG> <STRONG>bool</STRONG> <STRONG>enable);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        This is an extension to the curses library.  It permits an
        application to disable specific keycodes, rather than  use
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        This is an extension to the curses library.  It permits an
        application to disable specific keycodes, rather than  use
-       the  <I>keypad</I>  function  to disable all keycodes.  Keys that
+       the  <EM>keypad</EM>  function  to disable all keycodes.  Keys that
        have been disabled can be reenabled.
 
 
        have been disabled can be reenabled.
 
 
@@ -27,7 +66,7 @@
 <H2>RETURN VALUE</H2><PRE>
        The keycode  must  be  greater  than  zero,  else  ERR  is
        returned.   If  it  does  not correspond to a defined key,
 <H2>RETURN VALUE</H2><PRE>
        The keycode  must  be  greater  than  zero,  else  ERR  is
        returned.   If  it  does  not correspond to a defined key,
-       then ERR is returned.  If the <I>enable</I>  parameter  is  true,
+       then ERR is returned.  If the <EM>enable</EM>  parameter  is  true,
        then  the  key  must  have  been disabled, and vice versa.
        Otherwise, the function returns OK.
 
        then  the  key  must  have  been disabled, and vice versa.
        Otherwise, the function returns OK.
 
@@ -42,7 +81,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="define_key.3x.html">define_key(3x)</A></B>.
+       <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index c72b67f0903e9ec2dbad2fd4e59f229884b45d19..d77562a95ff38b7b3544bb82f4455fd9b5b8c87e 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu.3x,v 1.15 2002/01/19 22:48:58 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu 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>
 <BODY>
+<H1>menu 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu</B> - curses extension for programming menus
+       <STRONG>menu</STRONG> - curses extension for programming menus
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>menu</B> library provides terminal-independent facilities
+       The  <STRONG>menu</STRONG> library provides terminal-independent facilities
        for composing menu systems  on  character-cell  terminals.
        The library includes: item routines, which create and mod-
        ify menu items; and menu routines, which group items  into
        menus, display menus on the screen, and handle interaction
        with the user.
 
        for composing menu systems  on  character-cell  terminals.
        The library includes: item routines, which create and mod-
        ify menu items; and menu routines, which group items  into
        menus, display menus on the screen, and handle interaction
        with the user.
 
-       The <B>menu</B> library uses the <B>curses</B> libraries, and  a  curses
-       initialization  routine  such  as  <B>initscr</B>  must be called
-       before using any of these  functions.   To  use  the  <B>menu</B>
-       library, link with the options <B>-lmenu</B> <B>-lcurses</B>.
+       The <STRONG>menu</STRONG> library uses the <STRONG>curses</STRONG> libraries, and  a  curses
+       initialization  routine  such  as  <STRONG>initscr</STRONG>  must be called
+       before using any of these  functions.   To  use  the  <STRONG>menu</STRONG>
+       library, link with the options <STRONG>-lmenu</STRONG> <STRONG>-lcurses</STRONG>.
 
 
 
 
-   <B>Current</B> <B>Default</B> <B>Values</B> <B>for</B> <B>Item</B> <B>Attributes</B>
-       The  <B>menu</B>  library  maintains  a  default  value  for item
+   <STRONG>Current</STRONG> <STRONG>Default</STRONG> <STRONG>Values</STRONG> <STRONG>for</STRONG> <STRONG>Item</STRONG> <STRONG>Attributes</STRONG>
+       The  <STRONG>menu</STRONG>  library  maintains  a  default  value  for item
        attributes.  You can get or set this  default  by  calling
        attributes.  You can get or set this  default  by  calling
-       the  appropriate  <B>get_</B>  or  <B>set_</B>  routine with a <B>NULL</B> item
-       pointer.  Changing  this  default  with  a  <B>set_</B>  function
+       the  appropriate  <STRONG>get_</STRONG>  or  <STRONG>set_</STRONG>  routine with a <STRONG>NULL</STRONG> item
+       pointer.  Changing  this  default  with  a  <STRONG>set_</STRONG>  function
        affects  future  item  creations,  but does not change the
        rendering of items already created.
 
 
        affects  future  item  creations,  but does not change the
        rendering of items already created.
 
 
-   <B>Routine</B> <B>Name</B> <B>Index</B>
-       The following table lists each <B>menu</B> routine and  the  name
+   <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
+       The following table lists each <STRONG>menu</STRONG> routine and  the  name
        of the manual page on which it is described.
 
        of the manual page on which it is described.
 
-       <B>curses</B> Routine Name    Manual Page Name
+       <STRONG>curses</STRONG> Routine Name    Manual Page Name
        --------------------------------------------
        --------------------------------------------
-       current_item           <B><A HREF="mitem_current.3x.html">mitem_current(3x)</A></B>
-       free_item              <B><A HREF="mitem_new.3x.html">mitem_new(3x)</A></B>
-       free_menu              <B><A HREF="menu_new.3x.html">menu_new(3x)</A></B>
-       item_count             <B><A HREF="menu_items.3x.html">menu_items(3x)</A></B>
-       item_description       <B><A HREF="mitem_name.3x.html">mitem_name(3x)</A></B>
-       item_index             <B><A HREF="mitem_current.3x.html">mitem_current(3x)</A></B>
-       item_init              <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       item_name              <B><A HREF="mitem_name.3x.html">mitem_name(3x)</A></B>
-       item_opts              <B><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></B>
-       item_opts_off          <B><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></B>
-       item_opts_on           <B><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></B>
-       item_term              <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       item_userptr           <B><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></B>
-       item_value             <B><A HREF="mitem_value.3x.html">mitem_value(3x)</A></B>
-       item_visible           <B><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></B>
-       menu_back              <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       menu_driver            <B><A HREF="menu_driver.3x.html">menu_driver(3x)</A></B>
-       menu_fore              <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-
-       menu_format            <B><A HREF="menu_format.3x.html">menu_format(3x)</A></B>
-       menu_grey              <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       menu_init              <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       menu_items             <B><A HREF="menu_items.3x.html">menu_items(3x)</A></B>
-       menu_mark              <B><A HREF="menu_mark.3x.html">menu_mark(3x)</A></B>
-       menu_opts              <B><A HREF="menu_opts.3x.html">menu_opts(3x)</A></B>
-       menu_opts_off          <B><A HREF="menu_opts.3x.html">menu_opts(3x)</A></B>
-       menu_opts_on           <B><A HREF="menu_opts.3x.html">menu_opts(3x)</A></B>
-       menu_pad               <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       menu_pattern           <B><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></B>
-       menu_request_by_name   <B><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></B>
-       menu_request_name      <B><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></B>
-       menu_spacing           <B><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></B>
-       menu_sub               <B><A HREF="menu_win.3x.html">menu_win(3x)</A></B>
-       menu_term              <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       menu_userptr           <B><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></B>
-       menu_win               <B><A HREF="menu_win.3x.html">menu_win(3x)</A></B>
-       new_item               <B><A HREF="mitem_new.3x.html">mitem_new(3x)</A></B>
-       new_menu               <B><A HREF="menu_new.3x.html">menu_new(3x)</A></B>
-       pos_menu_cursor        <B><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></B>
-       post_menu              <B><A HREF="menu_post.3x.html">menu_post(3x)</A></B>
-       scale_menu             <B><A HREF="menu_win.3x.html">menu_win(3x)</A></B>
-       set_current_item       <B><A HREF="mitem_current.3x.html">mitem_current(3x)</A></B>
-       set_item_init          <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       set_item_opts          <B><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></B>
-       set_item_term          <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       set_item_userptr       <B><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></B>
-       set_item_value         <B><A HREF="mitem_value.3x.html">mitem_value(3x)</A></B>
-       set_menu_back          <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       set_menu_fore          <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       set_menu_format        <B><A HREF="menu_format.3x.html">menu_format(3x)</A></B>
-       set_menu_grey          <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       set_menu_init          <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       set_menu_items         <B><A HREF="menu_items.3x.html">menu_items(3x)</A></B>
-       set_menu_mark          <B><A HREF="menu_mark.3x.html">menu_mark(3x)</A></B>
-       set_menu_opts          <B><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></B>
-       set_menu_pad           <B><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></B>
-       set_menu_pattern       <B><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></B>
-       set_menu_spacing       <B><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></B>
-       set_menu_sub           <B><A HREF="menu_win.3x.html">menu_win(3x)</A></B>
-       set_menu_term          <B><A HREF="menu_hook.3x.html">menu_hook(3x)</A></B>
-       set_menu_userptr       <B><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></B>
-       set_menu_win           <B><A HREF="menu_win.3x.html">menu_win(3x)</A></B>
-       set_top_row            <B><A HREF="mitem_current.3x.html">mitem_current(3x)</A></B>
-       top_row                <B><A HREF="mitem_current.3x.html">mitem_current(3x)</A></B>
-       unpost_menu            <B><A HREF="menu_post.3x.html">menu_post(3x)</A></B>
+       current_item           <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+       free_item              <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+       free_menu              <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+       item_count             <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+       item_description       <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+       item_index             <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+       item_init              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       item_name              <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+       item_opts              <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+       item_opts_off          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+       item_opts_on           <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+       item_term              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       item_userptr           <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+       item_value             <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+       item_visible           <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+       menu_back              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       menu_driver            <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+       menu_fore              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+
+       menu_format            <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+       menu_grey              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       menu_init              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       menu_items             <STRONG><A HREF="menu_items.3x.html">menu_items(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_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>
+       menu_request_name      <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+       menu_spacing           <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+       menu_sub               <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+       menu_term              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       menu_userptr           <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+       menu_win               <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+       new_item               <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+       new_menu               <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+       pos_menu_cursor        <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+       post_menu              <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+       scale_menu             <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+       set_current_item       <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+       set_item_init          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       set_item_opts          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+       set_item_term          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       set_item_userptr       <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+       set_item_value         <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+       set_menu_back          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       set_menu_fore          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       set_menu_format        <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+       set_menu_grey          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       set_menu_init          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       set_menu_items         <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+       set_menu_mark          <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+       set_menu_opts          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+       set_menu_pad           <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+       set_menu_pattern       <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+       set_menu_spacing       <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+       set_menu_sub           <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+       set_menu_term          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+       set_menu_userptr       <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+       set_menu_win           <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+       set_top_row            <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+       top_row                <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+       unpost_menu            <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines  that return pointers return <B>NULL</B> on error.  Rou-
+       Routines  that return pointers return <STRONG>NULL</STRONG> on error.  Rou-
        tines that return an integer return one of  the  following
        error codes:
 
        tines that return an integer return one of  the  following
        error codes:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu is already posted.
 
             The menu is already posted.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NO_ROOM</B>
+       <STRONG>E_NO_ROOM</STRONG>
             Menu is too large for its window.
 
             Menu is too large for its window.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The menu has not been posted.
 
             The menu has not been posted.
 
-       <B>E_UNKNOWN_COMMAND</B>
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>
             The menu driver code saw an unknown request code.
 
             The menu driver code saw an unknown request code.
 
-       <B>E_NO_MATCH</B>
+       <STRONG>E_NO_MATCH</STRONG>
             Character failed to match.
 
             Character failed to match.
 
-       <B>E_NOT_SELECTABLE</B>
+       <STRONG>E_NOT_SELECTABLE</STRONG>
             The designated item cannot be selected.
 
             The designated item cannot be selected.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the menu.
 
             No items are connected to the menu.
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  and  3x  pages  whose  names begin "menu_" for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       files <B>&lt;curses.h&gt;</B> and <B>&lt;eti.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
 
        In  your  library  list,  libmenu.a should be before libn-
        curses.a; that is, you want to say `-lmenu -lncurses', not
        the  other  way  around (which would give you a link error
 
        In  your  library  list,  libmenu.a should be before libn-
        curses.a; that is, you want to say `-lmenu -lncurses', not
        the  other  way  around (which would give you a link error
-       using GNU <B><A HREF="ld.1.html">ld(1)</A></B> and many other linkers).
+       using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and many other linkers).
 
 
 </PRE>
 
 
 </PRE>
index d6e82b0ad3b739f5f797f8fe75377191e95c6112..2332f98fab09b924c7e0192cd5967e4e4de3bccf 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_attributes.3x,v 1.7 2002/01/19 22:49:06 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_attributes 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>
 <BODY>
+<H1>menu_attributes 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_attributes</B> - color and attribute control for menus
+       <STRONG>menu_attributes</STRONG> - color and attribute control for menus
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_fore(MENU *menu, chtype attr);
        chtype menu_fore(const MENU *menu);
        int set_menu_back(MENU *menu, chtype attr);
        int set_menu_fore(MENU *menu, chtype attr);
        chtype menu_fore(const MENU *menu);
        int set_menu_back(MENU *menu, chtype attr);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_menu_fore</B> sets the foreground attribute
-       of <I>menu</I>. This is the  highlight  used  for  selected  menu
-       items.   <B>menu_fore</B>  returns the foreground attribute.  The
-       default is <B>A_STANDOUT</B>.
+       The  function  <STRONG>set_menu_fore</STRONG> sets the foreground attribute
+       of <EM>menu</EM>. This is the  highlight  used  for  selected  menu
+       items.   <STRONG>menu_fore</STRONG>  returns the foreground attribute.  The
+       default is <STRONG>A_STANDOUT</STRONG>.
 
 
-       The function <B>set_menu_back</B> sets the  background  attribute
-       of  <I>menu</I>.  This  is the highlight used for selectable (but
+       The function <STRONG>set_menu_back</STRONG> sets the  background  attribute
+       of  <EM>menu</EM>.  This  is the highlight used for selectable (but
        not  currently  selected)  menu   items.    The   function
        not  currently  selected)  menu   items.    The   function
-       <B>menu_back</B>  returns  the background attribute.  The default
-       is <B>A_NORMAL</B>.
+       <STRONG>menu_back</STRONG>  returns  the background attribute.  The default
+       is <STRONG>A_NORMAL</STRONG>.
 
 
-       The function <B>set_menu_grey</B>  sets  the  grey  attribute  of
-       <I>menu</I>.  This  is  the highlight used for un-selectable menu
+       The function <STRONG>set_menu_grey</STRONG>  sets  the  grey  attribute  of
+       <EM>menu</EM>.  This  is  the highlight used for un-selectable menu
        items in menus that permit more than one  selection.   The
        items in menus that permit more than one  selection.   The
-       function   <B>menu_grey</B>  returns  the  grey  attribute.   The
-       default is <B>A_UNDERLINE</B>.
+       function   <STRONG>menu_grey</STRONG>  returns  the  grey  attribute.   The
+       default is <STRONG>A_UNDERLINE</STRONG>.
 
 
-       The function <B>set_menu_pad</B> sets the character used to  fill
+       The function <STRONG>set_menu_pad</STRONG> sets the character used to  fill
        the space between the name and description parts of a menu
        the space between the name and description parts of a menu
-       item.  <B>menu_pad</B> returns the given  menu's  pad  character.
+       item.  <STRONG>menu_pad</STRONG> returns the given  menu's  pad  character.
        The default is a blank.
 
 
        The default is a blank.
 
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B> and 3x pages  whose  names  begin  "menu_"  for
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
        detailed descriptions of the entry points.
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        detailed descriptions of the entry points.
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index aed8af818961d9772d7e33fda1f72d24be0cb4ce..61647f46f44249f3e0acfb68ef1f973e98b5787b 100644 (file)
@@ -1,24 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_cursor.3x,v 1.5 1998/11/29 01:09:30 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_cursor 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>
 <BODY>
+<H1>menu_cursor 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_cursor</B> - position a menu's cursor
+       <STRONG>menu_cursor</STRONG> - position a menu's cursor
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int pos_menu_cursor(const MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int pos_menu_cursor(const MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>pos_menu_cursor</B>  restores the cursor to the
+       The  function  <STRONG>pos_menu_cursor</STRONG>  restores the cursor to the
        current position associated with the menu's selected item.
        current position associated with the menu's selected item.
-       This  is  useful after <B>curses</B> routines have been called to
+       This  is  useful after <STRONG>curses</STRONG> routines have been called to
        do screen-painting in response to a menu select.
 
 
        do screen-painting in response to a menu select.
 
 
 <H2>RETURN VALUE</H2><PRE>
        This routine returns one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        This routine returns one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The menu has not been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu has not been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 48ea272f8a173c90bbe5dda0822764298208e772..2c4f5e6e27e9ec86aecac1e7e863e91558244652 100644 (file)
@@ -1,23 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_driver.3x,v 1.10 2002/02/16 22:40:59 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_driver 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>
 <BODY>
+<H1>menu_driver 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_driver</B> - command-processing loop of the menu system
+       <STRONG>menu_driver</STRONG> - command-processing loop of the menu system
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int menu_driver(MENU *menu, int c);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Once a menu has been posted (displayed), you should funnel
        int menu_driver(MENU *menu, int c);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Once a menu has been posted (displayed), you should funnel
-       input events to it through <B>menu_driver</B>.  This routine  has
+       input events to it through <STRONG>menu_driver</STRONG>.  This routine  has
        three  major input cases; either the input is a menu navi-
        gation request, it's a printable ASCII character or it  is
        the  KEY_MOUSE special key associated with an mouse event.
        three  major input cases; either the input is a menu navi-
        gation request, it's a printable ASCII character or it  is
        the  KEY_MOUSE special key associated with an mouse event.
        If the second argument is a printable ASCII character, the
        code appends it to the pattern buffer and attempts to move
        to the next item matching the new pattern.  If there is no
        If the second argument is a printable ASCII character, the
        code appends it to the pattern buffer and attempts to move
        to the next item matching the new pattern.  If there is no
-       such match, <B>menu_driver</B> returns <B>E_NO_MATCH</B> and deletes the
+       such match, <STRONG>menu_driver</STRONG> returns <STRONG>E_NO_MATCH</STRONG> and deletes the
        appended character from the buffer.
 
        If the second argument is one  of  the  above  pre-defined
        appended character from the buffer.
 
        If the second argument is one  of  the  above  pre-defined
        you click at an item inside the display area of the  menu,
        the menu cursor is positioned to that item. If you double-
        click at  an  item  a  REQ_TOGGLE_ITEM  is  generated  and
        you click at an item inside the display area of the  menu,
        the menu cursor is positioned to that item. If you double-
        click at  an  item  a  REQ_TOGGLE_ITEM  is  generated  and
-       <B>E_UNKNOWN_COMMAND</B>  is  returned.  This  return value makes
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>  is  returned.  This  return value makes
        sense, because a double click usually means that an  item-
        specific  action should be returned. It's exactly the pur-
        pose of this return value to signal  that  an  application
        specific command should be executed. If a translation into
        sense, because a double click usually means that an  item-
        specific  action should be returned. It's exactly the pur-
        pose of this return value to signal  that  an  application
        specific command should be executed. If a translation into
-       a request was done, <B>menu_driver</B> returns the result of this
+       a request was done, <STRONG>menu_driver</STRONG> returns the result of this
        request.   If  you  clicked outside the user window or the
        mouse event couldn't be translated into a menu request  an
        request.   If  you  clicked outside the user window or the
        mouse event couldn't be translated into a menu request  an
-       <B>E_REQUEST_DENIED</B> is returned.
+       <STRONG>E_REQUEST_DENIED</STRONG> is returned.
 
        If  the second argument is neither printable ASCII nor one
        of the above pre-defined menu requests or  KEY_MOUSE,  the
        drive  assumes  it  is an application-specific command and
 
        If  the second argument is neither printable ASCII nor one
        of the above pre-defined menu requests or  KEY_MOUSE,  the
        drive  assumes  it  is an application-specific command and
-       returns <B>E_UNKNOWN_COMMAND</B>.   Application-defined  commands
-       should  be  defined  relative  to <B>MAX_COMMAND</B>, the maximum
+       returns <STRONG>E_UNKNOWN_COMMAND</STRONG>.   Application-defined  commands
+       should  be  defined  relative  to <STRONG>MAX_COMMAND</STRONG>, the maximum
        value of these pre-defined requests.
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        value of these pre-defined requests.
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>menu_driver</B> return one of the following error codes:
+       <STRONG>menu_driver</STRONG> return one of the following error codes:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The menu has not been posted.
 
             The menu has not been posted.
 
-       <B>E_UNKNOWN_COMMAND</B>
+       <STRONG>E_UNKNOWN_COMMAND</STRONG>
             The menu driver code saw an unknown request code.
 
             The menu driver code saw an unknown request code.
 
-       <B>E_NO_MATCH</B>
+       <STRONG>E_NO_MATCH</STRONG>
             Character failed to match.
 
             Character failed to match.
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       files <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       files <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 8702733bf77852f279b3a2e64f14571163473554..e4c24d90492396d672f18458365b6829c07b4b03 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_format.3x,v 1.8 2001/08/04 20:36:19 William.Setzer Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_format 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>
 <BODY>
+<H1>menu_format 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_format</B> - set and get menu sizes
+       <STRONG>menu_format</STRONG> - set and get menu sizes
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_format(MENU *menu, int rows, int cols);
        int set_menu_format(MENU *menu, int rows, int cols);
-       int menu_format(const MENU *menu, int *rows, int *cols);
+       void menu_format(const MENU *menu, int *rows, int *cols);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>set_menu_format</B> sets the maximum display size
+       The function <STRONG>set_menu_format</STRONG> sets the maximum display size
        of the given menu.  If this size is too small  to  display
        all  menu items, the menu will be made scrollable. If this
        size is larger than the menus subwindow and the  subwindow
        of the given menu.  If this size is too small  to  display
        all  menu items, the menu will be made scrollable. If this
        size is larger than the menus subwindow and the  subwindow
-       is  too  small to display all menu items, <B>post_menu()</B> will
+       is  too  small to display all menu items, <STRONG>post_menu()</STRONG> will
        fail.
 
        The  default  format  is  16  rows,  1  column.    Calling
        fail.
 
        The  default  format  is  16  rows,  1  column.    Calling
-       <B>set_menu_format</B>  with a null menu pointer will change this
-       default.  A zero row or column argument to <B>set_menu_format</B>
+       <STRONG>set_menu_format</STRONG>  with a null menu pointer will change this
+       default.  A zero row or column argument to <STRONG>set_menu_format</STRONG>
        is  interpreted  as  a  request  not to change the current
        value.
 
        is  interpreted  as  a  request  not to change the current
        value.
 
-       The function <B>menu_format</B>  returns  the  maximum-size  con-
+       The function <STRONG>menu_format</STRONG>  returns  the  maximum-size  con-
        straints  for the given menu into the storage addressed by
        straints  for the given menu into the storage addressed by
-       <B>rows</B> and <B>cols</B>.
+       <STRONG>rows</STRONG> and <STRONG>cols</STRONG>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        These routines returns one of the following:
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        These routines returns one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu is already posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu is already posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 59519cd490a6194bb51d80f542df34022a708014..b2c784ec5826c387c6c2ef686f8d4c1088d5dff2 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_hook.3x,v 1.6 1998/11/29 01:09:47 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_hook 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>
 <BODY>
+<H1>menu_hook 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_hook</B> - set hooks for automatic invocation by applica-
+       <STRONG>menu_hook</STRONG> - set hooks for automatic invocation by applica-
        tions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        tions
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_item_init(MENU *menu, void (*func)(MENU *));
        void (*)(MENU *) item_init(const MENU *menu);
        int set_item_term(MENU *menu, void (*func)(MENU *));
        int set_item_init(MENU *menu, void (*func)(MENU *));
        void (*)(MENU *) item_init(const MENU *menu);
        int set_item_term(MENU *menu, void (*func)(MENU *));
 <H2>DESCRIPTION</H2><PRE>
        These functions make it possible to set hook functions  to
        be called at various points in the automatic processing of
 <H2>DESCRIPTION</H2><PRE>
        These functions make it possible to set hook functions  to
        be called at various points in the automatic processing of
-       input event codes by <B>menu_driver</B>.
+       input event codes by <STRONG>menu_driver</STRONG>.
 
 
-       The function <B>set_item_init</B> sets a hook  to  be  called  at
+       The function <STRONG>set_item_init</STRONG> sets a hook  to  be  called  at
        menu-post  time  and  each  time the selected item changes
        menu-post  time  and  each  time the selected item changes
-       (after the change).  <B>item_init</B> returns  the  current  item
-       init hook, if any (<B>NULL</B> if there is no such hook).
+       (after the change).  <STRONG>item_init</STRONG> returns  the  current  item
+       init hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The  function  <B>set_item_term</B>  sets  a hook to be called at
+       The  function  <STRONG>set_item_term</STRONG>  sets  a hook to be called at
        menu-unpost time and each time the selected  item  changes
        menu-unpost time and each time the selected  item  changes
-       (before  the  change).  <B>item_term</B> returns the current item
-       term hook, if any (<B>NULL</B> if there is no such hook).
+       (before  the  change).  <STRONG>item_term</STRONG> returns the current item
+       term hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The function <B>set_menu_init</B> sets a hook  to  be  called  at
+       The function <STRONG>set_menu_init</STRONG> sets a hook  to  be  called  at
        menu-post  time  and  just  after  the top row on the menu
        menu-post  time  and  just  after  the top row on the menu
-       changes once it is posted.  <B>menu_init</B> returns the  current
-       menu init hook, if any (<B>NULL</B> if there is no such hook).
+       changes once it is posted.  <STRONG>menu_init</STRONG> returns the  current
+       menu init hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
-       The  function  <B>set_menu_term</B>  sets  a hook to be called at
+       The  function  <STRONG>set_menu_term</STRONG>  sets  a hook to be called at
        menu-unpost time and just before the top row on  the  menu
        menu-unpost time and just before the top row on  the  menu
-       changes  once it is posted.  <B>menu_term</B> returns the current
-       menu term hook, if any (<B>NULL</B> if there is no such hook).
+       changes  once it is posted.  <STRONG>menu_term</STRONG> returns the current
+       menu term hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return pointers return <B>NULL</B> on error.  Other
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.  Other
        routines return one of the following:
 
        routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index d2bde33d3dd8b8d4360f4297aa1c8da64d613c01..65dd1c7c68cbf0c74a899a09870544785aa4651c 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_items.3x,v 1.5 1998/11/29 01:09:56 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_items 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>
 <BODY>
+<H1>menu_items 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_items</B>  - make and break connections between items and
+       <STRONG>menu_items</STRONG>  - make and break connections between items and
        menus
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        menus
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_items(MENU *menu, ITEM **items);
        ITEM **menu_items(const MENU *menu);
        int item_count(const MENU *menu);
        int set_menu_items(MENU *menu, ITEM **items);
        ITEM **menu_items(const MENU *menu);
        int item_count(const MENU *menu);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>set_menu_items</B> changes the item pointer array
-       of  the  given  <I>menu</I>.   The  array must be terminated by a
-       <B>NULL</B>.
+       The function <STRONG>set_menu_items</STRONG> changes the item pointer array
+       of  the  given  <EM>menu</EM>.   The  array must be terminated by a
+       <STRONG>NULL</STRONG>.
 
 
-       The function <B>menu_items</B> returns  the  item  array  of  the
+       The function <STRONG>menu_items</STRONG> returns  the  item  array  of  the
        given menu.
 
        given menu.
 
-       The  function  <B>item_count</B>  returns  the  count of items in
-       <I>menu</I>.
+       The  function  <STRONG>item_count</STRONG>  returns  the  count of items in
+       <EM>menu</EM>.
 
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUES</H2><PRE>
-       The function <B>menu_items</B> returns <B>NULL</B> on error.
+       The function <STRONG>menu_items</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       The function <B>item_count</B> returns <B>ERR</B>  (the  general  <B>curses</B>
+       The function <STRONG>item_count</STRONG> returns <STRONG>ERR</STRONG>  (the  general  <STRONG>curses</STRONG>
        error return value) on error.
 
        error return value) on error.
 
-       The  function  <B>set_menu_items</B> returns one of the following
+       The  function  <STRONG>set_menu_items</STRONG> returns one of the following
        codes on error:
 
        codes on error:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu is already posted.
 
             The menu is already posted.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
        were not supported on Version 7 or BSD versions.
 
        The   SVr4   menu   library  documentation  specifies  the
        were not supported on Version 7 or BSD versions.
 
        The   SVr4   menu   library  documentation  specifies  the
-       <B>item_count</B> error value as -1 (which is the value of  <B>ERR</B>).
+       <STRONG>item_count</STRONG> error value as -1 (which is the value of  <STRONG>ERR</STRONG>).
 
 
 </PRE>
 
 
 </PRE>
index f2eeac90511b9f304439219acbcbbe94d166879d..588cb9459707a837b2b849a236fbdab18ecaec40 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_mark.3x,v 1.6 1998/11/29 01:10:03 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_mark 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>
 <BODY>
+<H1>menu_mark 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_mark</B> - get and set the menu mark string
+       <STRONG>menu_mark</STRONG> - get and set the menu mark string
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_mark(MENU *menu, const char *mark);
        const char *menu_mark(const MENU *menu);
 
        int set_menu_mark(MENU *menu, const char *mark);
        const char *menu_mark(const MENU *menu);
 
        library  marks  selected  items  in  a  menu with a prefix
        string.
 
        library  marks  selected  items  in  a  menu with a prefix
        string.
 
-       The function <B>set_menu_mark</B> sets the mark  string  for  the
-       given  menu.   Calling <B>set_menu_mark</B> with a null menu item
+       The function <STRONG>set_menu_mark</STRONG> sets the mark  string  for  the
+       given  menu.   Calling <STRONG>set_menu_mark</STRONG> with a null menu item
        will abolish the mark  string.   Note  that  changing  the
        length  of  the  mark  string for a menu while the menu is
        posted is likely to produce unhelpful behavior.
 
        will abolish the mark  string.   Note  that  changing  the
        length  of  the  mark  string for a menu while the menu is
        posted is likely to produce unhelpful behavior.
 
-       The default string is "-" (a dash). Calling  <B>set_menu_mark</B>
-       with a <B>NULL</B> menu argument will change this default.
+       The default string is "-" (a dash). Calling  <STRONG>set_menu_mark</STRONG>
+       with a <STRONG>NULL</STRONG> menu argument will change this default.
 
 
-       The  function <B>menu_mark</B> returns the menu's mark string (or
-       <B>NULL</B> if there is none).
+       The  function <STRONG>menu_mark</STRONG> returns the menu's mark string (or
+       <STRONG>NULL</STRONG> if there is none).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>menu_mark</B> returns <B>NULL</B> on error.   The  func-
-       tion <B>set_menu_mark</B> may return the following error codes:
+       The function <STRONG>menu_mark</STRONG> returns <STRONG>NULL</STRONG> on error.   The  func-
+       tion <STRONG>set_menu_mark</STRONG> may return the following error codes:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 33e39ad9d4457848702ea3c0a69af3c1a059f0eb..bd337a0917e7c9cf759897281f2547bbbdc4762f 100644 (file)
@@ -1,58 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_new.3x,v 1.7 1998/11/29 01:10:13 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_new 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>
 <BODY>
+<H1>menu_new 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_new</B> - create and destroy menus
+       <STRONG>menu_new</STRONG> - create and destroy menus
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        MENU *new_menu(ITEM **items);
        int free_menu(MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        MENU *new_menu(ITEM **items);
        int free_menu(MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>new_menu</B>  creates a new menu connected to a
-       specified item pointer array (which  must  be  <B>NULL</B>-termi-
+       The  function  <STRONG>new_menu</STRONG>  creates a new menu connected to a
+       specified item pointer array (which  must  be  <STRONG>NULL</STRONG>-termi-
        nated).
 
        nated).
 
-       The  function  <B>free_menu</B>  disconnects  <I>menu</I>  from its item
+       The  function  <STRONG>free_menu</STRONG>  disconnects  <EM>menu</EM>  from its item
        array and frees the storage allocated for the menu.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        array and frees the storage allocated for the menu.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>new_menu</B> returns <B>NULL</B> on error.
+       The function <STRONG>new_menu</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       The function <B>free_menu</B> returns one of the following:
+       The function <STRONG>free_menu</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu has already been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu has already been posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 5730121fe60cb11cfdb8f5ee83c9935330dd931e..a306b2a1712c7af7a4441cd4dc53e57c28c869a5 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_opts.3x,v 1.7 1998/11/29 01:10:21 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_opts 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>
 <BODY>
+<H1>menu_opts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_opts</B> - set and get menu options
+       <STRONG>menu_opts</STRONG> - set and get menu options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_opts(MENU *menu, OPTIONS opts);
        int menu_opts_on(MENU *menu, OPTIONS opts);
        int menu_opts_off(MENU *menu, OPTIONS opts);
        int set_menu_opts(MENU *menu, OPTIONS opts);
        int menu_opts_on(MENU *menu, OPTIONS opts);
        int menu_opts_off(MENU *menu, OPTIONS opts);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_menu_opts</B>  sets  all  the  given menu's
+       The  function  <STRONG>set_menu_opts</STRONG>  sets  all  the  given menu's
        option bits  (menu  option  bits  may  be  logically-OR'ed
        together).
 
        option bits  (menu  option  bits  may  be  logically-OR'ed
        together).
 
-       The  function <B>menu_opts_on</B> turns on the given option bits,
+       The  function <STRONG>menu_opts_on</STRONG> turns on the given option bits,
        and leaves others alone.
 
        and leaves others alone.
 
-       The function <B>menu_opts_off</B>  turns  off  the  given  option
+       The function <STRONG>menu_opts_off</STRONG>  turns  off  the  given  option
        bits, and leaves others alone.
 
        bits, and leaves others alone.
 
-       The  function  <B>menu_opts</B> returns the menu's current option
+       The  function  <STRONG>menu_opts</STRONG> returns the menu's current option
        bits.
 
        The following options are defined (all are on by default):
        bits.
 
        The following options are defined (all are on by default):
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>menu_opts</B>, each routine returns one of the fol-
+       Except for <STRONG>menu_opts</STRONG>, each routine returns one of the fol-
        lowing:
 
        lowing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu is already posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu is already posted.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 2db0a3afc25f13f9133cf5a760e17c6e2d46aa64..ea3a8cce9a5764ed9251dbb3891089841e39c682 100644 (file)
@@ -1,16 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_pattern.3x,v 1.7 2002/02/16 22:40:59 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_pattern 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>
 <BODY>
+<H1>menu_pattern 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_pattern</B> - get and set a menu's pattern buffer
+       <STRONG>menu_pattern</STRONG> - get and set a menu's pattern buffer
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_pattern(MENU *menu, const char *pattern);
        char *menu_pattern(const MENU *menu);
 
        int set_menu_pattern(MENU *menu, const char *pattern);
        char *menu_pattern(const MENU *menu);
 
        Every  menu  has  an  associated pattern match buffer.  As
        input events that are printable ASCII characters come  in,
        they  are  appended  to this match buffer and tested for a
        Every  menu  has  an  associated pattern match buffer.  As
        input events that are printable ASCII characters come  in,
        they  are  appended  to this match buffer and tested for a
-       match, as described in <B><A HREF="menu_driver.3x.html">menu_driver(3x)</A></B>.
+       match, as described in <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>.
 
 
-       The function <B>set_menu_pattern</B> sets the pattern buffer  for
+       The function <STRONG>set_menu_pattern</STRONG> sets the pattern buffer  for
        the  given menu and tries to find the first matching item.
        If it succeeds, that item becomes  current;  if  not,  the
        current item does not change.
 
        the  given menu and tries to find the first matching item.
        If it succeeds, that item becomes  current;  if  not,  the
        current item does not change.
 
-       The  function  <B>menu_pattern</B>  returns the pattern buffer of
-       the given <I>menu</I>.
+       The  function  <STRONG>menu_pattern</STRONG>  returns the pattern buffer of
+       the given <EM>menu</EM>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>menu_pattern</B>  returns  <B>NULL</B>  on  error.   The
-       function  <B>set_menu_pattern</B>  may return the following error
+       The function <STRONG>menu_pattern</STRONG>  returns  <STRONG>NULL</STRONG>  on  error.   The
+       function  <STRONG>set_menu_pattern</STRONG>  may return the following error
        codes:
 
        codes:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_NO_MATCH</B>
+       <STRONG>E_NO_MATCH</STRONG>
             Character failed to match.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Character failed to match.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index ca734478d36843eb9b4592cd202a9785e72c44b8..82d90e9fe42553285720a1b40ecfa1c177305503 100644 (file)
@@ -1,31 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_post.3x,v 1.7 1998/11/29 01:10:33 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_post 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>
 <BODY>
+<H1>menu_post 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_post</B>  -  write or erase menus from associated subwin-
+       <STRONG>menu_post</STRONG>  -  write or erase menus from associated subwin-
        dows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        dows
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int post_menu(MENU *menu);
        int unpost_menu(MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int post_menu(MENU *menu);
        int unpost_menu(MENU *menu);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>post_menu</B> displays a menu to  its  associated
+       The function <STRONG>post_menu</STRONG> displays a menu to  its  associated
        subwindow.   To trigger physical display of the subwindow,
        subwindow.   To trigger physical display of the subwindow,
-       use  <B>refresh</B>  or  some  equivalent  <B>curses</B>  routine   (the
-       implicit  <B>doupdate</B>  triggered  by  an <B>curses</B> input request
-       will do). <B>post_menu</B> resets the  selection  status  of  all
+       use  <STRONG>refresh</STRONG>  or  some  equivalent  <STRONG>curses</STRONG>  routine   (the
+       implicit  <STRONG>doupdate</STRONG>  triggered  by  an <STRONG>curses</STRONG> input request
+       will do). <STRONG>post_menu</STRONG> resets the  selection  status  of  all
        items.
 
        items.
 
-       The  function  <B>unpost_menu</B> erases menu from its associated
+       The  function  <STRONG>unpost_menu</STRONG> erases menu from its associated
        subwindow.
 
 
        subwindow.
 
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
 <H2>RETURN VALUE</H2><PRE>
        These routines return one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu has already been posted.
 
             The menu has already been posted.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NO_ROOM</B>
+       <STRONG>E_NO_ROOM</STRONG>
             Menu is too large for its window. You should consider
             Menu is too large for its window. You should consider
-            to use <B>set_menu_format()</B> to solve the problem.
+            to use <STRONG>set_menu_format()</STRONG> to solve the problem.
 
 
-       <B>E_NOT_POSTED</B>
+       <STRONG>E_NOT_POSTED</STRONG>
             The menu has not been posted.
 
             The menu has not been posted.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 388d1fe2ba8c717143c65e65056969846fb61982..fa475d1b6b5411648bab40d40f1c2fbeb583d01a 100644 (file)
@@ -1,45 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_requestname.3x,v 1.6 1998/11/29 01:10:40 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_requestname 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>
 <BODY>
+<H1>menu_requestname 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_requestname</B> - handle printable menu request names
+       <STRONG>menu_requestname</STRONG> - handle printable menu request names
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        const char *menu_request_name(int request);
        int menu_request_by_name(const char *name);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        const char *menu_request_name(int request);
        int menu_request_by_name(const char *name);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>menu_request_name</B> returns the printable name
+       The  function <STRONG>menu_request_name</STRONG> returns the printable name
        of a menu request code.
        of a menu request code.
-       The function <B>menu_request_by_name</B> searches  in  the  name-
+       The function <STRONG>menu_request_by_name</STRONG> searches  in  the  name-
        table  for  a  request with the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        table  for  a  request with the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>menu_request_name</B> returns <B>NULL</B> on error and sets errno  to
-       <B>E_BAD_ARGUMENT</B>.
-       <B>menu_request_by_name</B> returns <B>E_NO_MATCH</B> on error.
+       <STRONG>menu_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets errno  to
+       <STRONG>E_BAD_ARGUMENT</STRONG>.
+       <STRONG>menu_request_by_name</STRONG> returns <STRONG>E_NO_MATCH</STRONG> on error.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index ba2cd1cdf9b992b71857513228c2943d994bd8dd..998cdb12c221f960485653df13f8baaf8aae3688 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_spacing 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>
 <BODY>
+<H1>menu_spacing 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_spacing</B> - Control spacing between menu items.
+       <STRONG>menu_spacing</STRONG> - Control spacing between menu items.
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_spacing(MENU *menu,
        int set_menu_spacing(MENU *menu,
-                            int spc_description
+                            int spc_description,
                             int spc_rows,
                             int spc_columns);
        int menu_spacing(const MENU *menu,
                             int spc_rows,
                             int spc_columns);
        int menu_spacing(const MENU *menu,
-                        int* spc_description
+                        int* spc_description,
                         int* spc_rows,
                         int* spc_columns);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
                         int* spc_rows,
                         int* spc_columns);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_menu_spacing</B>  sets the spacing informa-
-       tions for the menu.  <B>spc_description</B> controls  the  number
+       The  function  <STRONG>set_menu_spacing</STRONG>  sets the spacing informa-
+       tions for the menu.  <STRONG>spc_description</STRONG> controls  the  number
        of spaces between an item name and an item description. It
        of spaces between an item name and an item description. It
-       must not be larger than <B>TABSIZE</B>. The menu system  puts  in
+       must not be larger than <STRONG>TABSIZE</STRONG>. The menu system  puts  in
        the  middle  of  this  spacing area the pad character. The
        the  middle  of  this  spacing area the pad character. The
-       remaining parts are filled with spaces.  <B>spc_rows</B> controls
+       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
        between  item rows, these lines will contain the pad char-
        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 will contain the pad char-
-       acter in the appropriate positions.  <B>spc_columns</B>  controls
+       acter in the appropriate positions.  <STRONG>spc_columns</STRONG>  controls
        the number of blanks between columns of items. It must not
        be larger than TABSIZE.  A value of 0 for all the  spacing
        values  resets  them to the default, which is 1 for all of
        them.
        the number of blanks between columns of items. It must not
        be larger than TABSIZE.  A value of 0 for all the  spacing
        values  resets  them to the default, which is 1 for all of
        them.
-       The function <B>menu_spacing</B> passes back the spacing info for
+       The function <STRONG>menu_spacing</STRONG> passes back the spacing info for
        the menu. If a pointer is NULL, this specific info is sim-
        ply not returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        the menu. If a pointer is NULL, this specific info is sim-
        ply not returned.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Both routines return <B>E_OK</B> on success. <B>set_menu_spacing</B> may
-       return  <B>E_POSTED</B>  if the menu is posted, or <B>E_BAD_ARGUMENT</B>
+       Both routines return <STRONG>E_OK</STRONG> on success. <STRONG>set_menu_spacing</STRONG> may
+       return  <STRONG>E_POSTED</STRONG>  if the menu is posted, or <STRONG>E_BAD_ARGUMENT</STRONG>
        if one of the spacing values is out of range.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        if one of the spacing values is out of range.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 5eebdb8f64afcd6b615eec64be8a4221637aa925..6fadbe52707f92845067b12dfb50e78b77195e79 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_userptr.3x,v 1.6 1998/11/29 01:11:02 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_userptr 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>
 <BODY>
+<H1>menu_userptr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_userptr</B> - associate application data with a menu item
+       <STRONG>menu_userptr</STRONG> - associate application data with a menu item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_userptr(MENU *menu, void *userptr);
        void *menu_userptr(const MENU *menu);
 
        int set_menu_userptr(MENU *menu, void *userptr);
        void *menu_userptr(const MENU *menu);
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except  for  <B>menu_userptr</B>  (which  returns <B>NULL</B> on error),
+       Except  for  <STRONG>menu_userptr</STRONG>  (which  returns <STRONG>NULL</STRONG> on error),
        each function returns one of the following:
 
        each function returns one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index c2fb72a640656e62d917607530cd934141cfbd9f..d873d16d3eff6ad8f21be1ff950aa5244866c3a1 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: menu_win.3x,v 1.6 1998/11/29 01:11:11 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>menu_win 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>
 <BODY>
+<H1>menu_win 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>menu_win</B>  - make and break menu window and subwindow asso-
+       <STRONG>menu_win</STRONG>  - make and break menu window and subwindow asso-
        ciations
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        ciations
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_menu_win(MENU *menu, WINDOW *win);
        WINDOW *menu_win(const MENU *menu);
        int set_menu_sub(MENU *menu, WINDOW *sub);
        int set_menu_win(MENU *menu, WINDOW *win);
        WINDOW *menu_win(const MENU *menu);
        int set_menu_sub(MENU *menu, WINDOW *sub);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       Every  menu has an associated pair of <B>curses</B> windows.  The
+       Every  menu has an associated pair of <STRONG>curses</STRONG> windows.  The
        menu window displays any title and border associated  with
        the  window;  the menu subwindow displays the items of the
        menu that are currently available for selection.
 
        The first four functions get and set those windows.  It is
        not necessary to set either window; by default, the driver
        menu window displays any title and border associated  with
        the  window;  the menu subwindow displays the items of the
        menu that are currently available for selection.
 
        The first four functions get and set those windows.  It is
        not necessary to set either window; by default, the driver
-       code uses <B>stdscr</B> for both.
+       code uses <STRONG>stdscr</STRONG> for both.
 
 
-       In the <B>set_</B> functions, window argument of <B>NULL</B> is  treated
-       as  though  it  were  <B>stsdcr</B>.   A menu argument of <B>NULL</B> is
+       In the <STRONG>set_</STRONG> functions, window argument of <STRONG>NULL</STRONG> is  treated
+       as  though  it  were  <STRONG>stsdcr</STRONG>.   A menu argument of <STRONG>NULL</STRONG> is
        treated as a request to change  the  system  default  menu
        window or subwindow.
 
        treated as a request to change  the  system  default  menu
        window or subwindow.
 
-       The  function <B>scale_menu</B> returns the minimum size required
-       for the subwindow of <I>menu</I>.
+       The  function <STRONG>scale_menu</STRONG> returns the minimum size required
+       for the subwindow of <EM>menu</EM>.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return pointers return <B>NULL</B> on error.   Rou-
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.   Rou-
        tines  that  return an integer return one of the following
        error codes:
 
        tines  that  return an integer return one of the following
        error codes:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_POSTED</B>
+       <STRONG>E_POSTED</STRONG>
             The menu has already been posted.
 
             The menu has already been posted.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index ab74dffb56f82a9eb3495be6b4ee651abd5341e5..82614bbd2bd5effbb37786ca44f3bb857a179b42 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_current.3x,v 1.9 1998/12/26 19:52:34 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_current 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>
 <BODY>
+<H1>mitem_current 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_current</B> - set and get current_menu_item
+       <STRONG>mitem_current</STRONG> - set and get current_menu_item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_current_item(MENU *menu, const ITEM *item);
        ITEM *current_item(const MENU *menu);
        int set_top_row(MENU *menu, int row);
        int set_current_item(MENU *menu, const ITEM *item);
        ITEM *current_item(const MENU *menu);
        int set_top_row(MENU *menu, int row);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_current_item</B> sets the current item (the
-       item on  which  the  menu  cursor  is  positioned).   <B>cur-</B>
-       <B>rent_item</B>  returns  a  pointer  to the current item in the
+       The  function  <STRONG>set_current_item</STRONG> sets the current item (the
+       item on  which  the  menu  cursor  is  positioned).   <STRONG>cur-</STRONG>
+       <STRONG>rent_item</STRONG>  returns  a  pointer  to the current item in the
        given menu.
 
        given menu.
 
-       The function <B>set_top_row</B> sets the top row of the  menu  to
+       The function <STRONG>set_top_row</STRONG> sets the top row of the  menu  to
        show  the  given  row  (the top row is initially 0, and is
        show  the  given  row  (the top row is initially 0, and is
-       reset to this value whenever the <B>O_ROWMAJOR</B> option is tog-
+       reset to this value whenever the <STRONG>O_ROWMAJOR</STRONG> option is tog-
        gled).   The  item  leftmost on the given row becomes cur-
        gled).   The  item  leftmost on the given row becomes cur-
-       rent.  The function <B>top_row</B> returns the number of the  top
+       rent.  The function <STRONG>top_row</STRONG> returns the number of the  top
        menu row being displayed.
 
        menu row being displayed.
 
-       The function <B>item_index</B> returns the (zero-origin) index of
-       <I>item</I> in the menu's item pointer list.
+       The function <STRONG>item_index</STRONG> returns the (zero-origin) index of
+       <EM>item</EM> in the menu's item pointer list.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <B>current_item</B> returns <B>NULL</B> on error.
+       <STRONG>current_item</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       <B>top_row</B> and <B>item_index</B>  return  <B>ERR</B>  (the  general  <B>curses</B>
+       <STRONG>top_row</STRONG> and <STRONG>item_index</STRONG>  return  <STRONG>ERR</STRONG>  (the  general  <STRONG>curses</STRONG>
        error value) on error.
 
        error value) on error.
 
-       <B>set_current_item</B> and <B>set_top_row</B> return one of the follow-
+       <STRONG>set_current_item</STRONG> and <STRONG>set_top_row</STRONG> return one of the follow-
        ing:
 
        ing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
             Routine detected an incorrect or  out-of-range  argu-
             ment.
 
-       <B>E_BAD_STATE</B>
+       <STRONG>E_BAD_STATE</STRONG>
             Routine was called from an initialization or termina-
             tion function.
 
             Routine was called from an initialization or termina-
             tion function.
 
-       <B>E_NOT_CONNECTED</B>
+       <STRONG>E_NOT_CONNECTED</STRONG>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             No items are connected to the menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
        These  routines  emulate  the System V menu library.  They
        were not supported on Version 7 or BSD versions.
 
        These  routines  emulate  the System V menu library.  They
        were not supported on Version 7 or BSD versions.
 
-       The SVr4 menu library documentation specifies the  <B>top_row</B>
-       and  <B>index_item</B>  error  value as -1 (which is the value of
-       <B>ERR</B>).
+       The SVr4 menu library documentation specifies the  <STRONG>top_row</STRONG>
+       and  <STRONG>index_item</STRONG>  error  value as -1 (which is the value of
+       <STRONG>ERR</STRONG>).
 
 
 </PRE>
 
 
 </PRE>
index 803f966df8a3ae9fd870722738bdce7363a5d160..a60a1d7f941b2331d8562762a68f02e3c2fc7eee 100644 (file)
@@ -1,42 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_name.3x,v 1.5 1998/11/29 01:11:29 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_name 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>
 <BODY>
+<H1>mitem_name 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_name</B> - get menu item name and description fields
+       <STRONG>mitem_name</STRONG> - get menu item name and description fields
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        const char *item_name(const ITEM *item);
        const char *item_description(const ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        const char *item_name(const ITEM *item);
        const char *item_description(const ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function <B>item_name</B> returns the name part of the given
+       The  function <STRONG>item_name</STRONG> returns the name part of the given
        item.
        item.
-       The function <B>item_description</B> returns the description part
+       The function <STRONG>item_description</STRONG> returns the description part
        of the given item.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        of the given item.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       These routines returns <B>NULL</B> on error.
+       These routines returns <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 9918f6cf908626a219cf9e5f55acd69042f4c275..86603d1abe15f034e135b5e8a7f8301360b7117b 100644 (file)
@@ -1,30 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_new.3x,v 1.7 1998/11/29 01:11:38 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_new 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>
 <BODY>
+<H1>mitem_new 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_new</B> - create and destroy menu items
+       <STRONG>mitem_new</STRONG> - create and destroy menu items
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        ITEM *new_item(const char *name, const char *description);
        int free_item(ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        ITEM *new_item(const char *name, const char *description);
        int free_item(ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The function <B>new_item</B> allocates a new item and initializes
-       it  from  the <B>name</B> and <B>description</B> pointers. Please notice
+       The function <STRONG>new_item</STRONG> allocates a new item and initializes
+       it  from  the <STRONG>name</STRONG> and <STRONG>description</STRONG> pointers. Please notice
        that the item stores only the pointers  to  the  name  and
        description. Those pointers must be valid during the life-
        time of the item. So you  should  be  very  carefull  with
        names  or descriptions allocated on the stack of some rou-
        tines.
        that the item stores only the pointers  to  the  name  and
        description. Those pointers must be valid during the life-
        time of the item. So you  should  be  very  carefull  with
        names  or descriptions allocated on the stack of some rou-
        tines.
-       The function <B>free_item</B> de-allocates an item. Please notice
+       The function <STRONG>free_item</STRONG> de-allocates an item. Please notice
        that  it  is  the  responsibility  of  the  application to
        release the memory for the name or the description of  the
        item.
        that  it  is  the  responsibility  of  the  application to
        release the memory for the name or the description of  the
        item.
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>new_item</B> returns <B>NULL</B> on error.
+       The function <STRONG>new_item</STRONG> returns <STRONG>NULL</STRONG> on error.
 
 
-       The function <B>free_item</B> returns one of the following:
+       The function <STRONG>free_item</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_BAD_ARGUMENT</B>
+       <STRONG>E_BAD_ARGUMENT</STRONG>
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
             Routine  detected  an incorrect or out-of-range argu-
             ment.
 
-       <B>E_CONNECTED</B>
+       <STRONG>E_CONNECTED</STRONG>
             Item is connected to a menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Item is connected to a menu.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 17abe4292224bdb9c901965e9478faadb2e9b2e9..cc43f6a472f134c2ae33101d3da17cba75329084 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_opts.3x,v 1.6 1998/11/29 01:12:37 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_opts 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>
 <BODY>
+<H1>mitem_opts 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_opts</B> - set and get menu item options
+       <STRONG>mitem_opts</STRONG> - set and get menu item options
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_item_opts(ITEM *item, OPTIONS opts);
        int item_opts_on(ITEM *item, OPTIONS opts);
        int item_opts_off(ITEM *item, OPTIONS opts);
        int set_item_opts(ITEM *item, OPTIONS opts);
        int item_opts_on(ITEM *item, OPTIONS opts);
        int item_opts_off(ITEM *item, OPTIONS opts);
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  function  <B>set_item_opts</B>  sets  all  the  given item's
+       The  function  <STRONG>set_item_opts</STRONG>  sets  all  the  given item's
        option bits  (menu  option  bits  may  be  logically-OR'ed
        together).
 
        option bits  (menu  option  bits  may  be  logically-OR'ed
        together).
 
-       The  function <B>item_opts_on</B> turns on the given option bits,
+       The  function <STRONG>item_opts_on</STRONG> turns on the given option bits,
        and leaves others alone.
 
        and leaves others alone.
 
-       The function <B>item_opts_off</B>  turns  off  the  given  option
+       The function <STRONG>item_opts_off</STRONG>  turns  off  the  given  option
        bits, and leaves others alone.
 
        bits, and leaves others alone.
 
-       The  function  <B>item_opts</B> returns the item's current option
+       The  function  <STRONG>item_opts</STRONG> returns the item's current option
        bits.
 
        bits.
 
-       There is only one defined option bit  mask,  <B>O_SELECTABLE</B>.
+       There is only one defined option bit  mask,  <STRONG>O_SELECTABLE</STRONG>.
        When this is on, the item may be selected during menu pro-
        cessing.  This option defaults to on.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        When this is on, the item may be selected during menu pro-
        cessing.  This option defaults to on.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <B>item_opts</B>, each routine returns one of the fol-
+       Except for <STRONG>item_opts</STRONG>, each routine returns one of the fol-
        lowing:
 
        lowing:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 7d7c5618e01ece08e3e90ca34920fcc7f3b443f6..997a6762d55063aacb46898dcc39cc26ae308762 100644 (file)
@@ -1,17 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_userptr.3x,v 1.6 1998/11/29 01:12:47 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_userptr 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>
 <BODY>
+<H1>mitem_userptr 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_userptr</B>  -  associate  application  data with a menu
+       <STRONG>mitem_userptr</STRONG>  -  associate  application  data with a menu
        item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_item_userptr(ITEM *item, void *userptr);
        void *item_userptr(const ITEM *item);
 
        int set_item_userptr(ITEM *item, void *userptr);
        void *item_userptr(const ITEM *item);
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except  for  <B>item_userptr</B>  (which  returns <B>NULL</B> on error),
+       Except  for  <STRONG>item_userptr</STRONG>  (which  returns <STRONG>NULL</STRONG> on error),
        each function returns one of the following:
 
        each function returns one of the following:
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index a83ece253f8ffc613ecdb4f258d4a4d0e16097b7..e38d5e1bc59f1b374c23d8b910f07c9c85c5ea96 100644 (file)
@@ -1,54 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_value.3x,v 1.6 2002/02/16 22:40:59 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_value 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>
 <BODY>
+<H1>mitem_value 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_value</B> - set and get menu item values
+       <STRONG>mitem_value</STRONG> - set and get menu item values
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        int set_item_value(ITEM *item, bool value);
        bool item_value(const ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        int set_item_value(ITEM *item, bool value);
        bool item_value(const ITEM *item);
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       If  you  turn  off  the menu option <B>O_ONEVALUE</B> (e.g., with
-       <B>set_menu_opts</B> or <B>menu_opts_off</B>;  see  <B><A HREF="menu_opts.3x.html">menu_opts(3x)</A></B>),  the
+       If  you  turn  off  the menu option <STRONG>O_ONEVALUE</STRONG> (e.g., with
+       <STRONG>set_menu_opts</STRONG> or <STRONG>menu_opts_off</STRONG>;  see  <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>),  the
        menu becomes multi-valued; that is, more than one item may
        simultaneously be selected.
 
        menu becomes multi-valued; that is, more than one item may
        simultaneously be selected.
 
-       In a multi_valued menu, you  can  used  <B>set_item_value</B>  to
-       select the given menu item (second argument <B>TRUE</B>) or dese-
-       lect it (second argument <B>FALSE</B>).
+       In a multi_valued menu, you  can  used  <STRONG>set_item_value</STRONG>  to
+       select the given menu item (second argument <STRONG>TRUE</STRONG>) or dese-
+       lect it (second argument <STRONG>FALSE</STRONG>).
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function <B>set_item_value</B> returns one of the following:
+       The function <STRONG>set_item_value</STRONG> returns one of the following:
 
 
-       <B>E_OK</B> The routine succeeded.
+       <STRONG>E_OK</STRONG> The routine succeeded.
 
 
-       <B>E_SYSTEM_ERROR</B>
-            System error occurred (see <B>errno</B>).
+       <STRONG>E_SYSTEM_ERROR</STRONG>
+            System error occurred (see <STRONG>errno</STRONG>).
 
 
-       <B>E_REQUEST_DENIED</B>
+       <STRONG>E_REQUEST_DENIED</STRONG>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             The menu driver could not process the request.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index bc105a0a9a15fa328b4db24952f8883b0cb95c0c..0b36dec5af5851f6160bb0da154d927b8ee93f33 100644 (file)
@@ -1,16 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: mitem_visible.3x,v 1.5 1998/11/29 01:12:55 Rick.Ohnemus Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>mitem_visible 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>
 <BODY>
+<H1>mitem_visible 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>mitem_visible</B> - check visibility of a menu item
+       <STRONG>mitem_visible</STRONG> - check visibility of a menu item
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;menu.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
        bool item_visible(const ITEM *item);
 
 
        bool item_visible(const ITEM *item);
 
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="menu.3x.html">menu(3x)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header file <B>&lt;menu.h&gt;</B> automatically includes the header
-       file <B>&lt;curses.h&gt;</B>.
+       The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+       file <STRONG>&lt;curses.h&gt;</STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 5fb8400f404fb2f425ed1ecd2bb6eead5246b2f4..83995f9e1407afe0068f2bec6000c2e003870510 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998,1999,2001,2002 Free Software Foundation, Inc.         *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: ncurses.3x,v 1.63 2002/08/10 21:56:07 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>ncurses 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>
 <BODY>
+<H1>ncurses 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>ncurses</B> - CRT screen handling and optimization package
+       <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>ncurses</B>  library  routines  give the user a terminal-
+       The  <STRONG>ncurses</STRONG>  library  routines  give the user a terminal-
        independent method  of  updating  character  screens  with
        reasonable  optimization.   This  implementation  is ``new
        curses'' (ncurses) and is  the  approved  replacement  for
        4.4BSD classic curses, which has been discontinued.
 
        independent method  of  updating  character  screens  with
        reasonable  optimization.   This  implementation  is ``new
        curses'' (ncurses) and is  the  approved  replacement  for
        4.4BSD classic curses, which has been discontinued.
 
-       The  <B>ncurses</B>  routines  emulate  the <B><A HREF="ncurses.3x.html">curses(3x)</A></B> library of
+       The  <STRONG>ncurses</STRONG>  routines  emulate  the <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> library of
        System V Release 4 UNIX, and the XPG4 curses standard (XSI
        System V Release 4 UNIX, and the XPG4 curses standard (XSI
-       curses)  but the <B>ncurses</B> library is freely redistributable
+       curses)  but the <STRONG>ncurses</STRONG> 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.
 
        A  program  using  these  routines must be linked with the
        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.
 
        A  program  using  these  routines must be linked with the
-       <B>-lncurses</B> option, or (if it has been generated)  with  the
-       debugging  library  <B>-lncurses_g</B>.   (Your system integrator
+       <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
        may also have installed these libraries  under  the  names
-       <B>-lcurses</B> and <B>-lcurses_g</B>.)  The ncurses_g library generates
+       <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.)  The ncurses_g library generates
        trace logs (in  a  file  called  'trace'  in  the  current
        directory) that describe curses actions.
 
        trace logs (in  a  file  called  'trace'  in  the  current
        directory) that describe curses actions.
 
-       The  <B>ncurses</B>  package supports: overall screen, window and
+       The  <STRONG>ncurses</STRONG>  package supports: overall screen, window and
        pad manipulation; output  to  windows  and  pads;  reading
        pad manipulation; output  to  windows  and  pads;  reading
-       terminal input; control over terminal and <B>curses</B> input and
+       terminal input; control over terminal and <STRONG>curses</STRONG> input and
        output  options;   environment   query   routines;   color
        manipulation;   use   of   soft   label   keys;   terminfo
        capabilities;   and   access   to   low-level    terminal-
        manipulation routines.
 
        output  options;   environment   query   routines;   color
        manipulation;   use   of   soft   label   keys;   terminfo
        capabilities;   and   access   to   low-level    terminal-
        manipulation routines.
 
-       To initialize the routines, the routine <B>initscr</B> or <B>newterm</B>
+       To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
        must be called before any of the other routines that  deal
        must be called before any of the other routines that  deal
-       with  windows  and  screens  are used.  The routine <B>endwin</B>
+       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
        used:
 
        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
        used:
 
-             <B>initscr();</B> <B>cbreak();</B> <B>noecho();</B>
+             <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
 
        Most programs would additionally use the sequence:
 
 
        Most programs would additionally use the sequence:
 
-             <B>nonl();</B>
-             <B>intrflush(stdscr,</B> <B>FALSE);</B>
-             <B>keypad(stdscr,</B> <B>TRUE);</B>
+             <STRONG>nonl();</STRONG>
+             <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
+             <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
 
 
-       Before  a  <B>curses</B>  program  is  run,  the tab stops of the
+       Before  a  <STRONG>curses</STRONG>  program  is  run,  the tab stops of the
        terminal should be set and its initialization strings,  if
        defined,  must  be  output.  This can be done by executing
        terminal should be set and its initialization strings,  if
        defined,  must  be  output.  This can be done by executing
-       the <B>tput</B> <B>init</B> command after the shell environment variable
-       <B>TERM</B>  has  been  exported.  <B>tset(1)</B> is usually responsible
-       for doing this.  [See <B><A HREF="terminfo.5.html">terminfo(5)</A></B> for further details.]
+       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
+       for doing this.  [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
 
 
-       The  <B>ncurses</B>  library   permits   manipulation   of   data
-       structures,  called  <I>windows</I>,  which  can be thought of as
+       The  <STRONG>ncurses</STRONG>  library   permits   manipulation   of   data
+       structures,  called  <EM>windows</EM>,  which  can be thought of as
        two-dimensional arrays of characters representing  all  or
        two-dimensional arrays of characters representing  all  or
-       part  of  a  CRT  screen.  A default window called <B>stdscr</B>,
+       part  of  a  CRT  screen.  A default window called <STRONG>stdscr</STRONG>,
        which is the size of the  terminal  screen,  is  supplied.
        which is the size of the  terminal  screen,  is  supplied.
-       Others may be created with <B>newwin</B>.
+       Others may be created with <STRONG>newwin</STRONG>.
 
 
-       Note  that  <B>curses</B>  does  not  handle overlapping windows,
-       that's done by the <B><A HREF="panel.3x.html">panel(3x)</A></B> library. This means that  you
-       can  either  use  <B>stdscr</B>  or  divide the screen into tiled
-       windows and not using <B>stdscr</B> at all. Mixing the  two  will
+       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
+       windows and not using <STRONG>stdscr</STRONG> at all. Mixing the  two  will
        result in unpredictable, and undesired, effects.
 
        result in unpredictable, and undesired, effects.
 
-       Windows are referred to by variables declared as <B>WINDOW</B> <B>*</B>.
+       Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
        These  data  structures  are  manipulated  with   routines
        These  data  structures  are  manipulated  with   routines
-       described  here and elsewhere in the <B>ncurses</B> manual pages.
-       Among which the most basic routines are  <B>move</B>  and  <B>addch</B>.
+       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
        More  general versions of these routines are included with
-       names beginning with <B>w</B>, allowing the  user  to  specify  a
-       window.  The routines not beginning with <B>w</B> affect <B>stdscr</B>.)
+       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,  <B>refresh</B>  is
-       called,  telling <B>curses</B> to make the user's CRT screen look
-       like <B>stdscr</B>.  The characters in a window are  actually  of
-       type  <B>chtype</B>, (character and attribute data) so that other
+       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.
 
        information about the character may also  be  stored  with
        each character.
 
-       Special  windows  called  <I>pads</I>  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
        These are windows which are not constrained to the size of
        the  screen  and  whose  contents  need  not be completely
-       displayed.  See <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B> for more information.
+       displayed.  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
        characters 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
 
        In addition to drawing characters  on  the  screen,  video
        attributes  and  colors  may  be  supported,  causing  the
        characters 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, <B>curses</B> is also able to
+       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
        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
-       <B>&lt;curses.h&gt;</B>, such as <B>A_REVERSE</B>, <B>ACS_HLINE</B>, and <B>KEY_LEFT</B>.
+       <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 <B>LINES</B> and <B>COLUMNS</B> are set, or
+       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 <I>terminfo</I>.  This would effect a program
+       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 <B>ENVIRONMENT</B>).
+       of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
 
 
-       If the  environment  variable  <B>TERMINFO</B>  is  defined,  any
-       program   using   <B>curses</B>   checks  for  a  local  terminal
+       If the  environment  variable  <STRONG>TERMINFO</STRONG>  is  defined,  any
+       program   using   <STRONG>curses</STRONG>   checks  for  a  local  terminal
        definition before checking in  the  standard  place.   For
        definition before checking in  the  standard  place.   For
-       example,  if  <B>TERM</B>  is  set  to <B>att4424</B>, then the compiled
+       example,  if  <STRONG>TERM</STRONG>  is  set  to <STRONG>att4424</STRONG>, then the compiled
        terminal definition is found in
 
        terminal definition is found in
 
-             <B>/usr/share/terminfo/a/att4424</B>.
+             <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
 
 
-       (The <B>a</B> is copied from the first letter of <B>att4424</B> to avoid
-       creation  of  huge  directories.)  However, if <B>TERMINFO</B> is
-       set to <B>$HOME/myterms</B>, <B>curses</B> first checks
+       (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
+       set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
 
 
-             <B>$HOME/myterms/a/att4424</B>,
+             <STRONG>$HOME/myterms/a/att4424</STRONG>,
 
        and if that fails, it then checks
 
 
        and if that fails, it then checks
 
-             <B>/usr/share/terminfo/a/att4424</B>.
+             <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  <B>/usr/share/terminfo</B>  is  not
+       when   write  permission  in  <STRONG>/usr/share/terminfo</STRONG>  is  not
        available.
 
        available.
 
-       The integer  variables  <B>LINES</B>  and  <B>COLS</B>  are  defined  in
-       <B>&lt;curses.h&gt;</B>  and will be filled in by <B>initscr</B> with the size
-       of the screen.  The constants  <B>TRUE</B>  and  <B>FALSE</B>  have  the
-       values <B>1</B> and <B>0</B>, respectively.
+       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
+       values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
 
 
-       The  <B>curses</B>  routines  also  define  the <B>WINDOW</B> <B>*</B> variable
-       <B>curscr</B> which is used for certain low-level operations like
+       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
-       <B>curscr</B> can be used in only a few routines.
+       <STRONG>curscr</STRONG> can be used in only a few routines.
 
 
 
 
-   <B>Routine</B> <B>and</B> <B>Argument</B> <B>Names</B>
-       Many <B>curses</B> routines  have  two  or  more  versions.   The
-       routines  prefixed  with <B>w</B> require a window argument.  The
-       routines prefixed with <B>p</B> require a  pad  argument.   Those
-       without a prefix generally use <B>stdscr</B>.
+   <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
+       Many <STRONG>curses</STRONG> routines  have  two  or  more  versions.   The
+       routines  prefixed  with <STRONG>w</STRONG> require a window argument.  The
+       routines prefixed with <STRONG>p</STRONG> require a  pad  argument.   Those
+       without a prefix generally use <STRONG>stdscr</STRONG>.
 
 
-       The routines prefixed with <B>mv</B> require a <I>y</I> and <I>x</I> coordinate
+       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
        to move to before performing the appropriate action.   The
-       <B>mv</B>  routines  imply  a call to <B>move</B> before the call to the
-       other routine.  The coordinate <I>y</I> always refers to the  row
-       (of  the  window), and <I>x</I> always refers to the column.  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).
 
        upper left-hand corner is always (0,0), not (1,1).
 
-       The routines prefixed with <B>mvw</B> take both a window argument
-       and  <I>x</I>  and  <I>y</I> coordinates.  The window argument is always
+       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
        specified before the coordinates.
 
        specified before the coordinates.
 
-       In each case, <I>win</I> is the window affected, and <I>pad</I>  is  the
-       pad  affected;  <I>win</I>  and  <I>pad</I>  are always pointers to type
-       <B>WINDOW</B>.
+       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>WINDOW</STRONG>.
 
 
-       Option setting routines require a Boolean flag <I>bf</I> with the
-       value  <B>TRUE</B>  or  <B>FALSE</B>;  <I>bf</I>  is  always of type <B>bool</B>.  The
-       variables <I>ch</I> and <I>attrs</I> below are always  of  type  <B>chtype</B>.
-       The  types <B>WINDOW</B>, <B>SCREEN</B>, <B>bool</B>, and <B>chtype</B> are defined in
-       <B>&lt;curses.h&gt;</B>.  The type <B>TERMINAL</B>  is  defined  in  <B>&lt;term.h&gt;</B>.
+       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
+       variables <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.
 
 
        All other arguments are integers.
 
 
-   <B>Routine</B> <B>Name</B> <B>Index</B>
-       The following table lists each <B>curses</B> routine and the name
+   <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
        XPG4 or present in SVr4.
 
        of the manual page on which  it  is  described.   Routines
        flagged  with  `*'  are ncurses-specific, not described by
        XPG4 or present in SVr4.
 
-              <B>curses</B> Routine Name     Manual Page Name
+              <STRONG>curses</STRONG> Routine Name     Manual Page Name
               --------------------------------------------
               --------------------------------------------
-              COLOR_PAIR              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              PAIR_NUMBER             <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              _nc_tracebits           <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _traceattr              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _traceattr2             <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracechar              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracechtype            <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracechtype2           <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracedump              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracef                 <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              _tracemouse             <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              addch                   <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              addchnstr               <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              addchstr                <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              addnstr                 <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              addstr                  <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              assume_default_colors   <B><A HREF="default_colors.3x.html">default_colors(3x)</A></B>*
-              attr_get                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attr_off                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attr_on                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attr_set                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attroff                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attron                  <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              attrset                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              baudrate                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              beep                    <B><A HREF="curs_beep.3x.html">curs_beep(3x)</A></B>
-              bkgd                    <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
-              bkgdset                 <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
-              border                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              box                     <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              can_change_color        <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              cbreak                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              chgat                   <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              clear                   <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-
-              clearok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              clrtobot                <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              clrtoeol                <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              color_content           <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              color_set               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              copywin                 <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
-              curs_set                <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              curses_version          <B><A HREF="curs_extend.3x.html">curs_extend(3x)</A></B>*
-              def_prog_mode           <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              def_shell_mode          <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              define_key              <B><A HREF="define_key.3x.html">define_key(3x)</A></B>*
-              del_curterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              delay_output            <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              delch                   <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
-              deleteln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              delscreen               <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              delwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              derwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              doupdate                <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              dupwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              echo                    <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              echochar                <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              endwin                  <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              erase                   <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              erasechar               <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              filter                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              flash                   <B><A HREF="curs_beep.3x.html">curs_beep(3x)</A></B>
-              flushinp                <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              getbegyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
-              getbkgd                 <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
-              getch                   <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
-              getmaxyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
-              getmouse                <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              getnstr                 <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              getparyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
-              getstr                  <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              getsyx                  <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              getwin                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              getyx                   <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
-              halfdelay               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              has_colors              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              has_ic                  <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              has_il                  <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              has_key                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>*
-              hline                   <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              idcok                   <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              idlok                   <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              immedok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              inch                    <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
-              inchnstr                <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              inchstr                 <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              init_color              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              init_pair               <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-
-              initscr                 <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              innstr                  <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              insch                   <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
-              insdelln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              insertln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              insnstr                 <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              insstr                  <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              instr                   <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              intrflush               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              is_linetouched          <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              is_wintouched           <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              isendwin                <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              keybound                <B><A HREF="keybound.3x.html">keybound(3x)</A></B>*
-              keyname                 <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              keyok                   <B><A HREF="keyok.3x.html">keyok(3x)</A></B>*
-              keypad                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              killchar                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              leaveok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              longname                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              mcprint                 <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B>*
-              meta                    <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              mouse_trafo             <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              mouseinterval           <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              mousemask               <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              move                    <B><A HREF="curs_move.3x.html">curs_move(3x)</A></B>
-              mvaddch                 <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              mvaddchnstr             <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              mvaddchstr              <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              mvaddnstr               <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              mvaddstr                <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              mvchgat                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              mvcur                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              mvdelch                 <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
-              mvderwin                <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              mvgetch                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
-              mvgetnstr               <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              mvgetstr                <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              mvhline                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              mvinch                  <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
-              mvinchnstr              <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              mvinchstr               <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              mvinnstr                <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              mvinsch                 <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
-              mvinsnstr               <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              mvinsstr                <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              mvinstr                 <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              mvprintw                <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              mvscanw                 <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              mvvline                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              mvwaddch                <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              mvwaddchnstr            <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              mvwaddchstr             <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              mvwaddnstr              <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-
-              mvwaddstr               <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              mvwchgat                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              mvwdelch                <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
-              mvwgetch                <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
-              mvwgetnstr              <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              mvwgetstr               <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              mvwhline                <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              mvwin                   <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              mvwinch                 <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
-              mvwinchnstr             <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              mvwinchstr              <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              mvwinnstr               <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              mvwinsch                <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
-              mvwinsnstr              <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              mvwinsstr               <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              mvwinstr                <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              mvwprintw               <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              mvwscanw                <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              mvwvline                <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              napms                   <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              newpad                  <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
-              newterm                 <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              newwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              nl                      <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              nocbreak                <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              nodelay                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              noecho                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              nonl                    <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              noqiflush               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              noraw                   <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              notimeout               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              overlay                 <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
-              overwrite               <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
-              pair_content            <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              pechochar               <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
-              pnoutrefresh            <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
-              prefresh                <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
-              printw                  <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              putp                    <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              putwin                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              qiflush                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              raw                     <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              redrawwin               <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              refresh                 <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              reset_prog_mode         <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              reset_shell_mode        <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              resetty                 <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              resizeterm              <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>*
-              restartterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              ripoffline              <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              savetty                 <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              scanw                   <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              scr_dump                <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
-
-              scr_init                <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
-              scr_restore             <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
-              scr_set                 <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
-              scrl                    <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
-              scroll                  <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
-              scrollok                <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              set_curterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              set_term                <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
-              setscrreg               <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              setsyx                  <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
-              setterm                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              setupterm               <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              slk_attr                <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>*
-              slk_attr_off            <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_attr_on             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_attr_set            <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_attroff             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_attron              <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_attrset             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_clear               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_color               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_init                <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_label               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_noutrefresh         <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_refresh             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_restore             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_set                 <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              slk_touch               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
-              standend                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              standout                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              start_color             <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
-              subpad                  <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
-              subwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              syncok                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              termattrs               <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              termname                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
-              tgetent                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tgetflag                <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tgetnum                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tgetstr                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tgoto                   <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tigetflag               <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              tigetnum                <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              tigetstr                <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              timeout                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              touchline               <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              touchwin                <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              tparm                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              tputs                   <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
-              tputs                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              trace                   <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
-              typeahead               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              unctrl                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-
-              ungetch                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
-              ungetmouse              <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              untouchwin              <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              use_default_colors      <B><A HREF="default_colors.3x.html">default_colors(3x)</A></B>*
-              use_env                 <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
-              use_extended_names      <B><A HREF="curs_extend.3x.html">curs_extend(3x)</A></B>*
-              vidattr                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              vidputs                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
-              vline                   <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              vw_printw               <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              vw_scanw                <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              vwprintw                <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              vwscanw                 <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              waddch                  <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              waddchnstr              <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              waddchstr               <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
-              waddnstr                <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              waddstr                 <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
-              wattr_get               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattr_off               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattr_on                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattr_set               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattroff                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattron                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wattrset                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wbkgd                   <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
-              wbkgdset                <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
-              wborder                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              wchgat                  <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wclear                  <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              wclrtobot               <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              wclrtoeol               <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              wcolor_set              <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wcursyncup              <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              wdelch                  <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
-              wdeleteln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              wechochar               <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
-              wenclose                <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              werase                  <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
-              wgetch                  <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
-              wgetnstr                <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              wgetstr                 <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
-              whline                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
-              winch                   <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
-              winchnstr               <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              winchstr                <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
-              winnstr                 <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-              winsch                  <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
-              winsdelln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              winsertln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
-              winsnstr                <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              winsstr                 <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
-              winstr                  <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
-
-              wmouse_trafo            <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
-              wmove                   <B><A HREF="curs_move.3x.html">curs_move(3x)</A></B>
-              wnoutrefresh            <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              wprintw                 <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
-              wredrawln               <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              wrefresh                <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
-              wresize                 <B><A HREF="wresize.3x.html">wresize(3x)</A></B>*
-              wscanw                  <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
-              wscrl                   <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
-              wsetscrreg              <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
-              wstandend               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wstandout               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
-              wsyncdown               <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              wsyncup                 <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
-              wtimeout                <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
-              wtouchln                <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
-              wvline                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
+              COLOR_PAIR              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              PAIR_NUMBER             <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              _nc_tracebits           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _traceattr              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _traceattr2             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _tracechar              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _tracechtype            <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _tracechtype2           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _tracedump              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              _tracef                 <STRONG><A HREF="curs_trace.3x.html">curs_trace(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>
+              addnwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+              addstr                  <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+              addwstr                 <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+              assume_default_colors   <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
+              attr_get                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attr_off                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attr_on                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attr_set                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attroff                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attron                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              attrset                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              baudrate                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              beep                    <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+              bkgd                    <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+              bkgdset                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+              bkgrnd                  <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+
+              bkgrndset               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+              border                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              border_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              box                     <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              box_set                 <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              can_change_color        <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              cbreak                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              chgat                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              clear                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              clearok                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              clrtobot                <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              clrtoeol                <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              color_content           <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              color_set               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              copywin                 <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+              curs_set                <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              curses_version          <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
+              def_prog_mode           <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              def_shell_mode          <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              define_key              <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
+              del_curterm             <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              delay_output            <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              delch                   <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+              deleteln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              delscreen               <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              delwin                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              derwin                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              doupdate                <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+              dupwin                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              echo                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              echo_wchar              <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+              echochar                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+              endwin                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              erase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              erasechar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              erasewchar              <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              filter                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              flash                   <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+              flushinp                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              get_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+              get_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(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>
+              getnstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              getparyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+              getstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              getsyx                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+
+              getwin                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              getyx                   <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+              halfdelay               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              has_colors              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              has_ic                  <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              has_il                  <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              has_key                 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
+              hline                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              hline_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              idcok                   <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              idlok                   <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              immedok                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              in_wch                  <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+              in_wchnstr              <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              in_wchstr               <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              inch                    <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+              inchnstr                <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              inchstr                 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              init_color              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              init_pair               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              initscr                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              innstr                  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              innwstr                 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              ins_nwstr               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              ins_wch                 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+              ins_wstr                <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              insch                   <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+              insdelln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              insertln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              insnstr                 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              insstr                  <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              instr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              intrflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              inwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              is_linetouched          <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              is_wintouched           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              isendwin                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              key_name                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              keybound                <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
+              keyname                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              keyok                   <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
+              keypad                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              killchar                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              killwchar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              leaveok                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              longname                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              mcprint                 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
+              meta                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              mouse_trafo             <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              mouseinterval           <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              mousemask               <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              move                    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+              mvadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+
+              mvadd_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>
+              mvaddstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+              mvaddwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+              mvchgat                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              mvcur                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              mvdelch                 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+              mvderwin                <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              mvget_wch               <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+              mvget_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              mvgetch                 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+              mvgetn_wstr             <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              mvgetnstr               <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              mvgetstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              mvhline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              mvhline_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              mvin_wch                <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+              mvin_wchnstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              mvin_wchstr             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              mvinch                  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+              mvinchnstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              mvinchstr               <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              mvinnstr                <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              mvinnwstr               <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              mvins_nwstr             <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              mvins_wch               <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+              mvins_wstr              <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              mvinsch                 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+              mvinsnstr               <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              mvinsstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              mvinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              mvinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              mvprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              mvscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              mvvline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              mvvline_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              mvwadd_wch              <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+              mvwadd_wchnstr          <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+              mvwadd_wchstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+              mvwaddch                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+              mvwaddchnstr            <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+              mvwaddchstr             <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+              mvwaddnstr              <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+              mvwaddnwstr             <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+              mvwaddstr               <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+              mvwaddwstr              <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+              mvwchgat                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              mvwdelch                <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+
+              mvwget_wch              <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+              mvwget_wstr             <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              mvwgetch                <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+              mvwgetn_wstr            <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              mvwgetnstr              <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              mvwgetstr               <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              mvwhline                <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              mvwhline_set            <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              mvwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              mvwin_wch               <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+              mvwin_wchnstr           <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(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>
+              mvwins_wstr             <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              mvwinsch                <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+              mvwinsnstr              <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              mvwinsstr               <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              mvwinstr                <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              mvwinwstr               <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              mvwprintw               <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              mvwscanw                <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              mvwvline                <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              mvwvline_set            <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              napms                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              newpad                  <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+              newterm                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              newwin                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              nl                      <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              nocbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              nodelay                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              noecho                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              nonl                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              noqiflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              noraw                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              notimeout               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              overlay                 <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+              overwrite               <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+              pair_content            <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              pechochar               <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+              pnoutrefresh            <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+              prefresh                <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+              printw                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              putp                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              putwin                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              qiflush                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              raw                     <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              redrawwin               <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+
+              refresh                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+              reset_prog_mode         <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              reset_shell_mode        <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              resetty                 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              resizeterm              <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
+              restartterm             <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              ripoffline              <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              savetty                 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              scanw                   <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              scr_dump                <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+              scr_init                <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+              scr_restore             <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+              scr_set                 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+              scrl                    <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+              scroll                  <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+              scrollok                <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              set_curterm             <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              set_term                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+              setcchar                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+              setscrreg               <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+              setsyx                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+              setterm                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              setupterm               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(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>
+              slk_color               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_init                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_label               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_noutrefresh         <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_refresh             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_restore             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_set                 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              slk_touch               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+              standend                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              standout                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              start_color             <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+              subpad                  <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+              subwin                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              syncok                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              term_attrs              <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              termattrs               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              termname                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+              tgetent                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+              tgetflag                <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+              tgetnum                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+              tgetstr                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+              tgoto                   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+
+              tigetflag               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              tigetnum                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              tigetstr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              timeout                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              touchline               <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              touchwin                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              tparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              tputs                   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+              tputs                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              trace                   <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+              typeahead               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              unctrl                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              unget_wch               <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+              ungetch                 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+              ungetmouse              <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              untouchwin              <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              use_default_colors      <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
+              use_env                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+              use_extended_names      <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
+              vid_attr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              vid_puts                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              vidattr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              vidputs                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+              vline                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              vline_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              vw_printw               <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              vw_scanw                <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              vwprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              vwscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              wadd_wch                <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+              wadd_wchnstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+              wadd_wchstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+              waddch                  <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+              waddchnstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+              waddchstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(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>
+              wattroff                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              wattron                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              wattrset                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              wbkgd                   <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+              wbkgdset                <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+              wbkgrnd                 <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+              wbkgrndset              <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+              wborder                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              wborder_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              wchgat                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+
+              wclear                  <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              wclrtobot               <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              wclrtoeol               <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              wcolor_set              <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              wcursyncup              <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+              wdelch                  <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+              wdeleteln               <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              wecho_wchar             <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+              wechochar               <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+              wenclose                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              werase                  <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+              wget_wch                <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+              wget_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              wgetbkgrnd              <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+              wgetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+              wgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              wgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              wgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              whline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              whline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+              win_wch                 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+              win_wchnstr             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              win_wchstr              <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+              winch                   <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+              winchnstr               <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              winchstr                <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+              winnstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              winnwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              wins_nwstr              <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              wins_wch                <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+              wins_wstr               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+              winsch                  <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+              winsdelln               <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              winsertln               <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+              winsnstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              winsstr                 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+              winstr                  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+              winwstr                 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              wmouse_trafo            <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+              wmove                   <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+              wnoutrefresh            <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+              wprintw                 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+              wredrawln               <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+              wrefresh                <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+              wresize                 <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
+              wscanw                  <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+              wscrl                   <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(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>
+              wvline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+              wvline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer return  <B>ERR</B>  upon  failure
-       and  an  integer  value  other  than  <B>ERR</B>  upon successful
+       Routines that return an integer return  <STRONG>ERR</STRONG>  upon  failure
+       and  an  integer  value  other  than  <STRONG>ERR</STRONG>  upon successful
        completion,  unless  otherwise  noted   in   the   routine
        descriptions.
 
        completion,  unless  otherwise  noted   in   the   routine
        descriptions.
 
-       All  macros  return  the  value  of  the <B>w</B> version, except
-       <B>setscrreg</B>, <B>wsetscrreg</B>,  <B>getyx</B>,  <B>getbegyx</B>,  <B>getmaxyx</B>.   The
-       return  values  of <B>setscrreg</B>, <B>wsetscrreg</B>, <B>getyx</B>, <B>getbegyx</B>,
-       and <B>getmaxyx</B> are undefined (<I>i</I>.<I>e</I>., these should not be used
+       All  macros  return  the  value  of  the <STRONG>w</STRONG> version, except
+       <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,  <STRONG>getyx</STRONG>,  <STRONG>getbegyx</STRONG>,  <STRONG>getmaxyx</STRONG>.   The
+       return  values  of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+       and <STRONG>getmaxyx</STRONG> are undefined (<EM>i</EM>.<EM>e</EM>., these should not be used
        as the right-hand side of assignment statements).
 
        as the right-hand side of assignment statements).
 
-       Routines that return pointers return <B>NULL</B> on error.
+       Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
 
 </PRE>
 <H2>ENVIRONMENT</H2><PRE>
        The   following   environment   symbols   are  useful  for
 
 
 </PRE>
 <H2>ENVIRONMENT</H2><PRE>
        The   following   environment   symbols   are  useful  for
-       customizing the runtime behavior of the  <B>ncurses</B>  library.
+       customizing the runtime behavior of the  <STRONG>ncurses</STRONG>  library.
        The  most  important  ones  have been already discussed in
        detail.
 
        The  most  important  ones  have been already discussed in
        detail.
 
             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 debugging library checks this environment  symbol
             when the application has redirected output to a file.
             The symbol's numeric value is used for the  baudrate.
-            If  no value is found <B>ncurses</B> uses 9600.  This allows
+            If  no value is found <STRONG>ncurses</STRONG> uses 9600.  This allows
             testers to construct repeatable test-cases that  take
             into account costs that depend on baudrate.
 
        CC   When set, change occurrences of the command_character
             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 <B>cmdch</B> capability) of the  loaded  terminfo
+            (i.e., the <STRONG>cmdch</STRONG> capability) of the  loaded  terminfo
             entries  to  the  value  of  this  symbol.   Very few
             terminfo entries provide this feature.
 
             entries  to  the  value  of  this  symbol.   Very few
             terminfo entries provide this feature.
 
             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,
             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,
-            <B>ncurses</B>  uses  the size which may be specified in the
-            terminfo database (i.e., the <B>cols</B> capability).
+            <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
 
             It is important that your application use  a  correct
             size  for  the  screen.   However, this is not always
             independently.  This is mainly useful  to  circumvent
             legacy  misfeatures  of  terminal descriptions, e.g.,
             xterm which commonly specifies a 65 line screen.  For
             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, <B>lines</B> and <B>cols</B> 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.
 
             in a terminal description for terminals which are run
             as emulations.
 
-            Use the <B>use_env</B> function to disable this feature.
+            Use the <STRONG>use_env</STRONG> function to disable this feature.
 
        ESCDELAY
             Specifies  the total time, in milliseconds, for which
 
        ESCDELAY
             Specifies  the total time, in milliseconds, for which
             timeout applies to the composed multi-click event  as
             well as the individual clicks.
 
             timeout applies to the composed multi-click event  as
             well as the individual clicks.
 
-       HOME Tells  <B>ncurses</B> where your home directory is.  That is
+       HOME Tells  <STRONG>ncurses</STRONG> where your home directory is.  That is
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
 
             This symbol lets you customize the mouse.  The symbol
             must be three numeric digits 1-3 in any order,  e.g.,
 
             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, <B>ncurses</B> uses
+            123  or  321.   If  it is not specified, <STRONG>ncurses</STRONG> uses
             132.
 
             132.
 
+       NCURSES_ASSUMED_COLORS
+            Override  the   compiled-in   assumption   that   the
+            terminal'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
+            foreground  and  background  color  values  with this
+            environment variable by  proving  a  2-element  list:
+            foreground,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_colors</STRONG> value is allowed.
+
        NCURSES_NO_PADDING
        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
-            applications.  Terminal emulators can  duplicate  all
-            of  the important aspects of a hardware terminal, but
-            they do not have the  same  limitations.   The  chief
+            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
+            applications.   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
             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  control),  it (or your application) must manage
+            of  your  application  is the management of dataflow,
+            i.e.,  timing.   Unless  a   hardware   terminal   is
+            interfaced  into  a terminal concentrator (which does
+            flow control), it (or your application)  must  manage
             dataflow, preventing overruns.  The cheapest solution
             dataflow, preventing overruns.  The cheapest solution
-            (no  hardware cost) is for your program to do this by
+            (no hardware cost) is for your program to do this  by
             pausing  after  operations  that  the  terminal  does
             slowly, such as clearing the display.
 
             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
+            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.
 
             performance penalty.
 
-            Set the NCURSES_NO_PADDING symbol to disable all  but
-            mandatory  padding.   Mandatory  padding is used as a
-            part of special control sequences such as <I>flash</I>.
+            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
 
        NCURSES_NO_SETBUF
-            Normally  <B>ncurses</B>  enables  buffered  output   during
-            terminal  initialization.   This  is done (as in SVr4
-            curses)  for  performance   reasons.    For   testing
-            purposes,  both  of <B>ncurses</B> and certain applications,
-            this  feature  is   made   optional.    Setting   the
+            Normally   <STRONG>ncurses</STRONG>  enables  buffered  output  during
+            terminal initialization.  This is done  (as  in  SVr4
+            curses)   for   performance   reasons.   For  testing
+            purposes, both of <STRONG>ncurses</STRONG> and  certain  applications,
+            this   feature   is   made   optional.   Setting  the
             NCURSES_NO_SETBUF variable disables output buffering,
             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_TRACE
             buffered) mode.
 
        NCURSES_TRACE
-            During  initialization, the <B>ncurses</B> debugging library
-            checks the NCURSES_TRACE symbol.  If it  is  defined,
-            to a numeric value, <B>ncurses</B> calls the <B>trace</B> function,
+            During initialization, the <STRONG>ncurses</STRONG> debugging  library
+            checks  the  NCURSES_TRACE symbol.  If it is defined,
+            to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
             using that value as the argument.
 
             using that value as the argument.
 
-            The argument values, which are defined  in  <B>curses.h</B>,
-            provide  several  types of information.  When running
-            with traces enabled, your application will write  the
-            file <B>trace</B> to the current directory.
+            The  argument  values, which are defined in <STRONG>curses.h</STRONG>,
+            provide several types of information.   When  running
+            with  traces enabled, your application will write the
+            file <STRONG>trace</STRONG> to the current directory.
 
 
-       TERM Denotes  your  terminal  type.  Each terminal type is
+       TERM Denotes your terminal type.  Each  terminal  type  is
             distinct, though many are similar.
 
        TERMCAP
             distinct, though many are similar.
 
        TERMCAP
-            If the  <B>ncurses</B>  library  has  been  configured  with
-            <I>termcap</I>  support, <B>ncurses</B> will check for a terminal's
+            If  the  <STRONG>ncurses</STRONG>  library  has  been  configured with
+            <EM>termcap</EM> support, <STRONG>ncurses</STRONG> will check for a  terminal's
             description in termcap form if it is not available in
             the terminfo database.
 
             description in termcap form if it is not available in
             the terminfo database.
 
-            The   TERMCAP   symbol  contains  either  a  terminal
-            description (with newlines stripped out), or  a  file
-            name  telling  where  the  information denoted by the
-            TERM symbol  exists.   In  either  case,  setting  it
-            directs  <B>ncurses</B>  to  ignore the usual place for this
+            The  TERMCAP  symbol  contains  either   a   terminal
+            description  (with  newlines stripped out), or a file
+            name telling where the  information  denoted  by  the
+            TERM  symbol  exists.   In  either  case,  setting it
+            directs <STRONG>ncurses</STRONG> to ignore the usual  place  for  this
             information, e.g., /etc/termcap.
 
        TERMINFO
             information, e.g., /etc/termcap.
 
        TERMINFO
-            Overrides the directory in which <B>ncurses</B> searches for
+            Overrides the directory in which <STRONG>ncurses</STRONG> searches for
             your terminal description.  This is the simplest, but
             your terminal description.  This is the simplest, but
-            not the only way to change the list  of  directories.
+            not  the  only way to change the list of directories.
             The complete list of directories in order follows:
 
             The complete list of directories in order follows:
 
-            -  the last directory to which <B>ncurses</B> wrote, if any,
+            -  the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
                is searched first.
 
             -  the directory specified by the TERMINFO symbol
                is searched first.
 
             -  the directory specified by the TERMINFO symbol
                /usr/share/terminfo
 
        TERMINFO_DIRS
                /usr/share/terminfo
 
        TERMINFO_DIRS
-            Specifies  a  list  of  directories  to  search   for
-            terminal  descriptions.   The  list  is  separated by
-            colons (i.e., ":").  All of the terminal descriptions
-            are  in  terminfo  form,  which  makes a subdirectory
-            named for the first  letter  of  the  terminal  names
-            therein.
+            Specifies   a  list  of  directories  to  search  for
+            terminal descriptions.   The  list  is  separated  by
+            colons  (i.e.,  ":") on Unix, semicolons on OS/2 EMX.
+            All of the  terminal  descriptions  are  in  terminfo
+            form,  which makes a subdirectory named for the first
+            letter of the terminal names therein.
 
        TERMPATH
 
        TERMPATH
-            If  TERMCAP  does  not  hold a file name then <B>ncurses</B>
-            checks the  TERMPATH  symbol.   This  is  a  list  of
-            filenames  separated  by  colons (i.e., ":").  If the
-            TERMPATH symbol is not  set,  <B>ncurses</B>  looks  in  the
-            files   /etc/termcap,   /usr/share/misc/termcap   and
+            If TERMCAP does not hold a  file  name  then  <STRONG>ncurses</STRONG>
+            checks  the  TERMPATH  symbol.   This  is  a  list of
+            filenames separated by spaces or colons  (i.e.,  ":")
+            on  Unix,  semicolons  on  OS/2 EMX.  If the TERMPATH
+            symbol  is  not  set,  <STRONG>ncurses</STRONG>  looks  in  the  files
+            /etc/termcap,       /usr/share/misc/termcap       and
             $HOME/.termcap, in that order.
 
        The library may be configured to disregard  the  following
             $HOME/.termcap, in that order.
 
        The library may be configured to disregard  the  following
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="terminfo.5.html">terminfo(5)</A></B>  and  3x  pages  whose names begin "curs_" for
-       detailed routine descriptions.
+       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  and  related  pages whose names begin "curs_"
+       for detailed routine descriptions.
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       The  <B>ncurses</B>  library  can  be  compiled  with  an  option
-       (<B>-DUSE_GETCAP</B>)   that   falls   back   to   the  old-style
+       The  <STRONG>ncurses</STRONG>  library  can  be  compiled  with  an  option
+       (<STRONG>-DUSE_GETCAP</STRONG>)   that   falls   back   to   the  old-style
        /etc/termcap file if the terminal setup code cannot find a
        /etc/termcap file if the terminal setup code cannot find a
-       terminfo entry corresponding to <B>TERM</B>.  Use of this feature
+       terminfo entry corresponding to <STRONG>TERM</STRONG>.  Use of this feature
        is not recommended, as it essentially includes  an  entire
        is not recommended, as it essentially includes  an  entire
-       termcap   compiler   in   the  <B>ncurses</B>  startup  code,  at
+       termcap   compiler   in   the  <STRONG>ncurses</STRONG>  startup  code,  at
        significant cost in core and startup cycles.
 
        significant cost in core and startup cycles.
 
-       The <B>ncurses</B>  library  includes  facilities  for  capturing
+       The <STRONG>ncurses</STRONG>  library  includes  facilities  for  capturing
        mouse  events  on certain terminals (including xterm). See
        mouse  events  on certain terminals (including xterm). See
-       the <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B> manual page for details.
+       the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
 
 
-       The <B>ncurses</B> library includes facilities for responding  to
+       The <STRONG>ncurses</STRONG> library includes facilities for responding  to
        window  resizing  events,  e.g., when running in an xterm.
        window  resizing  events,  e.g., when running in an xterm.
-       See the <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B> and <B><A HREF="wresize.3x.html">wresize(3x)</A></B>  manual  pages  for
+       See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>  manual  pages  for
        details.   In addition, the library may be configured with
        a SIGWINCH handler.
 
        details.   In addition, the library may be configured with
        a SIGWINCH handler.
 
-       The <B>ncurses</B> library extends the fixed set of function  key
+       The <STRONG>ncurses</STRONG> library extends the fixed set of function  key
        capabilities  of  terminals  by  allowing  the application
        designer to define additional key  sequences  at  runtime.
        capabilities  of  terminals  by  allowing  the application
        designer to define additional key  sequences  at  runtime.
-       See  the  <B><A HREF="define_key.3x.html">define_key(3x)</A></B>  and  <B><A HREF="keyok.3x.html">keyok(3x)</A></B>  manual pages for
+       See  the  <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>  and  <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>  manual pages for
        details.
 
        details.
 
-       The  <B>ncurses</B>  library  can  exploit  the  capabilities  of
+       The  <STRONG>ncurses</STRONG>  library  can  exploit  the  capabilities  of
        terminals  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
        independently,  providing  better   control   over   color
        terminals  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
        independently,  providing  better   control   over   color
-       contrasts.  See the <B><A HREF="use_default_colors.3x.html">use_default_colors(3x)</A></B> manual page for
+       contrasts.   See  the  <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>  manual page for
        details.
        details.
-       The <B>ncurses</B> library  includes  a  function  for  directing
+
+       The <STRONG>ncurses</STRONG> library  includes  a  function  for  directing
        application  output  to a printer attached to the terminal
        application  output  to a printer attached to the terminal
-       device.  See the <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B> manual page for details.
+       device.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  <B>ncurses</B>  library  is  intended   to   be   BASE-level
+       The  <STRONG>ncurses</STRONG>  library  is  intended   to   be   BASE-level
        conformant with the XSI Curses standard.  Certain portions
        of the EXTENDED XSI Curses functionality (including  color
        support) are supported.  The following EXTENDED XSI Curses
        calls in support of wide (multibyte)  characters  are  not
        conformant with the XSI Curses standard.  Certain portions
        of the EXTENDED XSI Curses functionality (including  color
        support) are supported.  The following EXTENDED XSI Curses
        calls in support of wide (multibyte)  characters  are  not
-       yet   implemented:   <B>add_wch</B>,   <B>add_wchnstr</B>,   <B>add_wchstr</B>,
-       <B>addnwstr</B>, <B>addwstr</B>, <B>bkgrnd</B>, <B>bkgrndset</B>, <B>border_set</B>, <B>box_set</B>,
-       <B>echo_wchar</B>,   <B>erasewchar</B>,  <B>get_wch</B>,  <B>get_wstr</B>,  <B>getbkgrnd</B>,
-       <B>getcchar</B>,  <B>getn_wstr</B>,   <B>getwchtype</B>,   <B>hline_set</B>,   <B>in_wch</B>,
-       <B>in_wchnstr</B>,   <B>in_wchstr</B>,   <B>innwstr</B>,   <B>ins_nwstr</B>,  <B>ins_wch</B>,
-       <B>ins_wstr</B>,   <B>inwchnstr</B>,   <B>inwchstr</B>,    <B>inwstr</B>,    <B>key_name</B>,
-       <B>killwchar</B>,    <B>mvadd_wch</B>,    <B>mvadd_wchnstr</B>,   <B>mvadd_wchstr</B>,
-       <B>mvaddnwstr</B>, <B>mvaddwstr</B>, <B>mvget_wch</B>, <B>mvget_wstr</B>, <B>mvgetn_wstr</B>,
-       <B>mvhline_set</B>,  <B>mvin_wch</B>, <B>mvinnwstr</B>, <B>mvins_nwstr</B>, <B>mvins_wch</B>,
-       <B>mvins_wstr</B>, <B>mvinwchnstr</B>, <B>mvinwchstr</B>, <B>mvinwchstr</B>, <B>mvinwstr</B>,
-       <B>mvvline_set</B>,  <B>mvwadd_wch</B>,  <B>mvwadd_wchnstr</B>,  <B>mvwadd_wchstr</B>,
-       <B>mvwaddnwstr</B>,    <B>mvwaddwstr</B>,     <B>mvwget_ch</B>,     <B>mvwget_wch</B>,
-       <B>mvwget_wstr</B>,    <B>mvwgetn_wstr</B>,   <B>mvwhline_set</B>,   <B>mvwin_wch</B>,
-       <B>mvwin_wchnstr</B>,  <B>mvwin_wchstr</B>,  <B>mvwinnwstr</B>,   <B>mvwins_nwstr</B>,
-       <B>mvwins_wch</B>,    <B>mvwins_wstr</B>,    <B>mvwinwchnstr</B>.    <B>mvwinwstr</B>,
-       <B>mvwvline_set</B>, <B>pecho_wchar</B>, <B>setcchar</B>, <B>slk_wset</B>, <B>term_attrs</B>,
-       <B>unget_wch</B>,   <B>vhline_set</B>,  <B>vid_attr</B>,  <B>vid_puts</B>,  <B>vline_set</B>,
-       <B>wadd_wch</B>, <B>wadd_wchnstr</B>, <B>wadd_wchstr</B>, <B>waddnwstr</B>,  <B>waddwstr</B>,
-       <B>waddwstr</B>,  <B>wbkgrnd</B>,  <B>wbkgrndset</B>,  <B>wbkgrndset</B>, <B>wborder_set</B>,
-       <B>wecho_wchar</B>, <B>wecho_wchar</B>, <B>wget_wch</B>, <B>wget_wstr</B>, <B>wgetbkgrnd</B>,
-       <B>wgetn_wstr</B>,  <B>whline_set</B>, <B>win_wch</B>, <B>win_wchnstr</B>, <B>win_wchstr</B>,
-       <B>winnwstr</B>,  <B>wins_nwstr</B>,  <B>wins_wch</B>,  <B>wins_wstr</B>,  <B>winwchnstr</B>,
-       <B>winwchstr</B>, <B>winwstr</B>, <B>wunctrl</B>, <B>wvline_set</B>,
+       yet implemented: <STRONG>pecho_wchar</STRONG>, <STRONG>slk_wset</STRONG>.
 
        A  small  number of local differences (that is, individual
 
        A  small  number of local differences (that is, individual
-       differences between the XSI Curses and <B>ncurses</B> calls)  are
-       described  in  <B>PORTABILITY</B>  sections  of  the  library man
+       differences between the XSI Curses and <STRONG>ncurses</STRONG> calls)  are
+       described  in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library man
        pages.
 
        pages.
 
-       The routine <B>has_key</B> is not part of XPG4, nor is it present
-       in  SVr4.  See the <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> 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 <B>slk_attr</B> is  not  part  of  XPG4,  nor  is  it
-       present  in  SVr4.   See  the <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B> 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.
 
        details.
 
-       The    routines    <B>getmouse</B>,    <B>mousemask</B>,     <B>ungetmouse</B>,
-       <B>mouseinterval</B>,  and <B>wenclose</B> relating to mouse interfacing
+       The    routines    <STRONG>getmouse</STRONG>,    <STRONG>mousemask</STRONG>,     <STRONG>ungetmouse</STRONG>,
+       <STRONG>mouseinterval</STRONG>,  and <STRONG>wenclose</STRONG> relating to mouse interfacing
        are not part of XPG4, nor are they present in  SVr4.   See
        are not part of XPG4, nor are they present in  SVr4.   See
-       the <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B> manual page for details.
+       the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
 
 
-       The routine <B>mcprint</B> was not present in any previous curses
-       implementation.  See the <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B>  manual  page  for
+       The routine <STRONG>mcprint</STRONG> was not present in any previous curses
+       implementation.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>  manual  page  for
        details.
        details.
-       The routine <B>wresize</B> is not part of XPG4, nor is it present
-       in SVr4.  See the <B><A HREF="wresize.3x.html">wresize(3x)</A></B> manual page for details.
+
+       The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
+       in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
 
        In  historic  curses  versions,  delays  embedded  in  the
 
        In  historic  curses  versions,  delays  embedded  in  the
-       capabilities   <B>cr</B>,   <B>ind</B>,   <B>cub1</B>,  <B>ff</B>  and  <B>tab</B>  activated
+       capabilities   <STRONG>cr</STRONG>,   <STRONG>ind</STRONG>,   <STRONG>cub1</STRONG>,  <STRONG>ff</STRONG>  and  <STRONG>tab</STRONG>  activated
        corresponding delay bits in the UNIX tty driver.  In  this
        implementation,  all  padding  is done by NUL sends.  This
        method  is  slightly  more  expensive,  but  narrows   the
        interface  to  the UNIX kernel significantly and increases
        the package's portability correspondingly.
 
        corresponding delay bits in the UNIX tty driver.  In  this
        implementation,  all  padding  is done by NUL sends.  This
        method  is  slightly  more  expensive,  but  narrows   the
        interface  to  the UNIX kernel significantly and increases
        the package's portability correspondingly.
 
-       In the XSI standard and  SVr4  manual  pages,  many  entry
-       points have prototype arguments of the for <B>char</B> <B>*const</B> (or
-       <B>cchar_t</B>  <B>*const</B>,  or  <B>wchar_t</B>  <B>*const</B>,  or  <B>void</B>  <B>*const</B>).
-       Depending  on  one's interpretation of the ANSI C standard
-       (see section 3.5.4.1), these declarations are  either  (a)
-       meaningless,   or   (b)   meaningless  and  illegal.   The
-       declaration <B>const</B> <B>char</B>  <B>*x</B>  is  a  modifiable  pointer  to
-       unmodifiable  data,  but <B>char</B> <B>*const</B> <B>x</B>' is an unmodifiable
-       pointer to modifiable data.  Given that C passes arguments
-       by  value,  <B>&lt;type&gt;</B>  <B>*const</B>  as  a  formal  type is at best
-       dubious.   Some  compilers  choke   on   the   prototypes.
-       Therefore,  in this implementation, they have been changed
-       to <B>const</B> <B>&lt;type&gt;</B> <B>*</B> globally.
-
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The header  file  <B>&lt;curses.h&gt;</B>  automatically  includes  the
-       header files <B>&lt;stdio.h&gt;</B> and <B>&lt;unctrl.h&gt;</B>.
+       The header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes  the
+       header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
 
 
-       If  standard  output from a <B>ncurses</B> program is re-directed
+       If  standard  output from a <STRONG>ncurses</STRONG> program is re-directed
        to something which is not a tty, screen  updates  will  be
        directed  to  standard  error.   This  was an undocumented
        feature of AT&amp;T System V Release 3 curses.
        to something which is not a tty, screen  updates  will  be
        directed  to  standard  error.   This  was an undocumented
        feature of AT&amp;T System V Release 3 curses.
 
 
 
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 </PRE>
 <HR>
 <ADDRESS>
 </PRE>
 <HR>
 <ADDRESS>
index a07930d54334384ac64d2f95b58d28458a682de2..31ab3480c7be17056b039a51dc6c675482751105 100644 (file)
@@ -1,5 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: panel.3x,v 1.10 2000/08/13 01:56:47 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>panel 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>
 <BODY>
+<H1>panel 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;panel.h&gt;</B>
-
-       <B>cc</B> <B>[flags]</B> <B>sourcefiles</B> <B>-lpanel</B> <B>-lncurses</B>
-
-       <B>PANEL</B> <B>*new_panel(WINDOW</B> <B>*win)</B>
-       <B>int</B> <B>bottom_panel(PANEL</B> <B>*pan)</B>
-       <B>int</B> <B>top_panel(PANEL</B> <B>*pan)</B>
-       <B>int</B> <B>show_panel(PANEL</B> <B>*pan)</B>
-       <B>void</B> <B>update_panels();</B>
-       <B>int</B> <B>hide_panel(PANEL</B> <B>*pan)</B>
-       <B>WINDOW</B> <B>*panel_window(const</B> <B>PANEL</B> <B>*pan)</B>
-       <B>int</B> <B>replace_panel(PANEL</B> <B>*pan,</B> <B>WINDOW</B> <B>*window)</B>
-       <B>int</B> <B>move_panel(PANEL</B> <B>*pan,</B> <B>int</B> <B>starty,</B> <B>int</B> <B>startx)</B>
-       <B>int</B> <B>panel_hidden(const</B> <B>PANEL</B> <B>*pan)</B>
-       <B>PANEL</B> <B>*panel_above(const</B> <B>PANEL</B> <B>*pan)</B>
-       <B>PANEL</B> <B>*panel_below(const</B> <B>PANEL</B> <B>*pan)</B>
-       <B>int</B> <B>set_panel_userptr(PANEL</B> <B>*pan,</B> <B>const</B> <B>void</B> <B>*ptr)</B>
-       <B>const</B> <B>void</B> <B>*panel_userptr(const</B> <B>PANEL</B> <B>*pan)</B>
-       <B>int</B> <B>del_panel(PANEL</B> <B>*pan)</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;panel.h&gt;</STRONG>
+
+       <STRONG>cc</STRONG> <STRONG>[flags]</STRONG> <STRONG>sourcefiles</STRONG> <STRONG>-lpanel</STRONG> <STRONG>-lncurses</STRONG>
+
+       <STRONG>PANEL</STRONG> <STRONG>*new_panel(WINDOW</STRONG> <STRONG>*win)</STRONG>
+       <STRONG>int</STRONG> <STRONG>bottom_panel(PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>int</STRONG> <STRONG>top_panel(PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>int</STRONG> <STRONG>show_panel(PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>void</STRONG> <STRONG>update_panels();</STRONG>
+       <STRONG>int</STRONG> <STRONG>hide_panel(PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*panel_window(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>int</STRONG> <STRONG>replace_panel(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*window)</STRONG>
+       <STRONG>int</STRONG> <STRONG>move_panel(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>int</STRONG> <STRONG>starty,</STRONG> <STRONG>int</STRONG> <STRONG>startx)</STRONG>
+       <STRONG>int</STRONG> <STRONG>panel_hidden(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>PANEL</STRONG> <STRONG>*panel_above(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>PANEL</STRONG> <STRONG>*panel_below(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>int</STRONG> <STRONG>set_panel_userptr(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*ptr)</STRONG>
+       <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*panel_userptr(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan)</STRONG>
+       <STRONG>int</STRONG> <STRONG>del_panel(PANEL</STRONG> <STRONG>*pan)</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       Panels  are  <B><A HREF="ncurses.3x.html">curses(3x)</A></B>  windows with the added feature of
+       Panels  are  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  windows with the added feature of
        depth.  Panel functions allow the use of  stacked  windows
        and  ensure  the  proper  portions  of each window and the
        depth.  Panel functions allow the use of  stacked  windows
        and  ensure  the  proper  portions  of each window and the
-       curses <B>stdscr</B> window are hidden or displayed  when  panels
+       curses <STRONG>stdscr</STRONG> window are hidden or displayed  when  panels
        are  added,  moved,  modified or removed.  The set of cur-
        are  added,  moved,  modified or removed.  The set of cur-
-       rently visible panels is the stack of panels.  The  <B>stdscr</B>
+       rently visible panels is the stack of panels.  The  <STRONG>stdscr</STRONG>
        window  is  beneath all panels, and is not considered part
        of the stack.
 
        window  is  beneath all panels, and is not considered part
        of the stack.
 
        as well as position a panel at any desired location in the
        stack.
 
        as well as position a panel at any desired location in the
        stack.
 
-       Panel routines are a functional layer added to <B><A HREF="ncurses.3x.html">curses(3x)</A></B>,
+       Panel routines are a functional layer added to <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        make only high-level curses calls, and work anywhere  ter-
        minfo curses does.
 
 
 </PRE>
 <H2>FUNCTIONS</H2><PRE>
        make only high-level curses calls, and work anywhere  ter-
        minfo curses does.
 
 
 </PRE>
 <H2>FUNCTIONS</H2><PRE>
-       <B>new_panel(win)</B>
-              allocates   a   <B>PANEL</B> structure, associates it with
-              <B>win</B>, places the panel  on  the  top  of  the  stack
+       <STRONG>new_panel(win)</STRONG>
+              allocates   a   <STRONG>PANEL</STRONG> structure, associates it with
+              <STRONG>win</STRONG>, places the panel  on  the  top  of  the  stack
               (causes   it  to   be   displayed  above  any other
               panel) and returns a pointer to the new panel.
 
               (causes   it  to   be   displayed  above  any other
               panel) and returns a pointer to the new panel.
 
-       <B>void</B> <B>update_panels()</B>
+       <STRONG>void</STRONG> <STRONG>update_panels()</STRONG>
               refreshes the virtual screen to reflect  the  rela-
               tions between the panels in the stack, but does not
               call doupdate() to  refresh  the  physical  screen.
               refreshes the virtual screen to reflect  the  rela-
               tions between the panels in the stack, but does not
               call doupdate() to  refresh  the  physical  screen.
               a  call  to doupdate(), but doupdate() is the func-
               tion responsible for updating the physical  screen.
 
               a  call  to doupdate(), but doupdate() is the func-
               tion responsible for updating the physical  screen.
 
-       <B>del_panel(pan)</B>
+       <STRONG>del_panel(pan)</STRONG>
               removes the given panel from the  stack and deallo-
               removes the given panel from the  stack and deallo-
-              cates the <B>PANEL</B> structure (but not  its  associated
+              cates the <STRONG>PANEL</STRONG> structure (but not  its  associated
               window).
 
               window).
 
-       <B>hide_panel(pan)</B>
+       <STRONG>hide_panel(pan)</STRONG>
               removes  the  given  panel from the panel stack and
               removes  the  given  panel from the panel stack and
-              thus hides it from view. The <B>PANEL</B> structure is not
+              thus hides it from view. The <STRONG>PANEL</STRONG> structure is not
               lost, merely removed from the stack.
 
               lost, merely removed from the stack.
 
-       <B>show_panel(pan)</B>
+       <STRONG>show_panel(pan)</STRONG>
               makes  a  hidden panel visible by placing it on top
               of the panels in the panel stack. See COMPATIBILITY
               below.
 
               makes  a  hidden panel visible by placing it on top
               of the panels in the panel stack. See COMPATIBILITY
               below.
 
-       <B>top_panel(pan)</B>
+       <STRONG>top_panel(pan)</STRONG>
               puts  the  given visible panel on top of all panels
               in the stack.  See COMPATIBILITY below.
 
               puts  the  given visible panel on top of all panels
               in the stack.  See COMPATIBILITY below.
 
-       <B>bottom_panel(pan)</B>
+       <STRONG>bottom_panel(pan)</STRONG>
               puts panel at the bottom of all panels.
 
               puts panel at the bottom of all panels.
 
-       <B>move_panel(pan,starty,startx)</B>
+       <STRONG>move_panel(pan,starty,startx)</STRONG>
               moves the given panel window so that its upper-left
               moves the given panel window so that its upper-left
-              corner  is  at  <B>starty</B>, <B>startx</B>.  It does not change
+              corner  is  at  <STRONG>starty</STRONG>, <STRONG>startx</STRONG>.  It does not change
               the position of the panel in the stack.  Be sure to
               the position of the panel in the stack.  Be sure to
-              use  this  function,  not  <B>mvwin()</B>, to move a panel
+              use  this  function,  not  <STRONG>mvwin()</STRONG>, to move a panel
               window.
 
               window.
 
-       <B>replace_panel(pan,window)</B>
-              replaces the current window of  panel  with  <B>window</B>
+       <STRONG>replace_panel(pan,window)</STRONG>
+              replaces the current window of  panel  with  <STRONG>window</STRONG>
               (useful, for example if you want to resize a panel;
               (useful, for example if you want to resize a panel;
-              if you're using <B>ncurses</B>, you can call <B>replace_panel</B>
-              on  the output of <B><A HREF="wresize.3x.html">wresize(3x)</A></B>).  It does not change
+              if you're using <STRONG>ncurses</STRONG>, you can call <STRONG>replace_panel</STRONG>
+              on  the output of <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>).  It does not change
               the position of the panel in the stack.
 
               the position of the panel in the stack.
 
-       <B>panel_above(pan)</B>
+       <STRONG>panel_above(pan)</STRONG>
               returns a pointer to the panel above pan.   If  the
               returns a pointer to the panel above pan.   If  the
-              panel  argument is <B>(PANEL</B> <B>*)0</B>, it returns a pointer
+              panel  argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer
               to the bottom panel in the stack.
 
               to the bottom panel in the stack.
 
-       <B>panel_below(pan)</B>
+       <STRONG>panel_below(pan)</STRONG>
               returns a pointer to the panel just below pan.   If
               returns a pointer to the panel just below pan.   If
-              the  panel  argument  is  <B>(PANEL</B>  <B>*)0</B>, it returns a
+              the  panel  argument  is  <STRONG>(PANEL</STRONG>  <STRONG>*)0</STRONG>, it returns a
               pointer to the top panel in the stack.
 
               pointer to the top panel in the stack.
 
-       <B>set_panel_userptr(pan,ptr)</B>
+       <STRONG>set_panel_userptr(pan,ptr)</STRONG>
               sets the panel's user pointer.
 
               sets the panel's user pointer.
 
-       <B>panel_userptr(pan)</B>
+       <STRONG>panel_userptr(pan)</STRONG>
               returns the user pointer for a given panel.
 
               returns the user pointer for a given panel.
 
-       <B>panel_window(pan)</B>
+       <STRONG>panel_window(pan)</STRONG>
               returns a pointer to the window of the given panel.
 
 
 </PRE>
 <H2>DIAGNOSTICS</H2><PRE>
               returns a pointer to the window of the given panel.
 
 
 </PRE>
 <H2>DIAGNOSTICS</H2><PRE>
-       Each  routine  that  returns  a pointer returns <B>NULL</B> if an
+       Each  routine  that  returns  a pointer returns <STRONG>NULL</STRONG> if an
        error occurs. Each  routine  that  returns  an  int  value
        error occurs. Each  routine  that  returns  an  int  value
-       returns <B>OK</B> if it executes successfully and <B>ERR</B> if not.
+       returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not.
 
 
 </PRE>
 
 
 </PRE>
        Reasonable  care  has been taken to  ensure  compatibility
        with  the  native  panel  facility  introduced  in  SVr3.2
        (inspection of the SVr4 manual pages suggests the program-
        Reasonable  care  has been taken to  ensure  compatibility
        with  the  native  panel  facility  introduced  in  SVr3.2
        (inspection of the SVr4 manual pages suggests the program-
-       ming interface is unchanged).  The <B>PANEL</B>  data  structures
+       ming interface is unchanged).  The <STRONG>PANEL</STRONG>  data  structures
        are  merely   similar. The  programmer is cautioned not to
        are  merely   similar. The  programmer is cautioned not to
-       directly use <B>PANEL</B> fields.
+       directly use <STRONG>PANEL</STRONG> fields.
 
 
-       The functions <B>show_panel()</B> and <B>top_panel()</B>  are  identical
+       The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG>  are  identical
        in  this  implementation,  and work equally well with dis-
        played or hidden panels.  In the native System V implemen-
        in  this  implementation,  and work equally well with dis-
        played or hidden panels.  In the native System V implemen-
-       tation, <B>show_panel()</B> is intended for making a hidden panel
-       visible (at the top  of  the  stack)  and  <B>top_panel()</B>  is
+       tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel
+       visible (at the top  of  the  stack)  and  <STRONG>top_panel()</STRONG>  is
        intended  for  making an already-visible panel move to the
        top of the stack. You are cautioned  to  use  the  correct
        function   to   ensure  compatibility  with  native  panel
        intended  for  making an already-visible panel move to the
        top of the stack. You are cautioned  to  use  the  correct
        function   to   ensure  compatibility  with  native  panel
        In your library list, libpanel.a should  be  before  libn-
        curses.a;  that  is,  you want to say `-lpanel -lncurses',
        not the other way around (which  would  give  you  a  link
        In your library list, libpanel.a should  be  before  libn-
        curses.a;  that  is,  you want to say `-lpanel -lncurses',
        not the other way around (which  would  give  you  a  link
-       error using GNU <B><A HREF="ld.1.html">ld(1)</A></B> and some other linkers).
+       error using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and some other linkers).
 
 
 </PRE>
 
 
 </PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 
 </PRE>
 
 
 </PRE>
index 712dee101e660535121587e5d9374643759159d9..9ad4fe776d148840027a4649fbd0c220b29f1d41 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1996,1997,2002
+  * @Id: resizeterm.3x,v 1.9 2002/02/16 22:32:24 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>resizeterm 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>
 <BODY>
+<H1>resizeterm 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>resizeterm</B> - change the curses terminal size
+       <STRONG>is_term_resized</STRONG>,  <STRONG>resize_term</STRONG>,  <STRONG>resizeterm</STRONG>  -  change  the
+       curses terminal size
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>resizeterm(int</B> <B>lines,</B> <B>int</B> <B>columns);</B>
+       <STRONG>bool</STRONG> <STRONG>is_term_resized(int</STRONG> <STRONG>lines,</STRONG> <STRONG>int</STRONG> <STRONG>columns);</STRONG>
+       <STRONG>int</STRONG> <STRONG>resize_term(int</STRONG> <STRONG>lines,</STRONG> <STRONG>int</STRONG> <STRONG>columns);</STRONG>
+       <STRONG>int</STRONG> <STRONG>resizeterm(int</STRONG> <STRONG>lines,</STRONG> <STRONG>int</STRONG> <STRONG>columns);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       This  is  an extension to the curses library.  It provides
-       callers with a hook into the <B>ncurses</B> data to  resize  win-
+       This is an extension to the curses library.   It  provides
+       callers  with  a hook into the <STRONG>ncurses</STRONG> data to resize win-
        dows, primarily for use by programs running in an X Window
        dows, primarily for use by programs running in an X Window
-       terminal (e.g., xterm).  The function  <B>resizeterm</B>  resizes
-       the  standard  and current windows to the specified dimen-
-       sions, and adjusts other  bookkeeping  data  used  by  the
-       <B>ncurses</B> library that record the window dimensions.
-
-       When  resizing  the  windows, the function blank-fills the
-       areas that are extended. The  calling  application  should
-       fill in these areas with appropriate data.
-
-       The 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.
+       terminal  (e.g.,  xterm).  The function <STRONG>resizeterm</STRONG> resizes
+       the standard and current windows to the  specified  dimen-
+       sions,  and  adjusts  other  bookkeeping  data used by the
+       <STRONG>ncurses</STRONG> library that record the window dimensions.
+
+       Most  of  the  work  is  done  by   the   inner   function
+       <STRONG>resize_term</STRONG>.  The outer function <STRONG>resizeterm</STRONG> adds bookkeep-
+       ing for the SIGWINCH handler.  When resizing the  windows,
+       <STRONG>resize_term</STRONG>  blank-fills the areas that are extended.  The
+       calling application should fill in these areas with appro-
+       priate  data.  The <STRONG>resize_term</STRONG> function attempts to resize
+       all windows.  However, due to the  calling  convention  of
+       pads,  it  is  not  possible to resize these without addi-
+       tional interaction with the application.
+
+       A support function <STRONG>is_term_resized</STRONG>  is  provided  so  that
+       applications  can  check if the <STRONG>resize_term</STRONG> function would
+       modify the window structures.  It returns TRUE if the win-
+       dows would be modified, and FALSE otherwise.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function returns the integer <B>ERR</B> upon failure  and  <B>OK</B>
-       on success.  It will fail if either of the dimensions less
-       than or equal  to  zero,  or  if  an  error  occurs  while
-       (re)allocating memory for the windows.
+       Except  as  notes,  these  function return the integer <STRONG>ERR</STRONG>
+       upon failure and <STRONG>OK</STRONG> on success.  They will fail if  either
+       of the dimensions are less than or equal to zero, or if an
+       error occurs while (re)allocating memory for the  windows.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       While  this  function  is intended to be used to support a
+       While these functions are intended to be used to support a
        signal handler (i.e., for SIGWINCH), care should be  taken
        signal handler (i.e., for SIGWINCH), care should be  taken
-       to  avoid invoking it in a context where <B>malloc</B> or <B>realloc</B>
-       may have been interrupted, since it uses those  functions.
+       to  avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG>
+       <STRONG>loc</STRONG> may have been interrupted, since it uses  those  func-
+       tions.
 
        If  ncurses  is configured to supply its own SIGWINCH han-
 
        If  ncurses  is configured to supply its own SIGWINCH han-
-       dler, the <B>resizeterm</B> function ungetch's a <B>KEY_RESIZE</B> which
-       will  be  read on the next call to <B>getch</B>.  This is used to
+       dler, the <STRONG>resizeterm</STRONG> function ungetch's a <STRONG>KEY_RESIZE</STRONG> which
+       will  be  read on the next call to <STRONG>getch</STRONG>.  This is used to
        alert an application that the screen size has changed, and
        that  it should repaint special features such as pads that
        cannot be done automatically.
        alert an application that the screen size has changed, and
        that  it should repaint special features such as pads that
        cannot be done automatically.
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="wresize.3x.html">wresize(3x)</A></B>.
+       <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
 
 
 
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 </PRE>
 <HR>
 <ADDRESS>
 </PRE>
 <HR>
 <ADDRESS>
index b4c1ed07208a90b526c2a955d2ff21d6a4e9c120..394d0f7c4da5108e965c89d0c1f45eed8c6a9df7 100644 (file)
@@ -1,5 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: term.5,v 1.14 2002/08/10 21:59:37 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>TERM 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>
 <BODY>
+<H1>TERM 5</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>term</B>
+       <STRONG>term</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Compiled terminfo descriptions are placed under the direc-
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        Compiled terminfo descriptions are placed under the direc-
-       tory <B>/usr/share/terminfo</B>.  In  order  to  avoid  a  linear
+       tory <STRONG>/usr/share/terminfo</STRONG>.  In  order  to  avoid  a  linear
        search of a huge UNIX system directory, a two-level scheme
        search of a huge UNIX system directory, a two-level scheme
-       is used: <B>/c/name</B> where <I>name</I> is the name of  the  terminal,
-       and  <I>c</I>  is the first character of <I>name</I>.  Thus, <I>act4</I> can be
-       found in the  file  <B>/usr/share/terminfo/a/act4</B>.   Synonyms
-       for the same terminal are implemented by multiple links to
-       the same compiled file.
+       is used: <STRONG>/usr/share/terminfo/c/name</STRONG> where <EM>name</EM> is the name
+       of  the  terminal,  and  <EM>c</EM> is the first character of <EM>name</EM>.
+       Thus, <EM>act4</EM>  can  be  found  in  the  file  <STRONG>/usr/share/ter-</STRONG>
+       <STRONG>minfo/a/act4</STRONG>.   Synonyms  for the same terminal are imple-
+       mented by multiple links to the same compiled file.
 
        The format has been chosen so that it will be the same  on
        all  hardware.   An  8 or more bit byte is assumed, but no
        assumptions about byte  ordering  or  sign  extension  are
        made.
 
 
        The format has been chosen so that it will be the same  on
        all  hardware.   An  8 or more bit byte is assumed, but no
        assumptions about byte  ordering  or  sign  extension  are
        made.
 
-       The  compiled  file  is  created with the <I>tic</I> program, and
-       read by the routine <I>setupterm</I>.  The file is  divided  into
+       The  compiled  file  is  created with the <EM>tic</EM> program, and
+       read by the routine <EM>setupterm</EM>.  The file is  divided  into
        six parts: the header, terminal names, boolean flags, num-
        bers, strings, and string table.
 
        six parts: the header, terminal names, boolean flags, num-
        bers, strings, and string table.
 
        the values of string capabilities referenced in the string
        section.  Each string is null terminated.
 
        the values of string capabilities referenced in the string
        section.  Each string is null terminated.
 
-       Note that it is possible for <I>setupterm</I> to expect a differ-
+       Note that it is possible for <EM>setupterm</EM> to expect a differ-
        ent  set  of capabilities than are actually present in the
        file.  Either the database may  have  been  updated  since
        ent  set  of capabilities than are actually present in the
        file.  Either the database may  have  been  updated  since
-       <I>setupterm</I> has been recompiled (resulting in extra unrecog-
+       <EM>setupterm</EM> has been recompiled (resulting in extra unrecog-
        nized entries in the file) or the program  may  have  been
        recompiled  more  recently  than  the database was updated
        nized entries in the file) or the program  may  have  been
        recompiled  more  recently  than  the database was updated
-       (resulting in missing  entries).   The  routine  <I>setupterm</I>
+       (resulting in missing  entries).   The  routine  <EM>setupterm</EM>
        must  be prepared for both possibilities - this is why the
        numbers and sizes are included.   Also,  new  capabilities
        must  always  be added at the end of the lists of boolean,
        must  be prepared for both possibilities - this is why the
        numbers and sizes are included.   Also,  new  capabilities
        must  always  be added at the end of the lists of boolean,
        OSF/1)  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
        OSF/1)  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.  See <B><A HREF="terminfo.5.html">terminfo(5)</A></B> for  detailed  discus-
+       Curses extensions.  See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for  detailed  discus-
        sion of terminfo source compatibility issues.
 
        As  an  example, here is a hex dump of the description for
        sion of terminfo source compatibility issues.
 
        As  an  example, here is a hex dump of the description for
                am,
                cols#80, lines#24,
                bel=^G, clear= 32$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
                am,
                cols#80, lines#24,
                bel=^G, clear= 32$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
-               cuf1=^L, cup==%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+               cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
                home=^^, ind=^J,
 
        0000  1a 01 10 00 02 00 03 00  82 00 31 00 61 64 6d 33  ........ ..1.adm3
                home=^^, ind=^J,
 
        0000  1a 01 10 00 02 00 03 00  82 00 31 00 61 64 6d 33  ........ ..1.adm3
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
 
 
 
 
index 55df37dfb3dd7bf09f2db33bc490e231b0780af1..9679864383f420d88ad1e32efc45097207508128 100644 (file)
@@ -1,5 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: term.7,v 1.13 2002/04/20 16:50:47 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>TERM 7</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>TERM 7</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  environment variable <B>TERM</B> should normally contain the
+       The  environment variable <STRONG>TERM</STRONG> should normally contain the
        type name of the terminal, console or display-device  type
        you  are  using.   This  information  is  critical for all
        screen-oriented  programs,  including  your   editor   and
        mailer.
 
        type name of the terminal, console or display-device  type
        you  are  using.   This  information  is  critical for all
        screen-oriented  programs,  including  your   editor   and
        mailer.
 
-       A  default  <B>TERM</B>  value will be set on a per-line basis by
-       either <B>/etc/inittab</B> (Linux and  System-V-like  UNIXes)  or
-       <B>/etc/ttys</B>  (BSD  UNIXes).  This will nearly always suffice
+       A  default  <STRONG>TERM</STRONG>  value will be set on a per-line basis by
+       either <STRONG>/etc/inittab</STRONG> (Linux and  System-V-like  UNIXes)  or
+       <STRONG>/etc/ttys</STRONG>  (BSD  UNIXes).  This will nearly always suffice
        for workstation and microcomputer consoles.
 
        If you use a dialup line, the type of device  attached  to
        for workstation and microcomputer consoles.
 
        If you use a dialup line, the type of device  attached  to
@@ -28,7 +66,7 @@
        VT100-compatible terminals  and  personal-computer  emula-
        tors.
 
        VT100-compatible terminals  and  personal-computer  emula-
        tors.
 
-       Modern  telnets  pass  your <B>TERM</B> environment variable from
+       Modern  telnets  pass  your <STRONG>TERM</STRONG> environment variable from
        the local side to the remote one.  There can  be  problems
        if  the  remote terminfo or termcap entry for your type is
        not compatible with yours, but this situation is rare  and
        the local side to the remote one.  There can  be  problems
        if  the  remote terminfo or termcap entry for your type is
        not compatible with yours, but this situation is rare  and
        `vt100' (assuming you are in fact using  a  VT100-superset
        console, terminal, or terminal emulator.)
 
        `vt100' (assuming you are in fact using  a  VT100-superset
        console, terminal, or terminal emulator.)
 
-       In any case, you are free to override the system <B>TERM</B> set-
-       ting to your taste in your  shell  profile.   The  <B><A HREF="tset.1.html">tset(1)</A></B>
+       In any case, you are free to override the system <STRONG>TERM</STRONG> set-
+       ting to your taste in your  shell  profile.   The  <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
        utility  may  be  of  assistance; you can give it a set of
        rules for deducing or requesting a terminal type based  on
        the tty device and baud rate.
 
        utility  may  be  of  assistance; you can give it a set of
        rules for deducing or requesting a terminal type based  on
        the tty device and baud rate.
 
-       Setting your own <B>TERM</B> value may also be useful if you have
+       Setting your own <STRONG>TERM</STRONG> value may also be useful if you have
        created a custom  entry  incorporating  options  (such  as
        visual  bell  or reverse-video) which you wish to override
        the system default type for your line.
        created a custom  entry  incorporating  options  (such  as
        visual  bell  or reverse-video) which you wish to override
        the system default type for your line.
 
        from your shell.  These capability files are in  a  binary
        format optimized for retrieval speed (unlike the old text-
 
        from your shell.  These capability files are in  a  binary
        format optimized for retrieval speed (unlike the old text-
-       based <B>termcap</B> format they replace); to examine  an  entry,
-       you  must  use  the <B><A HREF="infocmp.1.html">infocmp(1)</A></B> command.  Invoke it as fol-
+       based <STRONG>termcap</STRONG> format they replace); to examine  an  entry,
+       you  must  use  the <STRONG><A HREF="infocmp.1.html">infocmp(1)</A></STRONG> command.  Invoke it as fol-
        lows:
 
        lows:
 
-            infocmp <I>entry-name</I>
+            infocmp <EM>entry-name</EM>
 
 
-       where <I>entry-name</I> is the name of the type you wish to exam-
+       where <EM>entry-name</EM> is the name of the type you wish to exam-
        ine  (and the name of its capability file the subdirectory
        of /usr/share/terminfo named for its first letter).   This
        command  dumps  a  capability  file  in  the  text  format
        ine  (and the name of its capability file the subdirectory
        of /usr/share/terminfo named for its first letter).   This
        command  dumps  a  capability  file  in  the  text  format
-       described by <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
+       described by <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
-       The first line of  a  <B><A HREF="terminfo.5.html">terminfo(5)</A></B>  description  gives  the
+       The first line of  a  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  description  gives  the
        names by which terminfo knows a terminal, separated by `|'
        (pipe-bar) characters with the last name field  terminated
        names by which terminfo knows a terminal, separated by `|'
        (pipe-bar) characters with the last name field  terminated
-       by  a  comma.   The first name field is the type's <I>primary</I>
-       <I>name</I>, and is the one to use when setting <B>TERM</B>.   The  last
+       by  a  comma.   The first name field is the type's <EM>primary</EM>
+       <EM>name</EM>, and is the one to use when setting <STRONG>TERM</STRONG>.   The  last
        name  field  (if  distinct  from  the first) is actually a
        description of the terminal type (it may  contain  blanks;
        the others must be single words).  Name fields between the
        name  field  (if  distinct  from  the first) is actually a
        description of the terminal type (it may  contain  blanks;
        the others must be single words).  Name fields between the
 
        The  root  name for a terminal or workstation console type
        should almost always begin with a vendor prefix  (such  as
 
        The  root  name for a terminal or workstation console type
        should almost always begin with a vendor prefix  (such  as
-       <B>hp</B>  for Hewlett-Packard, <B>wy</B> for Wyse, or <B>att</B> for AT&amp;T ter-
-       minals), or a common name of the terminal line (<B>vt</B> for the
-       VT  series of terminals from DEC, or <B>sun</B> for Sun Microsys-
-       tems workstation consoles, or <B>regent</B> for the  ADDS  Regent
+       <STRONG>hp</STRONG>  for Hewlett-Packard, <STRONG>wy</STRONG> for Wyse, or <STRONG>att</STRONG> for AT&amp;T ter-
+       minals), or a common name of the terminal line (<STRONG>vt</STRONG> for the
+       VT  series of terminals from DEC, or <STRONG>sun</STRONG> for Sun Microsys-
+       tems workstation consoles, or <STRONG>regent</STRONG> for the  ADDS  Regent
        series.   You  can list the terminfo tree to see what pre-
        fixes are already in common use.   The  root  name  prefix
        should  be  followed  when  appropriate by a model number;
        series.   You  can list the terminfo tree to see what pre-
        fixes are already in common use.   The  root  name  prefix
        should  be  followed  when  appropriate by a model number;
-       thus <B>vt100</B>, <B>hp2621</B>, <B>wy50</B>.
+       thus <STRONG>vt100</STRONG>, <STRONG>hp2621</STRONG>, <STRONG>wy50</STRONG>.
 
        The root name for a PC-Unix console type should be the  OS
 
        The root name for a PC-Unix console type should be the  OS
-       name,  i.e.  <B>linux</B>, <B>bsdos</B>, <B>freebsd</B>, <B>netbsd</B>.  It should <I>not</I>
-       be <B>console</B> or any other generic that might cause confusion
+       name,  i.e.  <STRONG>linux</STRONG>, <STRONG>bsdos</STRONG>, <STRONG>freebsd</STRONG>, <STRONG>netbsd</STRONG>.  It should <EM>not</EM>
+       be <STRONG>console</STRONG> or any other generic that might cause confusion
        in  a  multi-platform environment!  If a model number fol-
        lows, it should indicate either the OS  release  level  or
        the console driver release level.
        The root name for a terminal emulator (assuming it doesn't
        fit one of the standard ANSI or vt100 types) should be the
        program  name or a readily recognizable abbreviation of it
        in  a  multi-platform environment!  If a model number fol-
        lows, it should indicate either the OS  release  level  or
        the console driver release level.
        The root name for a terminal emulator (assuming it doesn't
        fit one of the standard ANSI or vt100 types) should be the
        program  name or a readily recognizable abbreviation of it
-       (i.e. <B>versaterm</B>, <B>ctrm</B>).
+       (i.e. <STRONG>versaterm</STRONG>, <STRONG>ctrm</STRONG>).
 
        Following the root name, you may add any reasonable number
        of hyphen-separated feature suffixes.
 
        Following the root name, you may add any reasonable number
        of hyphen-separated feature suffixes.
        intended to specify a line height, that suffix  should  go
        first.  So, for a hypothetical FuBarCo model 2317 terminal
        in 30-line mode with reverse video,  best  form  would  be
        intended to specify a line height, that suffix  should  go
        first.  So, for a hypothetical FuBarCo model 2317 terminal
        in 30-line mode with reverse video,  best  form  would  be
-       <B>fubar-30-rv</B> (rather than, say, `fubar-rv-30').
+       <STRONG>fubar-30-rv</STRONG> (rather than, say, `fubar-rv-30').
 
        Terminal types that are written not as standalone entries,
        but rather as components to be plugged into other  entries
 
        Terminal types that are written not as standalone entries,
        but rather as components to be plugged into other  entries
-       via  <B>use</B> capabilities, are distinguished by using embedded
+       via  <STRONG>use</STRONG> capabilities, are distinguished by using embedded
        plus signs rather than dashes.
 
        Commands which use a  terminal  type  to  control  display
        often  accept  a  -T  option  that accepts a terminal name
        plus signs rather than dashes.
 
        Commands which use a  terminal  type  to  control  display
        often  accept  a  -T  option  that accepts a terminal name
-       argument.  Such programs should  fall  back  on  the  <B>TERM</B>
+       argument.  Such programs should  fall  back  on  the  <STRONG>TERM</STRONG>
        environment variable when no -T option is specified.
 
 
        environment variable when no -T option is specified.
 
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>, <B><A HREF="term.5.html">term(5)</A></B>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
 
 
 
 
 
 
index 20bb063d23f9b5137c0c8bb3c083605cef09dc1c..366da6548e31edd0b0195816a92efefb7161415c 100644 (file)
@@ -1,5 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  * DO NOT EDIT THIS FILE BY HAND!
+  * It is generated from terminfo.head, Caps, and terminfo.tail.
+  * 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.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp @
+  * Head of terminfo man page ends here
+  * @Id: terminfo.tail,v 1.35 2002/04/20 16:49:33 tom Exp @
+  * Beginning of terminfo.tail file
+  *.TH
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>TERMINFO 5   File Formats</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>TERMINFO 5   File Formats</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <I>Terminfo</I>  is  a  data  base  describing terminals, used by
-       screen-oriented programs  such  as  <B><A HREF="nvi.1.html">nvi(1)</A></B>,  <B><A HREF="rogue.1.html">rogue(1)</A></B>  and
-       libraries  such  as <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.  <I>Terminfo</I> describes termi-
+       <EM>Terminfo</EM>  is  a  data  base  describing terminals, used by
+       screen-oriented programs  such  as  <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>,  <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG>  and
+       libraries  such  as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.  <EM>Terminfo</EM> describes termi-
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and initialization sequences.
 
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and initialization sequences.
 
-       Entries in <I>terminfo</I> consist of a sequence of `,' separated
-       fields  (embedded  commas may be escaped with a  backslash
-       or notated as \072).  White space after the `,'  separator
-       is  ignored.   The first entry for each terminal gives the
+       Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
+       fields (embedded commas may be escaped with a backslash or
+       notated as \054).  White space after the `,' separator  is
+       ignored.   The  first  entry  for  each terminal gives the
        names which are known for the terminal, separated  by  `|'
        characters.   The  first  name  given  is  the most common
        abbreviation for the terminal, the last name given  should
        names which are known for the terminal, separated  by  `|'
        characters.   The  first  name  given  is  the most common
        abbreviation for the terminal, the last name given  should
@@ -45,9 +92,9 @@
        vt100-w.  The following suffixes should be used where pos-
        sible:
 
        vt100-w.  The following suffixes should be used where pos-
        sible:
 
-      <B>Suffix</B>                  <B>Meaning</B>                   <B>Example</B>
-      -<I>nn</I>      Number of lines on the screen            aaa-60
-      -<I>n</I>p      Number of pages of memory                c100-4p
+      <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
       -am      With automargins (usually the default)   vt100-am
       -m       Mono mode; suppress color                ansi-m
       -mc      Magic cookie; spaces when highlighting   wy30-mc
       -am      With automargins (usually the default)   vt100-am
       -m       Mono mode; suppress color                ansi-m
       -mc      Magic cookie; spaces when highlighting   wy30-mc
       -vb      Use visible bell instead of beep         wy370-vb
       -w       Wide mode (&gt; 80 columns, usually 132)    vt100-w
 
       -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 <B>term(7)</B>
+       For  more  on terminal naming conventions, see the <STRONG>term(7)</STRONG>
        manual page.
 
        manual page.
 
-   <B>Capabilities</B>
+   <STRONG>Capabilities</STRONG>
        The following is a  complete  table  of  the  capabilities
        included  in a terminfo description block and available to
        terminfo-using code.  In each line of the table,
 
        The following is a  complete  table  of  the  capabilities
        included  in a terminfo description block and available to
        terminfo-using code.  In each line of the table,
 
-       The <B>variable</B> is the name by which the programmer  (at  the
+       The <STRONG>variable</STRONG> is the name by which the programmer  (at  the
        terminfo level) accesses the capability.
 
        terminfo level) accesses the capability.
 
-       The  <B>capname</B>  is  the  short  name used in the text of the
+       The  <STRONG>capname</STRONG>  is  the  short  name used in the text of the
        database, and is used by a person updating  the  database.
        Whenever  possible,  capnames are chosen to be the same as
        or similar to the ANSI X3.64-1979 standard (now superseded
        database, and is used by a person updating  the  database.
        Whenever  possible,  capnames are chosen to be the same as
        or similar to the ANSI X3.64-1979 standard (now superseded
        Semantics are also intended to match those of the specifi-
        cation.
 
        Semantics are also intended to match those of the specifi-
        cation.
 
-       The  termcap code is the old <B>termcap</B> capability name (some
+       The  termcap code is the old <STRONG>termcap</STRONG> capability name (some
        capabilities are new, and have names which termcap did not
        originate).
 
        Capability  names have no hard length limit, but an infor-
        mal limit of 5 characters has been adopted  to  keep  them
        capabilities are new, and have names which termcap did not
        originate).
 
        Capability  names have no hard length limit, but an infor-
        mal limit of 5 characters has been adopted  to  keep  them
-       short  and  to  allow  the tabs in the source file <B>Caps</B> to
+       short  and  to  allow  the tabs in the source file <STRONG>Caps</STRONG> to
        line up nicely.
 
        Finally, the description  field  attempts  to  convey  the
        line up nicely.
 
        Finally, the description  field  attempts  to  convey  the
        (P)    indicates that padding may be specified
 
        #[1-9] in the description field indicates that the  string
        (P)    indicates that padding may be specified
 
        #[1-9] in the description field indicates that the  string
-              is passed through tparm with parms as given (#<I>i</I>).
+              is passed through tparm with parms as given (#<EM>i</EM>).
 
        (P*)   indicates  that  padding  may vary in proportion to
               the number of lines affected
 
 
        (P*)   indicates  that  padding  may vary in proportion to
               the number of lines affected
 
-       (#<I>i</I>)   indicates the <I>i</I>th parameter.
+       (#<EM>i</EM>)   indicates the <EM>i</EM>th parameter.
 
 
        These are the boolean capabilities:
 
 
 
        These are the boolean capabilities:
 
-               <B>Variable</B>          <B>Cap-</B>  <B>TCap</B>      <B>Description</B>
-               <B>Booleans</B>          <B>name</B>  <B>Code</B>
+               <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>  <STRONG>TCap</STRONG>      <STRONG>Description</STRONG>
+               <STRONG>Booleans</STRONG>          <STRONG>name</STRONG>  <STRONG>Code</STRONG>
        auto_left_margin          bw    bw    cub1 wraps from col-
                                              umn 0 to last column
        auto_right_margin         am    am    terminal has auto-
        auto_left_margin          bw    bw    cub1 wraps from col-
                                              umn 0 to last column
        auto_right_margin         am    am    terminal has auto-
                                              in insert mode
        move_standout_mode        msgr  ms    safe to move while
                                              in standout mode
                                              in insert mode
        move_standout_mode        msgr  ms    safe to move while
                                              in standout mode
-       needs_xon_xoff            nxon  nx    padding won't work,
-                                             xon/xoff required
+       needs_xon_xoff            nxon  nx    padding will not
+                                             work, xon/xoff
+                                             required
        no_esc_ctlc               xsb   xb    beehive (f1=escape,
                                              f2=ctrl C)
        no_pad_char               npc   NP    pad character does
                                              not exist
        no_esc_ctlc               xsb   xb    beehive (f1=escape,
                                              f2=ctrl C)
        no_pad_char               npc   NP    pad character does
                                              not exist
+
+
        non_dest_scroll_region    ndscr ND    scrolling region is
                                              non-destructive
        non_dest_scroll_region    ndscr ND    scrolling region is
                                              non-destructive
-
        non_rev_rmcup             nrrmc NR    smcup does not
                                              reverse rmcup
        over_strike               os    os    terminal can over-
                                              strike
        non_rev_rmcup             nrrmc NR    smcup does not
                                              reverse rmcup
        over_strike               os    os    terminal can over-
                                              strike
-       prtr_silent               mc5i  5i    printer won't echo
-                                             on screen
+       prtr_silent               mc5i  5i    printer will not
+                                             echo on screen
        row_addr_glitch           xvpa  YD    only positive motion
                                              for vpa/mvpa caps
        semi_auto_right_margin    sam   YE    printing in last
                                              column causes cr
        status_line_esc_ok        eslok es    escape can be used
                                              on the status line
        row_addr_glitch           xvpa  YD    only positive motion
                                              for vpa/mvpa caps
        semi_auto_right_margin    sam   YE    printing in last
                                              column causes cr
        status_line_esc_ok        eslok es    escape can be used
                                              on the status line
-       tilde_glitch              hz    hz    can't print ~'s
+       tilde_glitch              hz    hz    cannot print ~'s
                                              (hazeltine)
        transparent_underline     ul    ul    underline character
                                              overstrikes
                                              (hazeltine)
        transparent_underline     ul    ul    underline character
                                              overstrikes
 
        These are the numeric capabilities:
 
 
        These are the numeric capabilities:
 
-            <B>Variable</B>         <B>Cap-</B>     <B>TCap</B>       <B>Description</B>
-             <B>Numeric</B>         <B>name</B>     <B>Code</B>
+            <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>     <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+             <STRONG>Numeric</STRONG>         <STRONG>name</STRONG>     <STRONG>Code</STRONG>
        columns               cols     co     number of columns in
                                              a line
        init_tabs             it       it     tabs initially every
        columns               cols     co     number of columns in
                                              a line
        init_tabs             it       it     tabs initially every
        maximum_windows       wnum     MW     maximum number of
                                              defineable windows
        no_color_video        ncv      NC     video attributes
        maximum_windows       wnum     MW     maximum number of
                                              defineable windows
        no_color_video        ncv      NC     video attributes
-                                             that can't be used
+                                             that cannot be used
                                              with colors
                                              with colors
-       num_labels            nlab     Nl     number of labels on
-                                             screen
 
 
 
 
+       num_labels            nlab     Nl     number of labels on
+                                             screen
        padding_baud_rate     pb       pb     lowest baud rate
                                              where padding needed
        virtual_terminal      vt       vt     virtual terminal
        padding_baud_rate     pb       pb     lowest baud rate
                                              where padding needed
        virtual_terminal      vt       vt     virtual terminal
        width_status_line     wsl      ws     number of columns in
                                              status line
 
        width_status_line     wsl      ws     number of columns in
                                              status line
 
-       The following numeric  capabilities  are  present  in  the
-       SVr4.0  term  structure, but are not yet documented in the
+       The  following  numeric  capabilities  are  present in the
+       SVr4.0 term structure, but are not yet documented  in  the
        man page.  They came in with SVr4's printer support.
 
        man page.  They came in with SVr4's printer support.
 
-             <B>Variable</B>         <B>Cap-</B>    <B>TCap</B>       <B>Description</B>
-             <B>Numeric</B>          <B>name</B>    <B>Code</B>
+             <STRONG>Variable</STRONG>         <STRONG>Cap-</STRONG>    <STRONG>TCap</STRONG>       <STRONG>Description</STRONG>
+             <STRONG>Numeric</STRONG>          <STRONG>name</STRONG>    <STRONG>Code</STRONG>
        bit_image_entwining    bitwin  Yo     number of passes for
                                              each bit-image row
        bit_image_type         bitype  Yp     type of bit-image
        bit_image_entwining    bitwin  Yo     number of passes for
                                              each bit-image row
        bit_image_type         bitype  Yp     type of bit-image
                                              in units per inch
        print_rate             cps     Ym     print rate in char-
                                              acters per second
                                              in units per inch
        print_rate             cps     Ym     print rate in char-
                                              acters per second
+
+
        wide_char_size         widcs   Yn     character step size
                                              when in double wide
                                              mode
 
        These are the string capabilities:
 
        wide_char_size         widcs   Yn     character step size
                                              when in double wide
                                              mode
 
        These are the string capabilities:
 
-               <B>Variable</B>          <B>Cap-</B>   <B>TCap</B>     <B>Description</B>
-                <B>String</B>           <B>name</B>   <B>Code</B>
+               <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
                                              pairs, based on
                                              vt100
        acs_chars                 acsc   ac   graphics charset
                                              pairs, based on
                                              vt100
        cursor_address            cup    cm   move to row #1
                                              columns #2
        cursor_down               cud1   do   down one line
        cursor_address            cup    cm   move to row #1
                                              columns #2
        cursor_down               cud1   do   down one line
+
+
        cursor_home               home   ho   home cursor (if no
                                              cup)
        cursor_invisible          civis  vi   make cursor invisi-
                                              ble
        cursor_left               cub1   le   move left one space
        cursor_home               home   ho   home cursor (if no
                                              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
                                              to row #1 columns #2
        cursor_mem_address        mrcup  CM   memory relative cur-
                                              sor addressing, move
                                              to row #1 columns #2
                                              riage motion
        enter_micro_mode          smicm  ZJ   Start micro-motion
                                              mode
                                              riage motion
        enter_micro_mode          smicm  ZJ   Start micro-motion
                                              mode
+
        enter_near_letter_quality snlq   ZK   Enter NLQ mode
        enter_normal_quality      snrmq  ZL   Enter normal-quality
                                              mode
        enter_protected_mode      prot   mp   turn on protected
                                              mode
        enter_near_letter_quality snlq   ZK   Enter NLQ mode
        enter_normal_quality      snrmq  ZL   Enter normal-quality
                                              mode
        enter_protected_mode      prot   mp   turn on protected
                                              mode
-
        enter_reverse_mode        rev    mr   turn on reverse
                                              video mode
        enter_secure_mode         invis  mk   turn on blank mode
        enter_reverse_mode        rev    mr   turn on reverse
                                              video mode
        enter_secure_mode         invis  mk   turn on blank mode
        flash_hook                hook   fh   flash switch hook
        flash_screen              flash  vb   visible bell (may
                                              not move cursor)
        flash_hook                hook   fh   flash switch hook
        flash_screen              flash  vb   visible bell (may
                                              not move cursor)
+
        form_feed                 ff     ff   hardcopy terminal
                                              page eject (P*)
        from_status_line          fsl    fs   return from status
                                              line
        goto_window               wingo  WG   go to window #1
        form_feed                 ff     ff   hardcopy terminal
                                              page eject (P*)
        from_status_line          fsl    fs   return from status
                                              line
        goto_window               wingo  WG   go to window #1
-
        hangup                    hup    HU   hang-up phone
        init_1string              is1    i1   initialization
                                              string
        hangup                    hup    HU   hang-up phone
        init_1string              is1    i1   initialization
                                              string
                                              in insert mode
        key_end                   kend   @7   end key
        key_enter                 kent   @8   enter/send key
                                              in insert mode
        key_end                   kend   @7   end key
        key_enter                 kent   @8   enter/send key
+
+
        key_eol                   kel    kE   clear-to-end-of-line
                                              key
        key_eos                   ked    kS   clear-to-end-of-
                                              screen key
        key_exit                  kext   @9   exit key
        key_f0                    kf0    k0   F0 function key
        key_eol                   kel    kE   clear-to-end-of-line
                                              key
        key_eos                   ked    kS   clear-to-end-of-
                                              screen key
        key_exit                  kext   @9   exit key
        key_f0                    kf0    k0   F0 function key
-
        key_f1                    kf1    k1   F1 function key
        key_f10                   kf10   k;   F10 function key
        key_f11                   kf11   F1   F11 function key
        key_f1                    kf1    k1   F1 function key
        key_f10                   kf10   k;   F10 function key
        key_f11                   kf11   F1   F11 function key
        key_f5                    kf5    k5   F5 function key
        key_f50                   kf50   Fe   F50 function key
        key_f51                   kf51   Ff   F51 function key
        key_f5                    kf5    k5   F5 function key
        key_f50                   kf50   Fe   F50 function key
        key_f51                   kf51   Ff   F51 function key
+
        key_f52                   kf52   Fg   F52 function key
        key_f53                   kf53   Fh   F53 function key
        key_f54                   kf54   Fi   F54 function key
        key_f55                   kf55   Fj   F55 function key
        key_f56                   kf56   Fk   F56 function key
        key_f57                   kf57   Fl   F57 function key
        key_f52                   kf52   Fg   F52 function key
        key_f53                   kf53   Fh   F53 function key
        key_f54                   kf54   Fi   F54 function key
        key_f55                   kf55   Fj   F55 function key
        key_f56                   kf56   Fk   F56 function key
        key_f57                   kf57   Fl   F57 function key
-
        key_f58                   kf58   Fm   F58 function key
        key_f59                   kf59   Fn   F59 function key
        key_f6                    kf6    k6   F6 function key
        key_f58                   kf58   Fm   F58 function key
        key_f59                   kf59   Fn   F59 function key
        key_f6                    kf6    k6   F6 function key
                                              key
        key_select                kslt   *6   select key
        key_send                  kEND   *7   shifted end key
                                              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_sexit                 kEXT   *9   shifted exit key
        key_sf                    kind   kF   scroll-forward key
        key_sfind                 kFND   *0   shifted find key
        key_shelp                 kHLP   #1   shifted help key
        key_seol                  kEOL   *8   shifted clear-to-
                                              end-of-line key
        key_sexit                 kEXT   *9   shifted exit key
        key_sf                    kind   kF   scroll-forward key
        key_sfind                 kFND   *0   shifted find key
        key_shelp                 kHLP   #1   shifted help key
-
        key_shome                 kHOM   #2   shifted home key
        key_sic                   kIC    #3   shifted insert-char-
                                              acter key
        key_shome                 kHOM   #2   shifted home key
        key_sic                   kIC    #3   shifted insert-char-
                                              acter key
                                              key f6 if not f6
        lab_f7                    lf7    l7   label on function
                                              key f7 if not f7
                                              key f6 if not f6
        lab_f7                    lf7    l7   label on function
                                              key f7 if not f7
+
+
        lab_f8                    lf8    l8   label on function
                                              key f8 if not f8
        lab_f9                    lf9    l9   label on function
        lab_f8                    lf8    l8   label on function
                                              key f8 if not f8
        lab_f9                    lf9    l9   label on function
        label_format              fln    Lf   label format
        label_off                 rmln   LF   turn off soft labels
        label_on                  smln   LO   turn on soft labels
        label_format              fln    Lf   label format
        label_off                 rmln   LF   turn off soft labels
        label_on                  smln   LO   turn on soft labels
-
        meta_off                  rmm    mo   turn off meta mode
        meta_on                   smm    mm   turn on meta mode
                                              (8th-bit on)
        meta_off                  rmm    mo   turn off meta mode
        meta_on                   smm    mm   turn on meta mode
                                              (8th-bit on)
                                              sor in micro mode
        parm_rindex               rin    SR   scroll back #1 lines
                                              (P)
                                              sor in micro mode
        parm_rindex               rin    SR   scroll back #1 lines
                                              (P)
+
        parm_up_cursor            cuu    UP   up #1 lines (P*)
        parm_up_micro             mcuu   Zi   Like parm_up_cursor
                                              in micro mode
        pkey_key                  pfkey  pk   program function key
                                              #1 to type string #2
        parm_up_cursor            cuu    UP   up #1 lines (P*)
        parm_up_micro             mcuu   Zi   Like parm_up_cursor
                                              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
        pkey_local                pfloc  pl   program function key
                                              #1 to execute string
                                              #2
                                              line #1 or (if smgtp
                                              is not given) #2
                                              lines from bottom
                                              line #1 or (if smgtp
                                              is not given) #2
                                              lines from bottom
+
        set_clock                 sclk   SC   set clock, #1 hrs #2
                                              mins #3 secs
        set_color_pair            scp    sp   Set current color
                                              pair to #1
        set_clock                 sclk   SC   set clock, #1 hrs #2
                                              mins #3 secs
        set_color_pair            scp    sp   Set current color
                                              pair to #1
-
-
        set_foreground            setf   Sf   Set foreground color
                                              #1
        set_left_margin           smgl   ML   set left soft margin
        set_foreground            setf   Sf   Set foreground color
                                              #1
        set_left_margin           smgl   ML   set left soft margin
                                              move past it
        up_half_line              hu     hu   half a line up
        user0                     u0     u0   User string #0
                                              move past it
        up_half_line              hu     hu   half a line up
        user0                     u0     u0   User string #0
+
        user1                     u1     u1   User string #1
        user2                     u2     u2   User string #2
        user3                     u3     u3   User string #3
        user4                     u4     u4   User string #4
        user1                     u1     u1   User string #1
        user2                     u2     u2   User string #2
        user3                     u3     u3   User string #3
        user4                     u4     u4   User string #4
-
        user5                     u5     u5   User string #5
        user6                     u6     u6   User string #6
        user7                     u7     u7   User string #7
        user5                     u5     u5   User string #5
        user6                     u6     u6   User string #6
        user7                     u7     u7   User string #7
        zero_motion               zerom  Zx   No motion for subse-
                                              quent character
 
        zero_motion               zerom  Zx   No motion for subse-
                                              quent character
 
-       The  following  string  capabilities  are  present  in the
-       SVr4.0 term structure, but were originally not  documented
+       The following  string  capabilities  are  present  in  the
+       SVr4.0  term structure, but were originally not documented
        in the man page.
 
        in the man page.
 
-               <B>Variable</B>          <B>Cap-</B>     <B>TCap</B>    <B>Description</B>
-                <B>String</B>           <B>name</B>     <B>Code</B>
+               <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
                                                for scancode emu-
                                                lation
        alt_scancode_esc          scesa    S8   Alternate escape
                                                for scancode emu-
                                                lation
                                                mode
        exit_pc_charset_mode      rmpch    S3   Exit PC character
                                                display mode
                                                mode
        exit_pc_charset_mode      rmpch    S3   Exit PC character
                                                display mode
+
        exit_scancode_mode        rmsc     S5   Exit PC scancode
                                                mode
        exit_scancode_mode        rmsc     S5   Exit PC scancode
                                                mode
-
-
-
        get_mouse                 getm     Gm   Curses should get
                                                button events,
                                                parameter #1 not
        get_mouse                 getm     Gm   Curses should get
                                                button events,
                                                parameter #1 not
                                                position
        scancode_escape           scesc    S7   Escape for scan-
                                                code emulation
                                                position
        scancode_escape           scesc    S7   Escape for scan-
                                                code emulation
-       set0_des_seq              s0ds     s0   Shift to code set
-                                               0 (EUC set 0,
-                                               ASCII)
-       set1_des_seq              s1ds     s1   Shift to code set
-                                               1
-       set2_des_seq              s2ds     s2   Shift to code set
-                                               2
-       set3_des_seq              s3ds     s3   Shift to code set
-                                               3
+       set0_des_seq              s0ds     s0   Shift to codeset 0
+                                               (EUC set 0, ASCII)
+       set1_des_seq              s1ds     s1   Shift to codeset 1
+       set2_des_seq              s2ds     s2   Shift to codeset 2
+       set3_des_seq              s3ds     s3   Shift to codeset 3
        set_a_background          setab    AB   Set background
                                                color to #1, using
                                                ANSI escape
        set_a_background          setab    AB   Set background
                                                color to #1, using
                                                ANSI escape
                                                bottom margins to
                                                #1, #2
 
                                                bottom margins to
                                                #1, #2
 
-        The XSI Curses  standard  added  these.   They  are  some
-        post-4.1  versions  of System V curses, e.g., Solaris 2.5
-        and IRIX 6.x.  The <B>ncurses</B> termcap  names  for  them  are
+        The  XSI  Curses  standard  added  these.   They are some
+        post-4.1 versions of System V curses, e.g.,  Solaris  2.5
+        and  IRIX  6.x.   The  <STRONG>ncurses</STRONG> termcap names for them are
         invented; according to the XSI Curses standard, they have
         invented; according to the XSI Curses standard, they have
-        no termcap names.  If your compiled terminfo entries  use
-        these,  they  may  not be binary-compatible with System V
+        no  termcap names.  If your compiled terminfo entries use
+        these, they may not be binary-compatible  with  System  V
         terminfo entries after SVr4.1; beware!
 
         terminfo entries after SVr4.1; beware!
 
-                <B>Variable</B>         <B>Cap-</B>   <B>TCap</B>     <B>Description</B>
-                 <B>String</B>          <B>name</B>   <B>Code</B>
+                <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
         enter_horizontal_hl_mode ehhlm  Xh   Enter horizontal
                                              highlight mode
         enter_left_hl_mode       elhlm  Xl   Enter left highlight
                                              an inch
 
 
                                              an inch
 
 
-   <B>A</B> <B>Sample</B> <B>Entry</B>
+   <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
        The following entry, describing an ANSI-standard terminal,
        The following entry, describing an ANSI-standard terminal,
-       is  representative  of  what a <B>terminfo</B> entry for a modern
+       is representative of what a <STRONG>terminfo</STRONG> entry  for  a  modern
        terminal typically looks like.
 
      ansi|ansi/pc-term compatible with color,
        terminal typically looks like.
 
      ansi|ansi/pc-term compatible with color,
              sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
              u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
 
              sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
              u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
 
-       Entries may continue onto multiple lines by placing  white
-       space  at  the  beginning  of  each line except the first.
-       Comments may be included on lines  beginning  with  ``#''.
-       Capabilities in <I>terminfo</I> are of three types: Boolean capa-
+       Entries  may continue onto multiple lines by placing white
+       space at the beginning of  each  line  except  the  first.
+       Comments  may  be  included on lines beginning with ``#''.
+       Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
        bilities which indicate that the terminal has some partic-
        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
+       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.
 
 
        perform particular terminal operations.
 
 
-   <B>Types</B> <B>of</B> <B>Capabilities</B>
-       All capabilities have names.  For instance, the fact  that
-       ANSI-standard  terminals  have <I>automatic</I> <I>margins</I> (i.e., an
-       automatic return and line-feed when the end of a  line  is
-       reached)  is  indicated  by  the capability <B>am</B>.  Hence the
-       description of ansi includes <B>am</B>.  Numeric capabilities are
-       followed  by  the character `#' and then a positive value.
-       Thus <B>cols</B>, which indicates the number of columns the  ter-
-       minal  has,  gives  the  value  `80' for ansi.  Values for
+   <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
+       All  capabilities have names.  For instance, the fact that
+       ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM>  (i.e.,  an
+       automatic  return  and line-feed when the end of a line is
+       reached) is indicated by the  capability  <STRONG>am</STRONG>.   Hence  the
+       description of ansi includes <STRONG>am</STRONG>.  Numeric capabilities are
+       followed by the character `#' and then a  positive  value.
+       Thus  <STRONG>cols</STRONG>, which indicates the number of columns the ter-
+       minal has, gives the value  `80'  for  ansi.   Values  for
        numeric capabilities may be specified in decimal, octal or
        numeric capabilities may be specified in decimal, octal or
-       hexadecimal,  using the C programming language conventions
+       hexadecimal, using the C programming language  conventions
        (e.g., 255, 0377 and 0xff or 0xFF).
 
        (e.g., 255, 0377 and 0xff or 0xFF).
 
-       Finally, string valued capabilities, such as <B>el</B> (clear  to
+       Finally,  string valued capabilities, such as <STRONG>el</STRONG> (clear to
        end of line sequence) are given by the two-character code,
        end of line sequence) are given by the two-character code,
-       an `=', and then a string ending  at  the  next  following
+       an  `=',  and  then  a string ending at the next following
        `,'.
 
        `,'.
 
-       A  number  of  escape sequences are provided in the string
+       A number of escape sequences are provided  in  the  string
        valued capabilities for easy encoding of characters there.
        valued capabilities for easy encoding of characters there.
-       Both  <B>\E</B>  and  <B>\e</B> map to an ESCAPE character, <B>^x</B> maps to a
-       control-x for any appropriate x, and the sequences  <B>\n</B>  <B>\l</B>
-       <B>\r</B>  <B>\t</B>  <B>\b</B>  <B>\f</B>  <B>\s</B> give a newline, line-feed, return, tab,
-       backspace, form-feed, and space.  Other escapes include <B>\^</B>
-       for  <B>^</B>, <B>\\</B> for <B>\</B>, <B>\</B>, for comma, <B>\:</B> for <B>:</B>, and <B>\0</B> for null.
-       (<B>\0</B> will produce \200, which does not terminate  a  string
+       Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG>  maps  to  a
+       control-x  for  any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
+       <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a  newline,  line-feed,  return,  tab,
+       backspace, form-feed, and space.  Other escapes include <STRONG>\^</STRONG>
+       for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for  null.
+       (<STRONG>\0</STRONG>  will  produce \200, which does not terminate a string
        but behaves as a null character on most terminals, provid-
        but behaves as a null character on most terminals, provid-
-       ing CS7 is specified.  See <B><A HREF="stty.1.html">stty(1)</A></B>.)  Finally,  characters
-       may be given as three octal digits after a <B>\</B>.
+       ing  CS7 is specified.  See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.)  Finally, characters
+       may be given as three octal digits after a <STRONG>\</STRONG>.
 
 
-       A  delay  in  milliseconds may appear anywhere in a string
-       capability, enclosed in $&lt;..&gt; brackets, as in  <B>el</B>=\EK$&lt;5&gt;,
-       and  padding  characters  are supplied by <I>tputs</I> to provide
-       this delay.  The delay must be a number with at  most  one
+       A delay in milliseconds may appear anywhere  in  a  string
+       capability,  enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
+       and padding characters are supplied by  <EM>tputs</EM>  to  provide
+       this  delay.   The delay must be a number with at most one
        decimal place of precision; it may be followed by suffixes
        decimal place of precision; it may be followed by suffixes
-       `*' or '/' or both.  A  `*'  indicates  that  the  padding
-       required  is  proportional to the number of lines affected
-       by the  operation,  and  the  amount  given  is  the  per-
-       affected-unit  padding  required.   (In the case of insert
-       character,  the  factor  is  still  the  number  of  <I>lines</I>
-       affected.)   Normally,  padding  is advisory if the device
-       has the <B>xon</B> capability; it is used  for  cost  computation
-       but  does not trigger delays.  A `/' suffix indicates that
-       the padding is mandatory and forces a delay of  the  given
-       number  of  milliseconds  even on devices for which <B>xon</B> is
+       `*'  or  '/'  or  both.   A `*' indicates that the padding
+       required is proportional to the number of  lines  affected
+       by  the  operation,  and  the  amount  given  is  the per-
+       affected-unit padding required.  (In the  case  of  insert
+       character,  the  factor  is  still  the  number  of  <EM>lines</EM>
+       affected.)  Normally, padding is advisory  if  the  device
+       has  the  <STRONG>xon</STRONG>  capability; it is used for cost computation
+       but does not trigger delays.  A `/' suffix indicates  that
+       the  padding  is mandatory and forces a delay of the given
+       number of milliseconds even on devices for  which  <STRONG>xon</STRONG>  is
        present to indicate flow control.
 
        present to indicate flow control.
 
-       Sometimes individual capabilities must be  commented  out.
-       To  do this, put a period before the capability name.  For
-       example, see the second <B>ind</B> in the example above.
+       Sometimes  individual  capabilities must be commented out.
+       To do this, put a period before the capability name.   For
+       example, see the second <STRONG>ind</STRONG> in the example above.
 
 
-
-   <B>Fetching</B> <B>Compiled</B> <B>Descriptions</B>
-       If the environment variable TERMINFO is set, it is  inter-
-       preted  as the pathname of a directory containing the com-
+   <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
+       If  the environment variable TERMINFO is set, it is inter-
+       preted as the pathname of a directory containing the  com-
        piled description you are working on.  Only that directory
        is searched.
 
        piled description you are working on.  Only that directory
        is searched.
 
-       If  TERMINFO  is  not set, the <B>ncurses</B> version of the ter-
-       minfo reader code  will  instead  look  in  the  directory
-       <B>$HOME/.terminfo</B>  for  a compiled description.  If it fails
-       to find one  there,  and  the  environment  variable  TER-
-       MINFO_DIRS  is set, it will interpret the contents of that
-       variable as a list of colon- separated directories  to  be
-       searched  (an  empty  entry is interpreted as a command to
-       search <I>/usr/share/terminfo</I>).  If no description  is  found
-       in  any of the TERMINFO_DIRS directories, the fetch fails.
-
-       If neither TERMINFO nor TERMINFO_DIRS  is  set,  the  last
-       place   tried  will  be  the  system  terminfo  directory,
-       <I>/usr/share/terminfo</I>.
-
-       (Neither the  <B>$HOME/.terminfo</B>  lookups  nor  TERMINFO_DIRS
-       extensions   are  supported  under  stock  System  V  ter-
+       If TERMINFO is not set, the <STRONG>ncurses</STRONG> version  of  the  ter-
+       minfo  reader  code  will  instead  look  in the directory
+       <STRONG>$HOME/.terminfo</STRONG> for a compiled description.  If  it  fails
+       to  find  one  there,  and  the  environment variable TER-
+       MINFO_DIRS is set, it will interpret the contents of  that
+       variable  as  a list of colon- separated directories to be
+       searched (an empty entry is interpreted as  a  command  to
+       search  <EM>/usr/share/terminfo</EM>).   If no description is found
+       in any of the TERMINFO_DIRS directories, the fetch  fails.
+
+       If  neither  TERMINFO  nor  TERMINFO_DIRS is set, the last
+       place  tried  will  be  the  system  terminfo   directory,
+       <EM>/usr/share/terminfo</EM>.
+
+       (Neither  the  <STRONG>$HOME/.terminfo</STRONG>  lookups  nor TERMINFO_DIRS
+       extensions  are  supported  under  stock  System  V   ter-
        minfo/curses.)
 
 
        minfo/curses.)
 
 
-   <B>Preparing</B> <B>Descriptions</B>
-       We now outline how to prepare descriptions  of  terminals.
-       The  most  effective way to prepare a terminal description
-       is by imitating the description of a similar  terminal  in
-       <I>terminfo</I>  and  to  build up a description gradually, using
-       partial descriptions with <I>vi</I> or some other screen-oriented
-       program  to  check that they are correct.  Be aware that a
+   <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
+       We  now  outline how to prepare descriptions of terminals.
+       The most effective way to prepare a  terminal  description
+       is  by  imitating the description of a similar terminal in
+       <EM>terminfo</EM> and to build up a  description  gradually,  using
+       partial descriptions with <EM>vi</EM> or some other screen-oriented
+       program to check that they are correct.  Be aware  that  a
        very unusual terminal may expose deficiencies in the abil-
        very unusual terminal may expose deficiencies in the abil-
-       ity  of  the  <I>terminfo</I>  file to describe it or bugs in the
+       ity of the <EM>terminfo</EM> file to describe it  or  bugs  in  the
        screen-handling code of the test program.
 
        screen-handling code of the test program.
 
-       To get the padding for insert line right (if the  terminal
+       To  get the padding for insert line right (if the terminal
        manufacturer did not document it) a severe test is to edit
        manufacturer did not document it) a severe test is to edit
-       a large file at 9600 baud, delete 16 or so lines from  the
-       middle  of  the screen, then hit the `u' key several times
-       quickly.  If the terminal messes up, more padding is  usu-
-       ally  needed.  A similar test can be used for insert char-
+       a  large file at 9600 baud, delete 16 or so lines from the
+       middle of the screen, then hit the `u' key  several  times
+       quickly.   If the terminal messes up, more padding is usu-
+       ally needed.  A similar test can be used for insert  char-
        acter.
 
 
        acter.
 
 
-   <B>Basic</B> <B>Capabilities</B>
-       The number of columns on each line  for  the  terminal  is
-       given  by the <B>cols</B> numeric capability.  If the terminal is
-       a CRT, then the number of lines on the screen is given  by
-       the <B>lines</B> capability.  If the terminal wraps around to the
-       beginning of the next  line  when  it  reaches  the  right
-       margin,  then  it  should  have the <B>am</B> capability.  If the
-       terminal can clear its screen, leaving the cursor  in  the
-       home  position,  then  this  is  given by the <B>clear</B> string
-       capability.  If  the  terminal  overstrikes  (rather  than
-       clearing  a position when a character is struck over) then
-       it should have the <B>os</B> capability.  If the  terminal  is  a
-       printing terminal, with no soft copy unit, give it both <B>hc</B>
-       and <B>os</B>.  (<B>os</B> applies to storage scope terminals,  such  as
+   <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
+       The  number  of  columns  on each line for the terminal is
+       given by the <STRONG>cols</STRONG> numeric capability.  If the terminal  is
+       a  CRT, then the number of lines on the screen is given by
+       the <STRONG>lines</STRONG> capability.  If the terminal wraps around to the
+       beginning  of the next line when it reaches the right mar-
+       gin, then it should have the <STRONG>am</STRONG> capability.  If the termi-
+       nal  can  clear its screen, leaving the cursor in the home
+       position,  then  this  is  given  by  the   <STRONG>clear</STRONG>   string
+       capability.   If  the  terminal  overstrikes  (rather than
+       clearing a position when a character is struck over)  then
+       it  should  have  the <STRONG>os</STRONG> capability.  If the terminal is a
+       printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG>
+       and  <STRONG>os</STRONG>.   (<STRONG>os</STRONG> applies to storage scope terminals, such as
        TEKTRONIX 4010 series, as well as hard copy and APL termi-
        TEKTRONIX 4010 series, as well as hard copy and APL termi-
-       nals.)  If there is a code to move the cursor to the  left
-       edge  of the current row, give this as <B>cr</B>.  (Normally this
-       will be carriage return, control M.)  If there is  a  code
-       to  produce  an audible signal (bell, beep, etc) give this
-       as <B>bel</B>.
-
-       If there is a code to move the cursor one position to  the
-       left  (such  as backspace) that capability should be given
-       as <B>cub1</B>.  Similarly, codes to move to the right,  up,  and
-       down should be given as <B>cuf1</B>, <B>cuu1</B>, and <B>cud1</B>.  These local
-       cursor motions should not alter the text they  pass  over,
-       for  example,  you would not normally use `<B>cuf1</B>= ' because
+       nals.)   If there is a code to move the cursor to the left
+       edge of the current row, give this as <STRONG>cr</STRONG>.  (Normally  this
+       will  be  carriage return, control M.)  If there is a code
+       to produce an audible signal (bell, beep, etc)  give  this
+       as <STRONG>bel</STRONG>.
+
+       If  there is a code to move the cursor one position to the
+       left (such as backspace) that capability should  be  given
+       as  <STRONG>cub1</STRONG>.   Similarly, codes to move to the right, up, and
+       down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>.  These local
+       cursor  motions  should not alter the text they pass over,
+       for example, you would not normally use  `<STRONG>cuf1</STRONG>= '  because
        the space would erase the character moved over.
 
        the space would erase the character moved over.
 
-       A very important point  here  is  that  the  local  cursor
-       motions  encoded in <I>terminfo</I> are undefined at the left and
-       top edges  of  a  CRT  terminal.   Programs  should  never
-       attempt  to  backspace  around the left edge, unless <B>bw</B> is
+       A  very  important  point  here  is  that the local cursor
+       motions encoded in <EM>terminfo</EM> are undefined at the left  and
+       top  edges  of  a  CRT  terminal.   Programs  should never
+       attempt to backspace around the left edge,  unless  <STRONG>bw</STRONG>  is
        given, and never attempt to go up locally off the top.  In
        given, and never attempt to go up locally off the top.  In
-       order  to  scroll text up, a program will go to the bottom
-       left corner of the screen and send the <B>ind</B> (index) string.
+       order to scroll text up, a program will go to  the  bottom
+       left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
 
        To scroll text down, a program goes to the top left corner
 
        To scroll text down, a program goes to the top left corner
-       of the screen and sends the  <B>ri</B>  (reverse  index)  string.
-       The  strings  <B>ind</B>  and  <B>ri</B> are undefined when not on their
+       of  the  screen  and  sends the <STRONG>ri</STRONG> (reverse index) string.
+       The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined  when  not  on  their
        respective corners of the screen.
 
        respective corners of the screen.
 
-       Parameterized versions of the scrolling sequences are <B>indn</B>
-       and <B>rin</B> which have the same semantics as <B>ind</B> and <B>ri</B> except
-       that they take one parameter, and scroll that many  lines.
-       They  are also undefined except at the appropriate edge of
+       Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
+       and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
+       that  they take one parameter, and scroll that many lines.
+       They are also undefined except at the appropriate edge  of
        the screen.
 
        the screen.
 
-       The <B>am</B> capability tells whether the cursor sticks  at  the
-       right  edge  of  the  screen when text is output, but this
-       does not necessarily apply to a <B>cuf1</B> from the last column.
-       The  only local motion which is defined from the left edge
-       is if <B>bw</B> is given, then a <B>cub1</B> from  the  left  edge  will
-       move  to the right edge of the previous row.  If <B>bw</B> is not
-       given, the effect is undefined.  This is useful for  draw-
-       ing  a box around the edge of the screen, for example.  If
-       the terminal has switch selectable automatic margins,  the
-       <I>terminfo</I>  file  usually assumes that this is on; i.e., <B>am</B>.
-       If the terminal has a command which  moves  to  the  first
-       column  of the next line, that command can be given as <B>nel</B>
-       (newline).  It does not matter if the command  clears  the
-       remainder  of  the current line, so if the terminal has no
-       <B>cr</B> and <B>lf</B> it may still be possible to craft a working  <B>nel</B>
+       The  <STRONG>am</STRONG>  capability tells whether the cursor sticks at the
+       right edge of the screen when text  is  output,  but  this
+       does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
+       The only local motion which is defined from the left  edge
+       is  if  <STRONG>bw</STRONG>  is  given, then a <STRONG>cub1</STRONG> from the left edge will
+       move to the right edge of the previous row.  If <STRONG>bw</STRONG> is  not
+       given,  the effect is undefined.  This is useful for draw-
+       ing a box around the edge of the screen, for example.   If
+       the  terminal has switch selectable automatic margins, the
+       <EM>terminfo</EM> file usually assumes that this is on;  i.e.,  <STRONG>am</STRONG>.
+       If  the  terminal  has  a command which moves to the first
+       column of the next line, that command can be given as  <STRONG>nel</STRONG>
+       (newline).   It  does not matter if the command clears the
+       remainder of the current line, so if the terminal  has  no
+       <STRONG>cr</STRONG>  and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
        out of one or both of them.
 
        These  capabilities  suffice  to  describe  hard-copy  and
        out of one or both of them.
 
        These  capabilities  suffice  to  describe  hard-copy  and
-       "glass-tty" terminals.  Thus  the  model  33  teletype  is
+       "glass-tty"  terminals.   Thus  the  model  33 teletype is
        described as
 
      33|tty33|tty|model 33 teletype,
        described as
 
      33|tty33|tty|model 33 teletype,
      ind=^J, lines#24,
 
 
      ind=^J, lines#24,
 
 
-   <B>Parameterized</B> <B>Strings</B>
-       Cursor  addressing  and other strings requiring parameters
-       in the terminal are described by  a  parameterized  string
-       capability,  with  <B><A HREF="printf.3S.html">printf(3S)</A></B>  like escapes <B>%x</B> in it.  For
-       example, to address the  cursor,  the  <B>cup</B>  capability  is
+   <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
+       Cursor addressing and other strings  requiring  parameters
+       in  the  terminal  are described by a parameterized string
+       capability, with <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG> like escapes <STRONG>%x</STRONG>  in  it.   For
+       example,  to  address  the  cursor,  the <STRONG>cup</STRONG> capability is
        given, using two parameters: the row and column to address
        to.  (Rows and columns are numbered from zero and refer to
        the physical screen visible to the user, not to any unseen
        given, using two parameters: the row and column to address
        to.  (Rows and columns are numbered from zero and refer to
        the physical screen visible to the user, not to any unseen
-       memory.)  If  the  terminal  has  memory  relative  cursor
-       addressing, that can be indicated by <B>mrcup</B>.
+       memory.)   If  the  terminal  has  memory  relative cursor
+       addressing, that can be indicated by <STRONG>mrcup</STRONG>.
 
 
-       The  parameter  mechanism uses a stack and special <B>%</B> codes
-       to manipulate it.  Typically a sequence will push  one  of
-       the  parameters  onto  the stack and then print it in some
+       The parameter mechanism uses a stack and special  <STRONG>%</STRONG>  codes
+       to  manipulate  it.  Typically a sequence will push one of
+       the parameters onto the stack and then print  it  in  some
        format.  Often more complex operations are necessary.
 
        format.  Often more complex operations are necessary.
 
-       The <B>%</B> encodings have the following meanings:
+       The <STRONG>%</STRONG> encodings have the following meanings:
 
             %%        outputs `%'
 
             %%        outputs `%'
-            %<I>[[</I>:<I>]flags][width[.precision]][</I>doxXs<I>]</I>
-                      as in <B>printf</B>, flags are [-+#] and space
+            %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
+                      as in <STRONG>printf</STRONG>, flags are [-+#] and space
             %c        print pop() like %c in printf()
             %s        print pop() like %s in printf()
 
             %c        print pop() like %c in printf()
             %s        print pop() like %s in printf()
 
-            %p[1-9]   push <I>i</I>'th parm
+            %p[1-9]   push <EM>i</EM>'th parm
             %P[a-z]   set dynamic variable [a-z] to pop()
             %g[a-z]   get dynamic variable [a-z] and push it
             %P[A-Z]   set static variable [a-z] to pop()
             %g[A-Z]   get static variable [a-z] and push it
             %P[a-z]   set dynamic variable [a-z] to pop()
             %g[a-z]   get dynamic variable [a-z] and push it
             %P[A-Z]   set static variable [a-z] to pop()
             %g[A-Z]   get static variable [a-z] and push it
-            %'<I>c</I>'      char constant <I>c</I>
-            %{<I>nn</I>}     integer constant <I>nn</I>
+            %'<EM>c</EM>'      char constant <EM>c</EM>
+            %{<EM>nn</EM>}     integer constant <EM>nn</EM>
             %l        push strlen(pop)
 
             %+ %- %* %/ %m
                       arithmetic (%m is mod): push(pop() op pop())
             %l        push strlen(pop)
 
             %+ %- %* %/ %m
                       arithmetic (%m is mod): push(pop() op pop())
-
             %&amp; %| %^  bit operations: push(pop() op pop())
             %= %&gt; %&lt;  logical operations: push(pop() op pop())
             %A, %O    logical and &amp; or operations (for conditionals)
             %&amp; %| %^  bit operations: push(pop() op pop())
             %= %&gt; %&lt;  logical operations: push(pop() op pop())
             %A, %O    logical and &amp; or operations (for conditionals)
                       ci are conditions, bi are bodies.
 
        Binary operations are in postfix form with the operands in
                       ci are conditions, bi are bodies.
 
        Binary operations are in postfix form with the operands in
-       the  usual  order.   That  is,  to  get  x-5 one would use
-       "%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,
        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-
-       its.  Thus its <B>cup</B> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
+       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
 
        The Microterm ACT-IV needs the current row and column sent
-       preceded  by  a <B>^T</B>, 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 (<B>cub1</B>), and to
-       move the cursor up one line on the screen (<B>cuu1</B>).  This is
-       necessary  because it is not always safe to transmit <B>\n</B> <B>^D</B>
-       and <B>\r</B>, as the system may change or  discard  them.   (The
-       library  routines  dealing  with terminfo set tty modes so
+       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
        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%'
        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.
 
 
        More complex arithmetic is possible using the stack.
 
 
-   <B>Cursor</B> <B>Motions</B>
+   <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
        If the terminal has a fast way to home the cursor (to very
        If the terminal has a fast way to home the cursor (to very
-       upper  left  corner  of  screen) then this can be given as
-       <B>home</B>; similarly a fast way of getting to the  lower  left-
-       hand  corner can be given as <B>ll</B>; this may involve going up
-       with <B>cuu1</B> from the home position,  but  a  program  should
-       never  do this itself (unless <B>ll</B> 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,
        addressing to (0,0): to the top left corner of the screen,
-       not  of  memory.   (Thus, the \EH sequence on HP terminals
-       cannot be used for <B>home</B>.)
+       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-
 
        If the terminal has row or column absolute cursor address-
-       ing,  these  can be given as single parameter capabilities
-       <B>hpa</B> (horizontal position absolute) and <B>vpa</B> (vertical posi-
+       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
        tion absolute).  Sometimes these are shorter than the more
-       general two parameter sequence (as with  the  hp2645)  and
-       can be used in preference to <B>cup</B>.  If there are parameter-
-       ized local motions (e.g., move  <I>n</I>  spaces  to  the  right)
-       these can be given as <B>cud</B>, <B>cub</B>, <B>cuf</B>, and <B>cuu</B> with a single
-       parameter indicating how many spaces to move.   These  are
-       primarily  useful  if the terminal does not have <B>cup</B>, such
+       general  two  parameter  sequence (as with the hp2645) and
+       can be used in preference to <STRONG>cup</STRONG>.  If there are parameter-
+       ized  local  motions  (e.g.,  move  <EM>n</EM> spaces to the right)
+       these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
+       parameter  indicating  how many spaces to move.  These are
+       primarily useful if the terminal does not have  <STRONG>cup</STRONG>,  such
        as the TEKTRONIX 4025.
 
        If the terminal needs to be in a special mode when running
        a program that uses these capabilities, the codes to enter
        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 <B>smcup</B> and <B>rmcup</B>.   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
        cursor addressing, a one screen-sized window must be fixed
-       into  the terminal for cursor addressing to work properly.
-       This is also used for the TEKTRONIX 4025, where <B>smcup</B> sets
-       the  command character to be the one used by terminfo.  If
-       the <B>smcup</B> sequence will not restore the  screen  after  an
-       <B>rmcup</B> sequence is output (to the state prior to outputting
-       <B>rmcup</B>), specify <B>nrrmc</B>.
+       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
+       <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
+       <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
 
 
 
 
-   <B>Area</B> <B>Clears</B>
+   <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
        If the terminal can clear from the current position to the
        If the terminal can clear from the current position to the
-       end  of  the  line,  leaving  the cursor where it is, this
-       should be given as <B>el</B>.  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
-       <B>el1</B>.   If the terminal can clear from the current position
-       to the end of the display, then this should  be  given  as
-       <B>ed</B>.   <B>Ed</B>  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 <B>ed</B> is not available.)
-
-
-   <B>Insert/delete</B> <B>line</B> <B>and</B> <B>vertical</B> <B>motions</B>
-       If  the terminal can open a new blank line before the line
-       where the cursor is, this should be given as <B>il1</B>; this  is
-       done  only  from the first position of a line.  The cursor
+       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
+       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
        must then appear on the newly blank line.  If the terminal
        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 <B>dl1</B>; this is done only from  the  first
-       position  on  the line to be deleted.  Versions of <B>il1</B> and
-       <B>dl1</B> which take a single parameter  and  insert  or  delete
-       that many lines can be given as <B>il</B> and <B>dl</B>.
-
-       If  the terminal has a settable scrolling region (like the
-       vt100) the command to set this can be described  with  the
-       <B>csr</B>  capability,  which  takes two parameters: the top and
+       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
        bottom lines of the scrolling region.  The cursor position
        is, alas, undefined after using this command.
 
        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
-       using <B>csr</B> on a properly chosen region; the <B>sc</B> and <B>rc</B> (save
-       and  restore  cursor)  commands may be useful for ensuring
-       that your synthesized insert/delete string does  not  move
-       the  cursor.  (Note that the <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B> library does this
-       synthesis  automatically,  so   you   need   not   compose
-       insert/delete strings for an entry with <B>csr</B>).
+       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
+       insert/delete strings for an entry with <STRONG>csr</STRONG>).
 
        Yet another way to construct insert and delete might be to
 
        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).
 
        however also has insert/delete).
 
-       Inserting lines at the top or bottom  of  the  screen  can
-       also  be  done using <B>ri</B> or <B>ind</B> on many terminals without a
-       true insert/delete line, and is often faster even on  ter-
+       Inserting  lines  at  the  top or bottom of the screen can
+       also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals  without  a
+       true  insert/delete line, and is often faster even on ter-
        minals with those features.
 
        minals with those features.
 
-       The  boolean  <B>non_dest_scroll_region</B> 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 <B>ri</B> followed by <B>dl1</B> or <B>ind</B>.  If the data
-       scrolled  off  the  bottom  of  the  region  by the <B>ri</B> re-
-       appears, then scrolling is non-destructive.  System V  and
-       XSI  Curses  expect that <B>ind</B>, <B>ri</B>, <B>indn</B>, and <B>rin</B> will simu-
-       late destructive scrolling; their  documentation  cautions
-       you  not  to  define <B>csr</B> unless this is true.  This <B>curses</B>
+       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>
        implementation is more liberal and will do explicit erases
        implementation is more liberal and will do explicit erases
-       after scrolling if <B>ndstr</B> is defined.
+       after scrolling if <STRONG>ndstr</STRONG> is defined.
 
        If the terminal has the ability to define a window as part
 
        If the terminal has the ability to define a window as part
-       of memory, which all commands affect, it should  be  given
-       as the parameterized string <B>wind</B>.  The four parameters are
-       the starting and ending lines in memory and  the  starting
+       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
        and ending columns in memory, in that order.
 
        and ending columns in memory, in that order.
 
-       If  the terminal can retain display memory above, then the
-       <B>da</B> capability should be given; if display  memory  can  be
-       retained  below,  then <B>db</B> should be given.  These indicate
-       that deleting a line  or  scrolling  may  bring  non-blank
-       lines  up  from  below  or that scrolling back with <B>ri</B> 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.
 
 
        bring down non-blank lines.
 
 
-   <B>Insert/Delete</B> <B>Character</B>
-       There are two basic kinds of  intelligent  terminals  with
-       respect  to insert/delete character which can be described
-       using <I>terminfo.</I>  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)
+   <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+       There  are  two  basic kinds of intelligent terminals with
+       respect to insert/delete character which can be  described
+       using  <EM>terminfo.</EM>   The most common insert/delete character
+       operations affect only the characters on the current  line
+       and  shift  characters  off  the  end of the line rigidly.
+       Other terminals, such as the Concept 100  and  the  Perkin
+       Elmer  Owl,  make  a distinction between typed and untyped
+       blanks on the screen, shifting upon an  insert  or  delete
+       only  to  an  untyped  blank on the screen which is either
+       eliminated, or expanded to two untyped  blanks.   You  can
+       determine  the  kind  of terminal you have by clearing the
+       screen and then typing text separated by  cursor  motions.
+       Type  "abc    def" using local cursor motions (not spaces)
        between the "abc" and the "def".  Then position the cursor
        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-
        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 <B>in</B>, 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
        for "insert null".  While these are two logically separate
-       attributes  (one line vs. multi-line insert mode, and spe-
-       cial treatment of untyped spaces) we have seen  no  termi-
-       nals whose insert mode cannot be described with the single
-       attribute.
+       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
        mode, and terminals which send a simple sequence to open a
-       blank position on the current  line.   Give  as  <B>smir</B>  the
-       sequence  to  get  into  insert  mode.   Give  as <B>rmir</B> the
-       sequence to leave insert  mode.   Now  give  as  <B>ich1</B>  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-
        sequence needed to be sent just before sending the charac-
-       ter to be inserted.  Most terminals  with  a  true  insert
-       mode  will  not give <B>ich1</B>; 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.
 
        to open a screen position should give it here.
 
-       If your terminal has both, insert mode is usually  prefer-
-       able  to  <B>ich1</B>.   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
        characters in an update using insert.  This requirement is
-       now rare; most <B>ich</B> sequences do not require previous smir,
-       and most smir insert modes do not require <B>ich1</B> before each
-       character.  Therefore, the  new  <B>curses</B>  actually  assumes
-       this  is the case and uses either <B>rmir</B>/<B>smir</B> or <B>ich</B>/<B>ich1</B> as
+       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
        appropriate (but not both).  If you have to write an entry
        appropriate (but not both).  If you have to write an entry
-       to  be  used under new curses for a terminal old enough to
-       need both, include the <B>rmir</B>/<B>smir</B> sequences in <B>ich1</B>.
+       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
 
        If post insert padding is needed, give this as a number of
-       milliseconds  in <B>ip</B> (a string option).  Any other sequence
-       which may need to be sent after  an  insert  of  a  single
-       character may also be given in <B>ip</B>.  If your terminal needs
+       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
        both to be placed into an `insert mode' and a special code
-       to  precede  each  inserted character, then both <B>smir</B>/<B>rmir</B>
-       and <B>ich1</B> can be given, and both will  be  used.   The  <B>ich</B>
-       capability, with one parameter, <I>n</I>, will repeat the effects
-       of <B>ich1</B> <I>n</I> times.
+       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
 
        If padding is necessary between characters typed while not
-       in  insert  mode,  give  this  as a number of milliseconds
-       padding in <B>rmp</B>.
-
-       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 <B>mir</B> to speed up  inserting  in  this  case.
-       Omitting  <B>mir</B>  will  affect  only  speed.   Some terminals
-       (notably Datamedia's) must not have <B>mir</B> because of the way
+       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
+       (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
        their insert mode works.
 
        their insert mode works.
 
-       Finally,  you  can specify <B>dch1</B> to delete a single charac-
-       ter, <B>dch</B> with one parameter, <I>n</I>, to  delete  <I>n</I>  <I>characters,</I>
-       and  delete mode by giving <B>smdc</B> and <B>rmdc</B> to enter and exit
-       delete mode (any mode the terminal needs to be  placed  in
-       for <B>dch1</B> to work).
+       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 <I>n</I> characters (equivalent to outputting
-       <I>n</I> blanks without moving the cursor) can be  given  as  <B>ech</B>
+       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.
 
 
        with one parameter.
 
 
-   <B>Highlighting,</B> <B>Underlining,</B> <B>and</B> <B>Visible</B> <B>Bells</B>
+   <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
        If  your  terminal  has  one  or  more  kinds  of  display
-       attributes, these can be represented in a number  of  dif-
-       ferent ways.  You should choose one display form as <I>stand-</I>
-       <I>out</I> <I>mode</I>, 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
-       <B>smso</B>  and  <B>rmso</B>, 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 <B>xmc</B> should be given to tell how many spaces are left.
-
-       Codes  to  begin  underlining  and  end underlining can be
-       given as <B>smul</B> and <B>rmul</B> respectively.  If the terminal  has
-       a  code  to  underline  the current character and move the
+       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,
+       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
        cursor one space to the right, such as the Microterm Mime,
        cursor one space to the right, such as the Microterm Mime,
-       this can be given as <B>uc</B>.
-
-       Other  capabilities  to  enter  various highlighting modes
-       include <B>blink</B> (blinking) <B>bold</B> (bold or extra  bright)  <B>dim</B>
-       (dim  or  half-bright)  <B>invis</B> (blanking or invisible text)
-       <B>prot</B> (protected) <B>rev</B> (reverse video) <B>sgr0</B>  (turn  off  <I>all</I>
-       attribute  modes)  <B>smacs</B>  (enter  alternate  character set
-       mode) and  <B>rmacs</B>  (exit  alternate  character  set  mode).
-       Turning  on  any of these modes singly may or may not turn
+       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
        off other modes.
 
        off other modes.
 
-       If there is a sequence to set  arbitrary  combinations  of
-       modes,  this should be given as <B>sgr</B> (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-
        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 <B>sgr</B>, 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:
 
        corresponding separate attribute commands exist.
 
        For example, the DEC vt220 supports most of the modes:
 
-           <B>tparm</B> <B>parameter</B>   <B>attribute</B>    <B>escape</B> <B>sequence</B>
+           <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
 
            none              none         \E[0m
            p1                standout     \E[0;1;7m
            p8                protect      not used
            p9                altcharset   ^O (off) ^N (on)
 
            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
        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.
 
        \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.
 
        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
 
        dencies yields
 
-         <B>sequence</B>    <B>when</B> <B>to</B> <B>output</B>     <B>terminfo</B> <B>translation</B>
+         <STRONG>sequence</STRONG>    <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG>     <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
 
          \E[0       always              \E[0
          ;1         if p1 or p6         %?%p1%p6%|%t;1%;
          ;4         if p2               %?%p2%|%t;4%;
 
          \E[0       always              \E[0
          ;1         if p1 or p6         %?%p1%p6%|%t;1%;
          ;4         if p2               %?%p2%|%t;4%;
-
          ;5         if p4               %?%p4%|%t;5%;
          ;7         if p1 or p3         %?%p1%p3%|%t;7%;
          ;8         if p7               %?%p7%|%t;8%;
          ;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%;
 
          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%;,
 
            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
+       Remember that if you specify sgr, you  must  also  specify
        sgr0.
 
        sgr0.
 
-       Terminals with the ``magic cookie'' glitch  (<B>xmc</B>)  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
-       <B>msgr</B> capability, asserting that it  is  safe  to  move  in
+       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.
 
        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
-       be given as <B>flash</B>; it must not move the cursor.
+       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
        when it is not on the bottom line (to make, for example, a
-       non-blinking  underline  into  an  easier to find block or
-       blinking underline) give this sequence as <B>cvvis</B>.  If there
-       is  a  way  to  make the cursor completely invisible, give
-       that as <B>civis</B>.  The capability <B>cnorm</B> should be given which
+       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
+       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
        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 <B>ul</B>.  If a
-       character overstriking another leaves both  characters  on
-       the screen, specify the capability <B>os</B>.  If overstrikes are
-       erasable with a blank, then this should  be  indicated  by
-       giving <B>eo</B>.
+       (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
+       giving <STRONG>eo</STRONG>.
 
 
 
 
-   <B>Keypad</B> <B>and</B> <B>Function</B> <B>Keys</B>
+   <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
        If the terminal has a keypad that transmits codes when the
        If the terminal has a keypad that transmits codes when the
-       keys are pressed, this information can be given. Note that
-       it  is  not  possible to handle terminals where the keypad
-       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  <B>smkx</B>  and
-       <B>rmkx</B>.  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 <B>kcub1,</B> <B>kcuf1,</B>
-       <B>kcuu1,</B> <B>kcud1,</B> and <B>khome</B> respectively.  If there are  func-
-       tion  keys  such  as f0, f1, ..., f10, the codes they send
-       can be given as <B>kf0,</B> <B>kf1,</B> <B>...,</B> <B>kf10</B>.  If these  keys  have
-       labels  other  than the default f0 through f10, the labels
-       can be given as <B>lf0,</B> <B>lf1,</B> <B>...,</B> <B>lf10</B>.  The codes  transmit-
-       ted  by certain other special keys can be given: <B>kll</B> (home
-       down), <B>kbs</B>  (backspace),  <B>ktbc</B>  (clear  all  tabs),  <B>kctab</B>
-       (clear the tab stop in this column), <B>kclr</B> (clear screen or
-       erase key), <B>kdch1</B> (delete character), <B>kdl1</B> (delete  line),
-       <B>krmir</B>  (exit insert mode), <B>kel</B> (clear to end of line), <B>ked</B>
-       (clear to end of screen), <B>kich1</B> (insert character or enter
-       insert  mode),  <B>kil1</B>  (insert  line), <B>knp</B> (next page), <B>kpp</B>
-       (previous page), <B>kind</B> (scroll forward/down),  <B>kri</B>  (scroll
-       backward/up),  <B>khts</B>  (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 <B>ka1</B>, <B>ka3</B>, <B>kb2</B>, <B>kc1</B>, and <B>kc3</B>.   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 <B>pfkey</B>,
-       <B>pfloc</B>, and <B>pfx</B>.  A string to program screen labels  should
-       be  specified  as  <B>pln</B>.   Each  of these strings takes two
+       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
+       <STRONG>rmkx</STRONG>.  Otherwise the keypad is assumed to always transmit.
+       The  codes  sent by the left arrow, right arrow, up arrow,
+       down arrow, and home keys can be given  as  <STRONG>kcub1,</STRONG>  <STRONG>kcuf1,</STRONG>
+       <STRONG>kcuu1,</STRONG>  <STRONG>kcud1,</STRONG>  and  <STRONG>khome</STRONG>  respectively.   If  there  are
+       function keys such as f0, f1, ...,  f10,  the  codes  they
+       send  can  be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>.  If these keys
+       have labels other than the default  f0  through  f10,  the
+       labels  can  be  given  as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.  The codes
+       transmitted by certain other special keys  can  be  given:
+       <STRONG>kll</STRONG>  (home  down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
+       <STRONG>kctab</STRONG> (clear the tab stop in  this  column),  <STRONG>kclr</STRONG>  (clear
+       screen  or  erase  key),  <STRONG>kdch1</STRONG>  (delete  character), <STRONG>kdl1</STRONG>
+       (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
+       of  line),  <STRONG>ked</STRONG>  (clear  to  end of screen), <STRONG>kich1</STRONG> (insert
+       character or enter insert mode), <STRONG>kil1</STRONG> (insert  line),  <STRONG>knp</STRONG>
+       (next  page),  <STRONG>kpp</STRONG>  (previous  page),  <STRONG>kind</STRONG>  (scroll  for-
+       ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
+       in  this column).  In addition, if the keypad has a 3 by 3
+       array of keys including the four  arrow  keys,  the  other
+       five  keys  can  be  given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
+       These keys are useful when the effects of a 3 by 3  direc-
+       tional pad are needed.
+
+       Strings  to  program  function keys can be given as <STRONG>pfkey</STRONG>,
+       <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.  A string to program screen labels  should
+       be  specified  as  <STRONG>pln</STRONG>.   Each  of these strings takes two
        parameters: the function key number to program (from 0  to
        10)  and the string to program it with.  Function key num-
        bers out of this range may program  undefined  keys  in  a
        terminal  dependent  manner.   The  difference between the
        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 <B>pfkey</B> causes pressing the  given  key
-       to  be the same as the user typing the given string; <B>pfloc</B>
+       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;
        causes the string to be executed by the terminal in local;
-       and  <B>pfx</B>  causes  the string to be transmitted to the com-
+       and  <STRONG>pfx</STRONG>  causes  the string to be transmitted to the com-
        puter.
 
        puter.
 
-       The capabilities <B>nlab</B>, <B>lw</B> and <B>lh</B> define the number of pro-
+       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
        grammable  screen  labels  and their width and height.  If
        there are commands to turn the labels  on  and  off,  give
-       them  in <B>smln</B> and <B>rmln</B>.  <B>smln</B> is normally output after one
+       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.
 
 
        or more pln sequences to make sure that the change becomes
        visible.
 
 
-   <B>Tabs</B> <B>and</B> <B>Initialization</B>
+   <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
        If  the terminal has hardware tabs, the command to advance
        If  the terminal has hardware tabs, the command to advance
-       to the next tab stop can be given as <B>ht</B>  (usually  control
+       to the next tab stop can be given as <STRONG>ht</STRONG>  (usually  control
        I).   A  ``back-tab''  command which moves leftward to the
        I).   A  ``back-tab''  command which moves leftward to the
-       preceding tab stop can be given as <B>cbt</B>.  By convention, if
+       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,
        the  teletype  modes indicate that tabs are being expanded
        by the computer rather than being sent  to  the  terminal,
-       programs  should  not  use <B>ht</B> or <B>cbt</B> even if they are pre-
+       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-
        sent, since the user may not have the tab  stops  properly
        set.   If  the  terminal  has hardware tabs which are ini-
-       tially set every <I>n</I> spaces when the terminal is powered up,
-       the  numeric  parameter <B>it</B> is given, showing the number of
+       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
        spaces the tabs are set to.  This is normally used by  the
-       <I>tset</I>  command  to  determine  whether  to set the mode for
+       <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.
 
        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 <B>is1</B>, <B>is2</B>, and <B>is3</B>, initializa-
-       tion strings for the terminal, <B>iprog</B>, the path name  of  a
-       program  to be run to initialize the terminal, and <B>if</B>, the
+       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.
        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 <I>init</I> option
-       of the <I>tput</I> program, each time the  user  logs  in.   They
+       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
        will  be  printed  in the following order: run the program
-       <B>iprog</B>; output <B>is1</B>; <B>is2</B>; set the margins  using  <B>mgc</B>,  <B>smgl</B>
-       and  <B>smgr</B>;  set tabs using <B>tbc</B> and <B>hts</B>; print the file <B>if</B>;
-       and finally output <B>is3</B>.
+       <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  <B>is2</B>.   Special  terminal
+       Most initialization is done with  <STRONG>is2</STRONG>.   Special  terminal
        modes can be set up without duplicating strings by putting
        modes can be set up without duplicating strings by putting
-       the common sequences in <B>is2</B> and special cases in  <B>is1</B>  and
-       <B>is3</B>.   A pair of sequences that does a harder reset from a
-       totally unknown state can be  analogously  given  as  <B>rs1</B>,
-       <B>rs2</B>,  <B>rf</B>, and <B>rs3</B>, analogous to <B>is2</B> and <B>if</B>.  These strings
-       are output by the <I>reset</I> program, which is  used  when  the
+       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
        terminal  gets into a wedged state.  Commands are normally
-       placed in <B>rs1</B>, <B>rs2</B> <B>rs3</B> and <B>rf</B> only if they produce  annoy-
+       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
        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 <B>is2</B>, but it
+       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
        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 <B>tbc</B> (clear all tab stops) and <B>hts</B> (set a tab
+       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
        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  <B>is2</B>  or
-       <B>if</B>.
+       described by this, the sequence can be placed  in  <STRONG>is2</STRONG>  or
+       <STRONG>if</STRONG>.
 
 
-   <B>Delays</B> <B>and</B> <B>Padding</B>
+   <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
        Many  older  and  slower  terminals  don't  support either
        XON/XOFF or DTR handshaking, including hard copy terminals
        and  some  very  archaic CRTs (including, for example, DEC
        Many  older  and  slower  terminals  don't  support either
        XON/XOFF or DTR handshaking, including hard copy terminals
        and  some  very  archaic CRTs (including, for example, DEC
 
        If the terminal uses xon/xoff handshaking for flow control
        (that is, it automatically emits ^S back to the host  when
 
        If the terminal uses xon/xoff handshaking for flow control
        (that is, it automatically emits ^S back to the host  when
-       its input buffers are close to full), set <B>xon</B>.  This capa-
+       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
        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
        sions about relative costs, but actual pad characters will
        not be transmitted.
 
        sions about relative costs, but actual pad characters will
        not be transmitted.
 
-       If  <B>pb</B> (padding baud rate) is given, padding is suppressed
-       at baud rates below the value of <B>pb</B>.  If the entry has  no
+       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
        padding  baud rate, then whether padding is emitted or not
-       is completely controlled by <B>xon</B>.
+       is completely controlled by <STRONG>xon</STRONG>.
 
        If the terminal requires other than a null (zero)  charac-
 
        If the terminal requires other than a null (zero)  charac-
-       ter  as  a  pad,  then this can be given as <B>pad</B>.  Only the
-       first character of the <B>pad</B> string is used.
+       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.
 
 
 
 
-   <B>Status</B> <B>Lines</B>
+   <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 <B>lines</B> capability).
+       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 <B>hs</B> capability.
+       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
 
        Some terminals with status lines need special sequences to
        access the status line.   These  may  be  expressed  as  a
-       string with single parameter <B>tsl</B> which takes the cursor to
+       string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
        a given zero-origin column on the status line.  The  capa-
        a given zero-origin column on the status line.  The  capa-
-       bility <B>fsl</B> must return to the main-screen cursor positions
-       before the last <B>tsl</B>.  You may need  to  embed  the  string
-       values  of <B>sc</B> (save cursor) and <B>rc</B> (restore cursor) in <B>tsl</B>
-       and <B>fsl</B> to accomplish this.
+       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
 
        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 <B>wsl</B>.
+       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 <B>dsl</B>.
+       fied as <STRONG>dsl</STRONG>.
 
 
-       The   boolean   capability  <B>eslok</B>  specifies  that  escape
-       sequences, tabs, etc. work ordinarily in the status  line.
+       The   boolean   capability  <STRONG>eslok</STRONG>  specifies  that  escape
+       sequences, tabs, etc., work ordinarily in the status line.
 
 
-       The  <B>ncurses</B>  implementation does not yet use any of these
+       The  <STRONG>ncurses</STRONG>  implementation does not yet use any of these
        capabilities.  They are documented here in case they  ever
        become important.
 
 
        capabilities.  They are documented here in case they  ever
        become important.
 
 
-   <B>Line</B> <B>Graphics</B>
+   <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
        Many  terminals  have  alternate character sets useful for
        Many  terminals  have  alternate character sets useful for
-       forms-drawing.  Terminfo and <B>curses</B> build in  support  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
        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 <B>acsc</B> capability.
+       character set may be specified by the <STRONG>acsc</STRONG> capability.
 
 
-                <B>Glyph</B>             <B>ACS</B>            <B>Ascii</B>      <B>VT100</B>
-                 <B>Name</B>             <B>Name</B>           <B>Default</B>    <B>Name</B>
+                <STRONG>Glyph</STRONG>             <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>      <STRONG>VT100</STRONG>
+                 <STRONG>Name</STRONG>             <STRONG>Name</STRONG>           <STRONG>Default</STRONG>    <STRONG>Name</STRONG>
        UK pound sign              ACS_STERLING   f          }
        arrow pointing down        ACS_DARROW     v          .
        arrow pointing left        ACS_LARROW     &lt;          ,
        UK pound sign              ACS_STERLING   f          }
        arrow pointing down        ACS_DARROW     v          .
        arrow pointing left        ACS_LARROW     &lt;          ,
        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
        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
-       <B>smacs</B>/<B>rmacs</B> switches) will be rendered as the  correspond-
+       <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.
 
 
        ing  graphic.  Then read off the VT100/your terminal char-
        acter pairs right to left in sequence;  these  become  the
        ACSC string.
 
 
-   <B>Color</B> <B>Handling</B>
+   <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
        ANSI-compatible terminals are Tektronix-like.
 
        Some basic color capabilities are independent of the color
        ANSI-compatible terminals are Tektronix-like.
 
        Some basic color capabilities are independent of the color
-       method.  The numeric capabilities <B>colors</B> and <B>pairs</B> specify
+       method.  The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
        the  maximum numbers of colors and color-pairs that can be
        the  maximum numbers of colors and color-pairs that can be
-       displayed simultaneously.  The <B>op</B> (original  pair)  string
+       displayed simultaneously.  The <STRONG>op</STRONG> (original  pair)  string
        resets  foreground  and background colors to their default
        resets  foreground  and background colors to their default
-       values for the terminal.  The <B>oc</B> string resets all  colors
+       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
        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 <B>bce</B>.
+       have the boolean capability <STRONG>bce</STRONG>.
 
        To  change the current foreground or background color on a
 
        To  change the current foreground or background color on a
-       Tektronix-type terminal, use <B>setaf</B> (set  ANSI  foreground)
-       and  <B>setab</B>  (set ANSI background) or <B>setf</B> (set foreground)
-       and <B>setb</B> (set background).  These take one parameter,  the
+       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
        color  number.   The  SVr4  documentation  describes  only
-       <B>setaf</B>/<B>setab</B>; 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-
        supports ANSI escape sequences to set background and fore-
-       ground, they should be coded as <B>setaf</B> and  <B>setab</B>,  respec-
+       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
        tively.   If  the terminal supports other escape sequences
        to set background and foreground, they should be coded  as
-       <B>setf</B>  and  <B>setb</B>, respectively.  The <I>vidputs()</I> function and
-       the refresh functions use <B>setaf</B>  and  <B>setab</B>  if  they  are
+       <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."
 
        defined."
 
-       The  <B>setaf</B>/<B>setab</B>  and <B>setf</B>/<B>setb</B> 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  are  portably
        defined  as  follows  (the  middle  column is the symbolic
        numeric argument each.  Argument values 0-7  are  portably
        defined  as  follows  (the  middle  column is the symbolic
-       #define available in the header for the <B>curses</B> or  <B>ncurses</B>
+       #define available in the header for the <STRONG>curses</STRONG> or  <STRONG>ncurses</STRONG>
        libraries).  The terminal hardware is free to map these as
        it likes, but the RGB values indicate normal locations  in
        color space.
 
        libraries).  The terminal hardware is free to map these as
        it likes, but the RGB values indicate normal locations  in
        color space.
 
-             <B>Color</B>       <B>#define</B>       <B>Value</B>       <B>RGB</B>
-             black     <B>COLOR_BLACK</B>       0     0, 0, 0
-             red       <B>COLOR_RED</B>         1     max,0,0
-             green     <B>COLOR_GREEN</B>       2     0,max,0
-             yellow    <B>COLOR_YELLOW</B>      3     max,max,0
-             blue      <B>COLOR_BLUE</B>        4     0,0,max
-             magenta   <B>COLOR_MAGENTA</B>     5     max,0,max
-             cyan      <B>COLOR_CYAN</B>        6     0,max,max
-             white     <B>COLOR_WHITE</B>       7     max,max,max
-
-       On  an  HP-like terminal, use <B>scp</B> with a color-pair number
+             <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
+             green     <STRONG>COLOR_GREEN</STRONG>       2     0,max,0
+             yellow    <STRONG>COLOR_YELLOW</STRONG>      3     max,max,0
+             blue      <STRONG>COLOR_BLUE</STRONG>        4     0,0,max
+             magenta   <STRONG>COLOR_MAGENTA</STRONG>     5     max,0,max
+             cyan      <STRONG>COLOR_CYAN</STRONG>        6     0,max,max
+             white     <STRONG>COLOR_WHITE</STRONG>       7     max,max,max
+
+       On  an  HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
        parameter to set which color pair is current.
 
        parameter to set which color pair is current.
 
-       On a Tektronix-like terminal, the capability  <B>ccc</B>  may  be
+       On a Tektronix-like terminal, the capability  <STRONG>ccc</STRONG>  may  be
        present  to  indicate that colors can be modified.  If so,
        present  to  indicate that colors can be modified.  If so,
-       the <B>initc</B> capability will take a color number (0 to <B>colors</B>
+       the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
        -  1)and  three  more parameters which describe the color.
        These three parameters default to being interpreted as RGB
        -  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 <B>hls</B>
+       (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.
 
        is present, they are instead as HLS (Hue, Lightness, Satu-
        ration) indices.  The ranges are terminal-dependent.
 
-       On  an  HP-like  terminal, <B>initp</B> may give a capability for
+       On  an  HP-like  terminal, <STRONG>initp</STRONG> may give a capability for
        changing a color-pair value.  It will take  seven  parame-
        changing a color-pair value.  It will take  seven  parame-
-       ters;  a  color-pair  number (0 to <B>max_pairs</B> - 1), and two
+       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
        triples describing first background  and  then  foreground
        colors.   These  parameters  must be (Red, Green, Blue) or
-       (Hue, Lightness, Saturation) depending on <B>hls</B>.
+       (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 <B>ncv</B> capability.
+       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 <B>curses</B> is as follows:
+       understood by <STRONG>curses</STRONG> is as follows:
 
 
-                      <B>Attribute</B>      <B>Bit</B>   <B>Decimal</B>
+                      <STRONG>Attribute</STRONG>      <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>
                       A_STANDOUT     0     1
                       A_UNDERLINE    1     2
                       A_REVERSE      2     4
                       A_STANDOUT     0     1
                       A_UNDERLINE    1     2
                       A_REVERSE      2     4
 
        For example,  on  many  IBM  PC  consoles,  the  underline
        attribute  collides  with the foreground color blue and is
 
        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  <B>ncv</B>
+       not available in color mode.  These  should  have  an  <STRONG>ncv</STRONG>
        capability of 2.
 
        capability of 2.
 
-       SVr4  curses  does nothing with <B>ncv</B>, ncurses recognizes it
+       SVr4  curses  does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
        and optimizes the output in favor of colors.
 
 
        and optimizes the output in favor of colors.
 
 
-   <B>Miscellaneous</B>
+   <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-
        nal does not have a pad character, specify npc.  Note that
        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  <B>PC</B>  variable;
+       ncurses implements  the  termcap-compatible  <STRONG>PC</STRONG>  variable;
        though  the  application  may  set this value to something
        though  the  application  may  set this value to something
-       other than a null, ncurses will test  <B>npc</B>  first  and  use
+       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
        napms if the terminal has no pad character.
 
        If  the terminal can move up or down half a line, this can
-       be indicated with <B>hu</B>  (half-line  up)  and  <B>hd</B>  (half-line
-       down).   This  is  primarily  useful  for superscripts and
-       subscripts on hard-copy terminals.  If a hard-copy  termi-
-       nal  can  eject to the next page (form feed), give this as
-       <B>ff</B> (usually control L).
+       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>
+       (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
 
        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  <B>rep</B>.   The  first  parameter is 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
        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 <B>cmdch</B>.  A
+       the  TEKTRONIX  4025, this can be indicated with <STRONG>cmdch</STRONG>.  A
        prototype command character is chosen which is used in all
        prototype command character is chosen which is used in all
-       capabilities.   This character is given in the <B>cmdch</B> capa-
+       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
        bility to identify it.  The following convention  is  sup-
        ported  on  some  UNIX  systems:  The environment is to be
-       searched for a <B>CC</B> variable, and if found, all  occurrences
+       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
        of the prototype character are replaced with the character
        in the environment variable.
 
        Terminal descriptions that do  not  represent  a  specific
-       kind of known terminal, such as <I>switch</I>, <I>dialup</I>, <I>patch</I>, and
-       <I>network</I>, should include the  <B>gn</B>  (generic)  capability  so
+       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
        that  programs  can  complain that they do not know how to
        talk to the terminal.  (This capability does not apply  to
-       <I>virtual</I>   terminal   descriptions  for  which  the  escape
+       <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,
        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 <B>km</B>.   Otherwise,  software
+       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''
        will assume that the 8th bit is parity and it will usually
        be cleared.  If strings exist to turn this  ``meta  mode''
-       on and off, they can be given as <B>smm</B> and <B>rmm</B>.
+       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
 
        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  <B>lm</B>.   A  value of <B>lm</B>#0 indicates that the
+       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
        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
-       as <B>vt</B>.
+       as <STRONG>vt</STRONG>.
 
        Media copy strings which control an auxiliary printer con-
 
        Media copy strings which control an auxiliary printer con-
-       nected to the terminal can be given as <B>mc0</B>: print the con-
-       tents  of  the screen, <B>mc4</B>: turn off the printer, and <B>mc5</B>:
+       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
        undefined whether the text is also displayed on the termi-
        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 <B>mc5p</B> takes
+       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
        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
-       text,  including  <B>mc4</B>,  is  transparently  passed  to  the
-       printer while an <B>mc5p</B> is in effect.
+       text,  including  <STRONG>mc4</STRONG>,  is  transparently  passed  to  the
+       printer while an <STRONG>mc5p</STRONG> is in effect.
 
 
 
 
-   <B>Glitches</B> <B>and</B> <B>Braindamage</B>
+   <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 <B>hz</B>.
+       be displayed should indicate <STRONG>hz</STRONG>.
 
 
-       Terminals which ignore a line-feed immediately after an <B>am</B>
-       wrap, such as the Concept and vt100, should indicate <B>xenl</B>.
+       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  <B>el</B>  is  required  to  get  rid of standout (instead of
-       merely writing normal text on top of it),  <B>xhp</B>  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
        given.
 
        Teleray  terminals,  where  tabs turn all characters moved
-       over to blanks, should  indicate  <B>xt</B>  (destructive  tabs).
+       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
        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
        tation ignores this glitch.
 
        The  Beehive Superbee, which is unable to correctly trans-
        tation ignores this glitch.
 
        The  Beehive Superbee, which is unable to correctly trans-
-       mit the escape or control C characters, has <B>xsb</B>,  indicat-
+       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
        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
        `no_esc_ctl_c'.
 
        Other  specific  terminal  problems  may  be  corrected by
        `no_esc_ctl_c'.
 
        Other  specific  terminal  problems  may  be  corrected by
-       adding more capabilities of the form <B>x</B><I>x</I>.
+       adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
 
 
 
 
-   <B>Similar</B> <B>Terminals</B>
+   <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-
        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 <B>use</B> can be given with the name
-       of the base terminal.  The capabilities given  before  <B>use</B>
-       override  those  in  the base type named by <B>use</B>.  If there
-       are multiple <B>use</B> capabilities, they are merged in  reverse
-       order.   That is, the rightmost <B>use</B> reference is processed
+       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
        first, then the one to its left, and so forth.   Capabili-
        ties  given explicitly in the entry override those brought
-       in by <B>use</B> references.
+       in by <STRONG>use</STRONG> references.
 
 
-       A capability can be canceled by placing <B>xx@</B> to the left of
-       the  use  reference that imports it, where <I>xx</I> is the capa-
+       A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
+       the  use  reference that imports it, where <EM>xx</EM> is the capa-
        bility.  For example, the entry
        bility.  For example, the entry
-
                    2621-nl, smkx@, rmkx@, use=2621,
 
                    2621-nl, smkx@, rmkx@, use=2621,
 
-       defines a 2621-nl that does not  have  the  <B>smkx</B>  or  <B>rmkx</B>
+       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.
 
 
        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.
 
 
-   <B>Pitfalls</B> <B>of</B> <B>Long</B> <B>Entries</B>
+   <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
        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
        minal types and users whose TERM variable does not have  a
        termcap entry.
 
        minal types and users whose TERM variable does not have  a
        termcap entry.
 
-       When in -C (translate to termcap) mode, the <B>ncurses</B> imple-
-       mentation of <B><A HREF="tic.1.html">tic(1)</A></B> issues warning messages when the  pre-
+       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)
        lengths.
 
        tc  length  of  a termcap translation is too long.  The -c
        (check) option also checks resolved (after  tc  expansion)
        lengths.
 
-   <B>Binary</B> <B>Compatibility</B>
+   <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
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       Some  SVr4  <B>curses</B>  implementations,  and  all previous to
+       Some  SVr4  <STRONG>curses</STRONG>  implementations,  and  all previous to
        SVr4, don't interpret the %A and %O operators in parameter
        strings.
        SVr4, don't interpret the %A and %O operators in parameter
        strings.
-       SVr4/XPG4  do  not  specify whether <B>msgr</B> licenses movement
+
+       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
        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   <B>ncurses</B>   implementation
-       ignores  <B>msgr</B>  in <B>ALTCHARSET</B> mode.  This raises the possi-
+       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
        bility that an XPG4  implementation  making  the  opposite
-       interpretation  may need terminfo entries made for <B>ncurses</B>
-       to have <B>msgr</B> turned off.
+       interpretation  may need terminfo entries made for <STRONG>ncurses</STRONG>
+       to have <STRONG>msgr</STRONG> turned off.
 
 
-       The <B>ncurses</B> library handles insert-character  and  insert-
-       character modes in a slightly non-standard way in order to
-       get better update efficiency.  See the <B>Insert/Delete</B> <B>Char-</B>
-       <B>acter</B> subsection above.
+       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>
+       subsection above.
 
 
-       The   parameter   substitutions  for  <B>set_clock</B>  and  <B>dis-</B>
-       <B>play_clock</B> 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.
 
        standard.  They are deduced from the documentation for the
        AT&amp;T 505 terminal.
 
-       Be careful assigning the <B>kmous</B>  capability.   The  <B>ncurses</B>
-       wants  to  interpret it as <B>KEY_MOUSE</B>, for use by terminals
+       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.
 
        and emulators like xterm that  can  return  mouse-tracking
        information in the keyboard-input stream.
 
        cases) different extension sets.  Here is a summary, accu-
        rate as of October 1995:
 
        cases) different extension sets.  Here is a summary, accu-
        rate as of October 1995:
 
-       <B>SVR4,</B> <B>Solaris,</B> <B>ncurses</B> -- These support all SVr4 capabili-
+       <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
        ties.
 
        ties.
 
-       <B>SGI</B>  --  Supports  the  SVr4  set,  adds  one undocumented
-       extended string capability (<B>set_pglen</B>).
+       <STRONG>SGI</STRONG>  --  Supports  the  SVr4  set,  adds  one undocumented
+       extended string capability (<STRONG>set_pglen</STRONG>).
 
 
-       <B>SVr1,</B> <B>Ultrix</B> -- These support a restricted subset of  ter-
-       minfo  capabilities.   The booleans end with <B>xon_xoff</B>; the
-       numerics with  <B>width_status_line</B>;  and  the  strings  with
-       <B>prtr_non</B>.
+       <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>.
 
 
-       <B>HP/UX</B>  --  Supports  the  SVr1  subset,  plus the SVr[234]
-       numerics <B>num_labels</B>, <B>label_height</B>, <B>label_width</B>, plus func-
-       tion  keys  11  through  63, plus <B>plab_norm</B>, <B>label_on</B>, and
-       <B>label_off</B>, plus some incompatible extensions in the string
+       <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
+       <STRONG>label_off</STRONG>, plus some incompatible extensions in the string
        table.
 
        table.
 
-       <B>AIX</B>  --  Supports  the  SVr1 subset, plus function keys 11
+       <STRONG>AIX</STRONG>  --  Supports  the  SVr1 subset, plus function keys 11
        through 63, plus a number  of  incompatible  string  table
        extensions.
 
        through 63, plus a number  of  incompatible  string  table
        extensions.
 
-       <B>OSF</B>  -- Supports both the SVr4 set and the AIX extensions.
+       <STRONG>OSF</STRONG>  -- Supports both the SVr4 set and the AIX extensions.
 
 
 </PRE>
 
 
 </PRE>
                                 descriptions
 
 
                                 descriptions
 
 
+
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="tic.1m.html">tic(1m)</A></B>, <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="printf.3S.html">printf(3S)</A></B>, <B><A HREF="term.5.html">term(5)</A></B>.
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
 
 
 
 
 
 
+
+
 
 
 
 
 
 
index eddb81959c5d35c0d8714c0dfde21f08a5067cd4..e7963e618abc9af37e431837fc4ce4f0a32fedf6 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: tic.1m,v 1.33 2002/10/05 20:06:13 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>tic 1m</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>tic 1m</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>tic</B> - the <I>terminfo</I> entry-description compiler
+       <STRONG>tic</STRONG> - the <EM>terminfo</EM> entry-description compiler
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>tic</B>  [<B>-1CINRTVacfrsx</B>]  [<B>-e</B> <I>names</I>] [<B>-o</B> <I>dir</I>] [<B>-v</B>[<I>n</I>]] [<B>-w</B>[<I>n</I>]]
-       <I>file</I>
+       <STRONG>tic</STRONG>  [<STRONG>-1CGILNTVacfgrstx</STRONG>]  [<STRONG>-e</STRONG>  <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>]
+       [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The command <B>tic</B> translates a  <B>terminfo</B>  file  from  source
+       The command <STRONG>tic</STRONG> translates a  <STRONG>terminfo</STRONG>  file  from  source
        format  into compiled format.  The compiled format is nec-
        format  into compiled format.  The compiled format is nec-
-       essary for use with the library routines in <B><A HREF="ncurses.3x.html">ncurses(3x)</A></B>.
+       essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
 
        The results are normally placed  in  the  system  terminfo
 
        The results are normally placed  in  the  system  terminfo
-       directory  <B>/usr/share/terminfo</B>.   There  are  two  ways to
+       directory  <STRONG>/usr/share/terminfo</STRONG>.   There  are  two  ways to
        change this behavior.
 
        First, you may override the system default by setting  the
        change this behavior.
 
        First, you may override the system default by setting  the
-       variable  <B>TERMINFO</B>  in  your  shell environment to a valid
+       variable  <STRONG>TERMINFO</STRONG>  in  your  shell environment to a valid
        (existing) directory name.
 
        (existing) directory name.
 
-       Secondly, if <B>tic</B> cannot get access to  <I>/usr/share/terminfo</I>
+       Secondly, if <STRONG>tic</STRONG> cannot get access to  <EM>/usr/share/terminfo</EM>
        or  your  TERMINFO  directory,  it looks for the directory
        or  your  TERMINFO  directory,  it looks for the directory
-       <I>$HOME/.terminfo</I>; if that directory exists,  the  entry  is
+       <EM>$HOME/.terminfo</EM>; if that directory exists,  the  entry  is
        placed there.
 
        Libraries that read terminfo entries are expected to check
        placed there.
 
        Libraries that read terminfo entries are expected to check
-       for a TERMINFO directory first, look at <I>$HOME/.terminfo</I> if
-       TERMINFO  is  not set, and finally look in <I>/usr/share/ter-</I>
-       <I>minfo</I>.
+       for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
+       TERMINFO  is  not set, and finally look in <EM>/usr/share/ter-</EM>
+       <EM>minfo</EM>.
+
+       <STRONG>-1</STRONG>     restricts the output to a single column
 
 
-       <B>-a</B>     tells  <B>tic</B>  to  retain  commented-out  capabilities
+       <STRONG>-a</STRONG>     tells  <STRONG>tic</STRONG>  to  retain  commented-out  capabilities
               rather than discarding them.  Capabilities are com-
               mented by prefixing them with a period.  This  sets
               rather than discarding them.  Capabilities are com-
               mented by prefixing them with a period.  This  sets
-              the  <B>-x</B> option, because it treats the commented-out
+              the  <STRONG>-x</STRONG> option, because it treats the commented-out
               entries as user-defined names.
 
               entries as user-defined names.
 
-       <B>-c</B>     tells <B>tic</B> to only check <I>file</I> for errors,  including
+       <STRONG>-C</STRONG>     Force source translation to termcap format.   Note:
+              this  differs  from the -C option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
+              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.
+
+       <STRONG>-c</STRONG>     tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors,  including
               syntax  problems and bad use links.  If you specify
               syntax  problems and bad use links.  If you specify
-              <B>-C</B> (<B>-I</B>) with this option, the code will print warn-
+              <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn-
               ings about entries which, after use resolution, are
               more than 1023 (4096) bytes long.  Due to  a  fixed
               buffer  length  in  older  termcap libraries (and a
               documented limit in terminfo),  these  entries  may
               cause core dumps.
 
               ings about entries which, after use resolution, are
               more than 1023 (4096) bytes long.  Due to  a  fixed
               buffer  length  in  older  termcap libraries (and a
               documented limit in terminfo),  these  entries  may
               cause core dumps.
 
-       <B>-v</B><I>n</I>    specifies that (verbose) output be written to stan-
-              dard  error   trace   information   showing   <B>tic</B>'s
-              progress.   The optional integer <I>n</I> is a number from
-              1 to 10, inclusive, indicating the desired level of
-              detail  of  information.   If  <I>n</I>  is  omitted,  the
-              default level is 1.  If <I>n</I> is specified and  greater
-              than 1, the level of detail is increased.
-
-       <B>-o</B><I>dir</I>  Write   compiled   entries   to   given  directory.
-              Overrides the TERMINFO environment variable.
-
-       <B>-w</B><I>n</I>    specifies the width of the output.
-
-       <B>-1</B>     restricts the output to a single column
+       <STRONG>-e</STRONG> <EM>names</EM>
+              Limit  writes  and  translations  to  the following
+              comma-separated list of terminals.  If any name  or
+              alias of a terminal matches one of the names in the
+              list, the entry will be written  or  translated  as
+              normal.   Otherwise no output will be generated for
+              it.  The option value is interpreted as a file con-
+              taining  the  list  if  it  contains a '/'.  (Note:
+              depending on how tic was compiled, this option  may
+              require -I or -C.)
 
 
-       <B>-C</B>     Force source translation to termcap format.   Note:
-              this  differs  from the -C option of <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B> 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.
+       <STRONG>-f</STRONG>     Display  complex  terminfo  strings  which  contain
+              if/then/else/endif expressions indented  for  read-
+              ability.
 
 
-       <B>-G</B>     Display constant literals in  decimal  form  rather
+       <STRONG>-G</STRONG>     Display  constant  literals  in decimal form rather
               than their character equivalents.
 
               than their character equivalents.
 
-       <B>-I</B>     Force source translation to terminfo format.
+       <STRONG>-g</STRONG>     Display constant character literals in quoted  form
+              rather than their decimal equivalents.
 
 
-       <B>-L</B>     Force  source  translation to terminfo format using
-              the long C variable names listed in &lt;<B>term.h</B>&gt;
+       <STRONG>-I</STRONG>     Force source translation to terminfo format.
 
 
-       <B>-N</B>     Disable smart defaults.  Normally, when translating
+       <STRONG>-L</STRONG>     Force  source  translation to terminfo format using
+              the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
+
+       <STRONG>-N</STRONG>     Disable smart defaults.  Normally, when translating
               from termcap to terminfo, the compiler makes a num-
               ber of assumptions about  the  defaults  of  string
               from termcap to terminfo, the compiler makes a num-
               ber of assumptions about  the  defaults  of  string
-              capabilities  <B>reset1_string</B>,  <B>carriage_return</B>, <B>cur-</B>
-              <B>sor_left</B>, <B>cursor_down</B>,  <B>scroll_forward</B>,  <B>tab</B>,  <B>new-</B>
-              <B>line</B>,  <B>key_backspace</B>,  <B>key_left</B>, and <B>key_down</B>, then
+              capabilities  <STRONG>reset1_string</STRONG>,  <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
+              <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>,  <STRONG>scroll_forward</STRONG>,  <STRONG>tab</STRONG>,  <STRONG>new-</STRONG>
+              <STRONG>line</STRONG>,  <STRONG>key_backspace</STRONG>,  <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
               attempts to use obsolete  termcap  capabilities  to
               deduce correct values.  It also normally suppresses
               attempts to use obsolete  termcap  capabilities  to
               deduce correct values.  It also normally suppresses
-              output of obsolete termcap capabilities such as <B>bs</B>.
+              output of obsolete termcap capabilities such as <STRONG>bs</STRONG>.
               This  option forces a more literal translation that
               also preserves the obsolete capabilities.
 
               This  option forces a more literal translation that
               also preserves the obsolete capabilities.
 
-       <B>-R</B><I>subset</I>
-              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 don't  support
-              the  full set of SVR4/XSI Curses terminfo; and out-
+       <STRONG>-o</STRONG><EM>dir</EM>  Write compiled entries to given  directory.   Over-
+              rides the TERMINFO environment variable.
+
+       <STRONG>-R</STRONG><EM>subset</EM>
+              Restrict  output to a given subset.  This option is
+              for use with  archaic  versions  of  terminfo  like
+              those on SVr1, Ultrix, or HP/UX that do not support
+              the full set of SVR4/XSI Curses terminfo; and  out-
               right broken ports like AIX 3.x that have their own
               right broken ports like AIX 3.x that have their own
-              extensions  incompatible  with SVr4/XSI.  Available
+              extensions incompatible with  SVr4/XSI.   Available
               subsets  are  "SVr1",  "Ultrix",  "HP",  "BSD"  and
               subsets  are  "SVr1",  "Ultrix",  "HP",  "BSD"  and
-              "AIX"; see <B><A HREF="terminfo.5.html">terminfo(5)</A></B> for details.
+              "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
 
 
-       <B>-T</B>     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).
+       <STRONG>-r</STRONG>     Force entry resolution (so there are  no  remaining
+              tc  capabilities)  even  when  doing translation to
+              termcap format.  This may  be  needed  if  you  are
+              preparing  a  termcap  file  for  a termcap library
+              (such as GNU termcap through  version  1.3  or  BSD
+              termcap through 4.3BSD) that does not handle multi-
+              ple tc capabilities per entry.
 
 
-       <B>-V</B>     reports the version of ncurses which  was  used  in
-              this program, and exits.
+       <STRONG>-s</STRONG>     Summarize the compile by showing the directory into
+              which  entries  are  written,  and  the  number  of
+              entries which are compiled.
 
 
-       <B>-r</B>     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 up to version 1.3 or BSD term-
-              cap up to 4.3BSD) that doesn't handle  multiple  tc
-              capabilities per entry.
+       <STRONG>-T</STRONG>     eliminates size-restrictions on the generated text.
+              This  is  mainly  useful  for testing and analysis,
+              since the compiled descriptions are limited  (e.g.,
+              1023 for termcap, 4096 for terminfo).
 
 
-       <B>-e</B>     Limit  writes  and  translations  to  the following
-              comma-separated list of terminals.  If any name  or
-              alias of a terminal matches one of the names in the
-              list, the entry will be written  or  translated  as
-              normal.   Otherwise no output will be generated for
-              it.  The option value is interpreted as a file con-
-              taining  the  list  if  it  contains a '/'.  (Note:
-              depending on how tic was compiled, this option  may
-              require -I or -C.)
+       <STRONG>-t</STRONG>     tells  <STRONG>tic</STRONG>  to  discard commented-out capabilities.
+              Normally when translating from terminfo to termcap,
+              untranslatable capabilities are commented-out.
 
 
-       <B>-f</B>     Display  complex  terminfo  strings  which  contain
-              if/then/else/endif expressions indented  for  read-
-              ability.
+       <STRONG>-V</STRONG>     reports  the  version  of ncurses which was used in
+              this program, and exits.
 
 
-       <B>-g</B>     Display  constant character literals in quoted form
-              rather than their decimal equivalents.
+       <STRONG>-v</STRONG><EM>n</EM>    specifies that (verbose) output be written to stan-
+              dard   error   trace   information   showing  <STRONG>tic</STRONG>'s
+              progress.  The optional integer <EM>n</EM> is a number  from
+              1 to 10, inclusive, indicating the desired level of
+              detail  of  information.   If  <EM>n</EM>  is  omitted,  the
+              default  level is 1.  If <EM>n</EM> is specified and greater
+              than 1, the level of detail is increased.
 
 
-       <B>-s</B>     Summarize the compile by showing the directory into
-              which  entries  are  written,  and  the  number  of
-              entries which are compiled.
+       <STRONG>-w</STRONG><EM>n</EM>    specifies the width of the output.
 
 
-       <B>-x</B>     Treat unknown capabilities as  user-defined.   That
-              is,  if you supply a capability name which <B>tic</B> does
+       <STRONG>-x</STRONG>     Treat unknown capabilities as  user-defined.   That
+              is,  if you supply a capability name which <STRONG>tic</STRONG> does
               not recognize, it will  infer  its  type  (boolean,
               number  or  string)  from  the  syntax  and make an
               extended table entry for that.
 
               not recognize, it will  infer  its  type  (boolean,
               number  or  string)  from  the  syntax  and make an
               extended table entry for that.
 
-       <I>file</I>   contains one or more <B>terminfo</B> terminal descriptions
-              in  source format [see <B><A HREF="terminfo.5.html">terminfo(5)</A></B>].  Each descrip-
+       <EM>file</EM>   contains one or more <STRONG>terminfo</STRONG> terminal descriptions
+              in  source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>].  Each descrip-
               tion in the file describes the  capabilities  of  a
               particular terminal.
 
               tion in the file describes the  capabilities  of  a
               particular terminal.
 
        9      All  values  computed  in  construction of the hash
               table
 
        9      All  values  computed  in  construction of the hash
               table
 
-       If n is not given, it is taken to be one.
+       If the debug level <EM>n</EM> is not given, it is taken to be  one.
 
 
-       All but one of the capabilities recognized by <B>tic</B> are doc-
-       umented in <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.  The exception is the <B>use</B> capabil-
+       All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
+       umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  The exception is the <STRONG>use</STRONG> capabil-
        ity.
 
        ity.
 
-       When a <B>use</B>=<I>entry</I>-<I>name</I> field is discovered  in  a  terminal
-       entry  currently  being  compiled, <B>tic</B> reads in the binary
-       from <B>/usr/share/terminfo</B> to complete the entry.   (Entries
-       created  from <I>file</I> will be used first.  If the environment
-       variable <B>TERMINFO</B>  is  set,  that  directory  is  searched
-       instead of <B>/usr/share/terminfo</B>.)  <B>tic</B> duplicates the capa-
-       bilities in <I>entry</I>-<I>name</I> for the  current  entry,  with  the
-       exception   of  those  capabilities  that  explicitly  are
+       When  a  <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM>  field is discovered in a terminal
+       entry currently being compiled, <STRONG>tic</STRONG> reads  in  the  binary
+       from  <STRONG>/usr/share/terminfo</STRONG> to complete the entry.  (Entries
+       created from <EM>file</EM> will be used first.  If the  environment
+       variable  <STRONG>TERMINFO</STRONG>  is  set,  that  directory  is searched
+       instead of <STRONG>/usr/share/terminfo</STRONG>.)  <STRONG>tic</STRONG> duplicates the capa-
+       bilities  in  <EM>entry</EM>-<EM>name</EM>  for  the current entry, with the
+       exception  of  those  capabilities  that  explicitly   are
        defined in the current entry.
 
        defined in the current entry.
 
-       When   an   entry,   e.g.,   <B>entry_name_1</B>,   contains    a
-       <B>use=</B><I>entry</I>_<I>name</I>_<I>2</I>   field,  any  canceled  capabilities  in
-       <I>entry</I>_<I>name</I>_<I>2</I> must also appear in <B>entry_name_1</B> before  <B>use=</B>
-       for these capabilities to be canceled in <B>entry_name_1</B>.
+       When    an   entry,   e.g.,   <STRONG>entry_name_1</STRONG>,   contains   a
+       <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM>  field,  any  canceled  capabilities   in
+       <EM>entry</EM>_<EM>name</EM>_<EM>2</EM>  must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
+       for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
 
 
-       If  the environment variable <B>TERMINFO</B> is set, the compiled
-       results are placed there instead of <B>/usr/share/terminfo</B>.
+       If the environment variable <STRONG>TERMINFO</STRONG> is set, the  compiled
+       results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
 
        Total compiled entries cannot exceed 4096 bytes.  The name
 
        Total compiled entries cannot exceed 4096 bytes.  The name
-       field  cannot  exceed 512 bytes.  Terminal names exceeding
-       the maximum alias length (32 characters  on  systems  with
+       field cannot exceed 512 bytes.  Terminal  names  exceeding
+       the  maximum  alias  length (32 characters on systems with
        long filenames, 14 characters otherwise) will be truncated
        long filenames, 14 characters otherwise) will be truncated
-       to the maximum alias length and a warning message will  be
+       to  the maximum alias length and a warning message will be
        printed.
 
 
 </PRE>
 <H2>COMPATIBILITY</H2><PRE>
        printed.
 
 
 </PRE>
 <H2>COMPATIBILITY</H2><PRE>
-       There  is  some evidence that historic <B>tic</B> implementations
-       treated description fields with no whitespace in  them  as
-       additional  aliases  or short names.  This <B>tic</B> does not do
-       that, but it does warn  when  description  fields  may  be
-       treated  that way and check them for dangerous characters.
+       There is some evidence that historic  <STRONG>tic</STRONG>  implementations
+       treated  description  fields with no whitespace in them as
+       additional aliases or short names.  This <STRONG>tic</STRONG> does  not  do
+       that,  but  it  does  warn  when description fields may be
+       treated that way and check them for dangerous  characters.
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       Unlike the stock SVr4 <B>tic</B> command, this implementation can
-       actually  compile  termcap  sources.   In fact, entries in
-       terminfo and termcap syntax  can  be  mixed  in  a  single
-       source  file.   See  <B><A HREF="terminfo.5.html">terminfo(5)</A></B>  for  the list of termcap
+       Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can
+       actually compile termcap sources.   In  fact,  entries  in
+       terminfo  and  termcap  syntax  can  be  mixed in a single
+       source file.  See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  for  the  list  of  termcap
        names taken to be equivalent to terminfo names.
 
        names taken to be equivalent to terminfo names.
 
-       The SVr4 manual pages are  not  clear  on  the  resolution
-       rules  for  <B>use</B>  capabilities.  This implementation of <B>tic</B>
-       will find <B>use</B> targets anywhere in the source file, or any-
-       where  in the file tree rooted at <B>TERMINFO</B> (if <B>TERMINFO</B> is
-       defined), or in the user's <I>$HOME/.terminfo</I>  directory  (if
-       it  exists),  or  (finally)  anywhere in the system's file
+       The  SVr4  manual  pages  are  not clear on the resolution
+       rules for <STRONG>use</STRONG> capabilities.  This  implementation  of  <STRONG>tic</STRONG>
+       will find <STRONG>use</STRONG> targets anywhere in the source file, or any-
+       where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG>  is
+       defined),  or  in the user's <EM>$HOME/.terminfo</EM> directory (if
+       it exists), or (finally) anywhere  in  the  system's  file
        tree of compiled entries.
 
        tree of compiled entries.
 
-       The error messages from this <B>tic</B> have the same  format  as
-       GNU  C  error  messages,  and can be parsed by GNU Emacs's
+       The  error  messages from this <STRONG>tic</STRONG> have the same format as
+       GNU C error messages, and can be  parsed  by  GNU  Emacs's
        compile facility.
 
        compile facility.
 
-       The <B>-C</B>, <B>-G</B>, <B>-I</B>, <B>-N</B>, <B>-R</B>, <B>-T</B>, <B>-V</B>, <B>-a</B>, <B>-e</B>, <B>-f</B>, <B>-g</B>, <B>-o</B>, <B>-r</B>, <B>-s</B>
-       and  <B>-x</B> options are not supported under SVr4.  The SVr4 -c
-       mode does not report bad use links.
+       The  <STRONG>-C</STRONG>,  <STRONG>-G</STRONG>,  <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-o</STRONG>, <STRONG>-r</STRONG>,
+       <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under  SVr4.   The
+       SVr4 -c mode does not report bad use links.
 
 
-       System V does not compile entries to or read entries  from
-       your  <I>$HOME/.terminfo</I> directory unless TERMINFO is explic-
+       System  V does not compile entries to or read entries from
+       your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is  explic-
        itly set to it.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
        itly set to it.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
-       <B>/usr/share/terminfo/?/*</B>
+       <STRONG>/usr/share/terminfo/?/*</STRONG>
             Compiled terminal description database.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Compiled terminal description database.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B>,   <B><A HREF="captoinfo.1m.html">captoinfo(1m)</A></B>,   <B><A HREF="infotocap.1m.html">infotocap(1m)</A></B>,    <B><A HREF="toe.1m.html">toe(1m)</A></B>,
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
-
-
-
-
-
+       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,    <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
 
 
 
 
index 887a9c4950487119dd9ee771a474371e6a5eb90f..441ff7004ae4eea5293ddd4edb93d88646415c50 100644 (file)
@@ -1,21 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: toe.1m,v 1.10 2000/08/19 18:51:05 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>toe 1m</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>toe 1m</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>toe</B> - table of (terminfo) entries
+       <STRONG>toe</STRONG> - table of (terminfo) entries
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>toe</B> [<B>-v</B>[<I>n</I>]] [<B>-huUV</B>] <I>file...</I>
+       <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-huUV</STRONG>] <EM>file...</EM>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       With no options, <B>toe</B> lists all available terminal types by
+       With no options, <STRONG>toe</STRONG> 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
        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
@@ -25,7 +63,7 @@
        There are other options intended for use by terminfo  file
        maintainers:
 
        There are other options intended for use by terminfo  file
        maintainers:
 
-       <B>-u</B> <I>file</I>
+       <STRONG>-u</STRONG> <EM>file</EM>
               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 termi-
               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 termi-
@@ -34,7 +72,7 @@
               of all terminals which occur in those use capabili-
               ties, followed by a newline
 
               of all terminals which occur in those use capabili-
               ties, followed by a newline
 
-       <B>-U</B> <I>file</I>
+       <STRONG>-U</STRONG> <EM>file</EM>
               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
               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
               rated primary names of all terminals  which  depend
               on it, followed by a newline.
 
               rated primary names of all terminals  which  depend
               on it, followed by a newline.
 
-       <B>-v</B><I>n</I>    specifies that (verbose) output be written to stan-
-              dard  error   trace   information   showing   <B>toe</B>'s
-              progress.   The optional integer <I>n</I> is a number from
-              1 to 10, interpreted as for <B><A HREF="tic.1.html">tic(1)</A></B>.
+       <STRONG>-v</STRONG><EM>n</EM>    specifies that (verbose) output be written to stan-
+              dard  error   trace   information   showing   <STRONG>toe</STRONG>'s
+              progress.   The optional integer <EM>n</EM> is a number from
+              1 to 10, interpreted as for <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG>.
 
 
-       <B>-V</B>   reports the version of ncurses which was used in this
+       <STRONG>-V</STRONG>   reports the version of ncurses which was used in this
             program, and exits.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
             program, and exits.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
-       <B>/usr/share/terminfo/?/*</B>
+       <STRONG>/usr/share/terminfo/?/*</STRONG>
             Compiled terminal description database.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
             Compiled terminal description database.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="tic.1m.html">tic(1m)</A></B>,    <B><A HREF="infocmp.1m.html">infocmp(1m)</A></B>,   <B><A HREF="captoinfo.1m.html">captoinfo(1m)</A></B>,   <B><A HREF="infotocap.1m.html">infotocap(1m)</A></B>,
-       <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,    <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 
 
 
 
 
index 17c55aad6f11001b0ccab10daa2ea7680d971e27..e9029a53f1a2e61a657d8e573b6927a615a3df05 100644 (file)
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  * t
+  ****************************************************************************
+  * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: tput.1,v 1.18 2002/10/12 13:53:20 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>tput 1</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>tput 1</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>tput</B>,  <B>reset</B>  -  initialize  a  terminal or query terminfo
+       <STRONG>tput</STRONG>,  <STRONG>reset</STRONG>  -  initialize  a  terminal or query terminfo
        database
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        database
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>tput</B> [<B>-T</B><I>type</I>] <I>capname</I> [<I>parms</I> ... ]
-       <B>tput</B> [<B>-T</B><I>type</I>] <B>init</B>
-       <B>tput</B> [<B>-T</B><I>type</I>] <B>reset</B>
-       <B>tput</B> [<B>-T</B><I>type</I>] <B>longname</B>
-       <B>tput</B> <B>-S</B>  <B>&lt;&lt;</B>
-       <B>tput</B> <B>-V</B>
+       <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <EM>capname</EM> [<EM>parms</EM> ... ]
+       <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>init</STRONG>
+       <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>reset</STRONG>
+       <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>longname</STRONG>
+       <STRONG>tput</STRONG> <STRONG>-S</STRONG>  <STRONG>&lt;&lt;</STRONG>
+       <STRONG>tput</STRONG> <STRONG>-V</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <B>tput</B> utility uses the <B>terminfo</B> database  to  make  the
+       The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database  to  make  the
        values  of terminal-dependent capabilities and information
        values  of terminal-dependent capabilities and information
-       available to the shell (see <B><A HREF="sh.1.html">sh(1)</A></B>), to initialize or reset
+       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
        the  terminal,  or  return  the long name of the requested
-       terminal type.  <B>tput</B> outputs a  string  if  the  attribute
-       (<I>cap</I>ability  <I>name</I>) is of type string, or an integer if the
+       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
        attribute is of type integer.  If the attribute is of type
-       boolean, <B>tput</B> simply sets the exit code (<B>0</B> for TRUE if the
-       terminal has the capability, <B>1</B> for FALSE if it does  not),
+       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
        and  produces no output.  Before using a value returned on
-       standard output, the user should test the exit  code  [<B>$?</B>,
-       see  <B><A HREF="sh.1.html">sh(1)</A></B>]  to  be sure it is <B>0</B>.  (See the <B>EXIT</B> <B>CODES</B> and
-       <B>DIAGNOSTICS</B> sections.)  For a complete list  of  capabili-
-       ties  and  the  <I>capname</I>  associated  with  each,  see <B>ter-</B>
-       <B><A HREF="minfo.5.html">minfo(5)</A></B>.
+       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>.
 
 
-       <B>-T</B><I>type</I> indicates the  <I>type</I>  of  terminal.   Normally  this
+       <STRONG>-T</STRONG><EM>type</EM> indicates the  <EM>type</EM>  of  terminal.   Normally  this
               option is unnecessary, because the default is taken
               option is unnecessary, because the default is taken
-              from the environment variable <B>TERM</B>.  If <B>-T</B> is spec-
-              ified,  then  the shell variables <B>LINES</B> and <B>COLUMNS</B>
+              from the environment variable <STRONG>TERM</STRONG>.  If <STRONG>-T</STRONG> is spec-
+              ified,  then  the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
               will be ignored,and the operating system  will  not
               be queried for the actual screen size.
 
               will be ignored,and the operating system  will  not
               be queried for the actual screen size.
 
-       <I>capname</I>
-              indicates the attribute from the <B>terminfo</B> database.
-              When <B>termcap</B> support is compiled  in,  the  <B>termcap</B>
+       <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.
 
               name for the attribute is also accepted.
 
-       <I>parms</I>  If the attribute is a string that takes parameters,
-              the arguments <I>parms</I> will be instantiated  into  the
-              string.   An all numeric argument will be passed to
+       <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.
 
               the attribute as a number.
 
-       <B>-S</B>     allows more than one capability per  invocation  of
-              <B>tput</B>.  The capabilities must be passed to <B>tput</B> from
+              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.
+
+       <STRONG>-S</STRONG>     allows  more  than one capability per invocation of
+              <STRONG>tput</STRONG>.  The capabilities must be passed to <STRONG>tput</STRONG> from
               the standard input instead of from the command line
               the standard input instead of from the command line
-              (see  example).   Only  one  <I>capname</I> is allowed per
-              line.  The <B>-S</B> option changes the meaning of  the  <B>0</B>
-              and  <B>1</B>  boolean and string exit codes (see the EXIT
+              (see example).  Only one  <EM>capname</EM>  is  allowed  per
+              line.   The  <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
+              and <STRONG>1</STRONG> boolean and string exit codes (see  the  EXIT
               CODES section).
 
               CODES section).
 
-       <B>-V</B>     reports the version of ncurses which  was  used  in
+              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.
 
               this program, and exits.
 
-       <B>init</B>   If  the  <B>terminfo</B>  database is present and an entry
-              for the user's terminal exists (see <B>-T</B><I>type</I>, above),
-              the  following will occur: (1) if present, the ter-
-              minal's initialization strings will be output (<B>is1</B>,
-              <B>is2</B>,  <B>is3</B>,  <B>if</B>,  <B>iprog</B>), (2) any delays (e.g., new-
+       <STRONG>init</STRONG>   If the <STRONG>terminfo</STRONG> database is present  and  an  entry
+              for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above),
+              the following will occur: (1) if present, the  ter-
+              minal's initialization strings will be output (<STRONG>is1</STRONG>,
+              <STRONG>is2</STRONG>, <STRONG>is3</STRONG>, <STRONG>if</STRONG>, <STRONG>iprog</STRONG>), (2) any  delays  (e.g.,  new-
               line) specified in the entry will be set in the tty
               driver, (3) tabs expansion will be turned on or off
               line) specified in the entry will be set in the tty
               driver, (3) tabs expansion will be turned on or off
-              according to the specification in  the  entry,  and
+              according  to  the  specification in the entry, and
               (4) if tabs are not expanded, standard tabs will be
               set (every 8 spaces).  If an entry does not contain
               (4) if tabs are not expanded, standard tabs will be
               set (every 8 spaces).  If an entry does not contain
-              the  information  needed  for any of the four above
+              the information needed for any of  the  four  above
               activities, that activity will silently be skipped.
 
               activities, that activity will silently be skipped.
 
-       <B>reset</B>  Instead  of putting out initialization strings, the
-              terminal's reset strings will be output if  present
-              (<B>rs1</B>,  <B>rs2</B>, <B>rs3</B>, <B>rf</B>).  If the reset strings are not
-              present, but initialization strings are,  the  ini-
-              tialization  strings  will  be  output.  Otherwise,
-              <B>reset</B> acts identically to <B>init</B>.
+       <STRONG>reset</STRONG>  Instead of putting out initialization strings,  the
+              terminal's  reset strings will be output if present
+              (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>).  If the reset strings are  not
+              present,  but  initialization strings are, the ini-
+              tialization strings  will  be  output.   Otherwise,
+              <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
 
 
-       <B>longname</B>
-              If the <B>terminfo</B> database is present  and  an  entry
-              for  the user's terminal exists (see <B>-T</B><I>type</I> above),
+       <STRONG>longname</STRONG>
+              If  the  <STRONG>terminfo</STRONG>  database is present and an entry
+              for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>  above),
               then the long name of the terminal will be put out.
               The long name is the last name in the first line of
               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 <B>terminfo</B> database
-              [see <B><A HREF="term.5.html">term(5)</A></B>].
+              the terminal's description in the <STRONG>terminfo</STRONG> database
+              [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
 
 
-       If  <B>tput</B>  is  invoked  by a link named <B>reset</B>, this has the
-       same effect as <B>tput</B> <B>reset</B>.  See <B>tset</B> for comparison, which
+       If <STRONG>tput</STRONG> is invoked by a link named  <STRONG>reset</STRONG>,  this  has  the
+       same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>.  See <STRONG>tset</STRONG> for comparison, which
        has similar behavior.
 
 
 </PRE>
 <H2>EXAMPLES</H2><PRE>
        has similar behavior.
 
 
 </PRE>
 <H2>EXAMPLES</H2><PRE>
-       <B>tput</B> <B>init</B>
+       <STRONG>tput</STRONG> <STRONG>init</STRONG>
             Initialize the terminal according to the type of ter-
             Initialize the terminal according to the type of ter-
-            minal in the environmental variable <B>TERM</B>.  This  com-
-            mand  should be included in everyone's .profile after
-            the environmental variable <B>TERM</B> has been exported, as
-            illustrated on the <B><A HREF="profile.4.html">profile(4)</A></B> manual page.
-
-       <B>tput</B> <B>-T5620</B> <B>reset</B>
-            Reset  an  AT&amp;T 5620 terminal, overriding the type of
-            terminal in the environmental variable <B>TERM</B>.
-
-       <B>tput</B> <B>cup</B> <B>0</B> <B>0</B>
-            Send the sequence to move the cursor to row <B>0</B>, column
-            <B>0</B> (the upper left corner of the screen, usually known
+            minal  in the environmental variable <STRONG>TERM</STRONG>.  This com-
+            mand should be included in everyone's .profile  after
+            the environmental variable <STRONG>TERM</STRONG> has been exported, as
+            illustrated on the <STRONG><A HREF="profile.5.html">profile(5)</A></STRONG> manual page.
+
+       <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
+            Reset an AT&amp;T 5620 terminal, overriding the  type  of
+            terminal in the environmental variable <STRONG>TERM</STRONG>.
+
+       <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
+            Send the sequence to move the cursor to row <STRONG>0</STRONG>, column
+            <STRONG>0</STRONG> (the upper left corner of the screen, usually known
             as the "home" cursor position).
 
             as the "home" cursor position).
 
-       <B>tput</B> <B>clear</B>
-            Echo  the  clear-screen  sequence  for  the   current
-            terminal.
+       <STRONG>tput</STRONG> <STRONG>clear</STRONG>
+            Echo the clear-screen sequence for the current termi-
+            nal.
 
 
-       <B>tput</B> <B>cols</B>
+       <STRONG>tput</STRONG> <STRONG>cols</STRONG>
             Print the number of columns for the current terminal.
 
             Print the number of columns for the current terminal.
 
-       <B>tput</B> <B>-T450</B> <B>cols</B>
+       <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>cols</STRONG>
             Print the number of columns for the 450 terminal.
 
             Print the number of columns for the 450 terminal.
 
-       <B>bold=`tput</B> <B>smso`</B> <B>offbold=`tput</B> <B>rmso`</B>
-            Set the shell variables <B>bold</B>, to begin stand-out mode
-            sequence, and <B>offbold</B>, to end standout mode sequence,
-            for the current terminal.  This might be followed  by
-            a  prompt:  <B>echo</B>  <B>"${bold}Please</B>  <B>type</B>  <B>in</B> <B>your</B> <B>name:</B>
-            <B>${offbold}\c"</B>
+       <STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
+            Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode
+            sequence, and <STRONG>offbold</STRONG>, to end standout mode sequence,
+            for  the current terminal.  This might be followed by
+            a prompt: <STRONG>echo</STRONG>  <STRONG>"${bold}Please</STRONG>  <STRONG>type</STRONG>  <STRONG>in</STRONG>  <STRONG>your</STRONG>  <STRONG>name:</STRONG>
+            <STRONG>${offbold}\c"</STRONG>
 
 
-       <B>tput</B> <B>hc</B>
-            Set exit code to indicate if the current terminal  is
+       <STRONG>tput</STRONG> <STRONG>hc</STRONG>
+            Set  exit code to indicate if the current terminal is
             a hard copy terminal.
 
             a hard copy terminal.
 
-       <B>tput</B> <B>cup</B> <B>23</B> <B>4</B>
-            Send  the sequence to move the cursor to row 23, col-
+       <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
+            Send the sequence to move the cursor to row 23,  col-
             umn 4.
 
             umn 4.
 
-       <B>tput</B> <B>longname</B>
-            Print the long name from the  <B>terminfo</B>  database  for
+       <STRONG>tput</STRONG> <STRONG>cup</STRONG>
+            Send the terminfo string for cursor-movement, with no
+            parameters substituted.
+
+       <STRONG>tput</STRONG> <STRONG>longname</STRONG>
+            Print the long name from the  <STRONG>terminfo</STRONG>  database  for
             the  type  of terminal specified in the environmental
             the  type  of terminal specified in the environmental
-            variable <B>TERM</B>.
+            variable <STRONG>TERM</STRONG>.
 
 
-            <B>tput</B> <B>-S</B> <B>&lt;&lt;!</B>
-            <B>&gt;</B> <B>clear</B>
-            <B>&gt;</B> <B>cup</B> <B>10</B> <B>10</B>
-            <B>&gt;</B> <B>bold</B>
-            <B>&gt;</B> <B>!</B>
+            <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG>&lt;&lt;!</STRONG>
+            <STRONG>&gt;</STRONG> <STRONG>clear</STRONG>
+            <STRONG>&gt;</STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
+            <STRONG>&gt;</STRONG> <STRONG>bold</STRONG>
+            <STRONG>&gt;</STRONG> <STRONG>!</STRONG>
 
 
-            This example shows tput processing several  capabili-
-            ties  in  one  invocation.   This  example clears the
-            screen, moves the cursor to position 10, 10 and turns
-            on  bold (extra bright) mode.  The list is terminated
-            by an exclamation mark (<B>!</B>) on a line by itself.
+            This example shows <STRONG>tput</STRONG> processing several  capabili-
+            ties  in one invocation.  It clears the screen, moves
+            the cursor to position  10,  10  and  turns  on  bold
+            (extra  bright)  mode.   The list is terminated by an
+            exclamation mark (<STRONG>!</STRONG>) on a line by itself.
 
 
 </PRE>
 <H2>FILES</H2><PRE>
 
 
 </PRE>
 <H2>FILES</H2><PRE>
-       <B>/usr/share/terminfo</B>
+       <STRONG>/usr/share/terminfo</STRONG>
               compiled terminal description database
 
               compiled terminal description database
 
-       <B>/usr/include/curses.h</B>
-              <B><A HREF="ncurses.3x.html">curses(3x)</A></B> header file
+       <STRONG>/usr/include/curses.h</STRONG>
+              <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> header file
 
 
-       <B>/usr/include/term.h</B>
-              <B>terminfo</B> header file
+       <STRONG>/usr/include/term.h</STRONG>
+              <STRONG>terminfo</STRONG> header file
 
 
-       <B>/usr/share/tabset/*</B>
+       <STRONG>/usr/share/tabset/*</STRONG>
               tab settings for some terminals, in a format appro-
               priate   to  be  output  to  the  terminal  (escape
               sequences that set  margins  and  tabs);  for  more
               information, see the "Tabs and Initialization" sec-
               tab settings for some terminals, in a format appro-
               priate   to  be  output  to  the  terminal  (escape
               sequences that set  margins  and  tabs);  for  more
               information, see the "Tabs and Initialization" sec-
-              tion of <B><A HREF="terminfo.4.html">terminfo(4)</A></B>
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
-       <B><A HREF="clear.1.html">clear(1)</A></B>, <B><A HREF="stty.1.html">stty(1)</A></B>, <B><A HREF="tabs.5.html">tabs(5)</A></B>.   <B><A HREF="profile.5.html">profile(5)</A></B>,  <B><A HREF="terminfo.4.html">terminfo(4)</A></B>  in
-       the  <I>System</I>  <I>Administrator</I>'<I>s</I> <I>Reference</I> <I>Manual</I>.  Chapter 10
-       of the <I>Programmer</I>'<I>s</I> <I>Guide</I>.
+              tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 </PRE>
 <H2>EXIT CODES</H2><PRE>
 
 
 </PRE>
 <H2>EXIT CODES</H2><PRE>
-       If <I>capname</I> is of type boolean, a value of  <B>0</B>  is  set  for
-       TRUE and <B>1</B> for FALSE unless the <B>-S</B> option is used.
-
-       If  <I>capname</I>  is of type string, a value of <B>0</B> is set if the
-       <I>capname</I> is defined for this terminal <I>type</I>  (the  value  of
-       <I>capname</I>  is  returned on standard output); a value of <B>1</B> is
-       set if <I>capname</I> is not defined for this  terminal  <I>type</I>  (a
-       null value is returned on standard output).
-
-       If  <I>capname</I> is of type boolean or string and the <B>-S</B> option
-       is used, a value of <B>0</B> is returned  to  indicate  that  all
-       lines were successful.  No indication of which line failed
-       can be given so exit code <B>1</B> will never appear.  Exit codes
-       <B>2</B>, <B>3</B>, and <B>4</B> retain their usual interpretation.
-
-       If <I>capname</I> is of type integer, a value of <B>0</B> is always set,
-       whether or not <I>capname</I> is defined for this terminal  <I>type</I>.
-       To determine if <I>capname</I> is defined for this terminal <I>type</I>,
-       the user must test the value of standard output.  A  value
-       of  <B>-1</B> means that <I>capname</I> is not defined for this terminal
-       <I>type</I>.
-
-       Any other exit code indicates an error; see  the  DIAGNOS-
+       If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> 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.  If  no  errors
+       are  found,  the  exit  code is <STRONG>0</STRONG>.  No indication of which
+       line failed can be given so exit code <STRONG>1</STRONG> will never appear.
+       Exit  codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
+       If the <STRONG>-S</STRONG> option is not used, the exit code depends on the
+       type of <EM>capname</EM>:
+
+            <EM>boolean</EM>
+                   a  value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
+
+            <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is  defined
+                   for  this  terminal <EM>type</EM> (the value of <EM>capname</EM>
+                   is returned on standard output); a value of  <STRONG>1</STRONG>
+                   is set if <EM>capname</EM> is not defined for this ter-
+                   minal <EM>type</EM> (nothing  is  written  to  standard
+                   output).
+
+            <EM>integer</EM>
+                   a  value  of  <STRONG>0</STRONG>  is always set, whether or not
+                   <EM>capname</EM> is defined for this terminal <EM>type</EM>.  To
+                   determine  if <EM>capname</EM> is defined for this ter-
+                   minal <EM>type</EM>, the user must test the value writ-
+                   ten  to  standard output.  A value of <STRONG>-1</STRONG> means
+                   that <EM>capname</EM> is not defined for this  terminal
+                   <EM>type</EM>.
+
+            <EM>other</EM>  <STRONG>reset</STRONG>  or  <STRONG>init</STRONG> may fail to find their respec-
+                   tive files.  In that case, the  exit  code  is
+                   set to 4 + <STRONG>errno</STRONG>.
+
+       Any  other  exit code indicates an error; see the DIAGNOS-
        TICS section.
 
 
        TICS section.
 
 
+
 </PRE>
 <H2>DIAGNOSTICS</H2><PRE>
 </PRE>
 <H2>DIAGNOSTICS</H2><PRE>
-       <B>tput</B> prints the following error messages and sets the cor-
+       <STRONG>tput</STRONG> prints the following error messages and sets the cor-
        responding exit codes.
 
        exit code   error message
        ---------------------------------------------------------------------
        responding exit codes.
 
        exit code   error message
        ---------------------------------------------------------------------
-       <B>0</B>           (<I>capname</I> is a numeric variable that is not specified  in
-                   the  <B><A HREF="terminfo.5.html">terminfo(5)</A></B>  database  for this terminal type, e.g.
-                   <B>tput</B> <B>-T450</B> <B>lines</B> and <B>tput</B> <B>-T2621</B> <B>xmc</B>)
-       <B>1</B>           no error message is printed, see the <B>EXIT</B> <B>CODES</B> section.
-       <B>2</B>           usage error
-       <B>3</B>           unknown terminal <I>type</I> or no <B>terminfo</B> database
-       <B>4</B>           unknown <B>terminfo</B> capability <I>capname</I>
+       <STRONG>0</STRONG>           (<EM>capname</EM>  is a numeric variable that is not specified in
+                   the <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG> database for this  terminal  type,  e.g.
+                   <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
+       <STRONG>1</STRONG>           no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
+       <STRONG>2</STRONG>           usage error
+       <STRONG>3</STRONG>           unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
+       <STRONG>4</STRONG>           unknown <STRONG>terminfo</STRONG> capability <EM>capname</EM>
+       <STRONG>&gt;4</STRONG>          error occurred in -S
        ---------------------------------------------------------------------
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        ---------------------------------------------------------------------
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The <B>longname</B> and <B>-S</B> options, and  the  parameter-substitu-
-       tion  features  used in the <B>cup</B> example, are not supported
+       The  <STRONG>longname</STRONG>  and <STRONG>-S</STRONG> options, and the parameter-substitu-
+       tion features used in the <STRONG>cup</STRONG> example, are  not  supported
        in BSD curses or in AT&amp;T/USL curses before SVr4.
        in BSD curses or in AT&amp;T/USL curses before SVr4.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 </PRE>
 <HR>
 
 </PRE>
 <HR>
index 635ddd5335a0a73af26cfeeb3840b64ea90f50ca..5d806bda6d44b5f82ebbdc8a1583b173189529b4 100644 (file)
@@ -1,36 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * @Id: tset.1,v 1.12 2000/09/09 20:33:07 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>tset 1</TITLE>
+<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
 <BODY>
 <BODY>
+<H1>tset 1</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>tset</B>, <B>reset</B> - terminal initialization
+       <STRONG>tset</STRONG>, <STRONG>reset</STRONG> - terminal initialization
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       tset  [-IQVqrs]  [-]  [-e <I>ch</I>] [-i <I>ch</I>] [-k <I>ch</I>] [-m <I>mapping</I>]
-       [<I>terminal</I>]
-       reset [-IQVqrs] [-] [-e <I>ch</I>] [-i <I>ch</I>] [-k <I>ch</I>]  [-m  <I>mapping</I>]
-       [<I>terminal</I>]
+       tset  [-IQVqrs]  [-]  [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>] [-m <EM>mapping</EM>]
+       [<EM>terminal</EM>]
+       reset [-IQVqrs] [-] [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>]  [-m  <EM>mapping</EM>]
+       [<EM>terminal</EM>]
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       <B>Tset</B>  initializes  terminals.   <B>Tset</B>  first determines the
+       <STRONG>Tset</STRONG>  initializes  terminals.   <STRONG>Tset</STRONG>  first determines the
        type of terminal that you are using.   This  determination
        is done as follows, using the first terminal type found.
 
        type of terminal that you are using.   This  determination
        is done as follows, using the first terminal type found.
 
-       1. The <B>terminal</B> argument specified on the command line.
+       1. The <STRONG>terminal</STRONG> argument specified on the command line.
 
 
-       2. The value of the <B>TERM</B> environmental variable.
+       2. The value of the <STRONG>TERM</STRONG> environmental variable.
 
        3.  (BSD  systems only.) The terminal type associated with
 
        3.  (BSD  systems only.) The terminal type associated with
-       the standard error output device in  the  <I>/etc/ttys</I>  file.
-       (On Linux and System-V-like UNIXes, <I>getty</I> does this job by
-       setting <B>TERM</B>  according  to  the  type  passed  to  it  by
-       <I>/etc/inittab</I>.)
+       the standard error output device in  the  <EM>/etc/ttys</EM>  file.
+       (On Linux and System-V-like UNIXes, <EM>getty</EM> does this job by
+       setting <STRONG>TERM</STRONG>  according  to  the  type  passed  to  it  by
+       <EM>/etc/inittab</EM>.)
 
        4. The default terminal type, ``unknown''.
 
 
        4. The default terminal type, ``unknown''.
 
@@ -53,7 +91,7 @@
        have  changed,  or  are  not  set to their default values,
        their values are displayed to the standard error output.
 
        have  changed,  or  are  not  set to their default values,
        their values are displayed to the standard error output.
 
-       When invoked as <B>reset</B>, <B>tset</B> sets cooked  and  echo  modes,
+       When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets cooked  and  echo  modes,
        turns  off cbreak and raw modes, turns on newline transla-
        tion and resets any  unset  special  characters  to  their
        default  values  before  doing the terminal initialization
        turns  off cbreak and raw modes, turns on newline transla-
        tion and resets any  unset  special  characters  to  their
        default  values  before  doing the terminal initialization
@@ -61,7 +99,7 @@
        leaving  a  terminal  in an abnormal state.  Note, you may
        have to type
 
        leaving  a  terminal  in an abnormal state.  Note, you may
        have to type
 
-           <B>&lt;LF&gt;reset&lt;LF&gt;</B>
+           <STRONG>&lt;LF&gt;reset&lt;LF&gt;</STRONG>
 
        (the line-feed character is normally control-J) to get the
        terminal to work, as carriage-return may no longer work in
 
        (the line-feed character is normally control-J) to get the
        terminal to work, as carriage-return may no longer work in
             put, and the terminal is not initialized in any  way.
             The option `-' by itself is equivalent but archaic.
 
             put, and the terminal is not initialized in any  way.
             The option `-' by itself is equivalent but archaic.
 
-       -e   Set the erase character to <I>ch</I>.
+       -e   Set the erase character to <EM>ch</EM>.
 
        -I   Do  not  send  the  terminal  or  tab  initialization
             strings to the terminal.
 
        -I   Do  not  send  the  terminal  or  tab  initialization
             strings to the terminal.
        -Q   Don't display any values for the erase, interrupt and
             line kill characters.
 
        -Q   Don't display any values for the erase, interrupt and
             line kill characters.
 
-       <B>-V</B>   reports the version of ncurses which was used in this
+       <STRONG>-V</STRONG>   reports the version of ncurses which was used in this
             program, and exits.
 
             program, and exits.
 
-       -i   Set the interrupt character to <I>ch</I>.
+       -i   Set the interrupt character to <EM>ch</EM>.
 
 
-       -k   Set the line kill character to <I>ch</I>.
+       -k   Set the line kill character to <EM>ch</EM>.
 
        -m   Specify a mapping from a port  type  to  a  terminal.
             See below for more information.
 
        -m   Specify a mapping from a port  type  to  a  terminal.
             See below for more information.
        -r   Print the terminal type to the standard error output.
 
        -s   Print the sequence of shell  commands  to  initialize
        -r   Print the terminal type to the standard error output.
 
        -s   Print the sequence of shell  commands  to  initialize
-            the environment variable <B>TERM</B> to the standard output.
+            the environment variable <STRONG>TERM</STRONG> to the standard output.
             See the section below on setting the environment  for
             details.
 
             See the section below on setting the environment  for
             details.
 
 
        When the -s option is specified, the commands to enter the
        information  into  the  shell's environment are written to
 
        When the -s option is specified, the commands to enter the
        information  into  the  shell's environment are written to
-       the standard output.  If the <B>SHELL</B> environmental  variable
-       ends in ``csh'', the commands are for <B>csh</B>, otherwise, they
-       are for <B>sh</B>.  Note, the <B>csh</B>  commands  set  and  unset  the
-       shell  variable  <B>noglob</B>,  leaving it unset.  The following
-       line in the <B>.login</B> or <B>.profile</B> files will  initialize  the
+       the standard output.  If the <STRONG>SHELL</STRONG> environmental  variable
+       ends in ``csh'', the commands are for <STRONG>csh</STRONG>, otherwise, they
+       are for <STRONG>sh</STRONG>.  Note, the <STRONG>csh</STRONG>  commands  set  and  unset  the
+       shell  variable  <STRONG>noglob</STRONG>,  leaving it unset.  The following
+       line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will  initialize  the
        environment correctly:
 
            eval `tset -s options ... `
        environment correctly:
 
            eval `tset -s options ... `
 <H2>TERMINAL TYPE MAPPING</H2><PRE>
        When the terminal is not hardwired into the system (or the
        current system information is incorrect) the terminal type
 <H2>TERMINAL TYPE MAPPING</H2><PRE>
        When the terminal is not hardwired into the system (or the
        current system information is incorrect) the terminal type
-       derived  from the <I>/etc/ttys</I> file or the <B>TERM</B> environmental
-       variable is often something generic like <B>network</B>,  <B>dialup</B>,
-       or  <B>unknown</B>.   When <B>tset</B> is used in a startup script it is
+       derived  from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
+       variable is often something generic like <STRONG>network</STRONG>,  <STRONG>dialup</STRONG>,
+       or  <STRONG>unknown</STRONG>.   When <STRONG>tset</STRONG> is used in a startup script it is
        often desirable to provide information about the  type  of
        terminal used on such ports.
 
        The  purpose  of  the -m option is to map from some set of
        often desirable to provide information about the  type  of
        terminal used on such ports.
 
        The  purpose  of  the -m option is to map from some set of
-       conditions to a terminal type, that is, to tell <B>tset</B>  ``If
+       conditions to a terminal type, that is, to tell <STRONG>tset</STRONG>  ``If
        I'm  on this port at a particular speed, guess that I'm on
        that kind of terminal''.
 
        I'm  on this port at a particular speed, guess that I'm on
        that kind of terminal''.
 
        ble mapping is used.
 
        For    example,    consider    the    following   mapping:
        ble mapping is used.
 
        For    example,    consider    the    following   mapping:
-       <B>dialup&gt;9600:vt100</B>.  The port type is dialup , the operator
+       <STRONG>dialup&gt;9600:vt100</STRONG>.  The port type is dialup , the operator
        is  &gt;, the baud rate specification is 9600, and the termi-
        nal type is vt100.  The result of this mapping is to spec-
        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 <B>dialup</B>, and the baud rate
-       is greater than 9600 baud, a terminal type of  <B>vt100</B>  will
+       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
        be used.
 
        If no baud rate is specified, the terminal type will match
        any baud rate.  If no port type is specified, the terminal
        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,  <B>-m</B>
-       <B>dialup:vt100</B>  <B>-m</B>  <B>:?xterm</B>  will  cause  any  dialup  port,
+       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
        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
        No  whitespace  characters  are permitted in the -m option
        argument.  Also, to avoid problems  with  meta-characters,
        it  is  suggested  that  the  entire -m option argument be
        No  whitespace  characters  are permitted in the -m option
        argument.  Also, to avoid problems  with  meta-characters,
        it  is  suggested  that  the  entire -m option argument be
-       placed within single quote characters, and that <B>csh</B>  users
+       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>
        insert  a  backslash character (``\'') before any exclama-
        tion marks (``!'').
 
 
 </PRE>
 <H2>HISTORY</H2><PRE>
-       The <B>tset</B> command appeared in BSD 3.0.  The <B>ncurses</B>  imple-
+       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;.
        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>
 
 </PRE>
 <H2>COMPATIBILITY</H2><PRE>
-       The  <B>tset</B>  utility has been provided for backward-compati-
+       The  <STRONG>tset</STRONG>  utility has been provided for backward-compati-
        bility with BSD environments (under  most  modern  UNIXes,
        bility with BSD environments (under  most  modern  UNIXes,
-       <B>/etc/inittab</B>  and  <B><A HREF="getty.1.html">getty(1)</A></B> can set <B>TERM</B> appropriately for
-       each dial-up line; this  obviates  what  was  <B>tset</B>'s  most
+       <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 -S option of BSD tset no longer works;  it  prints  an
        error message to stderr and dies.  The -s option only sets
        important  use).   This implementation behaves like 4.4BSD
        tset, with a few exceptions specified here.
 
        The -S option of BSD tset no longer works;  it  prints  an
        error message to stderr and dies.  The -s option only sets
-       <B>TERM</B>, not <B>TERMCAP</B>.  Both these  changes  are  because  the
-       <B>TERMCAP</B>  variable  is  no longer supported under terminfo-
-       based <B>ncurses</B>, which makes <B>tset</B> <B>-S</B> useless (we made it die
+       <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
        noisily rather than silently induce lossage).
 
        There  was  an  undocumented  4.4BSD feature that invoking
        upper-case only.  This feature has been omitted.
 
        The -A, -E, -h, -u and -v options were  deleted  from  the
        upper-case only.  This feature has been omitted.
 
        The -A, -E, -h, -u and -v options were  deleted  from  the
-       <B>tset</B>  utility  in  4.4BSD. None of them were documented in
+       <STRONG>tset</STRONG>  utility  in  4.4BSD. None of them were documented in
        4.3BSD and all are of limited utility at best. The -a, -d,
        and -p options are similarly not documented or useful, but
        were retained as they appear to be in widespread use.   It
        4.3BSD and all are of limited utility at best. The -a, -d,
        and -p options are similarly not documented or useful, but
        were retained as they appear to be in widespread use.   It
        mended that such usage be fixed to explicitly specify  the
        character.
 
        mended that such usage be fixed to explicitly specify  the
        character.
 
-       As  of  4.4BSD,  executing <B>tset</B> as <B>reset</B> no longer implies
+       As  of  4.4BSD,  executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies
        the -Q option.  Also, the interaction between the - option
        the -Q option.  Also, the interaction between the - option
-       and the <I>terminal</I> argument in some historic implementations
-       of <B>tset</B> has been removed.
+       and the <EM>terminal</EM> argument in some historic implementations
+       of <STRONG>tset</STRONG> has been removed.
 
 
 
 </PRE>
 <H2>ENVIRONMENT</H2><PRE>
 
 
 
 </PRE>
 <H2>ENVIRONMENT</H2><PRE>
-       The <B>tset</B> command uses the <B>SHELL</B> and <B>TERM</B> environment vari-
+       The <STRONG>tset</STRONG> command uses the <STRONG>SHELL</STRONG> and <STRONG>TERM</STRONG> environment vari-
        ables.
 
 
        ables.
 
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="csh.1.html">csh(1)</A></B>, <B><A HREF="sh.1.html">sh(1)</A></B>, <B><A HREF="stty.1.html">stty(1)</A></B>, <B><A HREF="tty.4.html">tty(4)</A></B>, <B><A HREF="termcap.5.html">termcap(5)</A></B>, <B><A HREF="ttys.5.html">ttys(5)</A></B>, envi-
-       <B><A HREF="ron.7.html">ron(7)</A></B>
+       <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>
 
 
 
 
 
 
index d2e2650b9b746941c1541d26ac12a2268b250708..cb402ad8332fbb4be0c1509abea450d84c472cc2 100644 (file)
@@ -1,33 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- 
+  ****************************************************************************
+  * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+  * "Software"), to deal in the Software without restriction, including      *
+  * without limitation the rights to use, copy, modify, merge, publish,      *
+  * distribute, distribute with modifications, sublicense, and/or sell       *
+  * copies of the Software, and to permit persons to whom the Software is    *
+  * furnished to do so, subject to the following conditions:                 *
+  *                                                                          *
+  * The above copyright notice and this permission notice shall be included  *
+  * in all copies or substantial portions of the Software.                   *
+  *                                                                          *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+  *                                                                          *
+  * Except as contained in this notice, the name(s) of the above copyright   *
+  * holders shall not be used in advertising or otherwise to promote the     *
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************
+  * Author: Thomas E. Dickey &lt;dickey@clark.net&gt; 1996
+  * @Id: wresize.3x,v 1.7 2002/02/16 22:40:59 tom Exp @
+-->
 <HTML>
 <HTML>
+<HEAD>
+<TITLE>wresize 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>
 <BODY>
+<H1>wresize 3x</H1>
+<HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <B>wresize</B> - resize a curses window
+       <STRONG>wresize</STRONG> - resize a curses window
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <B>#include</B> <B>&lt;curses.h&gt;</B>
+       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
 
-       <B>int</B> <B>wresize(WINDOW</B> <B>*win,</B> <B>int</B> <B>lines,</B> <B>int</B> <B>columns);</B>
+       <STRONG>int</STRONG> <STRONG>wresize(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>lines,</STRONG> <STRONG>int</STRONG> <STRONG>columns);</STRONG>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <B>wresize</B>  function  reallocates storage for an <B>ncurses</B>
+       The  <STRONG>wresize</STRONG>  function  reallocates storage for an <STRONG>ncurses</STRONG>
        window to adjust its dimensions to the  specified  values.
        If either dimension is larger than the current values, the
        window's data is filled with blanks that have the  current
        window to adjust its dimensions to the  specified  values.
        If either dimension is larger than the current values, the
        window's data is filled with blanks that have the  current
-       background  rendition  (as  set  by <B>wbkgndset</B>) merged into
+       background  rendition  (as  set  by <STRONG>wbkgndset</STRONG>) merged into
        them.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        them.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       The function returns the integer <B>ERR</B> upon failure  and  <B>OK</B>
+       The function returns the integer <STRONG>ERR</STRONG> upon failure  and  <STRONG>OK</STRONG>
        on success.  It will fail if either of the dimensions less
        than or equal  to  zero,  or  if  an  error  occurs  while
        (re)allocating memory for the window.
        on success.  It will fail if either of the dimensions less
        than or equal  to  zero,  or  if  an  error  occurs  while
        (re)allocating memory for the window.
 <H2>NOTES</H2><PRE>
        The only restriction placed on the dimensions is that they
        be greater than zero.  The dimensions are not compared  to
 <H2>NOTES</H2><PRE>
        The only restriction placed on the dimensions is that they
        be greater than zero.  The dimensions are not compared  to
-       <B>curses</B>   screen   dimensions  to  simplify  the  logic  of
-       <B>resizeterm</B>.  The caller  must  ensure  that  the  window's
+       <STRONG>curses</STRONG>   screen   dimensions  to  simplify  the  logic  of
+       <STRONG>resizeterm</STRONG>.  The caller  must  ensure  that  the  window's
        dimensions fit within the actual screen dimensions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        dimensions fit within the actual screen dimensions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>.
+       <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
 
 
 </PRE>
 
 
 </PRE>
index 05c756e0e8b4474eb84fb8309af8c22868166e8f..3500e7a6f84636edb04b3297d8d917d9ba8cb15c 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: ncurses-intro.html,v 1.34 2000/06/11 00:03:55 tom Exp $
+  $Id: ncurses-intro.html,v 1.36 2002/07/06 15:50:36 juergen Exp $
 -->
 <HTML>
 <HEAD>
 -->
 <HTML>
 <HEAD>
@@ -221,13 +221,13 @@ maintainer of this package is
 &lt;esr@snark.thyrsus.com&gt;
 wrote many of the new features in versions after 1.8.1
 and wrote most of this introduction.
 &lt;esr@snark.thyrsus.com&gt;
 wrote many of the new features in versions after 1.8.1
 and wrote most of this introduction.
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>
+<A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">J&uuml;rgen Pfeifer</A>
 wrote all of the menu and forms code as well as the
 <A HREF="http://www.adahome.com">Ada95</A> binding.
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
 wrote all of the menu and forms code as well as the
 <A HREF="http://www.adahome.com">Ada95</A> binding.
 Ongoing work is being done by
 <A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
 and
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
+<A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">J&uuml;rgen Pfeifer</A>.
 <A HREF="mailto:florian@gnu.org">Florian La Roche</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
 <A HREF="mailto:florian@gnu.org">Florian La Roche</A>
 acts as the maintainer for the Free Software Foundation, which holds the
 copyright on ncurses.
@@ -704,7 +704,11 @@ restore the ncurses screen from before the escape.
 <CODE>newterm()</CODE> instead of <CODE>initscr()</CODE>.  <CODE>newterm()</CODE> should
 be called once for each terminal.  It returns a variable of type
 <CODE>SCREEN *</CODE> which should be saved as a reference to that
 <CODE>newterm()</CODE> instead of <CODE>initscr()</CODE>.  <CODE>newterm()</CODE> should
 be called once for each terminal.  It returns a variable of type
 <CODE>SCREEN *</CODE> which should be saved as a reference to that
-terminal. The arguments are the type of the terminal (a string) and
+terminal.
+(NOTE: a SCREEN variable is not a <em>screen</em> in the sense we
+are describing in this introduction, but a collection of 
+parameters used to assist in optimizing the display.)
+The arguments are the type of the terminal (a string) and
 <CODE>FILE</CODE> pointers for the output and input of the terminal.  If
 type is NULL then the environment variable <CODE>$TERM</CODE> is used.
 <CODE>endwin()</CODE> should called once at wrapup time for each terminal
 <CODE>FILE</CODE> pointers for the output and input of the terminal.  If
 type is NULL then the environment variable <CODE>$TERM</CODE> is used.
 <CODE>endwin()</CODE> should called once at wrapup time for each terminal
index 669b0b391705d61925e9a8e249a7d154b6c52d9d..750777ede0b2a8b3cf4138e702a429e8eab2f60d 100644 (file)
@@ -1,11 +1,11 @@
 
                          Writing Programs with NCURSES
 
                          Writing Programs with NCURSES
-                                       
+
      by Eric S. Raymond and Zeyd M. Ben-Halim
      updates since release 1.9.9e by Thomas Dickey
      by Eric S. Raymond and Zeyd M. Ben-Halim
      updates since release 1.9.9e by Thomas Dickey
-     
+
                                    Contents
                                    Contents
-                                       
+
      * Introduction
           + A Brief History of Curses
           + Scope of This Document
      * Introduction
           + A Brief History of Curses
           + Scope of This Document
                o Order Functions For Custom Types
                o Avoiding Problems
      _________________________________________________________________
                o Order Functions For Custom Types
                o Avoiding Problems
      _________________________________________________________________
-   
+
                                  Introduction
                                  Introduction
-                                       
+
    This document is an introduction to programming with curses. It is not
    This document is an introduction to programming with curses. It is not
-   an exhaustive reference for the curses Application Programming
-   Interface (API); that role is filled by the curses manual pages.
-   Rather, it is intended to help C programmers ease into using the
+   an   exhaustive  reference  for  the  curses  Application  Programming
+   Interface  (API);  that  role  is  filled  by the curses manual pages.
+   Rather,  it  is  intended  to  help  C programmers ease into using the
    package.
    package.
-   
-   This document is aimed at C applications programmers not yet
-   specifically familiar with ncurses. If you are already an experienced
-   curses programmer, you should nevertheless read the sections on Mouse
-   Interfacing, Debugging, Compatibility with Older Versions, and Hints,
-   Tips, and Tricks. These will bring you up to speed on the special
-   features and quirks of the ncurses implementation. If you are not so
+
+   This   document  is  aimed  at  C  applications  programmers  not  yet
+   specifically  familiar with ncurses. If you are already an experienced
+   curses  programmer, you should nevertheless read the sections on Mouse
+   Interfacing,  Debugging, Compatibility with Older Versions, and Hints,
+   Tips,  and  Tricks.  These  will  bring you up to speed on the special
+   features  and  quirks of the ncurses implementation. If you are not so
    experienced, keep reading.
    experienced, keep reading.
-   
-   The curses package is a subroutine library for terminal-independent
-   screen-painting and input-event handling which presents a high level
-   screen model to the programmer, hiding differences between terminal
-   types and doing automatic optimization of output to change one screen
-   full of text into another. Curses uses terminfo, which is a database
-   format that can describe the capabilities of thousands of different
+
+   The  curses  package  is a subroutine library for terminal-independent
+   screen-painting  and  input-event handling which presents a high level
+   screen  model  to  the programmer, hiding differences between terminal
+   types  and doing automatic optimization of output to change one screen
+   full  of  text into another. Curses uses terminfo, which is a database
+   format  that  can  describe the capabilities of thousands of different
    terminals.
    terminals.
-   
-   The curses API may seem something of an archaism on UNIX desktops
-   increasingly dominated by X, Motif, and Tcl/Tk. Nevertheless, UNIX
-   still supports tty lines and X supports xterm(1); the curses API has
+
+   The  curses  API  may  seem  something of an archaism on UNIX desktops
+   increasingly  dominated  by  X,  Motif, and Tcl/Tk. Nevertheless, UNIX
+   still  supports  tty lines and X supports xterm(1); the curses API has
    the advantage of (a) back-portability to character-cell terminals, and
    the advantage of (a) back-portability to character-cell terminals, and
-   (b) simplicity. For an application that does not require bit-mapped
-   graphics and multiple fonts, an interface implementation using curses
-   will typically be a great deal simpler and less expensive than one
+   (b)  simplicity.  For  an application that does not require bit-mapped
+   graphics  and multiple fonts, an interface implementation using curses
+   will  typically  be  a  great deal simpler and less expensive than one
    using an X toolkit.
    using an X toolkit.
-   
+
 A Brief History of Curses
 
    Historically, the first ancestor of curses was the routines written to
 A Brief History of Curses
 
    Historically, the first ancestor of curses was the routines written to
-   provide screen-handling for the game rogue; these used the
-   already-existing termcap database facility for describing terminal
+   provide   screen-handling   for   the   game  rogue;  these  used  the
+   already-existing  termcap  database  facility  for describing terminal
    capabilities. These routines were abstracted into a documented library
    and first released with the early BSD UNIX versions.
    capabilities. These routines were abstracted into a documented library
    and first released with the early BSD UNIX versions.
-   
-   System III UNIX from Bell Labs featured a rewritten and much-improved
-   curses library. It introduced the terminfo format. Terminfo is based
-   on Berkeley's termcap database, but contains a number of improvements
-   and extensions. Parameterized capabilities strings were introduced,
-   making it possible to describe multiple video attributes, and colors
-   and to handle far more unusual terminals than possible with termcap.
-   In the later AT&T System V releases, curses evolved to use more
+
+   System  III UNIX from Bell Labs featured a rewritten and much-improved
+   curses  library.  It introduced the terminfo format. Terminfo is based
+   on  Berkeley's termcap database, but contains a number of improvements
+   and  extensions.  Parameterized  capabilities strings were introduced,
+   making  it  possible to describe multiple video attributes, and colors
+   and  to  handle far more unusual terminals than possible with termcap.
+   In  the  later  AT&T  System  V  releases,  curses evolved to use more
    facilities and offer more capabilities, going far beyond BSD curses in
    power and flexibility.
    facilities and offer more capabilities, going far beyond BSD curses in
    power and flexibility.
-   
+
 Scope of This Document
 
    This document describes ncurses, a free implementation of the System V
 Scope of This Document
 
    This document describes ncurses, a free implementation of the System V
-   curses API with some clearly marked extensions. It includes the
+   curses  API  with  some  clearly  marked  extensions.  It includes the
    following System V curses features:
    following System V curses features:
-     * Support for multiple screen highlights (BSD curses could only
+     * Support  for  multiple  screen  highlights  (BSD curses could only
        handle one `standout' highlight, usually reverse-video).
      * Support for line- and box-drawing using forms characters.
      * Recognition of function keys on input.
      * Color support.
        handle one `standout' highlight, usually reverse-video).
      * Support for line- and box-drawing using forms characters.
      * Recognition of function keys on input.
      * Color support.
-     * Support for pads (windows of larger than screen size on which the
+     * Support  for pads (windows of larger than screen size on which the
        screen or a subwindow defines a viewport).
        screen or a subwindow defines a viewport).
-       
-   Also, this package makes use of the insert and delete line and
-   character features of terminals so equipped, and determines how to
-   optimally use these features with no help from the programmer. It
-   allows arbitrary combinations of video attributes to be displayed,
-   even on terminals that leave ``magic cookies'' on the screen to mark
+
+   Also,  this  package  makes  use  of  the  insert  and delete line and
+   character  features  of  terminals  so equipped, and determines how to
+   optimally  use  these  features  with  no help from the programmer. It
+   allows  arbitrary  combinations  of  video attributes to be displayed,
+   even  on  terminals that leave ``magic cookies'' on the screen to mark
    changes in attributes.
    changes in attributes.
-   
-   The ncurses package can also capture and use event reports from a
+
+   The  ncurses  package  can  also  capture and use event reports from a
    mouse in some environments (notably, xterm under the X window system).
    This document includes tips for using the mouse.
    mouse in some environments (notably, xterm under the X window system).
    This document includes tips for using the mouse.
-   
-   The ncurses package was originated by Pavel Curtis. The original
-   maintainer of this package is Zeyd Ben-Halim <zmbenhal@netcom.com>.
+
+   The  ncurses  package  was  originated  by  Pavel Curtis. The original
+   maintainer  of  this  package is Zeyd Ben-Halim <zmbenhal@netcom.com>.
    Eric S. Raymond <esr@snark.thyrsus.com> wrote many of the new features
    Eric S. Raymond <esr@snark.thyrsus.com> wrote many of the new features
-   in versions after 1.8.1 and wrote most of this introduction. Jürgen
-   Pfeifer wrote all of the menu and forms code as well as the Ada95
-   binding. Ongoing work is being done by Thomas Dickey and Jürgen
+   in  versions  after  1.8.1 and wrote most of this introduction. Jürgen
+   Pfeifer  wrote  all  of  the  menu and forms code as well as the Ada95
+   binding.  Ongoing  work  is  being  done  by  Thomas Dickey and Jürgen
    Pfeifer. Florian La Roche acts as the maintainer for the Free Software
    Pfeifer. Florian La Roche acts as the maintainer for the Free Software
-   Foundation, which holds the copyright on ncurses. Contact the current
+   Foundation,  which holds the copyright on ncurses. Contact the current
    maintainers at bug-ncurses@gnu.org.
    maintainers at bug-ncurses@gnu.org.
-   
-   This document also describes the panels extension library, similarly
-   modeled on the SVr4 panels facility. This library allows you to
-   associate backing store with each of a stack or deck of overlapping
-   windows, and provides operations for moving windows around in the
+
+   This  document  also describes the panels extension library, similarly
+   modeled  on  the  SVr4  panels  facility.  This  library allows you to
+   associate  backing  store  with each of a stack or deck of overlapping
+   windows,  and  provides  operations  for  moving windows around in the
    stack that change their visibility in the natural way (handling window
    overlaps).
    stack that change their visibility in the natural way (handling window
    overlaps).
-   
-   Finally, this document describes in detail the menus and forms
-   extension libraries, also cloned from System V, which support easy
+
+   Finally,  this  document  describes  in  detail  the  menus  and forms
+   extension  libraries,  also  cloned  from System V, which support easy
    construction and sequences of menus and fill-in forms.
    construction and sequences of menus and fill-in forms.
-   
+
 Terminology
 
 Terminology
 
-   In this document, the following terminology is used with reasonable
+   In  this  document,  the following terminology is used with reasonable
    consistency:
    consistency:
-   
+
    window
    window
-          A data structure describing a sub-rectangle of the screen
-          (possibly the entire screen). You can write to a window as
-          though it were a miniature screen, scrolling independently of
+          A  data  structure  describing  a  sub-rectangle  of the screen
+          (possibly  the  entire  screen).  You  can write to a window as
+          though  it  were a miniature screen, scrolling independently of
           other windows on the physical screen.
           other windows on the physical screen.
-          
+
    screens
    screens
-          A subset of windows which are as large as the terminal screen,
-          i.e., they start at the upper left hand corner and encompass
-          the lower right hand corner. One of these, stdscr, is
+          A  subset of windows which are as large as the terminal screen,
+          i.e.,  they  start  at the upper left hand corner and encompass
+          the   lower  right  hand  corner.  One  of  these,  stdscr,  is
           automatically provided for the programmer.
           automatically provided for the programmer.
-          
+
    terminal screen
           The package's idea of what the terminal display currently looks
           like, i.e., what the user sees now. This is a special screen.
    terminal screen
           The package's idea of what the terminal display currently looks
           like, i.e., what the user sees now. This is a special screen.
-          
+
                               The Curses Library
                               The Curses Library
-                                       
+
 An Overview of Curses
 
   Compiling Programs using Curses
 An Overview of Curses
 
   Compiling Programs using Curses
-  
+
    In order to use the library, it is necessary to have certain types and
    variables defined. Therefore, the programmer must have a line:
           #include <curses.h>
 
    at the top of the program source. The screen package uses the Standard
    In order to use the library, it is necessary to have certain types and
    variables defined. Therefore, the programmer must have a line:
           #include <curses.h>
 
    at the top of the program source. The screen package uses the Standard
-   I/O library, so <curses.h> includes <stdio.h>. <curses.h> also
-   includes <termios.h>, <termio.h>, or <sgtty.h> depending on your
-   system. It is redundant (but harmless) for the programmer to do these
-   includes, too. In linking with curses you need to have -lncurses in
-   your LDFLAGS or on the command line. There is no need for any other
+   I/O   library,  so  <curses.h>  includes  <stdio.h>.  <curses.h>  also
+   includes  <termios.h>,  <termio.h>,  or  <sgtty.h>  depending  on your
+   system.  It is redundant (but harmless) for the programmer to do these
+   includes,  too.  In  linking with curses you need to have -lncurses in
+   your  LDFLAGS  or  on the command line. There is no need for any other
    libraries.
    libraries.
-   
+
   Updating the Screen
   Updating the Screen
-  
-   In order to update the screen optimally, it is necessary for the
-   routines to know what the screen currently looks like and what the
-   programmer wants it to look like next. For this purpose, a data type
-   (structure) named WINDOW is defined which describes a window image to
-   the routines, including its starting position on the screen (the (y,
-   x) coordinates of the upper left hand corner) and its size. One of
-   these (called curscr, for current screen) is a screen image of what
-   the terminal currently looks like. Another screen (called stdscr, for
+
+   In  order  to  update  the  screen  optimally, it is necessary for the
+   routines  to  know  what  the screen currently looks like and what the
+   programmer  wants  it to look like next. For this purpose, a data type
+   (structure)  named WINDOW is defined which describes a window image to
+   the  routines,  including its starting position on the screen (the (y,
+   x)  coordinates  of  the  upper left hand corner) and its size. One of
+   these  (called  curscr,  for current screen) is a screen image of what
+   the  terminal currently looks like. Another screen (called stdscr, for
    standard screen) is provided by default to make changes on.
    standard screen) is provided by default to make changes on.
-   
-   A window is a purely internal representation. It is used to build and
-   store a potential image of a portion of the terminal. It doesn't bear
-   any necessary relation to what is really on the terminal screen; it's
+
+   A  window is a purely internal representation. It is used to build and
+   store  a potential image of a portion of the terminal. It doesn't bear
+   any  necessary relation to what is really on the terminal screen; it's
    more like a scratchpad or write buffer.
    more like a scratchpad or write buffer.
-   
-   To make the section of physical screen corresponding to a window
-   reflect the contents of the window structure, the routine refresh()
+
+   To  make  the  section  of  physical  screen corresponding to a window
+   reflect  the  contents  of the window structure, the routine refresh()
    (or wrefresh() if the window is not stdscr) is called.
    (or wrefresh() if the window is not stdscr) is called.
-   
-   A given physical screen section may be within the scope of any number
-   of overlapping windows. Also, changes can be made to windows in any
-   order, without regard to motion efficiency. Then, at will, the
+
+   A  given physical screen section may be within the scope of any number
+   of  overlapping  windows.  Also, changes can be made to windows in any
+   order,  without  regard  to  motion  efficiency.  Then,  at  will, the
    programmer can effectively say ``make it look like this,'' and let the
    package implementation determine the most efficient way to repaint the
    screen.
    programmer can effectively say ``make it look like this,'' and let the
    package implementation determine the most efficient way to repaint the
    screen.
-   
+
   Standard Windows and Function Naming Conventions
   Standard Windows and Function Naming Conventions
-  
-   As hinted above, the routines can use several windows, but two are
+
+   As  hinted  above,  the  routines can use several windows, but two are
    automatically given: curscr, which knows what the terminal looks like,
    automatically given: curscr, which knows what the terminal looks like,
-   and stdscr, which is what the programmer wants the terminal to look
-   like next. The user should never actually access curscr directly.
-   Changes should be made to through the API, and then the routine
+   and  stdscr,  which  is what the programmer wants the terminal to look
+   like  next.  The  user  should  never actually access curscr directly.
+   Changes  should  be  made  to  through  the  API, and then the routine
    refresh() (or wrefresh()) called.
    refresh() (or wrefresh()) called.
-   
-   Many functions are defined to use stdscr as a default screen. For
-   example, to add a character to stdscr, one calls addch() with the
+
+   Many  functions  are  defined  to  use stdscr as a default screen. For
+   example,  to  add  a  character  to stdscr, one calls addch() with the
    desired character as argument. To write to a different window. use the
    desired character as argument. To write to a different window. use the
-   routine waddch() (for `w'indow-specific addch()) is provided. This
+   routine  waddch()  (for  `w'indow-specific  addch()) is provided. This
    convention of prepending function names with a `w' when they are to be
    convention of prepending function names with a `w' when they are to be
-   applied to specific windows is consistent. The only routines which do
+   applied  to specific windows is consistent. The only routines which do
    not follow it are those for which a window must always be specified.
    not follow it are those for which a window must always be specified.
-   
-   In order to move the current (y, x) coordinates from one point to
-   another, the routines move() and wmove() are provided. However, it is
-   often desirable to first move and then perform some I/O operation. In
-   order to avoid clumsiness, most I/O routines can be preceded by the
-   prefix 'mv' and the desired (y, x) coordinates prepended to the
+
+   In  order  to  move  the  current (y, x) coordinates from one point to
+   another,  the routines move() and wmove() are provided. However, it is
+   often  desirable to first move and then perform some I/O operation. In
+   order  to  avoid  clumsiness, most I/O routines can be preceded by the
+   prefix  'mv'  and  the  desired  (y,  x)  coordinates prepended to the
    arguments to the function. For example, the calls
           move(y, x);
           addch(ch);
    arguments to the function. For example, the calls
           move(y, x);
           addch(ch);
@@ -296,44 +296,44 @@ An Overview of Curses
    can be replaced by
           mvwaddch(win, y, x, ch);
 
    can be replaced by
           mvwaddch(win, y, x, ch);
 
-   Note that the window description pointer (win) comes before the added
-   (y, x) coordinates. If a function requires a window pointer, it is
+   Note  that the window description pointer (win) comes before the added
+   (y,  x)  coordinates.  If  a function requires a window pointer, it is
    always the first parameter passed.
    always the first parameter passed.
-   
+
   Variables
   Variables
-  
-   The curses library sets some variables describing the terminal
+
+   The  curses  library  sets  some  variables  describing  the  terminal
    capabilities.
       type   name      description
       ------------------------------------------------------------------
       int    LINES     number of lines on the terminal
       int    COLS      number of columns on the terminal
 
    capabilities.
       type   name      description
       ------------------------------------------------------------------
       int    LINES     number of lines on the terminal
       int    COLS      number of columns on the terminal
 
-   The curses.h also introduces some #define constants and types of
+   The  curses.h  also  introduces  some  #define  constants and types of
    general usefulness:
    general usefulness:
-   
+
    bool
           boolean type, actually a `char' (e.g., bool doneit;)
    bool
           boolean type, actually a `char' (e.g., bool doneit;)
-          
+
    TRUE
           boolean `true' flag (1).
    TRUE
           boolean `true' flag (1).
-          
+
    FALSE
           boolean `false' flag (0).
    FALSE
           boolean `false' flag (0).
-          
+
    ERR
           error flag returned by routines on a failure (-1).
    ERR
           error flag returned by routines on a failure (-1).
-          
+
    OK
           error flag returned by routines when things go right.
    OK
           error flag returned by routines when things go right.
-          
+
 Using the Library
 
 Using the Library
 
-   Now we describe how to actually use the screen package. In it, we
-   assume all updating, reading, etc. is applied to stdscr. These
-   instructions will work on any window, providing you change the
+   Now  we  describe  how  to  actually use the screen package. In it, we
+   assume  all  updating,  reading,  etc.  is  applied  to  stdscr. These
+   instructions  will  work  on  any  window,  providing  you  change the
    function names and parameters as mentioned above.
    function names and parameters as mentioned above.
-   
+
    Here is a sample program to motivate the discussion:
 #include <curses.h>
 #include <signal.h>
    Here is a sample program to motivate the discussion:
 #include <curses.h>
 #include <signal.h>
@@ -396,397 +396,400 @@ static void finish(int sig)
 }
 
   Starting up
 }
 
   Starting up
-  
-   In order to use the screen package, the routines must know about
-   terminal characteristics, and the space for curscr and stdscr must be
-   allocated. These function initscr() does both these things. Since it
-   must allocate space for the windows, it can overflow memory when
-   attempting to do so. On the rare occasions this happens, initscr()
-   will terminate the program with an error message. initscr() must
-   always be called before any of the routines which affect windows are
-   used. If it is not, the program will core dump as soon as either
-   curscr or stdscr are referenced. However, it is usually best to wait
-   to call it until after you are sure you will need it, like after
-   checking for startup errors. Terminal status changing routines like
+
+   In  order  to  use  the  screen  package, the routines must know about
+   terminal  characteristics, and the space for curscr and stdscr must be
+   allocated.  These  function initscr() does both these things. Since it
+   must  allocate  space  for  the  windows,  it can overflow memory when
+   attempting  to  do  so.  On the rare occasions this happens, initscr()
+   will  terminate  the  program  with  an  error message. initscr() must
+   always  be  called before any of the routines which affect windows are
+   used.  If  it  is  not,  the  program will core dump as soon as either
+   curscr  or  stdscr are referenced. However, it is usually best to wait
+   to  call  it  until  after  you  are sure you will need it, like after
+   checking  for  startup  errors. Terminal status changing routines like
    nl() and cbreak() should be called after initscr().
    nl() and cbreak() should be called after initscr().
-   
-   Once the screen windows have been allocated, you can set them up for
-   your program. If you want to, say, allow a screen to scroll, use
-   scrollok(). If you want the cursor to be left in place after the last
-   change, use leaveok(). If this isn't done, refresh() will move the
+
+   Once  the  screen windows have been allocated, you can set them up for
+   your  program.  If  you  want  to,  say, allow a screen to scroll, use
+   scrollok().  If you want the cursor to be left in place after the last
+   change,  use  leaveok().  If  this isn't done, refresh() will move the
    cursor to the window's current (y, x) coordinates after updating it.
    cursor to the window's current (y, x) coordinates after updating it.
-   
-   You can create new windows of your own using the functions newwin(),
+
+   You  can  create new windows of your own using the functions newwin(),
    derwin(), and subwin(). The routine delwin() will allow you to get rid
    derwin(), and subwin(). The routine delwin() will allow you to get rid
-   of old windows. All the options described above can be applied to any
+   of  old windows. All the options described above can be applied to any
    window.
    window.
-   
+
   Output
   Output
-  
-   Now that we have set things up, we will want to actually update the
-   terminal. The basic functions used to change what will go on a window
+
+   Now  that  we  have set things up, we will want to actually update the
+   terminal.  The basic functions used to change what will go on a window
    are addch() and move(). addch() adds a character at the current (y, x)
    coordinates. move() changes the current (y, x) coordinates to whatever
    you want them to be. It returns ERR if you try to move off the window.
    are addch() and move(). addch() adds a character at the current (y, x)
    coordinates. move() changes the current (y, x) coordinates to whatever
    you want them to be. It returns ERR if you try to move off the window.
-   As mentioned above, you can combine the two into mvaddch() to do both
+   As  mentioned above, you can combine the two into mvaddch() to do both
    things at once.
    things at once.
-   
-   The other output functions, such as addstr() and printw(), all call
+
+   The  other  output  functions, such as addstr() and printw(), all call
    addch() to add characters to the window.
    addch() to add characters to the window.
-   
-   After you have put on the window what you want there, when you want
-   the portion of the terminal covered by the window to be made to look
-   like it, you must call refresh(). In order to optimize finding
-   changes, refresh() assumes that any part of the window not changed
-   since the last refresh() of that window has not been changed on the
-   terminal, i.e., that you have not refreshed a portion of the terminal
-   with an overlapping window. If this is not the case, the routine
+
+   After  you  have  put on the window what you want there, when you want
+   the  portion  of the terminal covered by the window to be made to look
+   like  it,  you  must  call  refresh().  In  order  to optimize finding
+   changes,  refresh()  assumes  that  any part of the window not changed
+   since  the  last  refresh() of that window has not been changed on the
+   terminal,  i.e., that you have not refreshed a portion of the terminal
+   with  an  overlapping  window.  If  this  is not the case, the routine
    touchwin() is provided to make it look like the entire window has been
    touchwin() is provided to make it look like the entire window has been
-   changed, thus making refresh() check the whole subsection of the
+   changed,  thus  making  refresh()  check  the  whole subsection of the
    terminal for changes.
    terminal for changes.
-   
-   If you call wrefresh() with curscr as its argument, it will make the
-   screen look like curscr thinks it looks like. This is useful for
-   implementing a command which would redraw the screen in case it get
+
+   If  you  call wrefresh() with curscr as its argument, it will make the
+   screen  look  like  curscr  thinks  it  looks like. This is useful for
+   implementing  a  command  which would redraw the screen in case it get
    messed up.
    messed up.
-   
+
   Input
   Input
-  
-   The complementary function to addch() is getch() which, if echo is
+
+   The  complementary  function  to  addch() is getch() which, if echo is
    set, will call addch() to echo the character. Since the screen package
    set, will call addch() to echo the character. Since the screen package
-   needs to know what is on the terminal at all times, if characters are
-   to be echoed, the tty must be in raw or cbreak mode. Since initially
-   the terminal has echoing enabled and is in ordinary ``cooked'' mode,
+   needs  to know what is on the terminal at all times, if characters are
+   to  be  echoed, the tty must be in raw or cbreak mode. Since initially
+   the  terminal  has echoing enabled and is in ordinary ``cooked'' mode,
    one or the other has to changed before calling getch(); otherwise, the
    program's output will be unpredictable.
    one or the other has to changed before calling getch(); otherwise, the
    program's output will be unpredictable.
-   
+
    When you need to accept line-oriented input in a window, the functions
    wgetstr() and friends are available. There is even a wscanw() function
    When you need to accept line-oriented input in a window, the functions
    wgetstr() and friends are available. There is even a wscanw() function
-   that can do scanf()(3)-style multi-field parsing on window input.
-   These pseudo-line-oriented functions turn on echoing while they
+   that  can  do  scanf()(3)-style  multi-field  parsing on window input.
+   These  pseudo-line-oriented  functions  turn  on  echoing  while  they
    execute.
    execute.
-   
-   The example code above uses the call keypad(stdscr, TRUE) to enable
-   support for function-key mapping. With this feature, the getch() code
-   watches the input stream for character sequences that correspond to
-   arrow and function keys. These sequences are returned as
+
+   The  example  code  above uses the call keypad(stdscr, TRUE) to enable
+   support  for function-key mapping. With this feature, the getch() code
+   watches  the  input  stream for character sequences that correspond to
+   arrow   and   function   keys.   These   sequences   are  returned  as
    pseudo-character values. The #define values returned are listed in the
    curses.h The mapping from sequences to #define values is determined by
    key_ capabilities in the terminal's terminfo entry.
    pseudo-character values. The #define values returned are listed in the
    curses.h The mapping from sequences to #define values is determined by
    key_ capabilities in the terminal's terminfo entry.
-   
+
   Using Forms Characters
   Using Forms Characters
-  
-   The addch() function (and some others, including box() and border())
+
+   The  addch()  function (and some others, including box() and border())
    can accept some pseudo-character arguments which are specially defined
    can accept some pseudo-character arguments which are specially defined
-   by ncurses. These are #define values set up in the curses.h header;
+   by  ncurses.  These  are #define values set up in the curses.h header;
    see there for a complete list (look for the prefix ACS_).
    see there for a complete list (look for the prefix ACS_).
-   
-   The most useful of the ACS defines are the forms-drawing characters.
-   You can use these to draw boxes and simple graphs on the screen. If
-   the terminal does not have such characters, curses.h will map them to
+
+   The  most  useful of the ACS defines are the forms-drawing characters.
+   You  can  use  these to draw boxes and simple graphs on the screen. If
+   the  terminal does not have such characters, curses.h will map them to
    a recognizable (though ugly) set of ASCII defaults.
    a recognizable (though ugly) set of ASCII defaults.
-   
+
   Character Attributes and Color
   Character Attributes and Color
-  
-   The ncurses package supports screen highlights including standout,
-   reverse-video, underline, and blink. It also supports color, which is
+
+   The  ncurses  package  supports  screen highlights including standout,
+   reverse-video,  underline, and blink. It also supports color, which is
    treated as another kind of highlight.
    treated as another kind of highlight.
-   
-   Highlights are encoded, internally, as high bits of the
-   pseudo-character type (chtype) that curses.h uses to represent the
+
+   Highlights   are   encoded,   internally,   as   high   bits   of  the
+   pseudo-character  type  (chtype)  that  curses.h uses to represent the
    contents of a screen cell. See the curses.h header file for a complete
    list of highlight mask values (look for the prefix A_).
    contents of a screen cell. See the curses.h header file for a complete
    list of highlight mask values (look for the prefix A_).
-   
-   There are two ways to make highlights. One is to logical-or the value
-   of the highlights you want into the character argument of an addch()
+
+   There  are two ways to make highlights. One is to logical-or the value
+   of  the  highlights you want into the character argument of an addch()
    call, or any other output call that takes a chtype argument.
    call, or any other output call that takes a chtype argument.
-   
+
    The other is to set the current-highlight value. This is logical-or'ed
    The other is to set the current-highlight value. This is logical-or'ed
-   with any highlight you specify the first way. You do this with the
+   with  any  highlight  you  specify the first way. You do this with the
    functions attron(), attroff(), and attrset(); see the manual pages for
    functions attron(), attroff(), and attrset(); see the manual pages for
-   details. Color is a special kind of highlight. The package actually
-   thinks in terms of color pairs, combinations of foreground and
-   background colors. The sample code above sets up eight color pairs,
-   all of the guaranteed-available colors on black. Note that each color
-   pair is, in effect, given the name of its foreground color. Any other
-   range of eight non-conflicting values could have been used as the
+   details.  Color  is  a special kind of highlight. The package actually
+   thinks  in  terms  of  color  pairs,  combinations  of  foreground and
+   background  colors.  The  sample code above sets up eight color pairs,
+   all  of the guaranteed-available colors on black. Note that each color
+   pair  is, in effect, given the name of its foreground color. Any other
+   range  of  eight  non-conflicting  values  could have been used as the
    first arguments of the init_pair() values.
    first arguments of the init_pair() values.
-   
+
    Once you've done an init_pair() that creates color-pair N, you can use
    Once you've done an init_pair() that creates color-pair N, you can use
-   COLOR_PAIR(N) as a highlight that invokes that particular color
-   combination. Note that COLOR_PAIR(N), for constant N, is itself a
+   COLOR_PAIR(N)  as  a  highlight  that  invokes  that  particular color
+   combination.  Note  that  COLOR_PAIR(N),  for  constant N, is itself a
    compile-time constant and can be used in initializers.
    compile-time constant and can be used in initializers.
-   
+
   Mouse Interfacing
   Mouse Interfacing
-  
+
    The ncurses library also provides a mouse interface.
    The ncurses library also provides a mouse interface.
-   
-     NOTE: this facility is specific to ncurses, it is not part of
-     either the XSI Curses standard, nor of System V Release 4, nor BSD
-     curses. System V Release 4 curses contains code with similar
-     interface definitions, however it is not documented. Other than by
-     disassembling the library, we have no way to determine exactly how
-     that mouse code works. Thus, we recommend that you wrap
-     mouse-related code in an #ifdef using the feature macro
-     NCURSES_MOUSE_VERSION so it will not be compiled and linked on
+
+     NOTE:  this  facility  is  specific  to  ncurses, it is not part of
+     either  the XSI Curses standard, nor of System V Release 4, nor BSD
+     curses.  System  V  Release  4  curses  contains  code with similar
+     interface  definitions, however it is not documented. Other than by
+     disassembling  the library, we have no way to determine exactly how
+     that   mouse   code   works.  Thus,  we  recommend  that  you  wrap
+     mouse-related   code   in   an   #ifdef  using  the  feature  macro
+     NCURSES_MOUSE_VERSION  so  it  will  not  be compiled and linked on
      non-ncurses systems.
      non-ncurses systems.
-     
+
    Presently, mouse event reporting works in the following environments:
      * xterm and similar programs such as rxvt.
    Presently, mouse event reporting works in the following environments:
      * xterm and similar programs such as rxvt.
-     * Linux console, when configured with gpm(1), Alessandro Rubini's
+     * Linux  console,  when  configured with gpm(1), Alessandro Rubini's
        mouse server.
      * OS/2 EMX
        mouse server.
      * OS/2 EMX
-       
-   The mouse interface is very simple. To activate it, you use the
-   function mousemask(), passing it as first argument a bit-mask that
-   specifies what kinds of events you want your program to be able to
-   see. It will return the bit-mask of events that actually become
+
+   The  mouse  interface  is  very  simple.  To  activate it, you use the
+   function  mousemask(),  passing  it  as first argument a bit-mask that
+   specifies  what  kinds  of  events you want your program to be able to
+   see.  It  will  return  the  bit-mask  of  events that actually become
    visible, which may differ from the argument if the mouse device is not
    capable of reporting some of the event types you specify.
    visible, which may differ from the argument if the mouse device is not
    capable of reporting some of the event types you specify.
-   
+
    Once the mouse is active, your application's command loop should watch
    Once the mouse is active, your application's command loop should watch
-   for a return value of KEY_MOUSE from wgetch(). When you see this, a
-   mouse event report has been queued. To pick it off the queue, use the
-   function getmouse() (you must do this before the next wgetch(),
-   otherwise another mouse event might come in and make the first one
+   for  a  return  value of KEY_MOUSE from wgetch(). When you see this, a
+   mouse  event report has been queued. To pick it off the queue, use the
+   function  getmouse()  (you  must  do  this  before  the next wgetch(),
+   otherwise  another  mouse  event  might come in and make the first one
    inaccessible).
    inaccessible).
-   
+
    Each call to getmouse() fills a structure (the address of which you'll
    Each call to getmouse() fills a structure (the address of which you'll
-   pass it) with mouse event data. The event data includes zero-origin,
-   screen-relative character-cell coordinates of the mouse pointer. It
-   also includes an event mask. Bits in this mask will be set,
+   pass  it)  with mouse event data. The event data includes zero-origin,
+   screen-relative  character-cell  coordinates  of the mouse pointer. It
+   also  includes  an  event  mask.  Bits  in  this  mask  will  be  set,
    corresponding to the event type being reported.
    corresponding to the event type being reported.
-   
-   The mouse structure contains two additional fields which may be
-   significant in the future as ncurses interfaces to new kinds of
-   pointing device. In addition to x and y coordinates, there is a slot
-   for a z coordinate; this might be useful with touch-screens that can
-   return a pressure or duration parameter. There is also a device ID
-   field, which could be used to distinguish between multiple pointing
+
+   The  mouse  structure  contains  two  additional  fields  which may be
+   significant  in  the  future  as  ncurses  interfaces  to new kinds of
+   pointing  device.  In addition to x and y coordinates, there is a slot
+   for  a  z coordinate; this might be useful with touch-screens that can
+   return  a  pressure  or  duration parameter. There is also a device ID
+   field,  which  could  be used to distinguish between multiple pointing
    devices.
    devices.
-   
-   The class of visible events may be changed at any time via
-   mousemask(). Events that can be reported include presses, releases,
-   single-, double- and triple-clicks (you can set the maximum
-   button-down time for clicks). If you don't make clicks visible, they
-   will be reported as press-release pairs. In some environments, the
-   event mask may include bits reporting the state of shift, alt, and
+
+   The   class  of  visible  events  may  be  changed  at  any  time  via
+   mousemask().  Events  that  can be reported include presses, releases,
+   single-,   double-   and   triple-clicks  (you  can  set  the  maximum
+   button-down  time  for clicks). If you don't make clicks visible, they
+   will  be  reported  as  press-release pairs. In some environments, the
+   event  mask  may  include  bits reporting the state of shift, alt, and
    ctrl keys on the keyboard during the event.
    ctrl keys on the keyboard during the event.
-   
-   A function to check whether a mouse event fell within a given window
-   is also supplied. You can use this to see whether a given window
+
+   A  function  to check whether a mouse event fell within a given window
+   is  also  supplied.  You  can  use  this to see whether a given window
    should consider a mouse event relevant to it.
    should consider a mouse event relevant to it.
-   
-   Because mouse event reporting will not be available in all
-   environments, it would be unwise to build ncurses applications that
-   require the use of a mouse. Rather, you should use the mouse as a
-   shortcut for point-and-shoot commands your application would normally
-   accept from the keyboard. Two of the test games in the ncurses
-   distribution (bs and knight) contain code that illustrates how this
+
+   Because   mouse   event   reporting  will  not  be  available  in  all
+   environments,  it  would  be unwise to build ncurses applications that
+   require  the  use  of  a  mouse. Rather, you should use the mouse as a
+   shortcut  for point-and-shoot commands your application would normally
+   accept  from  the  keyboard.  Two  of  the  test  games in the ncurses
+   distribution  (bs  and  knight) contain code that illustrates how this
    can be done.
    can be done.
-   
-   See the manual page curs_mouse(3X) for full details of the
+
+   See   the   manual   page  curs_mouse(3X)  for  full  details  of  the
    mouse-interface functions.
    mouse-interface functions.
-   
+
   Finishing Up
   Finishing Up
-  
-   In order to clean up after the ncurses routines, the routine endwin()
-   is provided. It restores tty modes to what they were when initscr()
-   was first called, and moves the cursor down to the lower-left corner.
-   Thus, anytime after the call to initscr, endwin() should be called
+
+   In  order to clean up after the ncurses routines, the routine endwin()
+   is  provided.  It  restores tty modes to what they were when initscr()
+   was  first called, and moves the cursor down to the lower-left corner.
+   Thus,  anytime  after  the  call to initscr, endwin() should be called
    before exiting.
    before exiting.
-   
+
 Function Descriptions
 
 Function Descriptions
 
-   We describe the detailed behavior of some important curses functions
+   We  describe  the detailed behavior of some important curses functions
    here, as a supplement to the manual page descriptions.
    here, as a supplement to the manual page descriptions.
-   
+
   Initialization and Wrapup
   Initialization and Wrapup
-  
+
    initscr()
    initscr()
-          The first function called should almost always be initscr().
-          This will determine the terminal type and initialize curses
+          The  first  function  called should almost always be initscr().
+          This  will  determine  the  terminal type and initialize curses
           data structures. initscr() also arranges that the first call to
           data structures. initscr() also arranges that the first call to
-          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
+          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(),
           and, if you are using multiple terminals, newterm().)
           before initscr (slk_init(), filter(), ripofflines(), use_env(),
           and, if you are using multiple terminals, newterm().)
-          
+
    endwin()
    endwin()
-          Your program should always call endwin() before exiting or
-          shelling out of the program. This function will restore tty
-          modes, move the cursor to the lower left corner of the screen,
-          reset the terminal into the proper non-visual mode. Calling
-          refresh() or doupdate() after a temporary escape from the
+          Your  program  should  always  call  endwin() before exiting or
+          shelling  out  of  the  program. This function will restore tty
+          modes,  move the cursor to the lower left corner of the screen,
+          reset  the  terminal  into  the proper non-visual mode. Calling
+          refresh()  or  doupdate()  after  a  temporary  escape from the
           program will restore the ncurses screen from before the escape.
           program will restore the ncurses screen from before the escape.
-          
+
    newterm(type, ofp, ifp)
    newterm(type, ofp, ifp)
-          A program which outputs to more than one terminal should use
+          A  program  which  outputs to more than one terminal should use
           newterm() instead of initscr(). newterm() should be called once
           for each terminal. It returns a variable of type SCREEN * which
           newterm() instead of initscr(). newterm() should be called once
           for each terminal. It returns a variable of type SCREEN * which
-          should be saved as a reference to that terminal. The arguments
-          are the type of the terminal (a string) and FILE pointers for
-          the output and input of the terminal. If type is NULL then the
-          environment variable $TERM is used. endwin() should called once
-          at wrapup time for each terminal opened using this function.
-          
+          should  be  saved  as  a  reference  to that terminal. (NOTE: a
+          SCREEN  variable is not a screen in the sense we are describing
+          in  this  introduction,  but a collection of parameters used to
+          assist  in  optimizing the display.) The arguments are the type
+          of the terminal (a string) and FILE pointers for the output and
+          input  of  the  terminal.  If type is NULL then the environment
+          variable  $TERM  is used. endwin() should called once at wrapup
+          time for each terminal opened using this function.
+
    set_term(new)
    set_term(new)
-          This function is used to switch to a different terminal
-          previously opened by newterm(). The screen reference for the
-          new terminal is passed as the parameter. The previous terminal
-          is returned by the function. All other calls affect only the
+          This  function  is  used  to  switch  to  a  different terminal
+          previously  opened  by  newterm(). The screen reference for the
+          new  terminal is passed as the parameter. The previous terminal
+          is  returned  by  the function. All other calls affect only the
           current terminal.
           current terminal.
-          
+
    delscreen(sp)
    delscreen(sp)
-          The inverse of newterm(); deallocates the data structures
+          The  inverse  of  newterm();  deallocates  the  data structures
           associated with a given SCREEN reference.
           associated with a given SCREEN reference.
-          
+
   Causing Output to the Terminal
   Causing Output to the Terminal
-  
+
    refresh() and wrefresh(win)
    refresh() and wrefresh(win)
-          These functions must be called to actually get any output on
-          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
+          These  functions  must  be called to actually get any output on
+          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.
           cursor.
-          
+
    doupdate() and wnoutrefresh(win)
           These two functions allow multiple updates with more efficiency
    doupdate() and wnoutrefresh(win)
           These two functions allow multiple updates with more efficiency
-          than wrefresh. To use them, it is important to understand how
-          curses works. In addition to all the window structures, curses
-          keeps two data structures representing the terminal screen: a
+          than  wrefresh.  To use them, it is important to understand how
+          curses  works. In addition to all the window structures, curses
+          keeps  two  data structures representing the terminal screen: a
           physical screen, describing what is actually on the screen, and
           physical screen, describing what is actually on the screen, and
-          a virtual screen, describing what the programmer wants to have
+          a  virtual screen, describing what the programmer wants to have
           on the screen. wrefresh works by first copying the named window
           on the screen. wrefresh works by first copying the named window
-          to the virtual screen (wnoutrefresh()), and then calling the
-          routine to update the screen (doupdate()). If the programmer
-          wishes to output several windows at once, a series of calls to
+          to  the  virtual  screen (wnoutrefresh()), and then calling the
+          routine  to  update  the screen (doupdate()). If the programmer
+          wishes  to output several windows at once, a series of calls to
           wrefresh will result in alternating calls to wnoutrefresh() and
           wrefresh will result in alternating calls to wnoutrefresh() and
-          doupdate(), causing several bursts of output to the screen. By
-          calling wnoutrefresh() for each window, it is then possible to
-          call doupdate() once, resulting in only one burst of output,
-          with fewer total characters transmitted (this also avoids a
+          doupdate(),  causing several bursts of output to the screen. By
+          calling  wnoutrefresh() for each window, it is then possible to
+          call  doupdate()  once,  resulting in only one burst of output,
+          with  fewer  total  characters  transmitted (this also avoids a
           visually annoying flicker at each update).
           visually annoying flicker at each update).
-          
+
   Low-Level Capability Access
   Low-Level Capability Access
-  
+
    setupterm(term, filenum, errret)
    setupterm(term, filenum, errret)
-          This routine is called to initialize a terminal's description,
+          This  routine is called to initialize a terminal's description,
           without setting up the curses screen structures or changing the
           tty-driver mode bits. term is the character string representing
           without setting up the curses screen structures or changing the
           tty-driver mode bits. term is the character string representing
-          the name of the terminal being used. filenum is the UNIX file
-          descriptor of the terminal to be used for output. errret is a
+          the  name  of the terminal being used. filenum is the UNIX file
+          descriptor  of  the terminal to be used for output. errret is a
           pointer to an integer, in which a success or failure indication
           pointer to an integer, in which a success or failure indication
-          is returned. The values returned can be 1 (all is well), 0 (no
-          such terminal), or -1 (some problem locating the terminfo
+          is  returned. The values returned can be 1 (all is well), 0 (no
+          such  terminal),  or  -1  (some  problem  locating the terminfo
           database).
           database).
-          
-          The value of term can be given as NULL, which will cause the
+
+          The  value  of  term can be given as NULL, which will cause the
           value of TERM in the environment to be used. The errret pointer
           value of TERM in the environment to be used. The errret pointer
-          can also be given as NULL, meaning no error code is wanted. If
+          can  also be given as NULL, meaning no error code is wanted. If
           errret is defaulted, and something goes wrong, setupterm() will
           errret is defaulted, and something goes wrong, setupterm() will
-          print an appropriate error message and exit, rather than
-          returning. Thus, a simple program can call setupterm(0, 1, 0)
+          print  an  appropriate  error  message  and  exit,  rather than
+          returning.  Thus,  a simple program can call setupterm(0, 1, 0)
           and not worry about initialization errors.
           and not worry about initialization errors.
-          
-          After the call to setupterm(), the global variable cur_term is
+
+          After  the call to setupterm(), the global variable cur_term is
           set to point to the current structure of terminal capabilities.
           set to point to the current structure of terminal capabilities.
-          By calling setupterm() for each terminal, and saving and
-          restoring cur_term, it is possible for a program to use two or
-          more terminals at once. Setupterm() also stores the names
-          section of the terminal description in the global character
+          By  calling  setupterm()  for  each  terminal,  and  saving and
+          restoring  cur_term, it is possible for a program to use two or
+          more  terminals  at  once.  Setupterm()  also  stores the names
+          section  of  the  terminal  description in the global character
           array ttytype[]. Subsequent calls to setupterm() will overwrite
           this array, so you'll have to save it yourself if need be.
           array ttytype[]. Subsequent calls to setupterm() will overwrite
           this array, so you'll have to save it yourself if need be.
-          
+
   Debugging
   Debugging
-  
+
      NOTE: These functions are not part of the standard curses API!
      NOTE: These functions are not part of the standard curses API!
-     
+
    trace()
    trace()
-          This function can be used to explicitly set a trace level. If
-          the trace level is nonzero, execution of your program will
+          This  function  can be used to explicitly set a trace level. If
+          the  trace  level  is  nonzero,  execution of your program will
           generate a file called `trace' in the current working directory
           generate a file called `trace' in the current working directory
-          containing a report on the library's actions. Higher trace
-          levels enable more detailed (and verbose) reporting -- see
-          comments attached to TRACE_ defines in the curses.h file for
+          containing  a  report  on  the  library's actions. Higher trace
+          levels  enable  more  detailed  (and  verbose) reporting -- see
+          comments  attached  to  TRACE_ defines in the curses.h file for
           details. (It is also possible to set a trace level by assigning
           a trace level value to the environment variable NCURSES_TRACE).
           details. (It is also possible to set a trace level by assigning
           a trace level value to the environment variable NCURSES_TRACE).
-          
+
    _tracef()
    _tracef()
-          This function can be used to output your own debugging
-          information. It is only available only if you link with
-          -lncurses_g. It can be used the same way as printf(), only it
-          outputs a newline after the end of arguments. The output goes
+          This  function  can  be  used  to  output  your  own  debugging
+          information.  It  is  only  available  only  if  you  link with
+          -lncurses_g.  It  can be used the same way as printf(), only it
+          outputs  a  newline after the end of arguments. The output goes
           to a file called trace in the current directory.
           to a file called trace in the current directory.
-          
-   Trace logs can be difficult to interpret due to the sheer volume of
+
+   Trace  logs  can  be difficult to interpret due to the sheer volume of
    data dumped in them. There is a script called tracemunch included with
    data dumped in them. There is a script called tracemunch included with
-   the ncurses distribution that can alleviate this problem somewhat; it
-   compacts long sequences of similar operations into more succinct
-   single-line pseudo-operations. These pseudo-ops can be distinguished
+   the  ncurses distribution that can alleviate this problem somewhat; it
+   compacts  long  sequences  of  similar  operations  into more succinct
+   single-line  pseudo-operations.  These pseudo-ops can be distinguished
    by the fact that they are named in capital letters.
    by the fact that they are named in capital letters.
-   
+
 Hints, Tips, and Tricks
 
    The ncurses manual pages are a complete reference for this library. In
    the remainder of this document, we discuss various useful methods that
    may not be obvious from the manual page descriptions.
 Hints, Tips, and Tricks
 
    The ncurses manual pages are a complete reference for this library. In
    the remainder of this document, we discuss various useful methods that
    may not be obvious from the manual page descriptions.
-   
+
   Some Notes of Caution
   Some Notes of Caution
-  
-   If you find yourself thinking you need to use noraw() or nocbreak(),
-   think again and move carefully. It's probably better design to use
-   getstr() or one of its relatives to simulate cooked mode. The noraw()
-   and nocbreak() functions try to restore cooked mode, but they may end
-   up clobbering some control bits set before you started your
-   application. Also, they have always been poorly documented, and are
-   likely to hurt your application's usability with other curses
+
+   If  you  find yourself thinking you need to use noraw() or nocbreak(),
+   think  again  and  move  carefully. It's probably better design to use
+   getstr()  or one of its relatives to simulate cooked mode. The noraw()
+   and  nocbreak() functions try to restore cooked mode, but they may end
+   up   clobbering   some  control  bits  set  before  you  started  your
+   application.  Also,  they  have always been poorly documented, and are
+   likely   to  hurt  your  application's  usability  with  other  curses
    libraries.
    libraries.
-   
-   Bear in mind that refresh() is a synonym for wrefresh(stdscr). Don't
-   try to mix use of stdscr with use of windows declared by newwin(); a
-   refresh() call will blow them off the screen. The right way to handle
-   this is to use subwin(), or not touch stdscr at all and tile your
-   screen with declared windows which you then wnoutrefresh() somewhere
-   in your program event loop, with a single doupdate() call to trigger
+
+   Bear  in  mind that refresh() is a synonym for wrefresh(stdscr). Don't
+   try  to  mix use of stdscr with use of windows declared by newwin(); a
+   refresh()  call will blow them off the screen. The right way to handle
+   this  is  to  use  subwin(),  or not touch stdscr at all and tile your
+   screen  with  declared windows which you then wnoutrefresh() somewhere
+   in  your  program event loop, with a single doupdate() call to trigger
    actual repainting.
    actual repainting.
-   
-   You are much less likely to run into problems if you design your
-   screen layouts to use tiled rather than overlapping windows.
-   Historically, curses support for overlapping windows has been weak,
-   fragile, and poorly documented. The ncurses library is not yet an
+
+   You  are  much  less  likely  to  run into problems if you design your
+   screen   layouts   to  use  tiled  rather  than  overlapping  windows.
+   Historically,  curses  support  for overlapping windows has been weak,
+   fragile,  and  poorly  documented.  The  ncurses library is not yet an
    exception to this rule.
    exception to this rule.
-   
-   There is a panels library included in the ncurses distribution that
-   does a pretty good job of strengthening the overlapping-windows
+
+   There  is  a  panels library included in the ncurses distribution that
+   does  a  pretty  good  job  of  strengthening  the overlapping-windows
    facilities.
    facilities.
-   
+
    Try to avoid using the global variables LINES and COLS. Use getmaxyx()
    Try to avoid using the global variables LINES and COLS. Use getmaxyx()
-   on the stdscr context instead. Reason: your code may be ported to run
-   in an environment with window resizes, in which case several screens
+   on  the stdscr context instead. Reason: your code may be ported to run
+   in  an  environment with window resizes, in which case several screens
    could be open with different sizes.
    could be open with different sizes.
-   
+
   Temporarily Leaving NCURSES Mode
   Temporarily Leaving NCURSES Mode
-  
-   Sometimes you will want to write a program that spends most of its
-   time in screen mode, but occasionally returns to ordinary `cooked'
-   mode. A common reason for this is to support shell-out. This behavior
+
+   Sometimes  you  will  want  to write a program that spends most of its
+   time  in  screen  mode,  but occasionally returns to ordinary `cooked'
+   mode.  A common reason for this is to support shell-out. This behavior
    is simple to arrange in ncurses.
    is simple to arrange in ncurses.
-   
-   To leave ncurses mode, call endwin() as you would if you were
-   intending to terminate the program. This will take the screen back to
-   cooked mode; you can do your shell-out. When you want to return to
-   ncurses mode, simply call refresh() or doupdate(). This will repaint
+
+   To  leave  ncurses  mode,  call  endwin()  as  you  would  if you were
+   intending  to terminate the program. This will take the screen back to
+   cooked  mode;  you  can  do your shell-out. When you want to return to
+   ncurses  mode,  simply call refresh() or doupdate(). This will repaint
    the screen.
    the screen.
-   
-   There is a boolean function, isendwin(), which code can use to test
+
+   There  is  a  boolean function, isendwin(), which code can use to test
    whether ncurses screen mode is active. It returns TRUE in the interval
    between an endwin() call and the following refresh(), FALSE otherwise.
    whether ncurses screen mode is active. It returns TRUE in the interval
    between an endwin() call and the following refresh(), FALSE otherwise.
-   
+
    Here is some sample code for shellout:
     addstr("Shelling out...");
     def_prog_mode();           /* save current tty modes */
    Here is some sample code for shellout:
     addstr("Shelling out...");
     def_prog_mode();           /* save current tty modes */
@@ -796,319 +799,319 @@ Hints, Tips, and Tricks
     refresh();                 /* restore save modes, repaint screen */
 
   Using NCURSES under XTERM
     refresh();                 /* restore save modes, repaint screen */
 
   Using NCURSES under XTERM
-  
-   A resize operation in X sends SIGWINCH to the application running
-   under xterm. The ncurses library provides an experimental signal
-   handler, but in general does not catch this signal, because it cannot
-   know how you want the screen re-painted. You will usually have to
+
+   A  resize  operation  in  X  sends SIGWINCH to the application running
+   under  xterm.  The  ncurses  library  provides  an experimental signal
+   handler,  but in general does not catch this signal, because it cannot
+   know  how  you  want  the  screen re-painted. You will usually have to
    write the SIGWINCH handler yourself. Ncurses can give you some help.
    write the SIGWINCH handler yourself. Ncurses can give you some help.
-   
-   The easiest way to code your SIGWINCH handler is to have it do an
+
+   The  easiest  way  to  code  your SIGWINCH handler is to have it do an
    endwin, followed by an refresh and a screen repaint you code yourself.
    endwin, followed by an refresh and a screen repaint you code yourself.
-   The refresh will pick up the new screen size from the xterm's
+   The  refresh  will  pick  up  the  new  screen  size  from the xterm's
    environment.
    environment.
-   
-   That is the standard way, of course (it even works with some vendor's
-   curses implementations). Its drawback is that it clears the screen to
+
+   That  is the standard way, of course (it even works with some vendor's
+   curses  implementations). Its drawback is that it clears the screen to
    reinitialize the display, and does not resize subwindows which must be
    reinitialize the display, and does not resize subwindows which must be
-   shrunk. Ncurses provides an extension which works better, the
-   resizeterm function. That function ensures that all windows are
-   limited to the new screen dimensions, and pads stdscr with blanks if
+   shrunk.   Ncurses  provides  an  extension  which  works  better,  the
+   resizeterm  function.  That  function  ensures  that  all  windows are
+   limited  to  the new screen dimensions, and pads stdscr with blanks if
    the screen is larger.
    the screen is larger.
-   
-   Finally, ncurses can be configured to provide its own SIGWINCH
+
+   Finally,  ncurses  can  be  configured  to  provide  its  own SIGWINCH
    handler, based on resizeterm.
    handler, based on resizeterm.
-   
+
   Handling Multiple Terminal Screens
   Handling Multiple Terminal Screens
-  
+
    The initscr() function actually calls a function named newterm() to do
    The initscr() function actually calls a function named newterm() to do
-   most of its work. If you are writing a program that opens multiple
+   most  of  its  work.  If you are writing a program that opens multiple
    terminals, use newterm() directly.
    terminals, use newterm() directly.
-   
-   For each call, you will have to specify a terminal type and a pair of
-   file pointers; each call will return a screen reference, and stdscr
+
+   For  each call, you will have to specify a terminal type and a pair of
+   file  pointers;  each  call will return a screen reference, and stdscr
    will be set to the last one allocated. You will switch between screens
    will be set to the last one allocated. You will switch between screens
-   with the set_term call. Note that you will also have to call
+   with  the  set_term  call.  Note  that  you  will  also  have  to call
    def_shell_mode and def_prog_mode on each tty yourself.
    def_shell_mode and def_prog_mode on each tty yourself.
-   
+
   Testing for Terminal Capabilities
   Testing for Terminal Capabilities
-  
+
    Sometimes you may want to write programs that test for the presence of
    Sometimes you may want to write programs that test for the presence of
-   various capabilities before deciding whether to go into ncurses mode.
-   An easy way to do this is to call setupterm(), then use the functions
+   various  capabilities before deciding whether to go into ncurses mode.
+   An  easy way to do this is to call setupterm(), then use the functions
    tigetflag(), tigetnum(), and tigetstr() to do your testing.
    tigetflag(), tigetnum(), and tigetstr() to do your testing.
-   
-   A particularly useful case of this often comes up when you want to
-   test whether a given terminal type should be treated as `smart'
+
+   A  particularly  useful  case  of this often comes up when you want to
+   test  whether  a  given  terminal  type  should  be treated as `smart'
    (cursor-addressable) or `stupid'. The right way to test this is to see
    if the return value of tigetstr("cup") is non-NULL. Alternatively, you
    (cursor-addressable) or `stupid'. The right way to test this is to see
    if the return value of tigetstr("cup") is non-NULL. Alternatively, you
-   can include the term.h file and test the value of the macro
+   can  include  the  term.h  file  and  test  the  value  of  the  macro
    cursor_address.
    cursor_address.
-   
+
   Tuning for Speed
   Tuning for Speed
-  
-   Use the addchstr() family of functions for fast screen-painting of
-   text when you know the text doesn't contain any control characters.
-   Try to make attribute changes infrequent on your screens. Don't use
+
+   Use  the  addchstr()  family  of functions for fast screen-painting of
+   text  when  you  know the text doesn't contain any control characters.
+   Try  to  make  attribute changes infrequent on your screens. Don't use
    the immedok() option!
    the immedok() option!
-   
+
   Special Features of NCURSES
   Special Features of NCURSES
-  
-   The wresize() function allows you to resize a window in place. The
-   associated resizeterm() function simplifies the construction of
+
+   The  wresize()  function  allows  you to resize a window in place. The
+   associated   resizeterm()  function  simplifies  the  construction  of
    SIGWINCH handlers, for resizing all windows.
    SIGWINCH handlers, for resizing all windows.
-   
+
    The define_key() function allows you to define at runtime function-key
    The define_key() function allows you to define at runtime function-key
-   control sequences which are not in the terminal description. The
-   keyok() function allows you to temporarily enable or disable
+   control  sequences  which  are  not  in  the terminal description. The
+   keyok()   function   allows  you  to  temporarily  enable  or  disable
    interpretation of any function-key control sequence.
    interpretation of any function-key control sequence.
-   
+
    The use_default_colors() function allows you to construct applications
    The use_default_colors() function allows you to construct applications
-   which can use the terminal's default foreground and background colors
-   as an additional "default" color. Several terminal emulators support
+   which  can use the terminal's default foreground and background colors
+   as  an  additional "default" color. Several terminal emulators support
    this feature, which is based on ISO 6429.
    this feature, which is based on ISO 6429.
-   
-   Ncurses supports up 16 colors, unlike SVr4 curses which defines only
+
+   Ncurses  supports  up 16 colors, unlike SVr4 curses which defines only
    8. While most terminals which provide color allow only 8 colors, about
    a quarter (including XFree86 xterm) support 16 colors.
    8. While most terminals which provide color allow only 8 colors, about
    a quarter (including XFree86 xterm) support 16 colors.
-   
+
 Compatibility with Older Versions
 
 Compatibility with Older Versions
 
-   Despite our best efforts, there are some differences between ncurses
-   and the (undocumented!) behavior of older curses implementations.
-   These arise from ambiguities or omissions in the documentation of the
+   Despite  our  best efforts, there are some differences between ncurses
+   and  the  (undocumented!)  behavior  of  older curses implementations.
+   These  arise from ambiguities or omissions in the documentation of the
    API.
    API.
-   
+
   Refresh of Overlapping Windows
   Refresh of Overlapping Windows
-  
-   If you define two windows A and B that overlap, and then alternately
-   scribble on and refresh them, the changes made to the overlapping
-   region under historic curses versions were often not documented
+
+   If  you  define two windows A and B that overlap, and then alternately
+   scribble  on  and  refresh  them,  the changes made to the overlapping
+   region  under  historic  curses  versions  were  often  not documented
    precisely.
    precisely.
-   
-   To understand why this is a problem, remember that screen updates are
-   calculated between two representations of the entire display. The
-   documentation says that when you refresh a window, it is first copied
-   to to the virtual screen, and then changes are calculated to update
-   the physical screen (and applied to the terminal). But "copied to" is
-   not very specific, and subtle differences in how copying works can
-   produce different behaviors in the case where two overlapping windows
+
+   To  understand why this is a problem, remember that screen updates are
+   calculated  between  two  representations  of  the entire display. The
+   documentation  says that when you refresh a window, it is first copied
+   to  to  the  virtual screen, and then changes are calculated to update
+   the  physical screen (and applied to the terminal). But "copied to" is
+   not  very  specific,  and  subtle differences in how copying works can
+   produce  different behaviors in the case where two overlapping windows
    are each being refreshed at unpredictable intervals.
    are each being refreshed at unpredictable intervals.
-   
-   What happens to the overlapping region depends on what wnoutrefresh()
-   does with its argument -- what portions of the argument window it
-   copies to the virtual screen. Some implementations do "change copy",
-   copying down only locations in the window that have changed (or been
-   marked changed with wtouchln() and friends). Some implementations do
-   "entire copy", copying all window locations to the virtual screen
+
+   What  happens to the overlapping region depends on what wnoutrefresh()
+   does  with  its  argument  --  what portions of the argument window it
+   copies  to  the virtual screen. Some implementations do "change copy",
+   copying  down  only locations in the window that have changed (or been
+   marked  changed  with wtouchln() and friends). Some implementations do
+   "entire  copy",  copying  all  window  locations to the virtual screen
    whether or not they have changed.
    whether or not they have changed.
-   
-   The ncurses library itself has not always been consistent on this
-   score. Due to a bug, versions 1.8.7 to 1.9.8a did entire copy.
-   Versions 1.8.6 and older, and versions 1.9.9 and newer, do change
+
+   The  ncurses  library  itself  has  not always been consistent on this
+   score.  Due  to  a  bug,  versions  1.8.7  to  1.9.8a did entire copy.
+   Versions  1.8.6  and  older,  and  versions 1.9.9 and newer, do change
    copy.
    copy.
-   
-   For most commercial curses implementations, it is not documented and
-   not known for sure (at least not to the ncurses maintainers) whether
-   they do change copy or entire copy. We know that System V release 3
-   curses has logic in it that looks like an attempt to do change copy,
-   but the surrounding logic and data representations are sufficiently
-   complex, and our knowledge sufficiently indirect, that it's hard to
-   know whether this is reliable. It is not clear what the SVr4
-   documentation and XSI standard intend. The XSI Curses standard barely
-   mentions wnoutrefresh(); the SVr4 documents seem to be describing
+
+   For  most  commercial curses implementations, it is not documented and
+   not  known  for sure (at least not to the ncurses maintainers) whether
+   they  do  change  copy or entire copy. We know that System V release 3
+   curses  has  logic in it that looks like an attempt to do change copy,
+   but  the  surrounding  logic and data representations are sufficiently
+   complex,  and  our  knowledge sufficiently indirect, that it's hard to
+   know  whether  this  is  reliable.  It  is  not  clear  what  the SVr4
+   documentation  and XSI standard intend. The XSI Curses standard barely
+   mentions  wnoutrefresh();  the  SVr4  documents  seem to be describing
    entire-copy, but it is possible with some effort and straining to read
    them the other way.
    entire-copy, but it is possible with some effort and straining to read
    them the other way.
-   
-   It might therefore 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 touchwin() before the wnoutrefresh()
+
+   It  might  therefore  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 touchwin() before the wnoutrefresh()
    call to guarantee an entire-contents copy anywhere.
    call to guarantee an entire-contents copy anywhere.
-   
-   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
-   you have defined. Then you can do one doupdate() and there will be a
+
+   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
+   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.
    single burst of physical I/O that will do all your updates.
-   
+
   Background Erase
   Background Erase
-  
+
    If you have been using a very old versions of ncurses (1.8.7 or older)
    If you have been using a very old versions of ncurses (1.8.7 or older)
-   you may be surprised by the behavior of the erase functions. In older
-   versions, erased areas of a window were filled with a blank modified
-   by the window's current attribute (as set by wattrset(), wattron(),
+   you  may be surprised by the behavior of the erase functions. In older
+   versions,  erased  areas of a window were filled with a blank modified
+   by  the  window's  current attribute (as set by wattrset(), wattron(),
    wattroff() and friends).
    wattroff() and friends).
-   
-   In newer versions, this is not so. Instead, the attribute of erased
-   blanks is normal unless and until it is modified by the functions
+
+   In  newer  versions,  this is not so. Instead, the attribute of erased
+   blanks  is  normal  unless  and  until it is modified by the functions
    bkgdset() or wbkgdset().
    bkgdset() or wbkgdset().
-   
+
    This change in behavior conforms ncurses to System V Release 4 and the
    XSI Curses standard.
    This change in behavior conforms ncurses to System V Release 4 and the
    XSI Curses standard.
-   
+
 XSI Curses Conformance
 
 XSI Curses Conformance
 
-   The ncurses library is intended to be base-level conformant with the
-   XSI Curses standard from X/Open. Many extended-level features (in
-   fact, almost all features not directly concerned with wide characters
+   The  ncurses  library is intended to be base-level conformant with the
+   XSI  Curses  standard  from  X/Open.  Many extended-level features (in
+   fact,  almost all features not directly concerned with wide characters
    and internationalization) are also supported.
    and internationalization) are also supported.
-   
-   One effect of XSI conformance is the change in behavior described
+
+   One  effect  of  XSI  conformance  is the change in behavior described
    under "Background Erase -- Compatibility with Old Versions".
    under "Background Erase -- Compatibility with Old Versions".
-   
-   Also, ncurses meets the XSI requirement that every macro entry point
-   have a corresponding function which may be linked (and will be
+
+   Also,  ncurses  meets the XSI requirement that every macro entry point
+   have  a  corresponding  function  which  may  be  linked  (and will be
    prototype-checked) if the macro definition is disabled with #undef.
    prototype-checked) if the macro definition is disabled with #undef.
-   
+
                               The Panels Library
                               The Panels Library
-                                       
-   The ncurses library by itself provides good support for screen
+
+   The  ncurses  library  by  itself  provides  good  support  for screen
    displays in which the windows are tiled (non-overlapping). In the more
    displays in which the windows are tiled (non-overlapping). In the more
-   general case that windows may overlap, you have to use a series of
-   wnoutrefresh() calls followed by a doupdate(), and be careful about
+   general  case  that  windows  may overlap, you have to use a series of
+   wnoutrefresh()  calls  followed  by a doupdate(), and be careful about
    the order you do the window refreshes in. It has to be bottom-upwards,
    otherwise parts of windows that should be obscured will show through.
    the order you do the window refreshes in. It has to be bottom-upwards,
    otherwise parts of windows that should be obscured will show through.
-   
-   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
+
+   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.
    panels library.
-   
-   The panel library first appeared in AT&T System V. The version
+
+   The  panel  library  first  appeared  in  AT&T  System  V. The version
    documented here is the panel code distributed with ncurses.
    documented here is the panel code distributed with ncurses.
-   
+
 Compiling With the Panels Library
 
 Compiling With the Panels Library
 
-   Your panels-using modules must import the panels library declarations
+   Your  panels-using modules must import the panels library declarations
    with
           #include <panel.h>
 
    and must be linked explicitly with the panels library using an -lpanel
    with
           #include <panel.h>
 
    and must be linked explicitly with the panels library using an -lpanel
-   argument. Note that they must also link the ncurses library with
+   argument.  Note  that  they  must  also  link the ncurses library with
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lpanel first and -lncurses second.
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lpanel first and -lncurses second.
-   
+
 Overview of Panels
 
 Overview of Panels
 
-   A panel object is a window that is implicitly treated as part of a
-   deck including all other panel objects. The deck has an implicit
-   bottom-to-top visibility order. The panels library includes an update
+   A  panel  object  is  a window that is implicitly treated as part of a
+   deck  including  all  other  panel  objects.  The deck has an implicit
+   bottom-to-top  visibility order. The panels library includes an update
    function (analogous to refresh()) that displays all panels in the deck
    function (analogous to refresh()) that displays all panels in the deck
-   in the proper order to resolve overlaps. The standard window, stdscr,
+   in  the proper order to resolve overlaps. The standard window, stdscr,
    is considered below all panels.
    is considered below all panels.
-   
-   Details on the panels functions are available in the man pages. We'll
+
+   Details  on the panels functions are available in the man pages. We'll
    just hit the highlights here.
    just hit the highlights here.
-   
-   You create a panel from a window by calling new_panel() on a window
-   pointer. It then becomes the top of the deck. The panel's window is
+
+   You  create  a  panel from a window by calling new_panel() on a window
+   pointer.  It  then  becomes the top of the deck. The panel's window is
    available as the value of panel_window() called with the panel pointer
    as argument.
    available as the value of panel_window() called with the panel pointer
    as argument.
-   
-   You can delete a panel (removing it from the deck) with del_panel.
-   This will not deallocate the associated window; you have to do that
-   yourself. You can replace a panel's window with a different window by
-   calling replace_window. The new window may be of different size; the
+
+   You  can  delete  a  panel (removing it from the deck) with del_panel.
+   This  will  not  deallocate the associated window; you have to do that
+   yourself.  You can replace a panel's window with a different window by
+   calling  replace_window.  The new window may be of different size; the
    panel code will re-compute all overlaps. This operation doesn't change
    the panel's position in the deck.
    panel code will re-compute all overlaps. This operation doesn't change
    the panel's position in the deck.
-   
-   To move a panel's window, use move_panel(). The mvwin() function on
-   the panel's window isn't sufficient because it doesn't update the
-   panels library's representation of where the windows are. This
+
+   To  move  a  panel's window, use move_panel(). The mvwin() function on
+   the  panel's  window  isn't  sufficient  because it doesn't update the
+   panels  library's  representation  of  where  the  windows  are.  This
    operation leaves the panel's depth, contents, and size unchanged.
    operation leaves the panel's depth, contents, and size unchanged.
-   
-   Two functions (top_panel(), bottom_panel()) are provided for
+
+   Two   functions   (top_panel(),   bottom_panel())   are  provided  for
    rearranging the deck. The first pops its argument window to the top of
    rearranging the deck. The first pops its argument window to the top of
-   the deck; the second sends it to the bottom. Either operation leaves
+   the  deck;  the second sends it to the bottom. Either operation leaves
    the panel's screen location, contents, and size unchanged.
    the panel's screen location, contents, and size unchanged.
-   
-   The function update_panels() does all the wnoutrefresh() calls needed
+
+   The  function update_panels() does all the wnoutrefresh() calls needed
    to prepare for doupdate() (which you must call yourself, afterwards).
    to prepare for doupdate() (which you must call yourself, afterwards).
-   
-   Typically, you will want to call update_panels() and doupdate() just
+
+   Typically,  you  will want to call update_panels() and doupdate() just
    before accepting command input, once in each cycle of interaction with
    before accepting command input, once in each cycle of interaction with
-   the user. If you call update_panels() after each and every panel
-   write, you'll generate a lot of unnecessary refresh activity and
+   the  user.  If  you  call  update_panels()  after each and every panel
+   write,  you'll  generate  a  lot  of  unnecessary refresh activity and
    screen flicker.
    screen flicker.
-   
+
 Panels, Input, and the Standard Screen
 
 Panels, Input, and the Standard Screen
 
-   You shouldn't mix wnoutrefresh() or wrefresh() operations with panels
-   code; this will work only if the argument window is either in the top
+   You  shouldn't mix wnoutrefresh() or wrefresh() operations with panels
+   code;  this will work only if the argument window is either in the top
    panel or unobscured by any other panels.
    panel or unobscured by any other panels.
-   
-   The stsdcr window is a special case. It is considered below all
+
+   The  stsdcr  window  is  a  special  case.  It is considered below all
    panels. Because changes to panels may obscure parts of stdscr, though,
    panels. Because changes to panels may obscure parts of stdscr, though,
-   you should call update_panels() before doupdate() even when you only
+   you  should  call update_panels() before doupdate() even when you only
    change stdscr.
    change stdscr.
-   
-   Note that wgetch automatically calls wrefresh. Therefore, before
-   requesting input from a panel window, you need to be sure that the
+
+   Note  that  wgetch  automatically  calls  wrefresh.  Therefore, before
+   requesting  input  from  a  panel window, you need to be sure that the
    panel is totally unobscured.
    panel is totally unobscured.
-   
-   There is presently no way to display changes to one obscured panel
+
+   There  is  presently  no  way to display changes to one obscured panel
    without repainting all panels.
    without repainting all panels.
-   
+
 Hiding Panels
 
 Hiding Panels
 
-   It's possible to remove a panel from the deck temporarily; use
-   hide_panel for this. Use show_panel() to render it visible again. The
-   predicate function panel_hidden tests whether or not a panel is
+   It's  possible  to  remove  a  panel  from  the  deck temporarily; use
+   hide_panel  for this. Use show_panel() to render it visible again. The
+   predicate  function  panel_hidden  tests  whether  or  not  a panel is
    hidden.
    hidden.
-   
+
    The panel_update code ignores hidden panels. You cannot do top_panel()
    The panel_update code ignores hidden panels. You cannot do top_panel()
-   or bottom_panel on a hidden panel(). Other panels operations are
+   or  bottom_panel  on  a  hidden  panel().  Other panels operations are
    applicable.
    applicable.
-   
+
 Miscellaneous Other Facilities
 
 Miscellaneous Other Facilities
 
-   It's possible to navigate the deck using the functions panel_above()
-   and panel_below. Handed a panel pointer, they return the panel above
-   or below that panel. Handed NULL, they return the bottom-most or
+   It's  possible  to navigate the deck using the functions panel_above()
+   and  panel_below.  Handed a panel pointer, they return the panel above
+   or  below  that  panel.  Handed  NULL,  they return the bottom-most or
    top-most panel.
    top-most panel.
-   
-   Every panel has an associated user pointer, not used by the panel
-   code, to which you can attach application data. See the man page
+
+   Every  panel  has  an  associated  user pointer, not used by the panel
+   code,  to  which  you  can  attach  application data. See the man page
    documentation of set_panel_userptr() and panel_userptr for details.
    documentation of set_panel_userptr() and panel_userptr for details.
-   
+
                                The Menu Library
                                The Menu Library
-                                       
+
    A menu is a screen display that assists the user to choose some subset
    A menu is a screen display that assists the user to choose some subset
-   of a given set of items. The menu library is a curses extension that
-   supports easy programming of menu hierarchies with a uniform but
+   of  a  given set of items. The menu library is a curses extension that
+   supports  easy  programming  of  menu  hierarchies  with a uniform but
    flexible interface.
    flexible interface.
-   
-   The menu library first appeared in AT&T System V. The version
+
+   The  menu  library  first  appeared  in  AT&T  System  V.  The version
    documented here is the menu code distributed with ncurses.
    documented here is the menu code distributed with ncurses.
-   
+
 Compiling With the menu Library
 
    Your menu-using modules must import the menu library declarations with
           #include <menu.h>
 
 Compiling With the menu Library
 
    Your menu-using modules must import the menu library declarations with
           #include <menu.h>
 
-   and must be linked explicitly with the menus library using an -lmenu
-   argument. Note that they must also link the ncurses library with
+   and  must  be linked explicitly with the menus library using an -lmenu
+   argument.  Note  that  they  must  also  link the ncurses library with
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lmenu first and -lncurses second.
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lmenu first and -lncurses second.
-   
+
 Overview of Menus
 
 Overview of Menus
 
-   The menus created by this library consist of collections of items
-   including a name string part and a description string part. To make
-   menus, you create groups of these items and connect them with menu
+   The  menus  created  by  this  library consist of collections of items
+   including  a  name  string part and a description string part. To make
+   menus,  you  create  groups  of these items and connect them with menu
    frame objects.
    frame objects.
-   
-   The menu can then by posted, that is written to an associated window.
+
+   The  menu can then by posted, that is written to an associated window.
    Actually, each menu has two associated windows; a containing window in
    Actually, each menu has two associated windows; a containing window in
-   which the programmer can scribble titles or borders, and a subwindow
+   which  the  programmer can scribble titles or borders, and a subwindow
    in which the menu items proper are displayed. If this subwindow is too
    in which the menu items proper are displayed. If this subwindow is too
-   small to display all the items, it will be a scrollable viewport on
+   small  to  display  all the items, it will be a scrollable viewport on
    the collection of items.
    the collection of items.
-   
-   A menu may also be unposted (that is, undisplayed), and finally freed
-   to make the storage associated with it and its items available for
+
+   A  menu may also be unposted (that is, undisplayed), and finally freed
+   to  make  the  storage  associated with it and its items available for
    re-use.
    re-use.
-   
+
    The general flow of control of a menu program looks like this:
     1. Initialize curses.
     2. Create the menu items, using new_item().
    The general flow of control of a menu program looks like this:
     1. Initialize curses.
     2. Create the menu items, using new_item().
@@ -1120,195 +1123,195 @@ Overview of Menus
     8. Free the menu, using free_menu().
     9. Free the items using free_item().
    10. Terminate curses.
     8. Free the menu, using free_menu().
     9. Free the items using free_item().
    10. Terminate curses.
-       
+
 Selecting items
 
 Selecting items
 
-   Menus may be multi-valued or (the default) single-valued (see the
-   manual page menu_opts(3x) to see how to change the default). Both
+   Menus  may  be  multi-valued  or  (the default) single-valued (see the
+   manual  page  menu_opts(3x)  to  see  how to change the default). Both
    types always have a current item.
    types always have a current item.
-   
-   From a single-valued menu you can read the selected value simply by
-   looking at the current item. From a multi-valued menu, you get the
-   selected set by looping through the items applying the item_value()
-   predicate function. Your menu-processing code can use the function
+
+   From  a  single-valued  menu you can read the selected value simply by
+   looking  at  the  current  item. From a multi-valued menu, you get the
+   selected  set  by  looping through the items applying the item_value()
+   predicate  function.  Your  menu-processing  code can use the function
    set_item_value() to flag the items in the select set.
    set_item_value() to flag the items in the select set.
-   
-   Menu items can be made unselectable using set_item_opts() or
-   item_opts_off() with the O_SELECTABLE argument. This is the only
-   option so far defined for menus, but it is good practice to code as
+
+   Menu   items   can  be  made  unselectable  using  set_item_opts()  or
+   item_opts_off()  with  the  O_SELECTABLE  argument.  This  is the only
+   option  so  far  defined for menus, but it is good practice to code as
    though other option bits might be on.
    though other option bits might be on.
-   
+
 Menu Display
 
 Menu Display
 
-   The menu library calculates a minimum display size for your window,
+   The  menu  library  calculates a minimum display size for your window,
    based on the following variables:
      * The number and maximum length of the menu items
      * Whether the O_ROWMAJOR option is enabled
      * Whether display of descriptions is enabled
      * Whatever menu format may have been set by the programmer
    based on the following variables:
      * The number and maximum length of the menu items
      * Whether the O_ROWMAJOR option is enabled
      * Whether display of descriptions is enabled
      * Whatever menu format may have been set by the programmer
-     * The length of the menu mark string used for highlighting selected
+     * The  length of the menu mark string used for highlighting selected
        items
        items
-       
-   The function set_menu_format() allows you to set the maximum size of
+
+   The  function  set_menu_format() allows you to set the maximum size of
    the viewport or menu page that will be used to display menu items. You
    can retrieve any format associated with a menu with menu_format(). The
    default format is rows=16, columns=1.
    the viewport or menu page that will be used to display menu items. You
    can retrieve any format associated with a menu with menu_format(). The
    default format is rows=16, columns=1.
-   
+
    The actual menu page may be smaller than the format size. This depends
    The actual menu page may be smaller than the format size. This depends
-   on the item number and size and whether O_ROWMAJOR is on. This option
-   (on by default) causes menu items to be displayed in a `raster-scan'
+   on  the item number and size and whether O_ROWMAJOR is on. This option
+   (on  by  default) causes menu items to be displayed in a `raster-scan'
    pattern, so that if more than one item will fit horizontally the first
    pattern, so that if more than one item will fit horizontally the first
-   couple of items are side-by-side in the top row. The alternative is
-   column-major display, which tries to put the first several items in
+   couple  of  items  are side-by-side in the top row. The alternative is
+   column-major  display,  which  tries to put the first several items in
    the first column.
    the first column.
-   
-   As mentioned above, a menu format not large enough to allow all items
-   to fit on-screen will result in a menu display that is vertically
+
+   As  mentioned above, a menu format not large enough to allow all items
+   to  fit  on-screen  will  result  in a menu display that is vertically
    scrollable.
    scrollable.
-   
-   You can scroll it with requests to the menu driver, which will be
+
+   You  can  scroll  it  with  requests to the menu driver, which will be
    described in the section on menu input handling.
    described in the section on menu input handling.
-   
-   Each menu has a mark string used to visually tag selected items; see
+
+   Each  menu  has a mark string used to visually tag selected items; see
    the menu_mark(3x) manual page for details. The mark string length also
    influences the menu page size.
    the menu_mark(3x) manual page for details. The mark string length also
    influences the menu page size.
-   
-   The function scale_menu() returns the minimum display size that the
-   menu code computes from all these factors. There are other menu
-   display attributes including a select attribute, an attribute for
-   selectable items, an attribute for unselectable items, and a pad
+
+   The  function  scale_menu()  returns the minimum display size that the
+   menu  code  computes  from  all  these  factors.  There are other menu
+   display  attributes  including  a  select  attribute, an attribute for
+   selectable  items,  an  attribute  for  unselectable  items, and a pad
    character used to separate item name text from description text. These
    character used to separate item name text from description text. These
-   have reasonable defaults which the library allows you to change (see
+   have  reasonable  defaults which the library allows you to change (see
    the menu_attribs(3x) manual page.
    the menu_attribs(3x) manual page.
-   
+
 Menu Windows
 
 Menu Windows
 
-   Each menu has, as mentioned previously, a pair of associated windows.
+   Each  menu has, as mentioned previously, a pair of associated windows.
    Both these windows are painted when the menu is posted and erased when
    the menu is unposted.
    Both these windows are painted when the menu is posted and erased when
    the menu is unposted.
-   
-   The outer or frame window is not otherwise touched by the menu
+
+   The  outer  or  frame  window  is  not  otherwise  touched by the menu
    routines. It exists so the programmer can associate a title, a border,
    routines. It exists so the programmer can associate a title, a border,
-   or perhaps help text with the menu and have it properly refreshed or
+   or  perhaps  help text with the menu and have it properly refreshed or
    erased at post/unpost time. The inner window or subwindow is where the
    current menu page is displayed.
    erased at post/unpost time. The inner window or subwindow is where the
    current menu page is displayed.
-   
-   By default, both windows are stdscr. You can set them with the
+
+   By  default,  both  windows  are  stdscr.  You  can  set them with the
    functions in menu_win(3x).
    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
-   these actually modifies the screen. To do that, call wrefresh() or
+
+   When  you  call menu_post(), you write the menu to its subwindow. When
+   you  call  menu_unpost(), you erase the subwindow, However, neither of
+   these  actually  modifies  the  screen. To do that, call wrefresh() or
    some equivalent.
    some equivalent.
-   
+
 Processing Menu Input
 
 Processing Menu Input
 
-   The main loop of your menu-processing code should call menu_driver()
-   repeatedly. The first argument of this routine is a menu pointer; the
-   second is a menu command code. You should write an input-fetching
+   The  main  loop of your menu-processing code should call menu_driver()
+   repeatedly.  The first argument of this routine is a menu pointer; the
+   second  is  a  menu  command  code. You should write an input-fetching
    routine that maps input characters to menu command codes, and pass its
    routine that maps input characters to menu command codes, and pass its
-   output to menu_driver(). The menu command codes are fully documented
+   output  to  menu_driver(). The menu command codes are fully documented
    in menu_driver(3x).
    in menu_driver(3x).
-   
-   The simplest group of command codes is REQ_NEXT_ITEM, REQ_PREV_ITEM,
-   REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_UP_ITEM, REQ_DOWN_ITEM,
-   REQ_LEFT_ITEM, REQ_RIGHT_ITEM. These change the currently selected
-   item. These requests may cause scrolling of the menu page if it only
+
+   The  simplest  group of command codes is REQ_NEXT_ITEM, REQ_PREV_ITEM,
+   REQ_FIRST_ITEM,     REQ_LAST_ITEM,     REQ_UP_ITEM,     REQ_DOWN_ITEM,
+   REQ_LEFT_ITEM,  REQ_RIGHT_ITEM.  These  change  the currently selected
+   item.  These  requests may cause scrolling of the menu page if it only
    partially displayed.
    partially displayed.
-   
-   There are explicit requests for scrolling which also change the
-   current item (because the select location does not change, but the
-   item there does). These are REQ_SCR_DLINE, REQ_SCR_ULINE,
+
+   There  are  explicit  requests  for  scrolling  which  also change the
+   current  item  (because  the  select location does not change, but the
+   item    there   does).   These   are   REQ_SCR_DLINE,   REQ_SCR_ULINE,
    REQ_SCR_DPAGE, and REQ_SCR_UPAGE.
    REQ_SCR_DPAGE, and REQ_SCR_UPAGE.
-   
-   The REQ_TOGGLE_ITEM selects or deselects the current item. It is for
-   use in multi-valued menus; if you use it with O_ONEVALUE on, you'll
+
+   The  REQ_TOGGLE_ITEM  selects or deselects the current item. It is for
+   use  in  multi-valued  menus; if you use it with O_ONEVALUE on, you'll
    get an error return (E_REQUEST_DENIED).
    get an error return (E_REQUEST_DENIED).
-   
-   Each menu has an associated pattern buffer. The menu_driver() logic
-   tries to accumulate printable ASCII characters passed in in that
-   buffer; when it matches a prefix of an item name, that item (or the
-   next matching item) is selected. If appending a character yields no
-   new match, that character is deleted from the pattern buffer, and
+
+   Each  menu  has  an associated pattern buffer. The menu_driver() logic
+   tries  to  accumulate  printable  ASCII  characters  passed in in that
+   buffer;  when  it  matches a prefix of an item name, that item (or the
+   next  matching  item)  is selected. If appending a character yields no
+   new  match,  that  character  is  deleted from the pattern buffer, and
    menu_driver() returns E_NO_MATCH.
    menu_driver() returns E_NO_MATCH.
-   
-   Some requests change the pattern buffer directly: REQ_CLEAR_PATTERN,
-   REQ_BACK_PATTERN, REQ_NEXT_MATCH, REQ_PREV_MATCH. The latter two are
-   useful when pattern buffer input matches more than one item in a
+
+   Some  requests  change the pattern buffer directly: REQ_CLEAR_PATTERN,
+   REQ_BACK_PATTERN,  REQ_NEXT_MATCH,  REQ_PREV_MATCH. The latter two are
+   useful  when  pattern  buffer  input  matches  more than one item in a
    multi-valued menu.
    multi-valued menu.
-   
-   Each successful scroll or item navigation request clears the pattern
-   buffer. It is also possible to set the pattern buffer explicitly with
+
+   Each  successful  scroll or item navigation request clears the pattern
+   buffer.  It is also possible to set the pattern buffer explicitly with
    set_menu_pattern().
    set_menu_pattern().
-   
-   Finally, menu driver requests above the constant MAX_COMMAND are
-   considered application-specific commands. The menu_driver() code
+
+   Finally,  menu  driver  requests  above  the  constant MAX_COMMAND are
+   considered   application-specific  commands.  The  menu_driver()  code
    ignores them and returns E_UNKNOWN_COMMAND.
    ignores them and returns E_UNKNOWN_COMMAND.
-   
+
 Miscellaneous Other Features
 
 Miscellaneous Other Features
 
-   Various menu options can affect the processing and visual appearance
+   Various  menu  options can affect the processing and visual appearance
    and input processing of menus. See menu_opts(3x) for details.
    and input processing of menus. See menu_opts(3x) for details.
-   
-   It is possible to change the current item from application code; this
-   is useful if you want to write your own navigation requests. It is
-   also possible to explicitly set the top row of the menu display. See
-   mitem_current(3x). If your application needs to change the menu
-   subwindow cursor for any reason, pos_menu_cursor() will restore it to
+
+   It  is possible to change the current item from application code; this
+   is  useful  if  you  want to write your own navigation requests. It is
+   also  possible  to explicitly set the top row of the menu display. See
+   mitem_current(3x).  If  your  application  needs  to  change  the menu
+   subwindow  cursor for any reason, pos_menu_cursor() will restore it to
    the correct location for continuing menu driver processing.
    the correct location for continuing menu driver processing.
-   
-   It is possible to set hooks to be called at menu initialization and
-   wrapup time, and whenever the selected item changes. See
+
+   It  is  possible  to set hooks to be called at menu initialization and
+   wrapup   time,   and   whenever   the   selected   item  changes.  See
    menu_hook(3x).
    menu_hook(3x).
-   
-   Each item, and each menu, has an associated user pointer on which you
+
+   Each  item, and each menu, has an associated user pointer on which you
    can hang application data. See mitem_userptr(3x) and menu_userptr(3x).
    can hang application data. See mitem_userptr(3x) and menu_userptr(3x).
-   
+
                                The Forms Library
                                The Forms Library
-                                       
-   The form library is a curses extension that supports easy programming
+
+   The  form library is a curses extension that supports easy programming
    of on-screen forms for data entry and program control.
    of on-screen forms for data entry and program control.
-   
-   The form library first appeared in AT&T System V. The version
+
+   The  form  library  first  appeared  in  AT&T  System  V.  The version
    documented here is the form code distributed with ncurses.
    documented here is the form code distributed with ncurses.
-   
+
 Compiling With the form Library
 
    Your form-using modules must import the form library declarations with
           #include <form.h>
 
 Compiling With the form Library
 
    Your form-using modules must import the form library declarations with
           #include <form.h>
 
-   and must be linked explicitly with the forms library using an -lform
-   argument. Note that they must also link the ncurses library with
+   and  must  be linked explicitly with the forms library using an -lform
+   argument.  Note  that  they  must  also  link the ncurses library with
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lform first and -lncurses second.
    -lncurses. Many linkers are two-pass and will accept either order, but
    it is still good practice to put -lform first and -lncurses second.
-   
+
 Overview of Forms
 
 Overview of Forms
 
-   A form is a collection of fields; each field may be either a label
-   (explanatory text) or a data-entry location. Long forms may be
+   A  form  is  a  collection of fields; each field may be either a label
+   (explanatory  text)  or  a  data-entry  location.  Long  forms  may be
    segmented into pages; each entry to a new page clears the screen.
    segmented into pages; each entry to a new page clears the screen.
-   
-   To make forms, you create groups of fields and connect them with form
+
+   To  make forms, you create groups of fields and connect them with form
    frame objects; the form library makes this relatively simple.
    frame objects; the form library makes this relatively simple.
-   
-   Once defined, a form can be posted, that is written to an associated
-   window. Actually, each form has two associated windows; a containing
-   window in which the programmer can scribble titles or borders, and a
+
+   Once  defined,  a form can be posted, that is written to an associated
+   window.  Actually,  each form has two associated windows; a containing
+   window  in  which the programmer can scribble titles or borders, and a
    subwindow in which the form fields proper are displayed.
    subwindow in which the form fields proper are displayed.
-   
-   As the form user fills out the posted form, navigation and editing
-   keys support movement between fields, editing keys support modifying
-   field, and plain text adds to or changes data in a current field. The
-   form library allows you (the forms designer) to bind each navigation
-   and editing key to any keystroke accepted by curses Fields may have
-   validation conditions on them, so that they check input data for type
-   and value. The form library supplies a rich set of pre-defined field
+
+   As  the  form  user  fills out the posted form, navigation and editing
+   keys  support  movement between fields, editing keys support modifying
+   field,  and plain text adds to or changes data in a current field. The
+   form  library  allows you (the forms designer) to bind each navigation
+   and  editing  key  to any keystroke accepted by curses Fields may have
+   validation  conditions on them, so that they check input data for type
+   and  value.  The form library supplies a rich set of pre-defined field
    types, and makes it relatively easy to define new ones.
    types, and makes it relatively easy to define new ones.
-   
+
    Once its transaction is completed (or aborted), a form may be unposted
    Once its transaction is completed (or aborted), a form may be unposted
-   (that is, undisplayed), and finally freed to make the storage
+   (that  is,  undisplayed),  and  finally  freed  to  make  the  storage
    associated with it and its items available for re-use.
    associated with it and its items available for re-use.
-   
+
    The general flow of control of a form program looks like this:
     1. Initialize curses.
     2. Create the form fields, using new_field().
    The general flow of control of a form program looks like this:
     1. Initialize curses.
     2. Create the form fields, using new_field().
@@ -1320,17 +1323,17 @@ Overview of Forms
     8. Free the form, using free_form().
     9. Free the fields using free_field().
    10. Terminate curses.
     8. Free the form, using free_form().
     9. Free the fields using free_field().
    10. Terminate curses.
-       
-   Note that this looks much like a menu program; the form library
-   handles tasks which are in many ways similar, and its interface was
-   obviously designed to resemble that of the menu library wherever
+
+   Note  that  this  looks  much  like  a  menu program; the form library
+   handles  tasks  which  are in many ways similar, and its interface was
+   obviously  designed  to  resemble  that  of  the menu library wherever
    possible.
    possible.
-   
-   In forms programs, however, the `process user requests' is somewhat
-   more complicated than for menus. Besides menu-like navigation
+
+   In  forms  programs,  however, the `process user requests' is somewhat
+   more   complicated   than  for  menus.  Besides  menu-like  navigation
    operations, the menu driver loop has to support field editing and data
    validation.
    operations, the menu driver loop has to support field editing and data
    validation.
-   
+
 Creating and Freeing Fields and Forms
 
    The basic function for creating fields is new_field():
 Creating and Freeing Fields and Forms
 
    The basic function for creating fields is new_field():
@@ -1339,91 +1342,91 @@ FIELD *new_field(int height, int width,   /* new field size */
                  int offscreen,           /* number of offscreen rows */
                  int nbuf);               /* number of working buffers */
 
                  int offscreen,           /* number of offscreen rows */
                  int nbuf);               /* number of working buffers */
 
-   Menu items always occupy a single row, but forms fields may have
-   multiple rows. So new_field() requires you to specify a width and
-   height (the first two arguments, which mist both be greater than
+   Menu  items  always  occupy  a  single  row, but forms fields may have
+   multiple  rows.  So  new_field()  requires  you to specify a width and
+   height  (the  first  two  arguments,  which  mist both be greater than
    zero).
    zero).
-   
+
    You must also specify the location of the field's upper left corner on
    You must also specify the location of the field's upper left corner on
-   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
+   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_window() 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
-   nonzero, the form will be scrollable, with only one screen-full
-   (initially the top part) displayed at any given time. If you make a
-   field dynamic and grow it so it will no longer fit on the screen, the
-   form will become scrollable even if the offscreen argument was
+
+   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
+   nonzero,  the  form  will  be  scrollable,  with  only one screen-full
+   (initially  the  top  part) displayed at any given time. If you make a
+   field  dynamic and grow it so it will no longer fit on the screen, the
+   form  will  become  scrollable  even  if  the  offscreen  argument was
    initially zero.
    initially zero.
-   
-   The forms library allocates one working buffer per field; the size of
+
+   The  forms library allocates one working buffer per field; the size of
    each buffer is ((height + offscreen)*width + 1, one character for each
    position in the field plus a NUL terminator. The sixth argument is the
    each buffer is ((height + offscreen)*width + 1, one character for each
    position in the field plus a NUL terminator. The sixth argument is the
-   number of additional data buffers to allocate for the field; your
+   number  of  additional  data  buffers  to allocate for the field; your
    application can use them for its own purposes.
 FIELD *dup_field(FIELD *field,            /* field to copy */
                  int top, int left);      /* location of new copy */
 
    application can use them for its own purposes.
 FIELD *dup_field(FIELD *field,            /* field to copy */
                  int top, int left);      /* location of new copy */
 
-   The function dup_field() duplicates an existing field at a new
-   location. Size and buffering information are copied; some attribute
-   flags and status bits are not (see the form_field_new(3X) for
+   The  function  dup_field()  duplicates  an  existing  field  at  a new
+   location.  Size  and  buffering information are copied; some attribute
+   flags  and  status  bits  are  not  (see  the  form_field_new(3X)  for
    details).
 FIELD *link_field(FIELD *field,           /* field to copy */
                   int top, int left);     /* location of new copy */
 
    details).
 FIELD *link_field(FIELD *field,           /* field to copy */
                   int top, int left);     /* location of new copy */
 
-   The function link_field() also duplicates an existing field at a new
-   location. The difference from dup_field() is that it arranges for the
+   The  function  link_field() also duplicates an existing field at a new
+   location.  The difference from dup_field() is that it arranges for the
    new field's buffer to be shared with the old one.
    new field's buffer to be shared with the old one.
-   
-   Besides the obvious use in making a field editable from two different
+
+   Besides  the obvious use in making a field editable from two different
    form pages, linked fields give you a way to hack in dynamic labels. If
    form pages, linked fields give you a way to hack in dynamic labels. If
-   you declare several fields linked to an original, and then make them
-   inactive, changes from the original will still be propagated to the
+   you  declare  several fields linked to an original, and then make them
+   inactive,  changes  from  the original will still be propagated to the
    linked fields.
    linked fields.
-   
-   As with duplicated fields, linked fields have attribute bits separate
+
+   As  with duplicated fields, linked fields have attribute bits separate
    from the original.
    from the original.
-   
-   As you might guess, all these field-allocations return NULL if the
-   field allocation is not possible due to an out-of-memory error or
+
+   As  you  might  guess,  all these field-allocations return NULL if the
+   field  allocation  is  not  possible  due to an out-of-memory error or
    out-of-bounds arguments.
    out-of-bounds arguments.
-   
+
    To connect fields to a form, use
 FORM *new_form(FIELD **fields);
 
    To connect fields to a form, use
 FORM *new_form(FIELD **fields);
 
-   This function expects to see a NULL-terminated array of field
-   pointers. Said fields are connected to a newly-allocated form object;
+   This  function  expects  to  see  a  NULL-terminated  array  of  field
+   pointers.  Said fields are connected to a newly-allocated form object;
    its address is returned (or else NULL if the allocation fails).
    its address is returned (or else NULL if the allocation fails).
-   
-   Note that new_field() does not copy the pointer array into private
-   storage; if you modify the contents of the pointer array during forms
-   processing, all manner of bizarre things might happen. Also note that
+
+   Note  that  new_field()  does  not copy the pointer array into private
+   storage;  if you modify the contents of the pointer array during forms
+   processing,  all manner of bizarre things might happen. Also note that
    any given field may only be connected to one form.
    any given field may only be connected to one form.
-   
-   The functions free_field() and free_form are available to free field
-   and form objects. It is an error to attempt to free a field connected
+
+   The  functions  free_field() and free_form are available to free field
+   and  form objects. It is an error to attempt to free a field connected
    to a form, but not vice-versa; thus, you will generally free your form
    objects first.
    to a form, but not vice-versa; thus, you will generally free your form
    objects first.
-   
+
 Fetching and Changing Field Attributes
 
 Fetching and Changing Field Attributes
 
-   Each form field has a number of location and size attributes
-   associated with it. There are other field attributes used to control
+   Each  form  field  has  a  number  of  location  and  size  attributes
+   associated  with  it. There are other field attributes used to control
    display and editing of the field. Some (for example, the O_STATIC bit)
    display and editing of the field. Some (for example, the O_STATIC bit)
-   involve sufficient complications to be covered in sections of their
+   involve  sufficient  complications  to be covered in sections of their
    own later on. We cover the functions used to get and set several basic
    attributes here.
    own later on. We cover the functions used to get and set several basic
    attributes here.
-   
+
    When a field is created, the attributes not specified by the new_field
    When a field is created, the attributes not specified by the new_field
-   function are copied from an invisible system default field. In
-   attribute-setting and -fetching functions, the argument NULL is taken
+   function  are  copied  from  an  invisible  system  default  field. In
+   attribute-setting  and -fetching functions, the argument NULL is taken
    to mean this field. Changes to it persist as defaults until your forms
    application terminates.
    to mean this field. Changes to it persist as defaults until your forms
    application terminates.
-   
+
   Fetching Size and Location Data
   Fetching Size and Location Data
-  
+
    You can retrieve field sizes and locations through:
 int field_info(FIELD *field,              /* field from which to fetch */
                int *height, *int width,   /* field size */
    You can retrieve field sizes and locations through:
 int field_info(FIELD *field,              /* field from which to fetch */
                int *height, *int width,   /* field size */
@@ -1431,40 +1434,40 @@ int field_info(FIELD *field,              /* field from which to fetch */
                int *offscreen,            /* number of offscreen rows */
                int *nbuf);                /* number of working buffers */
 
                int *offscreen,            /* number of offscreen rows */
                int *nbuf);                /* number of working buffers */
 
-   This function is a sort of inverse of new_field(); instead of setting
-   size and location attributes of a new field, it fetches them from an
+   This  function is a sort of inverse of new_field(); instead of setting
+   size  and  location attributes of a new field, it fetches them from an
    existing one.
    existing one.
-   
+
   Changing the Field Location
   Changing the Field Location
-  
+
    It is possible to move a field's location on the screen:
 int move_field(FIELD *field,              /* field to alter */
                int top, int left);        /* new upper-left corner */
 
    You can, of course. query the current location through field_info().
    It is possible to move a field's location on the screen:
 int move_field(FIELD *field,              /* field to alter */
                int top, int left);        /* new upper-left corner */
 
    You can, of course. query the current location through field_info().
-   
+
   The Justification Attribute
   The Justification Attribute
-  
-   One-line fields may be unjustified, justified right, justified left,
+
+   One-line  fields  may be unjustified, justified right, justified left,
    or centered. Here is how you manipulate this attribute:
 int set_field_just(FIELD *field,          /* field to alter */
                    int justmode);         /* mode to set */
 
 int field_just(FIELD *field);             /* fetch mode of field */
 
    or centered. Here is how you manipulate this attribute:
 int set_field_just(FIELD *field,          /* field to alter */
                    int justmode);         /* mode to set */
 
 int field_just(FIELD *field);             /* fetch mode of field */
 
-   The mode values accepted and returned by this functions are
-   preprocessor macros NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
+   The   mode   values  accepted  and  returned  by  this  functions  are
+   preprocessor  macros NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
    JUSTIFY_CENTER.
    JUSTIFY_CENTER.
-   
+
   Field Display Attributes
   Field Display Attributes
-  
-   For each field, you can set a foreground attribute for entered
-   characters, a background attribute for the entire field, and a pad
-   character for the unfilled portion of the field. You can also control
+
+   For  each  field,  you  can  set  a  foreground  attribute for entered
+   characters,  a  background  attribute  for the entire field, and a pad
+   character  for the unfilled portion of the field. You can also control
    pagination of the form.
    pagination of the form.
-   
-   This group of four field attributes controls the visual appearance of
-   the field on the screen, without affecting in any way the data in the
+
+   This  group of four field attributes controls the visual appearance of
+   the  field on the screen, without affecting in any way the data in the
    field buffer.
 int set_field_fore(FIELD *field,          /* field to alter */
                    chtype attr);          /* attribute to set */
    field buffer.
 int set_field_fore(FIELD *field,          /* field to alter */
                    chtype attr);          /* attribute to set */
@@ -1487,14 +1490,14 @@ int set_new_page(FIELD *field,            /* field to alter */
 chtype new_page(FIELD *field);            /* field to query */
 
    The attributes set and returned by the first four functions are normal
 chtype new_page(FIELD *field);            /* field to query */
 
    The attributes set and returned by the first four functions are normal
-   curses(3x) display attribute values (A_STANDOUT, A_BOLD, A_REVERSE
-   etc). The page bit of a field controls whether it is displayed at the
+   curses(3x)  display  attribute  values  (A_STANDOUT, A_BOLD, A_REVERSE
+   etc).  The page bit of a field controls whether it is displayed at the
    start of a new form screen.
    start of a new form screen.
-   
+
   Field Option Bits
   Field Option Bits
-  
-   There is also a large collection of field option bits you can set to
-   control various aspects of forms processing. You can manipulate them
+
+   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:
 int set_field_opts(FIELD *field,          /* field to alter */
                    int attr);             /* attribute to set */
    with these functions:
 int set_field_opts(FIELD *field,          /* field to alter */
                    int attr);             /* attribute to set */
@@ -1508,171 +1511,171 @@ int field_opts_off(FIELD *field,          /* field to alter */
 int field_opts(FIELD *field);             /* field to query */
 
    By default, all options are on. Here are the available option bits:
 int field_opts(FIELD *field);             /* field to query */
 
    By default, all options are on. Here are the available option bits:
-   
+
    O_VISIBLE
    O_VISIBLE
-          Controls whether the field is visible on the screen. Can be
-          used during form processing to hide or pop up fields depending
+          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.
           on the value of parent fields.
-          
+
    O_ACTIVE
    O_ACTIVE
-          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
+          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.
           forms application, not the user.
-          
+
    O_PUBLIC
    O_PUBLIC
-          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
+          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.
           O_PUBLIC bit to define password fields.
-          
+
    O_EDIT
    O_EDIT
-          Controls whether the field's data can be modified. When this
-          option is off, all editing requests except REQ_PREV_CHOICE and
-          REQ_NEXT_CHOICE will fail. Such read-only fields may be useful
+          Controls  whether  the  field's data can be modified. When this
+          option  is off, all editing requests except REQ_PREV_CHOICE and
+          REQ_NEXT_CHOICE  will fail. Such read-only fields may be useful
           for help messages.
           for help messages.
-          
+
    O_WRAP
           Controls word-wrapping in multi-line fields. Normally, when any
    O_WRAP
           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
+          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.
           (assuming there is one). When this option is off, the word will
           be split across the line break.
-          
+
    O_BLANK
    O_BLANK
-          Controls field blanking. When this option is on, entering a
-          character at the first field position erases the entire field
+          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).
           (except for the just-entered character).
-          
+
    O_AUTOSKIP
    O_AUTOSKIP
-          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.
+          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
           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
+          of  the  field.  This  option is ignored in dynamic fields that
           have not reached their size limit.
           have not reached their size limit.
-          
+
    O_NULLOK
    O_NULLOK
-          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
+          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.
           off on a field, exit from it will invoke a validation check.
-          
+
    O_PASSOK
           Controls whether validation occurs on every exit, or only after
    O_PASSOK
           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
+          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.
           change during forms processing.
-          
+
    O_STATIC
    O_STATIC
-          Controls whether the field is fixed to its initial dimensions.
-          If you turn this off, the field becomes dynamic and will
+          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.
           stretch to fit entered data.
-          
-   A field's options cannot be changed while the field is currently
-   selected. However, options may be changed on posted fields that are
+
+   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.
    not current.
-   
+
    The option values are bit-masks and can be composed with logical-or in
    the obvious way.
    The option values are bit-masks and can be composed with logical-or in
    the obvious way.
-   
+
 Field Status
 
    Every field has a status flag, which is set to FALSE when the field is
 Field Status
 
    Every field has a status flag, which is set to FALSE when the field is
-   created and TRUE when the value in field buffer 0 changes. This flag
+   created  and  TRUE when the value in field buffer 0 changes. This flag
    can be queried and set directly:
 int set_field_status(FIELD *field,      /* field to alter */
                    int status);         /* mode to set */
 
 int field_status(FIELD *field);         /* fetch mode of field */
 
    can be queried and set directly:
 int set_field_status(FIELD *field,      /* field to alter */
                    int status);         /* mode to set */
 
 int field_status(FIELD *field);         /* fetch mode of field */
 
-   Setting this flag under program control can be useful if you use the
+   Setting  this  flag under program control can be useful if you use the
    same form repeatedly, looking for modified fields each time.
    same form repeatedly, looking for modified fields each time.
-   
-   Calling field_status() on a field not currently selected for input
+
+   Calling  field_status()  on  a  field not currently selected for input
    will return a correct value. Calling field_status() on a field that is
    will return a correct value. Calling field_status() on a field that is
-   currently selected for input may not necessarily give a correct field
-   status value, because entered data isn't necessarily copied to buffer
-   zero before the exit validation check. To guarantee that the returned
-   status value reflects reality, 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
+   currently  selected for input may not necessarily give a correct field
+   status  value, because entered data isn't necessarily copied to buffer
+   zero  before the exit validation check. To guarantee that the returned
+   status  value  reflects reality, 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.
    REQ_VALIDATION request has been processed by the forms driver.
-   
+
 Field User Pointer
 
 Field User Pointer
 
-   Each field structure contains one character pointer slot that is not
-   used by the forms library. It is intended to be used by applications
+   Each  field  structure contains one character pointer slot that is not
+   used  by  the forms library. It is intended to be used by applications
    to store private per-field data. You can manipulate it with:
 int set_field_userptr(FIELD *field,       /* field to alter */
                    char *userptr);        /* mode to set */
 
 char *field_userptr(FIELD *field);        /* fetch mode of field */
 
    to store private per-field data. You can manipulate it with:
 int set_field_userptr(FIELD *field,       /* field to alter */
                    char *userptr);        /* mode to set */
 
 char *field_userptr(FIELD *field);        /* fetch mode of field */
 
-   (Properly, this user pointer field ought to have (void *) type. The
+   (Properly,  this  user  pointer field ought to have (void *) type. The
    (char *) type is retained for System V compatibility.)
    (char *) type is retained for System V compatibility.)
-   
-   It is valid to set the user pointer of the default field (with a
-   set_field_userptr() call passed a NULL field pointer.) When a new
-   field is created, the default-field user pointer is copied to
+
+   It  is  valid  to  set  the  user pointer of the default field (with a
+   set_field_userptr()  call  passed  a  NULL  field pointer.) When a new
+   field  is  created,  the  default-field  user  pointer  is  copied  to
    initialize the new field's user pointer.
    initialize the new field's user pointer.
-   
+
 Variable-Sized Fields
 
 Variable-Sized Fields
 
-   Normally, a field is fixed at the size specified for it at creation
-   time. If, however, you turn off its O_STATIC bit, it becomes dynamic
-   and will automatically resize itself to accommodate data as it is
-   entered. If the field has extra buffers associated with it, they will
+   Normally,  a  field  is fixed at the size specified for it at creation
+   time.  If,  however, you turn off its O_STATIC bit, it becomes dynamic
+   and  will  automatically  resize  itself  to accommodate data as it is
+   entered.  If the field has extra buffers associated with it, they will
    grow right along with the main input buffer.
    grow right along with the main input buffer.
-   
-   A one-line dynamic field will have a fixed height (1) but variable
+
+   A  one-line  dynamic  field  will have a fixed height (1) but variable
    width, scrolling horizontally to display data within the field area as
    width, scrolling horizontally to display data within the field area as
-   originally dimensioned and located. A multi-line dynamic field will
-   have a fixed width, but variable height (number of rows), scrolling
-   vertically to display data within the field area as originally
+   originally  dimensioned  and  located. A multi-line dynamic field will
+   have  a  fixed  width, but variable height (number of rows), scrolling
+   vertically  to  display  data  within  the  field  area  as originally
    dimensioned and located.
    dimensioned and located.
-   
-   Normally, a dynamic field is allowed to grow without limit. But it is
-   possible to set an upper limit on the size of a dynamic field. You do
+
+   Normally,  a dynamic field is allowed to grow without limit. But it is
+   possible  to set an upper limit on the size of a dynamic field. You do
    it with this function:
 int set_max_field(FIELD *field,     /* field to alter (may not be NULL) */
                    int max_size);   /* upper limit on field size */
 
    If the field is one-line, max_size is taken to be a column size limit;
    it with this function:
 int set_max_field(FIELD *field,     /* field to alter (may not be NULL) */
                    int max_size);   /* upper limit on field size */
 
    If the field is one-line, max_size is taken to be a column size limit;
-   if it is multi-line, it is taken to be a line size limit. To disable
-   any limit, use an argument of zero. The growth limit can be changed
+   if  it  is multi-line, it is taken to be a line size limit. To disable
+   any  limit,  use  an argument of zero. The growth limit can be changed
    whether or not the O_STATIC bit is on, but has no effect until it is.
    whether or not the O_STATIC bit is on, but has no effect until it is.
-   
+
    The following properties of a field change when it becomes dynamic:
    The following properties of a field change when it becomes dynamic:
-     * If there is no growth limit, there is no final position of the
+     * If  there  is  no  growth limit, there is no final position of the
        field; therefore O_AUTOSKIP and O_NL_OVERLOAD are ignored.
      * Field justification will be ignored (though whatever justification
        is set up will be retained internally and can be queried).
        field; therefore O_AUTOSKIP and O_NL_OVERLOAD are ignored.
      * Field justification will be ignored (though whatever justification
        is set up will be retained internally and can be queried).
-     * The dup_field() and link_field() calls copy dynamic-buffer sizes.
-       If the O_STATIC option is set on one of a collection of links,
-       buffer resizing will occur only when the field is edited through
+     * The  dup_field() and link_field() calls copy dynamic-buffer sizes.
+       If  the  O_STATIC  option  is set on one of a collection of links,
+       buffer  resizing  will occur only when the field is edited through
        that link.
        that link.
-     * The call field_info() will retrieve the original static size of
-       the field; use dynamic_field_info() to get the actual dynamic
+     * The  call  field_info()  will retrieve the original static size of
+       the  field;  use  dynamic_field_info()  to  get the actual dynamic
        size.
        size.
-       
+
 Field Validation
 
 Field Validation
 
-   By default, a field will accept any data that will fit in its input
-   buffer. However, it is possible to attach a validation type to a
-   field. If you do this, any attempt 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
+   By  default,  a  field will accept any data that will fit in its input
+   buffer.  However,  it  is  possible  to  attach a validation type to a
+   field.  If  you  do  this,  any  attempt  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.
    character is entered in the field.
-   
-   A field's validation check (if any) is not called when
-   set_field_buffer() modifies the input buffer, nor when that buffer is
+
+   A   field's   validation   check   (if   any)   is   not  called  when
+   set_field_buffer()  modifies the input buffer, nor when that buffer is
    changed through a linked field.
    changed through a linked field.
-   
-   The form library provides a rich set of pre-defined validation types,
-   and gives you the capability to define custom ones of your own. You
-   can examine and change field validation attributes with the following
+
+   The  form library provides a rich set of pre-defined validation types,
+   and  gives  you  the capability to define custom ones of your own. You
+   can  examine and change field validation attributes with the following
    functions:
 int set_field_type(FIELD *field,          /* field to alter */
                    FIELDTYPE *ftype,      /* type to associate */
    functions:
 int set_field_type(FIELD *field,          /* field to alter */
                    FIELDTYPE *ftype,      /* type to associate */
@@ -1680,45 +1683,45 @@ int set_field_type(FIELD *field,          /* field to alter */
 
 FIELDTYPE *field_type(FIELD *field);      /* field to query */
 
 
 FIELDTYPE *field_type(FIELD *field);      /* field to query */
 
-   The validation type of a field is considered an attribute of the
-   field. As with other field attributes, Also, doing set_field_type()
-   with a NULL field default will change the system default for
+   The  validation  type  of  a  field  is considered an attribute of the
+   field.  As  with  other field attributes, Also, doing set_field_type()
+   with  a  NULL  field  default  will  change  the  system  default  for
    validation of newly-created fields.
    validation of newly-created fields.
-   
+
    Here are the pre-defined validation types:
    Here are the pre-defined validation types:
-   
+
   TYPE_ALPHA
   TYPE_ALPHA
-  
-   This field type accepts alphabetic data; no blanks, no digits, no
-   special characters (this is checked at character-entry time). It is
+
+   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:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALPHA,            /* type to associate */
                    int width);            /* maximum width of field */
 
    The width argument sets a minimum width of data. Typically you'll want
    set up with:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALPHA,            /* type to associate */
                    int width);            /* maximum width of field */
 
    The width argument sets a minimum width of data. 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
+   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.
    field completion optional.
-   
+
   TYPE_ALNUM
   TYPE_ALNUM
-  
-   This field type accepts alphabetic data and digits; no blanks, no
-   special characters (this is checked at character-entry time). It is
+
+   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:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALNUM,            /* type to associate */
                    int width);            /* maximum width of field */
 
    set up with:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ALNUM,            /* type to associate */
                    int width);            /* maximum width of field */
 
-   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
+   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.
    than the field width, the validation check will always fail. A minimum
    width of zero makes field completion optional.
-   
+
   TYPE_ENUM
   TYPE_ENUM
-  
-   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
+
+   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:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ENUM,             /* type to associate */
    codes for U.S. states). It is set up with:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_ENUM,             /* type to associate */
@@ -1726,110 +1729,110 @@ int set_field_type(FIELD *field,          /* field to alter */
                    int checkcase;         /* case-sensitive? */
                    int checkunique);      /* must specify uniquely? */
 
                    int checkcase;         /* case-sensitive? */
                    int checkunique);      /* must specify uniquely? */
 
-   The valuelist parameter must point at a NULL-terminated list of valid
-   strings. The checkcase argument, if true, makes comparison with the
+   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.
    string case-sensitive.
-   
-   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
+
+   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.
    possible to enter a prefix of a valid string and have it completed for
    you.
-   
-   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
+
+   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.
    matching value. But the checkunique argument, if true, requires prefix
    matches to be unique in order to be valid.
-   
-   The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
+
+   The   REQ_NEXT_CHOICE   and  REQ_PREV_CHOICE  input  requests  can  be
    particularly useful with these fields.
    particularly useful with these fields.
-   
+
   TYPE_INTEGER
   TYPE_INTEGER
-  
+
    This field type accepts an integer. It is set up as follows:
 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 */
 
    This field type accepts an integer. It is set up as follows:
 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 */
 
-   Valid characters consist of an optional leading minus and digits. The
+   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.
    range check is performed on exit. If the range maximum is less than or
    equal to the minimum, the range is ignored.
-   
+
    If the value passes its range check, it is padded with as many leading
    zero digits as necessary to meet the padding argument.
    If the value passes its range check, it is padded with as many leading
    zero digits as necessary to meet the padding argument.
-   
+
    A TYPE_INTEGER value buffer can conveniently be interpreted with the C
    library function atoi(3).
    A TYPE_INTEGER value buffer can conveniently be interpreted with the C
    library function atoi(3).
-   
+
   TYPE_NUMERIC
   TYPE_NUMERIC
-  
+
    This field type accepts a decimal number. It is set up as follows:
 int set_field_type(FIELD *field,              /* field to alter */
                    TYPE_NUMERIC,              /* type to associate */
                    int padding,               /* # places of precision */
                    double vmin, double vmax); /* valid range */
 
    This field type accepts a decimal number. It is set up as follows:
 int set_field_type(FIELD *field,              /* field to alter */
                    TYPE_NUMERIC,              /* type to associate */
                    int padding,               /* # places of precision */
                    double vmin, double vmax); /* valid range */
 
-   Valid characters consist of an optional leading minus and digits.
-   possibly including a decimal point. If your system supports locale's,
-   the decimal point character used must be the one defined by your
-   locale. The range check is performed on exit. If the range maximum is
+   Valid  characters  consist  of  an  optional leading minus and digits.
+   possibly  including a decimal point. If your system supports locale's,
+   the  decimal  point  character  used  must  be the one defined by your
+   locale.  The range check is performed on exit. If the range maximum is
    less than or equal to the minimum, the range is ignored.
    less than or equal to the minimum, the range is ignored.
-   
-   If the value passes its range check, it is padded with as many
+
+   If  the  value  passes  its  range  check,  it  is padded with as many
    trailing zero digits as necessary to meet the padding argument.
    trailing zero digits as necessary to meet the padding argument.
-   
+
    A TYPE_NUMERIC value buffer can conveniently be interpreted with the C
    library function atof(3).
    A TYPE_NUMERIC value buffer can conveniently be interpreted with the C
    library function atof(3).
-   
+
   TYPE_REGEXP
   TYPE_REGEXP
-  
-   This field type accepts data matching a regular expression. It is set
+
+   This  field type accepts data matching a regular expression. It is set
    up as follows:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_REGEXP,           /* type to associate */
                    char *regexp);         /* expression to match */
 
    up as follows:
 int set_field_type(FIELD *field,          /* field to alter */
                    TYPE_REGEXP,           /* type to associate */
                    char *regexp);         /* expression to match */
 
-   The syntax for regular expressions is that of regcomp(3). The check
+   The  syntax  for  regular expressions is that of regcomp(3). The check
    for regular-expression match is performed on exit.
    for regular-expression match is performed on exit.
-   
+
 Direct Field Buffer Manipulation
 
    The chief attribute of a field is its buffer contents. When a form has
 Direct Field Buffer Manipulation
 
    The chief attribute of a field is its buffer contents. When a form has
-   been completed, your application usually needs to know the state of
+   been  completed,  your  application usually needs to know the state of
    each field buffer. You can find this out with:
 char *field_buffer(FIELD *field,          /* field to query */
                    int bufindex);         /* number of buffer to query */
 
    each field buffer. You can find this out with:
 char *field_buffer(FIELD *field,          /* field to query */
                    int bufindex);         /* number of buffer to query */
 
-   Normally, the state of the zero-numbered buffer for each field is set
-   by the user's editing actions on that field. It's sometimes useful to
-   be able to set the value of the zero-numbered (or some other) buffer
+   Normally,  the state of the zero-numbered buffer for each field is set
+   by  the user's editing actions on that field. It's sometimes useful to
+   be  able  to set the value of the zero-numbered (or some other) buffer
    from your application:
 int set_field_buffer(FIELD *field,        /* field to alter */
                    int bufindex,          /* number of buffer to alter */
                    char *value);          /* string value to set */
 
    from your application:
 int set_field_buffer(FIELD *field,        /* field to alter */
                    int bufindex,          /* number of buffer to alter */
                    char *value);          /* string value to set */
 
-   If the field is not large enough and cannot be resized to a
+   If  the  field  is  not  large  enough  and  cannot  be  resized  to a
    sufficiently large size to contain the specified value, the value will
    be truncated to fit.
    sufficiently large size to contain the specified value, the value will
    be truncated to fit.
-   
-   Calling field_buffer() with a null field pointer will raise an error.
-   Calling field_buffer() on a field not currently selected for input
+
+   Calling  field_buffer() with a null field pointer will raise an error.
+   Calling  field_buffer()  on  a  field not currently selected for input
    will return a correct value. Calling field_buffer() on a field that is
    will return a correct value. Calling field_buffer() on a field that is
-   currently selected for input may not necessarily give a correct field
-   buffer value, because entered data isn't necessarily copied to buffer
-   zero before the exit validation check. To guarantee that the returned
-   buffer value reflects on-screen reality, call field_buffer() either
+   currently  selected for input may not necessarily give a correct field
+   buffer  value, because entered data isn't necessarily copied to buffer
+   zero  before the exit validation check. To guarantee that the returned
+   buffer  value  reflects  on-screen reality, call field_buffer() either
    (1) in the field's exit validation check routine, (2) from the field's
    (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
+   or  form's  initialization  or  termination hooks, or (3) just after a
    REQ_VALIDATION request has been processed by the forms driver.
    REQ_VALIDATION request has been processed by the forms driver.
-   
+
 Attributes of Forms
 
 Attributes of Forms
 
-   As with field attributes, form attributes inherit a default from a
+   As  with  field  attributes,  form attributes inherit a default from a
    system default form structure. These defaults can be queried or set by
    of these functions using a form-pointer argument of NULL.
    system default form structure. These defaults can be queried or set by
    of these functions using a form-pointer argument of NULL.
-   
+
    The principal attribute of a form is its field list. You can query and
    change this list with:
 int set_form_fields(FORM *form,           /* form to alter */
    The principal attribute of a form is its field list. You can query and
    change this list with:
 int set_form_fields(FORM *form,           /* form to alter */
@@ -1839,53 +1842,53 @@ char *form_fields(FORM *form);            /* fetch fields of form */
 
 int field_count(FORM *form);              /* count connect fields */
 
 
 int field_count(FORM *form);              /* count connect fields */
 
-   The second argument of set_form_fields() may be a NULL-terminated
+   The  second  argument  of  set_form_fields()  may be a NULL-terminated
    field pointer array like the one required by new_form(). In that case,
    field pointer array like the one required by new_form(). In that case,
-   the old fields of the form are disconnected but not freed (and
-   eligible to be connected to other forms), then the new fields are
+   the  old  fields  of  the  form  are  disconnected  but not freed (and
+   eligible  to  be  connected  to  other forms), then the new fields are
    connected.
    connected.
-   
-   It may also be null, in which case the old fields are disconnected
+
+   It  may  also  be  null, in which case the old fields are disconnected
    (and not freed) but no new ones are connected.
    (and not freed) but no new ones are connected.
-   
-   The field_count() function simply counts the number of fields
-   connected to a given from. It returns -1 if the form-pointer argument
+
+   The   field_count()  function  simply  counts  the  number  of  fields
+   connected  to a given from. It returns -1 if the form-pointer argument
    is NULL.
    is NULL.
-   
+
 Control of Form Display
 
 Control of Form Display
 
-   In the overview section, you saw that to display a form you normally
-   start by defining its size (and fields), posting it, and refreshing
-   the screen. There is an hidden step before posting, which is the
-   association of the form with a frame window (actually, a pair of
-   windows) within which it will be displayed. By default, the forms
+   In  the  overview section, you saw that to display a form you normally
+   start  by  defining  its size (and fields), posting it, and refreshing
+   the  screen.  There  is  an  hidden  step before posting, which is the
+   association  of  the  form  with  a  frame window (actually, a pair of
+   windows)  within  which  it  will  be displayed. By default, the forms
    library associates every form with the full-screen window stdscr.
    library associates every form with the full-screen window stdscr.
-   
+
    By making this step explicit, you can associate a form with a declared
    frame window on your screen display. This can be useful if you want to
    By making this step explicit, you can associate a form with a declared
    frame window on your screen display. This can be useful if you want to
-   adapt the form display to different screen sizes, dynamically tile
-   forms on the screen, or use a form as part of an interface layout
+   adapt  the  form  display  to different screen sizes, dynamically tile
+   forms  on  the  screen,  or  use a form as part of an interface layout
    managed by panels.
    managed by panels.
-   
-   The two windows associated with each form have the same functions as
-   their analogues in the menu library. Both these windows are painted
+
+   The  two  windows associated with each form have the same functions as
+   their  analogues  in  the menu library. Both these windows are painted
    when the form is posted and erased when the form is unposted.
    when the form is posted and erased when the form is unposted.
-   
-   The outer or frame window is not otherwise touched by the form
+
+   The  outer  or  frame  window  is  not  otherwise  touched by the form
    routines. It exists so the programmer can associate a title, a border,
    routines. It exists so the programmer can associate a title, a border,
-   or perhaps help text with the form and have it properly refreshed or
+   or  perhaps  help text with the form and have it properly refreshed or
    erased at post/unpost time. The inner window or subwindow is where the
    current form page is actually displayed.
    erased at post/unpost time. The inner window or subwindow is where the
    current form page is actually displayed.
-   
-   In order to declare your own frame window for a form, you'll need to
-   know the size of the form's bounding rectangle. You can get this
+
+   In  order  to declare your own frame window for a form, you'll need to
+   know  the  size  of  the  form's  bounding rectangle. You can get this
    information with:
 int scale_form(FORM *form,                /* form to query */
                int *rows,                 /* form rows */
                int *cols);                /* form cols */
 
    The form dimensions are passed back in the locations pointed to by the
    information with:
 int scale_form(FORM *form,                /* form to query */
                int *rows,                 /* form rows */
                int *cols);                /* form cols */
 
    The form dimensions are passed back in the locations pointed to by the
-   arguments. Once you have this information, you can use it to declare
+   arguments.  Once  you have this information, you can use it to declare
    of windows, then use one of these functions:
 int set_form_win(FORM *form,              /* form to alter */
                  WINDOW *win);            /* frame window to connect */
    of windows, then use one of these functions:
 int set_form_win(FORM *form,              /* form to alter */
                  WINDOW *win);            /* frame window to connect */
@@ -1897,31 +1900,31 @@ int set_form_sub(FORM *form,              /* form to alter */
 
 WINDOW *form_sub(FORM *form);             /* fetch form subwindow of form */
 
 
 WINDOW *form_sub(FORM *form);             /* fetch form subwindow of form */
 
-   Note that curses operations, including refresh(), on the form, should
+   Note  that curses operations, including refresh(), on the form, should
    be done on the frame window, not the form subwindow.
    be done on the frame window, not the form subwindow.
-   
-   It is possible to check from your application whether all of a
-   scrollable field is actually displayed within the menu subwindow. Use
+
+   It  is  possible  to  check  from  your  application  whether all of a
+   scrollable  field is actually displayed within the menu subwindow. Use
    these functions:
 int data_ahead(FORM *form);               /* form to be queried */
 
 int data_behind(FORM *form);              /* form to be queried */
 
    these functions:
 int data_ahead(FORM *form);               /* form to be queried */
 
 int data_behind(FORM *form);              /* form to be queried */
 
-   The function data_ahead() returns TRUE if (a) the current field is
-   one-line and has undisplayed data off to the right, (b) the current
+   The  function  data_ahead()  returns  TRUE if (a) the current field is
+   one-line  and  has  undisplayed data off to the right, (b) the current
    field is multi-line and there is data off-screen below it.
    field is multi-line and there is data off-screen below it.
-   
+
    The function data_behind() returns TRUE if the first (upper left hand)
    character position is off-screen (not being displayed).
    The function data_behind() returns TRUE if the first (upper left hand)
    character position is off-screen (not being displayed).
-   
-   Finally, there is a function to restore the form window's cursor to
+
+   Finally,  there  is  a function to restore the form window's cursor to
    the value expected by the forms driver:
 int pos_form_cursor(FORM *)               /* form to be queried */
 
    If your application changes the form window cursor, call this function
    the value expected by the forms driver:
 int pos_form_cursor(FORM *)               /* form to be queried */
 
    If your application changes the form window cursor, call this function
-   before handing control back to the forms driver in order to
+   before   handing  control  back  to  the  forms  driver  in  order  to
    re-synchronize it.
    re-synchronize it.
-   
+
 Input Processing in the Forms Driver
 
    The function form_driver() handles virtualized input requests for form
 Input Processing in the Forms Driver
 
    The function form_driver() handles virtualized input requests for form
@@ -1930,311 +1933,311 @@ Input Processing in the Forms Driver
 int form_driver(FORM *form,               /* form to pass input to */
                 int request);             /* form request code */
 
 int form_driver(FORM *form,               /* form to pass input to */
                 int request);             /* form request code */
 
-   Your input virtualization function needs to take input and then
-   convert it to either an alphanumeric character (which is treated as
-   data to be entered in the currently-selected field), or a forms
+   Your  input  virtualization  function  needs  to  take  input and then
+   convert  it  to  either an alphanumeric character (which is treated as
+   data  to  be  entered  in  the  currently-selected  field), or a forms
    processing request.
    processing request.
-   
-   The forms driver provides hooks (through input-validation and
-   field-termination functions) with which your application code can
+
+   The   forms   driver  provides  hooks  (through  input-validation  and
+   field-termination  functions)  with  which  your  application code can
    check that the input taken by the driver matched what was expected.
    check that the input taken by the driver matched what was expected.
-   
+
   Page Navigation Requests
   Page Navigation Requests
-  
-   These requests cause page-level moves through the form, triggering
+
+   These  requests  cause  page-level  moves through the form, triggering
    display of a new form screen.
    display of a new form screen.
-   
+
    REQ_NEXT_PAGE
           Move to the next form page.
    REQ_NEXT_PAGE
           Move to the next form page.
-          
+
    REQ_PREV_PAGE
           Move to the previous form page.
    REQ_PREV_PAGE
           Move to the previous form page.
-          
+
    REQ_FIRST_PAGE
           Move to the first form page.
    REQ_FIRST_PAGE
           Move to the first form page.
-          
+
    REQ_LAST_PAGE
           Move to the last form page.
    REQ_LAST_PAGE
           Move to the last form page.
-          
-   These requests treat the list as cyclic; that is, REQ_NEXT_PAGE from
+
+   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.
    the last page goes to the first, and REQ_PREV_PAGE from the first page
    goes to the last.
-   
+
   Inter-Field Navigation Requests
   Inter-Field Navigation Requests
-  
+
    These requests handle navigation between fields on the same page.
    These requests handle navigation between fields on the same page.
-   
+
    REQ_NEXT_FIELD
           Move to next field.
    REQ_NEXT_FIELD
           Move to next field.
-          
+
    REQ_PREV_FIELD
           Move to previous field.
    REQ_PREV_FIELD
           Move to previous field.
-          
+
    REQ_FIRST_FIELD
           Move to the first field.
    REQ_FIRST_FIELD
           Move to the first field.
-          
+
    REQ_LAST_FIELD
           Move to the last field.
    REQ_LAST_FIELD
           Move to the last field.
-          
+
    REQ_SNEXT_FIELD
           Move to sorted next field.
    REQ_SNEXT_FIELD
           Move to sorted next field.
-          
+
    REQ_SPREV_FIELD
           Move to sorted previous field.
    REQ_SPREV_FIELD
           Move to sorted previous field.
-          
+
    REQ_SFIRST_FIELD
           Move to the sorted first field.
    REQ_SFIRST_FIELD
           Move to the sorted first field.
-          
+
    REQ_SLAST_FIELD
           Move to the sorted last field.
    REQ_SLAST_FIELD
           Move to the sorted last field.
-          
+
    REQ_LEFT_FIELD
           Move left to field.
    REQ_LEFT_FIELD
           Move left to field.
-          
+
    REQ_RIGHT_FIELD
           Move right to field.
    REQ_RIGHT_FIELD
           Move right to field.
-          
+
    REQ_UP_FIELD
           Move up to field.
    REQ_UP_FIELD
           Move up to field.
-          
+
    REQ_DOWN_FIELD
           Move down to field.
    REQ_DOWN_FIELD
           Move down to field.
-          
-   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
+
+   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()
    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()
-   
-   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
+
+   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.
    sorted-movement requests.
-   
+
    Finally, it is possible to move between fields using visual directions
    Finally, it is possible to move between fields using visual directions
-   up, down, right, and left. To accomplish this, use the third group of
+   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.
    four requests. Note, however, that the position of a form for purposes
    of these requests is its upper-left corner.
-   
-   For example, suppose you have a multi-line field B, and two
+
+   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
    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
+   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.
    skip over B to C.
-   
+
   Intra-Field Navigation Requests
   Intra-Field Navigation Requests
-  
-   These requests drive movement of the edit cursor within the currently
+
+   These  requests drive movement of the edit cursor within the currently
    selected field.
    selected field.
-   
+
    REQ_NEXT_CHAR
           Move to next character.
    REQ_NEXT_CHAR
           Move to next character.
-          
+
    REQ_PREV_CHAR
           Move to previous character.
    REQ_PREV_CHAR
           Move to previous character.
-          
+
    REQ_NEXT_LINE
           Move to next line.
    REQ_NEXT_LINE
           Move to next line.
-          
+
    REQ_PREV_LINE
           Move to previous line.
    REQ_PREV_LINE
           Move to previous line.
-          
+
    REQ_NEXT_WORD
           Move to next word.
    REQ_NEXT_WORD
           Move to next word.
-          
+
    REQ_PREV_WORD
           Move to previous word.
    REQ_PREV_WORD
           Move to previous word.
-          
+
    REQ_BEG_FIELD
           Move to beginning of field.
    REQ_BEG_FIELD
           Move to beginning of field.
-          
+
    REQ_END_FIELD
           Move to end of field.
    REQ_END_FIELD
           Move to end of field.
-          
+
    REQ_BEG_LINE
           Move to beginning of line.
    REQ_BEG_LINE
           Move to beginning of line.
-          
+
    REQ_END_LINE
           Move to end of line.
    REQ_END_LINE
           Move to end of line.
-          
+
    REQ_LEFT_CHAR
           Move left in field.
    REQ_LEFT_CHAR
           Move left in field.
-          
+
    REQ_RIGHT_CHAR
           Move right in field.
    REQ_RIGHT_CHAR
           Move right in field.
-          
+
    REQ_UP_CHAR
           Move up in field.
    REQ_UP_CHAR
           Move up in field.
-          
+
    REQ_DOWN_CHAR
           Move down in field.
    REQ_DOWN_CHAR
           Move down in field.
-          
-   Each word is separated from the previous and next characters by
+
+   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.
    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.
-   
+
   Scrolling Requests
   Scrolling Requests
-  
-   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
+
+   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
    triggered by editing and intra-field movement (the library scrolls the
-   field to keep the cursor visible). It is possible to explicitly
+   field  to  keep  the  cursor  visible).  It  is possible to explicitly
    request scrolling with the following requests:
    request scrolling with the following requests:
-   
+
    REQ_SCR_FLINE
           Scroll vertically forward a line.
    REQ_SCR_FLINE
           Scroll vertically forward a line.
-          
+
    REQ_SCR_BLINE
           Scroll vertically backward a line.
    REQ_SCR_BLINE
           Scroll vertically backward a line.
-          
+
    REQ_SCR_FPAGE
           Scroll vertically forward a page.
    REQ_SCR_FPAGE
           Scroll vertically forward a page.
-          
+
    REQ_SCR_BPAGE
           Scroll vertically backward a page.
    REQ_SCR_BPAGE
           Scroll vertically backward a page.
-          
+
    REQ_SCR_FHPAGE
           Scroll vertically forward half a page.
    REQ_SCR_FHPAGE
           Scroll vertically forward half a page.
-          
+
    REQ_SCR_BHPAGE
           Scroll vertically backward half a page.
    REQ_SCR_BHPAGE
           Scroll vertically backward half a page.
-          
+
    REQ_SCR_FCHAR
           Scroll horizontally forward a character.
    REQ_SCR_FCHAR
           Scroll horizontally forward a character.
-          
+
    REQ_SCR_BCHAR
           Scroll horizontally backward a character.
    REQ_SCR_BCHAR
           Scroll horizontally backward a character.
-          
+
    REQ_SCR_HFLINE
           Scroll horizontally one field width forward.
    REQ_SCR_HFLINE
           Scroll horizontally one field width forward.
-          
+
    REQ_SCR_HBLINE
           Scroll horizontally one field width backward.
    REQ_SCR_HBLINE
           Scroll horizontally one field width backward.
-          
+
    REQ_SCR_HFHALF
           Scroll horizontally one half field width forward.
    REQ_SCR_HFHALF
           Scroll horizontally one half field width forward.
-          
+
    REQ_SCR_HBHALF
           Scroll horizontally one half field width backward.
    REQ_SCR_HBHALF
           Scroll horizontally one half field width backward.
-          
+
    For scrolling purposes, a page of a field is the height of its visible
    part.
    For scrolling purposes, a page of a field is the height of its visible
    part.
-   
+
   Editing Requests
   Editing Requests
-  
-   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
+
+   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.
    (insertion is the default.
-   
+
    The following requests support editing the field and changing the edit
    mode:
    The following requests support editing the field and changing the edit
    mode:
-   
+
    REQ_INS_MODE
           Set insertion mode.
    REQ_INS_MODE
           Set insertion mode.
-          
+
    REQ_OVL_MODE
           Set overlay mode.
    REQ_OVL_MODE
           Set overlay mode.
-          
+
    REQ_NEW_LINE
           New line request (see below for explanation).
    REQ_NEW_LINE
           New line request (see below for explanation).
-          
+
    REQ_INS_CHAR
           Insert space at character location.
    REQ_INS_CHAR
           Insert space at character location.
-          
+
    REQ_INS_LINE
           Insert blank line at character location.
    REQ_INS_LINE
           Insert blank line at character location.
-          
+
    REQ_DEL_CHAR
           Delete character at cursor.
    REQ_DEL_CHAR
           Delete character at cursor.
-          
+
    REQ_DEL_PREV
           Delete previous word at cursor.
    REQ_DEL_PREV
           Delete previous word at cursor.
-          
+
    REQ_DEL_LINE
           Delete line at cursor.
    REQ_DEL_LINE
           Delete line at cursor.
-          
+
    REQ_DEL_WORD
           Delete word at cursor.
    REQ_DEL_WORD
           Delete word at cursor.
-          
+
    REQ_CLR_EOL
           Clear to end of line.
    REQ_CLR_EOL
           Clear to end of line.
-          
+
    REQ_CLR_EOF
           Clear to end of field.
    REQ_CLR_EOF
           Clear to end of field.
-          
+
    REQ_CLEAR_FIELD
           Clear entire field.
    REQ_CLEAR_FIELD
           Clear entire field.
-          
-   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
+
+   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.
    field, or on the last line of the field.
-   
+
    First, we consider REQ_NEW_LINE:
    First, we consider REQ_NEW_LINE:
-   
-   The normal behavior of REQ_NEW_LINE in insert mode is to break the
+
+   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
    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
+   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).
    may think of this as inserting a newline in the field buffer).
-   
-   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
+
+   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.
    cursor is then moved to the beginning of the next line.
-   
+
    However, REQ_NEW_LINE at the beginning of a field, or on the last line
    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
+   of  a  field,  instead  does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is
    off, this special action is disabled.
    off, this special action is disabled.
-   
+
    Now, let us consider REQ_DEL_PREV:
    Now, let us consider REQ_DEL_PREV:
-   
-   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
+
+   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).
    newline from the field buffer).
-   
-   However, REQ_DEL_PREV at the beginning of a field is instead treated
+
+   However,  REQ_DEL_PREV  at the beginning of a field is instead treated
    as a REQ_PREV_FIELD.
    as a REQ_PREV_FIELD.
-   
-   If the O_BS_OVERLOAD option is off, this special action is disabled
+
+   If  the  O_BS_OVERLOAD  option is off, this special action is disabled
    and the forms driver just returns E_REQUEST_DENIED.
    and the forms driver just returns E_REQUEST_DENIED.
-   
-   See Form Options for discussion of how to set and clear the overload
+
+   See  Form  Options for discussion of how to set and clear the overload
    options.
    options.
-   
+
   Order Requests
   Order Requests
-  
+
    If the type of your field is ordered, and has associated functions for
    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,
+   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:
    there are requests that can fetch that value into the field buffer:
-   
+
    REQ_NEXT_CHOICE
           Place the successor value of the current value in the buffer.
    REQ_NEXT_CHOICE
           Place the successor value of the current value in the buffer.
-          
+
    REQ_PREV_CHOICE
           Place the predecessor value of the current value in the buffer.
    REQ_PREV_CHOICE
           Place the predecessor value of the current value in the buffer.
-          
+
    Of the built-in field types, only TYPE_ENUM has built-in successor and
    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
+   predecessor  functions.  When you define a field type of your own (see
+   Custom   Validation   Types),  you  can  associate  our  own  ordering
    functions.
    functions.
-   
+
   Application Commands
   Application Commands
-  
-   Form requests are represented as integers above the curses value
-   greater than KEY_MAX and less than or equal to the constant
-   MAX_COMMAND. If your input-virtualization routine returns a value
+
+   Form  requests  are  represented  as  integers  above the curses value
+   greater   than  KEY_MAX  and  less  than  or  equal  to  the  constant
+   MAX_COMMAND.  If  your  input-virtualization  routine  returns a value
    above MAX_COMMAND, the forms driver will ignore it.
    above MAX_COMMAND, the forms driver will ignore it.
-   
+
 Field Change Hooks
 
 Field Change Hooks
 
-   It is possible to set function hooks to be executed whenever the
-   current field or form changes. Here are the functions that support
+   It  is  possible  to  set  function  hooks to be executed whenever the
+   current  field  or  form  changes. Here are the functions that support
    this:
 typedef void    (*HOOK)();       /* pointer to function returning void */
 
    this:
 typedef void    (*HOOK)();       /* pointer to function returning void */
 
@@ -2259,46 +2262,46 @@ int set_field_term(FORM *form,   /* form to alter */
 HOOK field_term(FORM *form);     /* form to query */
 
    These functions allow you to either set or query four different hooks.
 HOOK field_term(FORM *form);     /* form to query */
 
    These functions allow you to either set or query four different hooks.
-   In each of the set functions, the second argument should be the
-   address of a hook function. These functions differ only in the timing
+   In  each  of  the  set  functions,  the  second argument should be the
+   address  of a hook function. These functions differ only in the timing
    of the hook call.
    of the hook call.
-   
+
    form_init
    form_init
-          This hook is called when the form is posted; also, just after
+          This  hook  is called when the form is posted; also, just after
           each page change operation.
           each page change operation.
-          
+
    field_init
    field_init
-          This hook is called when the form is posted; also, just after
+          This  hook  is called when the form is posted; also, just after
           each field change
           each field change
-          
+
    field_term
    field_term
-          This hook is called just after field validation; that is, just
+          This  hook is called just after field validation; that is, just
           before the field is altered. It is also called when the form is
           unposted.
           before the field is altered. It is also called when the form is
           unposted.
-          
+
    form_term
    form_term
-          This hook is called when the form is unposted; also, just
+          This  hook  is  called  when  the  form is unposted; also, just
           before each page change operation.
           before each page change operation.
-          
+
    Calls to these hooks may be triggered
     1. When user editing requests are processed by the forms driver
     2. When the current page is changed by set_current_field() call
     3. When the current field is changed by a set_form_page() call
    Calls to these hooks may be triggered
     1. When user editing requests are processed by the forms driver
     2. When the current page is changed by set_current_field() call
     3. When the current field is changed by a set_form_page() call
-       
+
    See Field Change Commands for discussion of the latter two cases.
    See Field Change Commands for discussion of the latter two cases.
-   
-   You can set a default hook for all fields by passing one of the set
+
+   You  can  set  a default hook for all fields by passing one of the set
    functions a NULL first argument.
    functions a NULL first argument.
-   
-   You can disable any of these hooks by (re)setting them to NULL, the
+
+   You  can  disable  any of these hooks by (re)setting them to NULL, the
    default value.
    default value.
-   
+
 Field Change Commands
 
 Field Change Commands
 
-   Normally, navigation through the form will be driven by the user's
-   input requests. But sometimes it is useful to be able to move the
-   focus for editing and viewing under control of your application, or
-   ask which field it currently is in. The following functions help you
+   Normally,  navigation  through  the  form will be driven by the user's
+   input  requests.  But  sometimes  it  is useful to be able to move the
+   focus  for  editing  and viewing under control of your application, or
+   ask  which  field it currently is in. The following functions help you
    accomplish this:
 int set_current_field(FORM *form,         /* form to alter */
                       FIELD *field);      /* field to shift to */
    accomplish this:
 int set_current_field(FORM *form,         /* form to alter */
                       FIELD *field);      /* field to shift to */
@@ -2309,24 +2312,24 @@ int field_index(FORM *form,               /* form to query */
                 FIELD *field);            /* field to get index of */
 
    The function field_index() returns the index of the given field in the
                 FIELD *field);            /* field to get index of */
 
    The function field_index() returns the index of the given field in the
-   given form's field array (the array passed to new_form() or
+   given   form's   field  array  (the  array  passed  to  new_form()  or
    set_form_fields()).
    set_form_fields()).
-   
-   The initial current field of a form is the first active field on the
+
+   The  initial  current field of a form is the first active field on the
    first page. The function set_form_fields() resets this.
    first page. The function set_form_fields() resets this.
-   
+
    It is also possible to move around by pages.
 int set_form_page(FORM *form,             /* form to alter */
                   int page);              /* page to go to (0-origin) */
 
 int form_page(FORM *form);                /* return form's current page */
 
    It is also possible to move around by pages.
 int set_form_page(FORM *form,             /* form to alter */
                   int page);              /* page to go to (0-origin) */
 
 int form_page(FORM *form);                /* return form's current page */
 
-   The initial page of a newly-created form is 0. The function
+   The   initial  page  of  a  newly-created  form  is  0.  The  function
    set_form_fields() resets this.
    set_form_fields() resets this.
-   
+
 Form Options
 
 Form Options
 
-   Like fields, forms may have control option bits. They can be changed
+   Like  fields,  forms may have control option bits. They can be changed
    or queried with these functions:
 int set_form_opts(FORM *form,             /* form to alter */
                   int attr);              /* attribute to set */
    or queried with these functions:
 int set_form_opts(FORM *form,             /* form to alter */
                   int attr);              /* attribute to set */
@@ -2340,55 +2343,55 @@ int form_opts_off(FORM *form,             /* form to alter */
 int form_opts(FORM *form);                /* form to query */
 
    By default, all options are on. Here are the available option bits:
 int form_opts(FORM *form);                /* form to query */
 
    By default, all options are on. Here are the available option bits:
-   
+
    O_NL_OVERLOAD
    O_NL_OVERLOAD
-          Enable overloading of REQ_NEW_LINE as described in Editing
+          Enable  overloading  of  REQ_NEW_LINE  as  described in Editing
           Requests. The value of this option is ignored on dynamic fields
           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
+          that  have  not  reached  their  size limit; these have no last
+          line,  so  the  circumstances  for  triggering a REQ_NEXT_FIELD
           never arise.
           never arise.
-          
+
    O_BS_OVERLOAD
    O_BS_OVERLOAD
-          Enable overloading of REQ_DEL_PREV as described in Editing
+          Enable  overloading  of  REQ_DEL_PREV  as  described in Editing
           Requests.
           Requests.
-          
+
    The option values are bit-masks and can be composed with logical-or in
    the obvious way.
    The option values are bit-masks and can be composed with logical-or in
    the obvious way.
-   
+
 Custom Validation Types
 
 Custom Validation Types
 
-   The form library gives you the capability to define custom validation
-   types of your own. Further, the optional additional arguments of
+   The  form library gives you the capability to define custom validation
+   types  of  your  own.  Further,  the  optional additional arguments of
    set_field_type effectively allow you to parameterize validation types.
    set_field_type effectively allow you to parameterize validation types.
-   Most of the complications in the validation-type interface have to do
+   Most  of the complications in the validation-type interface have to do
    with the handling of the additional arguments within custom validation
    functions.
    with the handling of the additional arguments within custom validation
    functions.
-   
+
   Union Types
   Union Types
-  
-   The simplest way to create a custom data type is to compose it from
+
+   The  simplest  way  to create a custom data type is to compose it from
    two preexisting ones:
 FIELD *link_fieldtype(FIELDTYPE *type1,
                       FIELDTYPE *type2);
 
    two preexisting ones:
 FIELD *link_fieldtype(FIELDTYPE *type1,
                       FIELDTYPE *type2);
 
-   This function creates a field type that will accept any of the values
-   legal for either of its argument field types (which may be either
-   predefined or programmer-defined). If a set_field_type() call later
-   requires arguments, the new composite type expects all arguments for
-   the first type, than all arguments for the second. Order functions
-   (see Order Requests) associated with the component types will work on
-   the composite; what it does is check the validation function for the
-   first type, then for the second, to figure what type the buffer
+   This  function creates a field type that will accept any of the values
+   legal  for  either  of  its  argument field types (which may be either
+   predefined  or  programmer-defined).  If a set_field_type() call later
+   requires  arguments,  the new composite type expects all arguments for
+   the  first  type,  than  all arguments for the second. Order functions
+   (see  Order Requests) associated with the component types will work on
+   the  composite;  what it does is check the validation function for the
+   first  type,  then  for  the  second,  to  figure what type the buffer
    contents should be treated as.
    contents should be treated as.
-   
+
   New Field Types
   New Field Types
-  
-   To create a field type from scratch, you need to specify one or both
+
+   To  create  a field type from scratch, you need to specify one or both
    of the following things:
    of the following things:
-     * A character-validation function, to check each character as it is
+     * A  character-validation function, to check each character as it is
        entered.
      * A field-validation function to be applied on exit from the field.
        entered.
      * A field-validation function to be applied on exit from the field.
-       
+
    Here's how you do that:
 typedef int     (*HOOK)();       /* pointer to function returning int */
 
    Here's how you do that:
 typedef int     (*HOOK)();       /* pointer to function returning int */
 
@@ -2399,37 +2402,37 @@ FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
 int free_fieldtype(FIELDTYPE *ftype);     /* type to free */
 
    At least one of the arguments of new_fieldtype() must be non-NULL. The
 int free_fieldtype(FIELDTYPE *ftype);     /* type to free */
 
    At least one of the arguments of new_fieldtype() must be non-NULL. The
-   forms driver will automatically call the new type's validation
+   forms  driver  will  automatically  call  the  new  type's  validation
    functions at appropriate points in processing a field of the new type.
    functions at appropriate points in processing a field of the new type.
-   
-   The function free_fieldtype() deallocates the argument fieldtype,
+
+   The  function  free_fieldtype()  deallocates  the  argument fieldtype,
    freeing all storage associated with it.
    freeing all storage associated with it.
-   
-   Normally, a field validator is called when the user attempts to leave
-   the field. Its first argument is a field pointer, from which it can
-   get to field buffer 0 and test it. If the function returns TRUE, the
-   operation succeeds; if it returns FALSE, the edit cursor stays in the
+
+   Normally,  a field validator is called when the user attempts to leave
+   the  field.  Its  first argument is a field pointer, from which it can
+   get  to  field buffer 0 and test it. If the function returns TRUE, the
+   operation  succeeds; if it returns FALSE, the edit cursor stays in the
    field.
    field.
-   
-   A character validator gets the character passed in as a first
-   argument. It too should return TRUE if the character is valid, FALSE
+
+   A  character  validator  gets  the  character  passed  in  as  a first
+   argument.  It  too should return TRUE if the character is valid, FALSE
    otherwise.
    otherwise.
-   
+
   Validation Function Arguments
   Validation Function Arguments
-  
-   Your field- and character- validation functions will be passed a
-   second argument as well. This second argument is the address of a
-   structure (which we'll call a pile) built from any of the
-   field-type-specific arguments passed to set_field_type(). If no such
-   arguments are defined for the field type, this pile pointer argument
+
+   Your  field-  and  character-  validation  functions  will be passed a
+   second  argument  as  well.  This  second argument is the address of a
+   structure   (which   we'll   call  a  pile)  built  from  any  of  the
+   field-type-specific  arguments  passed to set_field_type(). If no such
+   arguments  are  defined for the field type, this pile pointer argument
    will be NULL.
    will be NULL.
-   
+
    In order to arrange for such arguments to be passed to your validation
    In order to arrange for such arguments to be passed to your validation
-   functions, you must associate a small set of storage-management
+   functions,  you  must  associate  a  small  set  of storage-management
    functions with the type. The forms driver will use these to synthesize
    functions with the type. The forms driver will use these to synthesize
-   a pile from the trailing arguments of each set_field_type() argument,
+   a  pile from the trailing arguments of each set_field_type() argument,
    and a pointer to the pile will be passed to the validation functions.
    and a pointer to the pile will be passed to the validation functions.
-   
+
    Here is how you make the association:
 typedef char    *(*PTRHOOK)();    /* pointer to function returning (char *) */
 typedef void    (*VOIDHOOK)();    /* pointer to function returning void */
    Here is how you make the association:
 typedef char    *(*PTRHOOK)();    /* pointer to function returning (char *) */
 typedef void    (*VOIDHOOK)();    /* pointer to function returning void */
@@ -2440,34 +2443,34 @@ int set_fieldtype_arg(FIELDTYPE *type,    /* type to alter */
                       VOIDHOOK free_str); /* free structure storage */
 
    Here is how the storage-management hooks are used:
                       VOIDHOOK free_str); /* free structure storage */
 
    Here is how the storage-management hooks are used:
-   
+
    make_str
    make_str
-          This function is called by set_field_type(). It gets one
-          argument, a va_list of the type-specific arguments passed to
-          set_field_type(). It is expected to return a pile pointer to a
+          This  function  is  called  by  set_field_type().  It  gets one
+          argument,  a  va_list  of the type-specific arguments passed to
+          set_field_type().  It is expected to return a pile pointer to a
           data structure that encapsulates those arguments.
           data structure that encapsulates those arguments.
-          
+
    copy_str
           This function is called by form library functions that allocate
    copy_str
           This function is called by form library functions that allocate
-          new field instances. It is expected to take a pile pointer,
-          copy the pile to allocated storage, and return the address of
+          new  field  instances.  It  is expected to take a pile pointer,
+          copy  the  pile to allocated storage, and return the address of
           the pile copy.
           the pile copy.
-          
+
    free_str
    free_str
-          This function is called by field- and type-deallocation
-          routines in the library. It takes a pile pointer argument, and
+          This   function  is  called  by  field-  and  type-deallocation
+          routines  in the library. It takes a pile pointer argument, and
           is expected to free the storage of that pile.
           is expected to free the storage of that pile.
-          
-   The make_str and copy_str functions may return NULL to signal
-   allocation failure. The library routines will that call them will
-   return error indication when this happens. Thus, your validation
-   functions should never see a NULL file pointer and need not check
+
+   The  make_str  and  copy_str  functions  may  return  NULL  to  signal
+   allocation  failure.  The  library  routines  will that call them will
+   return  error  indication  when  this  happens.  Thus, your validation
+   functions  should  never  see  a  NULL file pointer and need not check
    specially for it.
    specially for it.
-   
+
   Order Functions For Custom Types
   Order Functions For Custom Types
-  
-   Some custom field types are simply ordered in the same well-defined
-   way that TYPE_ENUM is. For such types, it is possible to define
+
+   Some  custom  field  types are simply ordered in the same well-defined
+   way  that  TYPE_ENUM  is.  For  such  types,  it is possible to define
    successor and predecessor functions to support the REQ_NEXT_CHOICE and
    REQ_PREV_CHOICE requests. Here's how:
 typedef int     (*INTHOOK)();     /* pointer to function returning int */
    successor and predecessor functions to support the REQ_NEXT_CHOICE and
    REQ_PREV_CHOICE requests. Here's how:
 typedef int     (*INTHOOK)();     /* pointer to function returning int */
@@ -2476,27 +2479,27 @@ int set_fieldtype_arg(FIELDTYPE *type,    /* type to alter */
                       INTHOOK succ,       /* get successor value */
                       INTHOOK pred);      /* get predecessor value */
 
                       INTHOOK succ,       /* get successor value */
                       INTHOOK pred);      /* get predecessor value */
 
-   The successor and predecessor arguments will each be passed two
-   arguments; a field pointer, and a pile pointer (as for the validation
-   functions). They are expected to use the function field_buffer() to
-   read the current value, and set_field_buffer() on buffer 0 to set the
-   next or previous value. Either hook may return TRUE to indicate
-   success (a legal next or previous value was set) or FALSE to indicate
+   The  successor  and  predecessor  arguments  will  each  be passed two
+   arguments;  a field pointer, and a pile pointer (as for the validation
+   functions).  They  are  expected to use the function field_buffer() to
+   read  the current value, and set_field_buffer() on buffer 0 to set the
+   next  or  previous  value.  Either  hook  may  return TRUE to indicate
+   success  (a legal next or previous value was set) or FALSE to indicate
    failure.
    failure.
-   
+
   Avoiding Problems
   Avoiding Problems
-  
-   The interface for defining custom types is complicated and tricky.
-   Rather than attempting to create a custom type entirely from scratch,
-   you should start by studying the library source code for whichever of
+
+   The  interface  for  defining  custom types is complicated and tricky.
+   Rather  than attempting to create a custom type entirely from scratch,
+   you  should start by studying the library source code for whichever of
    the pre-defined types seems to be closest to what you want.
    the pre-defined types seems to be closest to what you want.
-   
-   Use that code as a model, and evolve it towards what you really want.
-   You will avoid many problems and annoyances that way. The code in the
-   ncurses library has been specifically exempted from the package
+
+   Use  that code as a model, and evolve it towards what you really want.
+   You  will avoid many problems and annoyances that way. The code in the
+   ncurses  library  has  been  specifically  exempted  from  the package
    copyright to support this.
    copyright to support this.
-   
-   If your custom type defines order functions, have do something
-   intuitive with a blank field. A useful convention is to make the
-   successor of a blank field the types minimum value, and its
+
+   If  your  custom  type  defines  order  functions,  have  do something
+   intuitive  with  a  blank  field.  A  useful convention is to make the
+   successor   of  a  blank  field  the  types  minimum  value,  and  its
    predecessor the maximum.
    predecessor the maximum.
index 7d9f20fd6ac07ba277755fe77e4672f73dc5a29f..e55afcb55e4e758afffdb2cf304e1a9a8a28bec3 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.31 2000/10/14 17:57:02 Johnny.C.Lam Exp $
+# $Id: Makefile.in,v 1.36 2002/01/20 01:49:17 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.      #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -50,6 +50,7 @@ DESTDIR               = @DESTDIR@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
+bindir         = @bindir@
 libdir         = @libdir@
 includedir     = @includedir@
 
 libdir         = @libdir@
 includedir     = @includedir@
 
@@ -57,6 +58,7 @@ LIBTOOL               = @LIBTOOL@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
+INSTALL_PROG   = @INSTALL_PROG@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
@@ -85,7 +87,7 @@ CFLAGS_DEFAULT        = $(CFLAGS_@DFT_UPR_MODEL@)
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
-SHLIB_DIRS     = -L../lib -L$(libdir)
+SHLIB_DIRS     = -L../lib
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
@@ -97,6 +99,8 @@ ABI_VERSION   = @cf_cv_abi_version@
 
 RANLIB         = @RANLIB@
 
 
 RANLIB         = @RANLIB@
 
+IMPORT_LIB     = @IMPORT_LIB@
+SHARED_LIB     = @SHARED_LIB@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
@@ -113,8 +117,9 @@ install ::  $(AUTO_SRC) $(LIBRARIES)
 
 sources :      $(AUTO_SRC)
 
 
 sources :      $(AUTO_SRC)
 
+$(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
 $(DESTDIR)$(libdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 # make copies to simplify include-paths while still keeping form's include
 # file in this directory.
 
 # make copies to simplify include-paths while still keeping form's include
 # file in this directory.
@@ -136,7 +141,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
index dd91693f6b36fb0884d6b93a9dc143d0961007e5..11c814605d6a08ebac1c81a10c9c99cf391257dc 100644 (file)
@@ -11,5 +11,6 @@ directory.
 
 Juergen Pfeifer
 
 
 Juergen Pfeifer
 
-eMail: juergen.pfeifer@gmx.net
+Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+
 
 
index bc816e9efd0f241c96098511b521d7798aa5f5ca..7e4eaaf7ddeee26359d2792acb69c87a52341e8e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_arg.c,v 1.4 1999/05/16 17:16:04 juergen Exp $")
+MODULE_ID("$Id: fld_arg.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -60,10 +61,12 @@ MODULE_ID("$Id: fld_arg.c,v 1.4 1999/05/16 17:16:04 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
-int set_fieldtype_arg(FIELDTYPE * typ,
-                     void * (* const make_arg)(va_list *),
-                     void * (* const copy_arg)(const void *),
-                     void   (* const free_arg)(void *))
+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 *))
 {
   if ( !typ || !make_arg )
     RETURN(E_BAD_ARGUMENT);
 {
   if ( !typ || !make_arg )
     RETURN(E_BAD_ARGUMENT);
@@ -83,7 +86,8 @@ int set_fieldtype_arg(FIELDTYPE * typ,
 |
 |   Return Values :  Pointer to structure or NULL if none is defined.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to structure or NULL if none is defined.
 +--------------------------------------------------------------------------*/
-void *field_arg(const FIELD * field)
+NCURSES_EXPORT(void *)
+field_arg (const FIELD * field)
 {
   return Normalize_Field(field)->arg;
 }
 {
   return Normalize_Field(field)->arg;
 }
index 3c7d8e353c0ed6176b1bb893bd4200e5804dd109..6ce192e01305e400e58b8b446f49811adac16ef1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_attr.c,v 1.4 1999/05/16 17:16:30 juergen Exp $")
+MODULE_ID("$Id: fld_attr.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*----------------------------------------------------------------------------
   Field-Attribute manipulation routines
   --------------------------------------------------------------------------*/
 /* "Template" macro to generate a function to set a fields attribute */
 #define GEN_FIELD_ATTR_SET_FCT( name ) \
 
 /*----------------------------------------------------------------------------
   Field-Attribute manipulation routines
   --------------------------------------------------------------------------*/
 /* "Template" macro to generate a function to set a fields attribute */
 #define GEN_FIELD_ATTR_SET_FCT( name ) \
-int set_field_ ## name (FIELD * field, chtype attr)\
+NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
 {\
    int res = E_BAD_ARGUMENT;\
    if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
 {\
    int res = E_BAD_ARGUMENT;\
    if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
@@ -57,7 +58,7 @@ int set_field_ ## name (FIELD * field, chtype attr)\
 
 /* "Template" macro to generate a function to get a fields attribute */
 #define GEN_FIELD_ATTR_GET_FCT( name ) \
 
 /* "Template" macro to generate a function to get a fields attribute */
 #define GEN_FIELD_ATTR_GET_FCT( name ) \
-chtype field_ ## name (const FIELD * field)\
+NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
 {\
    return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
 }
 {\
    return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
 }
index 2bf8163a43f7fea455e64776be0c4061f2e88cee..02192c282be246f02ad7dc212161c6454c14a09b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_current.c,v 1.4 1999/05/16 17:16:46 juergen Exp $")
+MODULE_ID("$Id: fld_current.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,7 +47,8 @@ MODULE_ID("$Id: fld_current.c,v 1.4 1999/05/16 17:16:46 juergen Exp $")
 |                    E_INVALID_FIELD   - current field can't be left
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 |                    E_INVALID_FIELD   - current field can't be left
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
-int set_current_field(FORM  * form, FIELD * field)
+NCURSES_EXPORT(int)
+set_current_field (FORM  * form, FIELD * field)
 {
   int err = E_OK;
 
 {
   int err = E_OK;
 
@@ -101,7 +103,8 @@ int set_current_field(FORM  * form, FIELD * field)
 |
 |   Return Values :  Pointer to the current field.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to the current field.
 +--------------------------------------------------------------------------*/
-FIELD *current_field(const FORM * form)
+NCURSES_EXPORT(FIELD *)
+current_field (const FORM * form)
 {
   return Normalize_Form(form)->current;
 }
 {
   return Normalize_Form(form)->current;
 }
@@ -116,7 +119,8 @@ FIELD *current_field(const FORM * form)
 |   Return Values :  >= 0   : field index
 |                    -1     : fieldpointer invalid or field not connected
 +--------------------------------------------------------------------------*/
 |   Return Values :  >= 0   : field index
 |                    -1     : fieldpointer invalid or field not connected
 +--------------------------------------------------------------------------*/
-int field_index(const FIELD * field)
+NCURSES_EXPORT(int)
+field_index (const FIELD * field)
 {
   return ( (field && field->form) ? field->index : -1 );
 }
 {
   return ( (field && field->form) ? field->index : -1 );
 }
index dd3de804688b49b3dd11da79635ed506a653e84a..73e2e4cfae1944c21d38bfd2299c1f2757a87f68 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_def.c,v 1.12 1999/05/16 17:37:48 juergen Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.14 2002/07/06 15:33:27 juergen Exp $")
 
 /* this can't be readonly */
 static FIELD default_field = {
 
 /* this can't be readonly */
 static FIELD default_field = {
@@ -63,7 +64,7 @@ static FIELD default_field = {
   (char *)0                /* usrptr */
 };
 
   (char *)0                /* usrptr */
 };
 
-FIELD *_nc_Default_Field = &default_field;
+NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -79,8 +80,9 @@ FIELD *_nc_Default_Field = &default_field;
 |   Return Values :  Pointer to argument structure. Maybe NULL.
 |                    In case of an error in *err an errorcounter is increased. 
 +--------------------------------------------------------------------------*/
 |   Return Values :  Pointer to argument structure. Maybe NULL.
 |                    In case of an error in *err an errorcounter is increased. 
 +--------------------------------------------------------------------------*/
-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 *p;
 {
   TypeArgument *res = (TypeArgument *)0; 
   TypeArgument *p;
@@ -121,9 +123,10 @@ _nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
 |   Return Values :  Pointer to argument structure. Maybe NULL.
 |                    In case of an error in *err an errorcounter is increased. 
 +--------------------------------------------------------------------------*/
 |   Return Values :  Pointer to argument structure. Maybe NULL.
 |                    In case of an error in *err an errorcounter is increased. 
 +--------------------------------------------------------------------------*/
-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;
 {
   TypeArgument *res = (TypeArgument *)0;
   TypeArgument *p;
@@ -166,8 +169,9 @@ _nc_Copy_Argument(const FIELDTYPE *typ,
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void
-_nc_Free_Argument(const FIELDTYPE * typ, TypeArgument * argp)
+NCURSES_EXPORT(void)
+_nc_Free_Argument
+(const FIELDTYPE * typ, TypeArgument * argp)
 {
   if (!typ || !(typ->status & _HAS_ARGS)) 
     return;
 {
   if (!typ || !(typ->status & _HAS_ARGS)) 
     return;
@@ -195,8 +199,9 @@ _nc_Free_Argument(const FIELDTYPE * typ, TypeArgument * argp)
 |   Return Values :  TRUE       - copy worked
 |                    FALSE      - error occured
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE       - copy worked
 |                    FALSE      - error occured
 +--------------------------------------------------------------------------*/
-bool
-_nc_Copy_Type(FIELD *dst, FIELD const *src)
+NCURSES_EXPORT(bool)
+_nc_Copy_Type
+(FIELD *dst, FIELD const *src)
 {
   int err = 0;
 
 {
   int err = 0;
 
@@ -228,8 +233,8 @@ _nc_Copy_Type(FIELD *dst, FIELD const *src)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void
-_nc_Free_Type(FIELD *field)
+NCURSES_EXPORT(void)
+_nc_Free_Type (FIELD *field)
 {
   assert(field);
   if (field->type) 
 {
   assert(field);
   if (field->type) 
@@ -253,7 +258,9 @@ _nc_Free_Type(FIELD *field)
 |
 |   Return Values :  Pointer to the new field or NULL if failure.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to the new field or NULL if failure.
 +--------------------------------------------------------------------------*/
-FIELD *new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
+NCURSES_EXPORT(FIELD *)
+new_field
+(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
@@ -317,7 +324,8 @@ FIELD *new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
 |                    E_BAD_ARGUMENT - invalid field pointer
 |                    E_CONNECTED    - field is connected
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid field pointer
 |                    E_CONNECTED    - field is connected
 +--------------------------------------------------------------------------*/
-int free_field(FIELD * field)
+NCURSES_EXPORT(int)
+free_field (FIELD * field)
 {
   if (!field) 
     RETURN(E_BAD_ARGUMENT);
 {
   if (!field) 
     RETURN(E_BAD_ARGUMENT);
index d265f958f218b0a341558bda9cab0f6768c03fd4..31671791006716ef2600c3db35f3448a9ee10ec2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_dup.c,v 1.4 1999/05/16 17:17:08 juergen Exp $")
+MODULE_ID("$Id: fld_dup.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -47,7 +48,8 @@ MODULE_ID("$Id: fld_dup.c,v 1.4 1999/05/16 17:17:08 juergen Exp $")
 |
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
-FIELD *dup_field(FIELD * field, int frow, int fcol)
+NCURSES_EXPORT(FIELD *)
+dup_field (FIELD * field, int frow, int fcol)
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
index 8e7d2a9683f1ef081ffc4aa96c00a7d53436b367..faaa4f458d17cf7e5de12a7eec77c70c2af42084 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_ftchoice.c,v 1.4 1999/05/16 17:17:21 juergen Exp $")
+MODULE_ID("$Id: fld_ftchoice.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,9 +47,11 @@ MODULE_ID("$Id: fld_ftchoice.c,v 1.4 1999/05/16 17:17:21 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid arguments
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid arguments
 +--------------------------------------------------------------------------*/
-int set_fieldtype_choice(FIELDTYPE * typ,
-                        bool (* const next_choice) (FIELD *,const void *),
-                        bool (* const prev_choice) (FIELD *,const void *))
+NCURSES_EXPORT(int)
+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 ) 
     RETURN(E_BAD_ARGUMENT);
 {
   if ( !typ || !next_choice || !prev_choice ) 
     RETURN(E_BAD_ARGUMENT);
index 1c30cab244a4afa176c3520304ae11304d4ed1c0..9535817bb8c05bbbee88ef2fb312899052b8dc6f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_ftlink.c,v 1.4 1999/05/16 17:17:33 juergen Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -48,7 +49,9 @@ MODULE_ID("$Id: fld_ftlink.c,v 1.4 1999/05/16 17:17:33 juergen Exp $")
 |
 |   Return Values :  Fieldtype pointer or NULL if error occured.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Fieldtype pointer or NULL if error occured.
 +--------------------------------------------------------------------------*/
-FIELDTYPE *link_fieldtype(FIELDTYPE * type1, FIELDTYPE * type2)
+NCURSES_EXPORT(FIELDTYPE *)
+link_fieldtype 
+(FIELDTYPE * type1, FIELDTYPE * type2)
 {
   FIELDTYPE *nftyp = (FIELDTYPE *)0;
 
 {
   FIELDTYPE *nftyp = (FIELDTYPE *)0;
 
index 98100a4f40a2acd1e2b1153740721e55cbbaed83..c3826abdec3fa95ffb73ab847dec34ec6878a075 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_info.c,v 1.4 1999/05/16 17:17:52 juergen Exp $")
+MODULE_ID("$Id: fld_info.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,10 +47,12 @@ MODULE_ID("$Id: fld_info.c,v 1.4 1999/05/16 17:17:52 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid field pointer
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid field pointer
 +--------------------------------------------------------------------------*/
-int field_info(const FIELD *field,
-              int *rows, int *cols, 
-              int *frow, int *fcol, 
-              int *nrow, int *nbuf)
+NCURSES_EXPORT(int)
+field_info 
+    (const FIELD *field,
+     int *rows, int *cols, 
+     int *frow, int *fcol, 
+     int *nrow, int *nbuf)
 {
   if (!field) 
     RETURN(E_BAD_ARGUMENT);
 {
   if (!field) 
     RETURN(E_BAD_ARGUMENT);
@@ -75,8 +78,9 @@ int field_info(const FIELD *field,
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
-int dynamic_field_info(const FIELD *field,
-                      int *drows, int *dcols, int *maxgrow)
+NCURSES_EXPORT(int)
+dynamic_field_info
+(const FIELD *field, int *drows, int *dcols, int *maxgrow)
 {
   if (!field)
     RETURN(E_BAD_ARGUMENT);
 {
   if (!field)
     RETURN(E_BAD_ARGUMENT);
index 2a6dd38ec3909ebad233dcf421a75978dd571bea..31bf0fd00e8dbafe5eea69820db57f36fbcfa2e7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_just.c,v 1.5 1999/05/16 17:18:06 juergen Exp $")
+MODULE_ID("$Id: fld_just.c,v 1.7 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: fld_just.c,v 1.5 1999/05/16 17:18:06 juergen Exp $")
 |                    E_BAD_ARGUMENT  - one of the arguments was incorrect
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - one of the arguments was incorrect
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
-int set_field_just(FIELD * field, int just)
+NCURSES_EXPORT(int)
+set_field_just (FIELD * field, int just)
 {
   int res = E_BAD_ARGUMENT;
 
 {
   int res = E_BAD_ARGUMENT;
 
@@ -73,7 +75,8 @@ int set_field_just(FIELD * field, int just)
 |
 |   Return Values :  The justification type.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The justification type.
 +--------------------------------------------------------------------------*/
-int field_just(const FIELD * field)
+NCURSES_EXPORT(int)
+field_just (const FIELD * field)
 {
   return Normalize_Field( field )->just;
 }
 {
   return Normalize_Field( field )->just;
 }
index 4352d6abf083a580ac45c363d5eb865abc7edc70..ea7df28aaafa38225286ad45f1de0ad8a87ce8e9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_link.c,v 1.4 1999/05/16 17:18:18 juergen Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: fld_link.c,v 1.4 1999/05/16 17:18:18 juergen Exp $")
 |
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
-FIELD *link_field(FIELD * field, int frow, int fcol)
+NCURSES_EXPORT(FIELD *)
+link_field (FIELD * field, int frow, int fcol)
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
index f17bcec5a47876b0cbaba031681b556f111d39e0..1ed58176b889ae23f10b2b8ffeccc0862d7502ef 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_max.c,v 1.4 1999/05/16 17:18:34 juergen Exp $")
+MODULE_ID("$Id: fld_max.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: fld_max.c,v 1.4 1999/05/16 17:18:34 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
-int set_max_field(FIELD *field, int maxgrow)
+NCURSES_EXPORT(int)
+set_max_field (FIELD *field, int maxgrow)
 {
   if (!field || (maxgrow<0))
     RETURN(E_BAD_ARGUMENT);
 {
   if (!field || (maxgrow<0))
     RETURN(E_BAD_ARGUMENT);
index 7965d5afbea8787e3c3b0a4d8a833d546e256641..6bd355f94080b5d8327f0d087675da6c0a33387e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_move.c,v 1.4 1999/05/16 17:38:51 juergen Exp $")
+MODULE_ID("$Id: fld_move.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,7 +46,8 @@ MODULE_ID("$Id: fld_move.c,v 1.4 1999/05/16 17:38:51 juergen Exp $")
 |                    E_BAD_ARGUMENT  - invalid argument passed
 |                    E_CONNECTED     - field is connected
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid argument passed
 |                    E_CONNECTED     - field is connected
 +--------------------------------------------------------------------------*/
-int move_field(FIELD *field, int frow, int fcol)
+NCURSES_EXPORT(int)
+move_field (FIELD *field, int frow, int fcol)
 {
   if ( !field || (frow<0) || (fcol<0) ) 
     RETURN(E_BAD_ARGUMENT);
 {
   if ( !field || (frow<0) || (fcol<0) ) 
     RETURN(E_BAD_ARGUMENT);
index 68b1692a2ab83b578962853aa3102a9f1da54325..bc80e3293b9ad2e115af13ab8e35909e2627ad0e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_newftyp.c,v 1.5 1999/05/16 17:18:54 juergen Exp $")
+MODULE_ID("$Id: fld_newftyp.c,v 1.7 2002/07/06 15:33:27 juergen Exp $")
 
 static FIELDTYPE const default_fieldtype = {
   0,                   /* status                                      */
 
 static FIELDTYPE const default_fieldtype = {
   0,                   /* status                                      */
@@ -48,7 +49,7 @@ static FIELDTYPE const default_fieldtype = {
   NULL                 /* enumerate previous function                 */
 };
 
   NULL                 /* enumerate previous function                 */
 };
 
-const FIELDTYPE* _nc_Default_FieldType = &default_fieldtype;
+NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -65,7 +66,8 @@ const FIELDTYPE* _nc_Default_FieldType = &default_fieldtype;
 |
 |   Return Values :  Fieldtype pointer or NULL if error occured
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Fieldtype pointer or NULL if error occured
 +--------------------------------------------------------------------------*/
-FIELDTYPE *new_fieldtype(
+NCURSES_EXPORT(FIELDTYPE *)
+new_fieldtype (
  bool (* const field_check)(FIELD *,const void *),
  bool (* const char_check) (int,const void *) )
 {
  bool (* const field_check)(FIELD *,const void *),
  bool (* const char_check) (int,const void *) )
 {
@@ -102,7 +104,8 @@ FIELDTYPE *new_fieldtype(
 |                    E_CONNECTED     - there are fields referencing the type
 |                    E_BAD_ARGUMENT  - invalid fieldtype pointer
 +--------------------------------------------------------------------------*/
 |                    E_CONNECTED     - there are fields referencing the type
 |                    E_BAD_ARGUMENT  - invalid fieldtype pointer
 +--------------------------------------------------------------------------*/
-int free_fieldtype(FIELDTYPE *typ)
+NCURSES_EXPORT(int)
+free_fieldtype (FIELDTYPE *typ)
 {
   if (!typ)
     RETURN(E_BAD_ARGUMENT);
 {
   if (!typ)
     RETURN(E_BAD_ARGUMENT);
index e5cd996d06b52463c1aa28d5ffdc7f39dcb8eeeb..585c391c4596d1db341480caaa757b86081245e4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_opts.c,v 1.6 1999/05/16 17:19:06 juergen Exp $")
+MODULE_ID("$Id: fld_opts.c,v 1.8 2002/07/06 15:33:27 juergen Exp $")
 
 /*----------------------------------------------------------------------------
   Field-Options manipulation routines
 
 /*----------------------------------------------------------------------------
   Field-Options manipulation routines
@@ -49,7 +50,8 @@ MODULE_ID("$Id: fld_opts.c,v 1.6 1999/05/16 17:19:06 juergen Exp $")
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
-int set_field_opts(FIELD * field, Field_Options opts)
+NCURSES_EXPORT(int)
+set_field_opts (FIELD * field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
   opts &= ALL_FIELD_OPTS;
 {
   int res = E_BAD_ARGUMENT;
   opts &= ALL_FIELD_OPTS;
@@ -66,7 +68,8 @@ int set_field_opts(FIELD * field, Field_Options opts)
 |
 |   Return Values :  The options.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The options.
 +--------------------------------------------------------------------------*/
-Field_Options field_opts(const FIELD * field)
+NCURSES_EXPORT(Field_Options)
+field_opts (const FIELD * field)
 {
   return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
 }
 {
   return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
 }
@@ -83,7 +86,8 @@ Field_Options field_opts(const FIELD * field)
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
-int field_opts_on(FIELD * field, Field_Options opts)
+NCURSES_EXPORT(int)
+field_opts_on (FIELD * field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
 
 {
   int res = E_BAD_ARGUMENT;
 
@@ -108,7 +112,8 @@ int field_opts_on(FIELD * field, Field_Options opts)
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid options
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
-int field_opts_off(FIELD  * field, Field_Options opts)
+NCURSES_EXPORT(int)
+field_opts_off (FIELD  * field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
 
 {
   int res = E_BAD_ARGUMENT;
 
index 527e151198b7e6ecd7d5f7d6b99d4ba3e4e629df..e635f488c33419a664ac38841fe68e16f634678e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_pad.c,v 1.4 1999/05/16 17:38:58 juergen Exp $")
+MODULE_ID("$Id: fld_pad.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: fld_pad.c,v 1.4 1999/05/16 17:38:58 juergen Exp $")
 |                    E_BAD_ARGUMENT - invalid field pointer or pad character
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid field pointer or pad character
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
-int set_field_pad(FIELD  * field, int ch)
+NCURSES_EXPORT(int)
+set_field_pad (FIELD  * field, int ch)
 {
   int res = E_BAD_ARGUMENT;
 
 {
   int res = E_BAD_ARGUMENT;
 
@@ -70,7 +72,8 @@ int set_field_pad(FIELD  * field, int ch)
 |
 |   Return Values :  The pad character.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The pad character.
 +--------------------------------------------------------------------------*/
-int field_pad(const FIELD * field)
+NCURSES_EXPORT(int)
+field_pad (const FIELD * field)
 {
   return Normalize_Field( field )->pad;
 }
 {
   return Normalize_Field( field )->pad;
 }
index 452a507cca78cc647c8068a5276767db9102e46d..7012961f25da263095404639a810ada121eaa693 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_page.c,v 1.4 1999/05/16 17:19:37 juergen Exp $")
+MODULE_ID("$Id: fld_page.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: fld_page.c,v 1.4 1999/05/16 17:19:37 juergen Exp $")
 |   Return Values :  E_OK         - success
 |                    E_CONNECTED  - field is connected
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK         - success
 |                    E_CONNECTED  - field is connected
 +--------------------------------------------------------------------------*/
-int set_new_page(FIELD * field, bool new_page_flag)
+NCURSES_EXPORT(int)
+set_new_page (FIELD * field, bool new_page_flag)
 {
   Normalize_Field(field);
   if (field->form) 
 {
   Normalize_Field(field);
   if (field->form) 
@@ -68,7 +70,8 @@ int set_new_page(FIELD * field, bool new_page_flag)
 |   Return Values :  TRUE  - field starts a new page
 |                    FALSE - field doesn't start a new page
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE  - field starts a new page
 |                    FALSE - field doesn't start a new page
 +--------------------------------------------------------------------------*/
-bool new_page(const FIELD * field)
+NCURSES_EXPORT(bool)
+new_page (const FIELD * field)
 {
   return (Normalize_Field(field)->status & _NEWPAGE)  ? TRUE : FALSE;
 }
 {
   return (Normalize_Field(field)->status & _NEWPAGE)  ? TRUE : FALSE;
 }
index 98144bf2f1c48376c9f94dea09b715e1a1e23064..0cd255a7b687d4fef02338a5f1066291304502c9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_stat.c,v 1.6 1999/05/16 17:19:48 juergen Exp $")
+MODULE_ID("$Id: fld_stat.c,v 1.8 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -43,7 +44,8 @@ MODULE_ID("$Id: fld_stat.c,v 1.6 1999/05/16 17:19:48 juergen Exp $")
 |
 |   Return Values :  E_OK            - success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK            - success
 +--------------------------------------------------------------------------*/
-int set_field_status(FIELD * field, bool status)
+NCURSES_EXPORT(int)
+set_field_status (FIELD * field, bool status)
 {
   Normalize_Field( field );
 
 {
   Normalize_Field( field );
 
@@ -65,7 +67,8 @@ int set_field_status(FIELD * field, bool status)
 |   Return Values :  TRUE  - buffer has been changed
 |                    FALSE - buffer has not been changed
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE  - buffer has been changed
 |                    FALSE - buffer has not been changed
 +--------------------------------------------------------------------------*/
-bool field_status(const FIELD * field)
+NCURSES_EXPORT(bool)
+field_status (const FIELD * field)
 {
   return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
 }
 {
   return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
 }
index 238b5474780946698b8132ea51e955a03af6160a..ee8731d1e618b8b8375e237c43c27faa933cdb11 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_type.c,v 1.9 1999/05/16 17:19:59 juergen Exp $")
+MODULE_ID("$Id: fld_type.c,v 1.11 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,7 +46,8 @@ MODULE_ID("$Id: fld_type.c,v 1.9 1999/05/16 17:19:59 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
-int set_field_type(FIELD *field,FIELDTYPE *type, ...)
+NCURSES_EXPORT(int)
+set_field_type (FIELD *field,FIELDTYPE *type, ...)
 {
   va_list ap;
   int res = E_SYSTEM_ERROR;
 {
   va_list ap;
   int res = E_SYSTEM_ERROR;
@@ -84,7 +86,8 @@ int set_field_type(FIELD *field,FIELDTYPE *type, ...)
 |
 |   Return Values :  Pointer to fieldtype of NULL if none is defined.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to fieldtype of NULL if none is defined.
 +--------------------------------------------------------------------------*/
-FIELDTYPE *field_type(const FIELD * field)
+NCURSES_EXPORT(FIELDTYPE *)
+field_type (const FIELD * field)
 {
   return Normalize_Field(field)->type;
 }
 {
   return Normalize_Field(field)->type;
 }
index cf5b4c2910480f21d1b4ceeb441cff18eb04c1d2..a81484f55c7ac2406dc56f203160654e78966867 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_user.c,v 1.8 1999/05/16 17:20:09 juergen Exp $")
+MODULE_ID("$Id: fld_user.c,v 1.10 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -43,7 +44,8 @@ MODULE_ID("$Id: fld_user.c,v 1.8 1999/05/16 17:20:09 juergen Exp $")
 |
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
-int set_field_userptr(FIELD * field, void  *usrptr)
+NCURSES_EXPORT(int)
+set_field_userptr (FIELD * field, void  *usrptr)
 {
   Normalize_Field( field )->usrptr = usrptr;
   RETURN(E_OK);
 {
   Normalize_Field( field )->usrptr = usrptr;
   RETURN(E_OK);
@@ -59,7 +61,8 @@ int set_field_userptr(FIELD * field, void  *usrptr)
 |   Return Values :  Value of pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 |   Return Values :  Value of pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
-void *field_userptr(const FIELD *field)
+NCURSES_EXPORT(void *)
+field_userptr (const FIELD *field)
 {
   return Normalize_Field( field )->usrptr;
 }
 {
   return Normalize_Field( field )->usrptr;
 }
index 40ae0a35f02f58e165918ca3c4fa7b89402fa0e6..57f63a30f72d114777dd7cb5c21c97ed5524a145 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #ifndef FORM_H
  ****************************************************************************/
 
 #ifndef FORM_H
@@ -246,140 +247,135 @@ typedef void (*Form_Hook)(FORM *);
        /*************************
        *  standard field types  *
        *************************/
        /*************************
        *  standard field types  *
        *************************/
-extern FIELDTYPE *TYPE_ALPHA,
-                 *TYPE_ALNUM,
-                 *TYPE_ENUM,
-                 *TYPE_INTEGER,
-                 *TYPE_NUMERIC,
-                 *TYPE_REGEXP;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
 
         /************************************
        *  built-in additional field types  *
         *  They are not defined in SVr4     *
        ************************************/
 
         /************************************
        *  built-in additional field types  *
         *  They are not defined in SVr4     *
        ************************************/
-extern FIELDTYPE *TYPE_IPV4;      /* Internet IP Version 4 address */
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4;      /* Internet IP Version 4 address */
 
         /*********************** 
         *   Default objects    *
         ***********************/ 
 
         /*********************** 
         *   Default objects    *
         ***********************/ 
-extern FORM  *_nc_Default_Form;
-extern FIELD *_nc_Default_Field;
+extern NCURSES_EXPORT_VAR(FORM *)      _nc_Default_Form;
+extern NCURSES_EXPORT_VAR(FIELD *)     _nc_Default_Field;
 
 
        /***********************
        *  FIELDTYPE routines  *
        ***********************/
 
 
        /***********************
        *  FIELDTYPE routines  *
        ***********************/
-extern FIELDTYPE 
-                *new_fieldtype(
+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 field_check)(FIELD *,const void *),
                    bool (* const char_check)(int,const void *)),
                 *link_fieldtype(FIELDTYPE *,FIELDTYPE *);
 
-extern int      free_fieldtype(FIELDTYPE *),
-                set_fieldtype_arg(FIELDTYPE *,
+extern NCURSES_EXPORT(int)     free_fieldtype (FIELDTYPE *);
+extern NCURSES_EXPORT(int)     set_fieldtype_arg (FIELDTYPE *,
                    void * (* const make_arg)(va_list *),
                    void * (* const copy_arg)(const void *),
                    void * (* const make_arg)(va_list *),
                    void * (* const copy_arg)(const void *),
-                   void (* const free_arg)(void *)),
-                set_fieldtype_choice (FIELDTYPE *,
+                   void (* const free_arg)(void *));
+extern NCURSES_EXPORT(int)      set_fieldtype_choice (FIELDTYPE *,
                    bool (* const next_choice)(FIELD *,const void *),
                    bool (* const prev_choice)(FIELD *,const void *));
 
        /*******************
        *  FIELD routines  *
        *******************/
                    bool (* const next_choice)(FIELD *,const void *),
                    bool (* const prev_choice)(FIELD *,const void *));
 
        /*******************
        *  FIELD routines  *
        *******************/
-extern FIELD    *new_field(int,int,int,int,int,int),
-                *dup_field(FIELD *,int,int),
-                *link_field(FIELD *,int,int);
-
-extern int      free_field(FIELD *),
-                field_info(const FIELD *,int *,int *,int *,int *,int *,int *),
-                dynamic_field_info(const FIELD *,int *,int *,int *),
-                set_max_field( FIELD *,int),
-                move_field(FIELD *,int,int),
-                set_field_type(FIELD *,FIELDTYPE *,...),
-                set_new_page(FIELD *,bool),
-                set_field_just(FIELD *,int),
-                field_just(const FIELD *),
-                set_field_fore(FIELD *,chtype),
-                set_field_back(FIELD *,chtype),
-                set_field_pad(FIELD *,int),
-                field_pad(const FIELD *),
-                set_field_buffer(FIELD *,int,const char *),
-                set_field_status(FIELD *,bool),
-                set_field_userptr(FIELD *, void *),
-                set_field_opts(FIELD *,Field_Options),
-                field_opts_on(FIELD *,Field_Options),
-                field_opts_off(FIELD *,Field_Options);
-
-extern chtype   field_fore(const FIELD *),
-                field_back(const FIELD *);
-
-extern bool     new_page(const FIELD *),
-                field_status(const FIELD *);
-
-extern void     *field_arg(const FIELD *);
-
-extern void     *field_userptr(const FIELD *);
-
-extern FIELDTYPE
-                *field_type(const FIELD *);
-
-extern char*    field_buffer(const FIELD *,int);
-
-extern Field_Options  
-                field_opts(const FIELD *);
+extern NCURSES_EXPORT(FIELD *) new_field (int,int,int,int,int,int);
+extern NCURSES_EXPORT(FIELD *) dup_field (FIELD *,int,int);
+extern NCURSES_EXPORT(FIELD *) link_field (FIELD *,int,int);
+
+extern NCURSES_EXPORT(int)     free_field (FIELD *);
+extern NCURSES_EXPORT(int)     field_info (const FIELD *,int *,int *,int *,int *,int *,int *);
+extern NCURSES_EXPORT(int)     dynamic_field_info (const FIELD *,int *,int *,int *);
+extern NCURSES_EXPORT(int)     set_max_field ( FIELD *,int);
+extern NCURSES_EXPORT(int)     move_field (FIELD *,int,int);
+extern NCURSES_EXPORT(int)     set_field_type (FIELD *,FIELDTYPE *,...);
+extern NCURSES_EXPORT(int)     set_new_page (FIELD *,bool);
+extern NCURSES_EXPORT(int)     set_field_just (FIELD *,int);
+extern NCURSES_EXPORT(int)     field_just (const FIELD *);
+extern NCURSES_EXPORT(int)     set_field_fore (FIELD *,chtype);
+extern NCURSES_EXPORT(int)     set_field_back (FIELD *,chtype);
+extern NCURSES_EXPORT(int)     set_field_pad (FIELD *,int);
+extern NCURSES_EXPORT(int)     field_pad (const FIELD *);
+extern NCURSES_EXPORT(int)     set_field_buffer (FIELD *,int,const char *);
+extern NCURSES_EXPORT(int)     set_field_status (FIELD *,bool);
+extern NCURSES_EXPORT(int)     set_field_userptr (FIELD *, void *);
+extern NCURSES_EXPORT(int)     set_field_opts (FIELD *,Field_Options);
+extern NCURSES_EXPORT(int)     field_opts_on (FIELD *,Field_Options);
+extern NCURSES_EXPORT(int)     field_opts_off (FIELD *,Field_Options);
+
+extern NCURSES_EXPORT(chtype)  field_fore (const FIELD *);
+extern NCURSES_EXPORT(chtype)  field_back (const FIELD *);
+
+extern NCURSES_EXPORT(bool)    new_page (const FIELD *);
+extern NCURSES_EXPORT(bool)    field_status (const FIELD *);
+
+extern NCURSES_EXPORT(void *)  field_arg (const FIELD *);
+
+extern NCURSES_EXPORT(void *)  field_userptr (const FIELD *);
+
+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 *); 
 
        /******************
        *  FORM routines  *
        ******************/
 
        /******************
        *  FORM routines  *
        ******************/
-extern FORM     *new_form(FIELD **);
-
-extern FIELD    **form_fields(const FORM *),
-                *current_field(const FORM *);
-
-extern WINDOW   *form_win(const FORM *),
-                *form_sub(const FORM *);
-
-extern Form_Hook
-                form_init(const FORM *),
-                form_term(const FORM *),
-                field_init(const FORM *),
-                field_term(const FORM *);
-
-extern int      free_form(FORM *),
-                set_form_fields(FORM *,FIELD **),
-                field_count(const FORM *),
-                set_form_win(FORM *,WINDOW *),
-                set_form_sub(FORM *,WINDOW *),
-                set_current_field(FORM *,FIELD *),
-                field_index(const FIELD *),
-                set_form_page(FORM *,int),
-                form_page(const FORM *),
-                scale_form(const FORM *,int *,int *),
-                set_form_init(FORM *,Form_Hook),
-                set_form_term(FORM *,Form_Hook),
-                set_field_init(FORM *,Form_Hook),
-                set_field_term(FORM *,Form_Hook),
-                post_form(FORM *),
-                unpost_form(FORM *),
-                pos_form_cursor(FORM *),
-                form_driver(FORM *,int),
-                set_form_userptr(FORM *,void *),
-                set_form_opts(FORM *,Form_Options),
-                form_opts_on(FORM *,Form_Options),
-                form_opts_off(FORM *,Form_Options),
-                form_request_by_name(const char *);
-
-extern const char
-                *form_request_name(int);
-
-extern void     *form_userptr(const FORM *);
-
-extern Form_Options
-                form_opts(const FORM *);
-
-extern bool     data_ahead(const FORM *),
-                data_behind(const FORM *);
+
+extern NCURSES_EXPORT(FORM *)  new_form (FIELD **);
+
+extern NCURSES_EXPORT(FIELD **)        form_fields (const FORM *);
+extern NCURSES_EXPORT(FIELD *) current_field (const FORM *);
+
+extern NCURSES_EXPORT(WINDOW *)        form_win (const FORM *);
+extern NCURSES_EXPORT(WINDOW *)        form_sub (const FORM *);
+
+extern NCURSES_EXPORT(Form_Hook)       form_init (const FORM *);
+extern NCURSES_EXPORT(Form_Hook)       form_term (const FORM *);
+extern NCURSES_EXPORT(Form_Hook)       field_init (const FORM *);
+extern NCURSES_EXPORT(Form_Hook)       field_term (const FORM *);
+
+extern NCURSES_EXPORT(int)     free_form (FORM *);
+extern NCURSES_EXPORT(int)     set_form_fields (FORM *,FIELD **);
+extern NCURSES_EXPORT(int)     field_count (const FORM *);
+extern NCURSES_EXPORT(int)     set_form_win (FORM *,WINDOW *);
+extern NCURSES_EXPORT(int)     set_form_sub (FORM *,WINDOW *);
+extern NCURSES_EXPORT(int)     set_current_field (FORM *,FIELD *);
+extern NCURSES_EXPORT(int)     field_index (const FIELD *);
+extern NCURSES_EXPORT(int)     set_form_page (FORM *,int);
+extern NCURSES_EXPORT(int)     form_page (const FORM *);
+extern NCURSES_EXPORT(int)     scale_form (const FORM *,int *,int *);
+extern NCURSES_EXPORT(int)     set_form_init (FORM *,Form_Hook);
+extern NCURSES_EXPORT(int)     set_form_term (FORM *,Form_Hook);
+extern NCURSES_EXPORT(int)     set_field_init (FORM *,Form_Hook);
+extern NCURSES_EXPORT(int)     set_field_term (FORM *,Form_Hook);
+extern NCURSES_EXPORT(int)     post_form (FORM *);
+extern NCURSES_EXPORT(int)     unpost_form (FORM *);
+extern NCURSES_EXPORT(int)     pos_form_cursor (FORM *);
+extern NCURSES_EXPORT(int)     form_driver (FORM *,int);
+extern NCURSES_EXPORT(int)     set_form_userptr (FORM *,void *);
+extern NCURSES_EXPORT(int)     set_form_opts (FORM *,Form_Options);
+extern NCURSES_EXPORT(int)     form_opts_on (FORM *,Form_Options);
+extern NCURSES_EXPORT(int)     form_opts_off (FORM *,Form_Options);
+extern NCURSES_EXPORT(int)     form_request_by_name (const char *);
+
+extern NCURSES_EXPORT(const char *)    form_request_name (int);
+
+extern NCURSES_EXPORT(void *)  form_userptr (const FORM *);
+
+extern NCURSES_EXPORT(Form_Options)    form_opts (const FORM *);
+
+extern NCURSES_EXPORT(bool)    data_ahead (const FORM *);
+extern NCURSES_EXPORT(bool)    data_behind (const FORM *);
 
 #ifdef __cplusplus
   }
 
 #ifdef __cplusplus
   }
index 886121c94cd8bd0f1a86ceb53ef56f464d22add2..c1ca8e1939f835bece643963b785aabd86fa5970 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "mf_common.h"
  ****************************************************************************/
 
 #include "mf_common.h"
@@ -110,19 +111,19 @@ typedef struct typearg {
 #define C_BLANK ' '
 #define is_blank(c) ((c)==C_BLANK)
 
 #define C_BLANK ' '
 #define is_blank(c) ((c)==C_BLANK)
 
-extern const FIELDTYPE* _nc_Default_FieldType;
-
-extern TypeArgument* _nc_Make_Argument(const FIELDTYPE*,va_list*,int*);
-extern TypeArgument *_nc_Copy_Argument(const FIELDTYPE*,const TypeArgument*, int*);
-extern void _nc_Free_Argument(const FIELDTYPE*,TypeArgument*);
-extern bool _nc_Copy_Type(FIELD*, FIELD const *);
-extern void _nc_Free_Type(FIELD *);
-
-extern int _nc_Synchronize_Attributes(FIELD*);
-extern int _nc_Synchronize_Options(FIELD*,Field_Options);
-extern int _nc_Set_Form_Page(FORM*,int,FIELD*);
-extern int _nc_Refresh_Current_Field(FORM*);
-extern FIELD* _nc_First_Active_Field(FORM*);
-extern bool _nc_Internal_Validation(FORM*);
-extern int _nc_Set_Current_Field(FORM*,FIELD*);
-extern int _nc_Position_Form_Cursor(FORM*);
+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(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_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_Position_Form_Cursor (FORM*);
index 96ad2d60693e909859aaebf1fa7e8c5ffe5dca86..8e28235ffe65da2933f88c8c220ae200ad94f0bb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_cursor.c,v 1.4 1999/05/16 17:20:19 juergen Exp $")
+MODULE_ID("$Id: frm_cursor.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -47,7 +48,8 @@ MODULE_ID("$Id: frm_cursor.c,v 1.4 1999/05/16 17:20:19 juergen Exp $")
 |                    E_BAD_ARGUMENT            - Invalid form pointer
 |                    E_NOT_POSTED              - Form is not posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT            - Invalid form pointer
 |                    E_NOT_POSTED              - Form is not posted
 +--------------------------------------------------------------------------*/
-int pos_form_cursor(FORM * form)
+NCURSES_EXPORT(int)
+pos_form_cursor (FORM * form)
 {
   int res;
 
 {
   int res;
 
index e90f5a17ec4d54d929739040e8db52cba97b5d2f..1026cf4ffeabace26e19d7d267827c75475ade86 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_data.c,v 1.6 1999/05/16 17:20:29 juergen Exp $")
+MODULE_ID("$Id: frm_data.c,v 1.8 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: frm_data.c,v 1.6 1999/05/16 17:20:29 juergen Exp $")
 |   Return Values :  TRUE   - there are off-screen data behind
 |                    FALSE  - there are no off-screen data behind
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE   - there are off-screen data behind
 |                    FALSE  - there are no off-screen data behind
 +--------------------------------------------------------------------------*/
-bool data_behind(const FORM *form)
+NCURSES_EXPORT(bool)
+data_behind (const FORM *form)
 {
   bool result = FALSE;
 
 {
   bool result = FALSE;
 
@@ -101,7 +103,8 @@ static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
 |   Return Values :  TRUE   - there are off-screen data ahead
 |                    FALSE  - there are no off-screen data ahead
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE   - there are off-screen data ahead
 |                    FALSE  - there are no off-screen data ahead
 +--------------------------------------------------------------------------*/
-bool data_ahead(const FORM *form)
+NCURSES_EXPORT(bool)
+data_ahead (const FORM *form)
 {
   bool result = FALSE;
 
 {
   bool result = FALSE;
 
index 34be5fe7ca9c6df53ef26b4c3a804968f0103c6a..ef6f9c9241b3b8b007642cf2a82dd41034bf1474 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_def.c,v 1.9 1999/05/16 17:20:43 juergen Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.11 2002/07/06 15:33:27 juergen Exp $")
 
 /* this can't be readonly */
 static FORM default_form = {
 
 /* this can't be readonly */
 static FORM default_form = {
@@ -60,7 +61,7 @@ static FORM default_form = {
   NULL                                  /* fieldterm  */
 };
 
   NULL                                  /* fieldterm  */
 };
 
-FORM *_nc_Default_Form = &default_form;
+NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 \f
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -269,7 +270,8 @@ INLINE static int Associate_Fields(FORM  *form, FIELD **fields)
 |
 |   Return Values :  Pointer to form. NULL if error occured.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to form. NULL if error occured.
 +--------------------------------------------------------------------------*/
-FORM *new_form(FIELD ** fields)
+NCURSES_EXPORT(FORM *)
+new_form (FIELD ** fields)
 {      
   int err = E_SYSTEM_ERROR;
 
 {      
   int err = E_SYSTEM_ERROR;
 
@@ -301,7 +303,8 @@ FORM *new_form(FIELD ** fields)
 |                    E_BAD_ARGUMENT - invalid form pointer
 |                    E_POSTED       - form is posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid form pointer
 |                    E_POSTED       - form is posted
 +--------------------------------------------------------------------------*/
-int free_form(FORM * form)
+NCURSES_EXPORT(int)
+free_form (FORM * form)
 {
   if ( !form ) 
     RETURN(E_BAD_ARGUMENT);
 {
   if ( !form ) 
     RETURN(E_BAD_ARGUMENT);
@@ -327,7 +330,8 @@ int free_form(FORM * form)
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_POSTED          - form is posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_POSTED          - form is posted
 +--------------------------------------------------------------------------*/
-int set_form_fields(FORM  * form, FIELD ** fields)
+NCURSES_EXPORT(int)
+set_form_fields (FORM  * form, FIELD ** fields)
 {
   FIELD **old;
   int res;
 {
   FIELD **old;
   int res;
@@ -355,7 +359,8 @@ int set_form_fields(FORM  * form, FIELD ** fields)
 |
 |   Return Values :  Pointer to field array
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to field array
 +--------------------------------------------------------------------------*/
-FIELD **form_fields(const FORM * form)
+NCURSES_EXPORT(FIELD **)
+form_fields (const FORM * form)
 {
   return (Normalize_Form( form )->field);
 }
 {
   return (Normalize_Form( form )->field);
 }
@@ -368,7 +373,8 @@ FIELD **form_fields(const FORM * form)
 |
 |   Return Values :  Number of fields, -1 if none are defined
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Number of fields, -1 if none are defined
 +--------------------------------------------------------------------------*/
-int field_count(const FORM * form)
+NCURSES_EXPORT(int)
+field_count (const FORM * form)
 {
   return (Normalize_Form( form )->maxfield);
 }
 {
   return (Normalize_Form( form )->maxfield);
 }
index e609e191de2adfd4b09ba1df36b79e4fe3c3eee7..c9275f7e51625e0fea28eb7b0799aed67c9b5a13 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_driver.c,v 1.35 1999/05/16 17:20:52 juergen Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.39 2002/07/06 15:33:27 juergen Exp $")
 
 /*----------------------------------------------------------------------------
   This is the core module of the form library. It contains the majority
 
 /*----------------------------------------------------------------------------
   This is the core module of the form library. It contains the majority
@@ -516,7 +517,8 @@ static bool Field_Grown(FIELD * field, int amount)
                  return FALSE;
                }
              assert(form!=(FORM *)0);
                  return FALSE;
                }
              assert(form!=(FORM *)0);
-             delwin(form->w);
+             if (form->w)
+               delwin(form->w);
              form->w = new_window;
              Set_Field_Window_Attributes(field,form->w);
              werase(form->w);
              form->w = new_window;
              Set_Field_Window_Attributes(field,form->w);
              werase(form->w);
@@ -558,8 +560,8 @@ static bool Field_Grown(FIELD * field, int amount)
 |                    E_SYSTEM_ERROR    - form has no current field or
 |                                        field-window
 +--------------------------------------------------------------------------*/
 |                    E_SYSTEM_ERROR    - form has no current field or
 |                                        field-window
 +--------------------------------------------------------------------------*/
-int
-_nc_Position_Form_Cursor(FORM * form)
+NCURSES_EXPORT(int)
+_nc_Position_Form_Cursor (FORM * form)
 {
   FIELD  *field;
   WINDOW *formwin;
 {
   FIELD  *field;
   WINDOW *formwin;
@@ -599,8 +601,8 @@ _nc_Position_Form_Cursor(FORM * form)
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_SYSTEM_ERROR    - general error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_SYSTEM_ERROR    - general error
 +--------------------------------------------------------------------------*/
-int
-_nc_Refresh_Current_Field(FORM * form)
+NCURSES_EXPORT(int)
+_nc_Refresh_Current_Field (FORM * form)
 {
   WINDOW *formwin;
   FIELD  *field;
 {
   WINDOW *formwin;
   FIELD  *field;
@@ -957,7 +959,8 @@ static int Synchronize_Linked_Fields(FIELD * field)
 |                    E_BAD_ARGUMENT   - invalid field pointer
 |                    E_SYSTEM_ERROR   - some severe basic error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT   - invalid field pointer
 |                    E_SYSTEM_ERROR   - some severe basic error
 +--------------------------------------------------------------------------*/
-int _nc_Synchronize_Attributes(FIELD * field)
+NCURSES_EXPORT(int)
+_nc_Synchronize_Attributes (FIELD * field)
 {
   FORM *form;
   int res = E_OK;
 {
   FORM *form;
   int res = E_OK;
@@ -1015,8 +1018,9 @@ int _nc_Synchronize_Attributes(FIELD * field)
 |                    E_BAD_ARGUMENT      - invalid field pointer 
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT      - invalid field pointer 
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
-int
-_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
+NCURSES_EXPORT(int)
+_nc_Synchronize_Options
+(FIELD *field, Field_Options newopts)
 {
   Field_Options oldopts;
   Field_Options changed_opts;
 {
   Field_Options oldopts;
   Field_Options changed_opts;
@@ -1113,8 +1117,9 @@ _nc_Synchronize_Options(FIELD *field, Field_Options newopts)
 |                    E_BAD_ARGUMENT      - invalid form or field pointer 
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT      - invalid form or field pointer 
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
-int
-_nc_Set_Current_Field(FORM  *form, FIELD *newfield)
+NCURSES_EXPORT(int)
+_nc_Set_Current_Field
+(FORM  *form, FIELD *newfield)
 {
   FIELD  *field;
   WINDOW *new_window;
 {
   FIELD  *field;
   WINDOW *new_window;
@@ -1159,6 +1164,7 @@ _nc_Set_Current_Field(FORM  *form, FIELD *newfield)
                }
            }
          delwin(form->w);
                }
            }
          delwin(form->w);
+         form->w = (WINDOW *)0;
        }
       
       field = newfield;
        }
       
       field = newfield;
@@ -1173,7 +1179,11 @@ _nc_Set_Current_Field(FORM  *form, FIELD *newfield)
        return(E_SYSTEM_ERROR);
 
       form->current = field;
        return(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);
 
       form->status &= ~_WINDOW_MODIFIED;
       Set_Field_Window_Attributes(field,form->w);
 
@@ -2686,8 +2696,8 @@ static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-bool
-_nc_Internal_Validation(FORM *form)
+NCURSES_EXPORT(bool)
+_nc_Internal_Validation (FORM *form)
 {
   FIELD *field;
 
 {
   FIELD *field;
 
@@ -2776,8 +2786,8 @@ INLINE static FIELD *Next_Field_On_Page(FIELD * field)
 |
 |   Return Values :  Pointer to calculated field.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to calculated field.
 +--------------------------------------------------------------------------*/
-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);
 {
   FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
   FIELD *proposed = Next_Field_On_Page(*last_on_page);
@@ -3283,8 +3293,9 @@ static int FN_Down_Field(FORM * form)
 |   Return Values :  E_OK                - success
 |                    != E_OK             - error from subordinate call
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK                - success
 |                    != E_OK             - error from subordinate call
 +--------------------------------------------------------------------------*/
-int
-_nc_Set_Form_Page(FORM * form, int page, FIELD * field)
+NCURSES_EXPORT(int)
+_nc_Set_Form_Page
+(FORM * form, int page, FIELD * field)
 {
   int res = E_OK;
 
 {
   int res = E_OK;
 
@@ -3637,7 +3648,8 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
 |                    E_REQUEST_DENIED  - request failed
 |                    E_UNKNOWN_COMMAND - command not known
 +--------------------------------------------------------------------------*/
 |                    E_REQUEST_DENIED  - request failed
 |                    E_UNKNOWN_COMMAND - command not known
 +--------------------------------------------------------------------------*/
-int form_driver(FORM * form, int  c)
+NCURSES_EXPORT(int)
+form_driver (FORM * form, int  c)
 {
   const Binding_Info* BI = (Binding_Info *)0;
   int res = E_UNKNOWN_COMMAND;
 {
   const Binding_Info* BI = (Binding_Info *)0;
   int res = E_UNKNOWN_COMMAND;
@@ -3736,7 +3748,9 @@ int form_driver(FORM * form, int  c)
 |                    E_BAD_ARGUMENT  - invalid argument
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid argument
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
-int set_field_buffer(FIELD * field, int buffer, const char * value)
+NCURSES_EXPORT(int)
+set_field_buffer
+(FIELD * field, int buffer, const char * value)
 {
   char *s, *p;
   int res = E_OK;
 {
   char *s, *p;
   int res = E_OK;
@@ -3778,7 +3792,7 @@ int set_field_buffer(FIELD * field, int buffer, const char * value)
              unsigned int i;
          
              for(i=len; i<vlen; i++)
              unsigned int i;
          
              for(i=len; i<vlen; i++)
-               if (!isprint(value[i]))
+               if (!isprint((unsigned char)value[i]))
                  RETURN(E_BAD_ARGUMENT);
            }
          len = vlen;
                  RETURN(E_BAD_ARGUMENT);
            }
          len = vlen;
@@ -3832,7 +3846,8 @@ int set_field_buffer(FIELD * field, int buffer, const char * value)
 |
 |   Return Values :  Pointer to buffer or NULL if arguments were invalid.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Pointer to buffer or NULL if arguments were invalid.
 +--------------------------------------------------------------------------*/
-char *field_buffer(const FIELD * field, int  buffer)
+NCURSES_EXPORT(char *)
+field_buffer (const FIELD * field, int  buffer)
 {
   if (field && (buffer >= 0) && (buffer <= field->nbuf))
     return Address_Of_Nth_Buffer(field,buffer);
 {
   if (field && (buffer >= 0) && (buffer <= field->nbuf))
     return Address_Of_Nth_Buffer(field,buffer);
index 5a5ec29376b2385a4326f1ed75975ed261526bdf..1af3d084cabaa0275178a22e6161005e6d95fccb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_hook.c,v 1.8 1999/05/16 17:21:04 juergen Exp $")
+MODULE_ID("$Id: frm_hook.c,v 1.10 2002/07/06 15:33:27 juergen Exp $")
 
 /* "Template" macro to generate function to set application specific hook */
 #define GEN_HOOK_SET_FUNCTION( typ, name ) \
 
 /* "Template" macro to generate function to set application specific hook */
 #define GEN_HOOK_SET_FUNCTION( typ, name ) \
-int set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
+NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
 {\
    (Normalize_Form( form ) -> typ ## name) = func ;\
    RETURN(E_OK);\
 {\
    (Normalize_Form( form ) -> typ ## name) = func ;\
    RETURN(E_OK);\
@@ -44,7 +45,7 @@ int set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
 
 /* "Template" macro to generate function to get application specific hook */
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
 
 /* "Template" macro to generate function to get application specific hook */
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
-Form_Hook typ ## _ ## name ( const FORM *form )\
+NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
 {\
    return ( Normalize_Form( form ) -> typ ## name );\
 }
 {\
    return ( Normalize_Form( form ) -> typ ## name );\
 }
index 009c189741ba0e3a0761d02088930ec30b0009d9..22ca3a1e1176090a5831081d687bb276c68f3f42 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_opts.c,v 1.8 1999/05/16 17:38:05 juergen Exp $")
+MODULE_ID("$Id: frm_opts.c,v 1.10 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: frm_opts.c,v 1.8 1999/05/16 17:38:05 juergen Exp $")
 |   Return Values :  E_OK              - success
 |                    E_BAD_ARGUMENT    - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK              - success
 |                    E_BAD_ARGUMENT    - invalid options
 +--------------------------------------------------------------------------*/
-int set_form_opts(FORM * form, Form_Options  opts)
+NCURSES_EXPORT(int)
+set_form_opts (FORM * form, Form_Options  opts)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
@@ -64,7 +66,8 @@ int set_form_opts(FORM * form, Form_Options  opts)
 |
 |   Return Values :  The option flags.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The option flags.
 +--------------------------------------------------------------------------*/
-Form_Options form_opts(const FORM * form)
+NCURSES_EXPORT(Form_Options)
+form_opts (const FORM * form)
 {
   return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
 }
 {
   return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
 }
@@ -79,7 +82,8 @@ Form_Options form_opts(const FORM * form)
 |   Return Values :  E_OK            - success 
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success 
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int form_opts_on(FORM * form, Form_Options opts)
+NCURSES_EXPORT(int)
+form_opts_on (FORM * form, Form_Options opts)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
@@ -101,7 +105,8 @@ int form_opts_on(FORM * form, Form_Options opts)
 |   Return Values :  E_OK            - success 
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success 
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int form_opts_off(FORM * form, Form_Options opts)
+NCURSES_EXPORT(int)
+form_opts_off (FORM * form, Form_Options opts)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
 {
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
index 5136542e8459e9eb90f9ce02ed157fcff981e73a..b1a958e1629ce3578a6e9dafb292cdf16dcc9704 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_page.c,v 1.5 1999/05/16 17:21:26 juergen Exp $")
+MODULE_ID("$Id: frm_page.c,v 1.7 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,7 +47,8 @@ MODULE_ID("$Id: frm_page.c,v 1.5 1999/05/16 17:21:26 juergen Exp $")
 |                    E_INVALID_FIELD   - current field can't be left
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 |                    E_INVALID_FIELD   - current field can't be left
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
-int set_form_page(FORM * form, int page)
+NCURSES_EXPORT(int)
+set_form_page (FORM * form, int page)
 {
   int err = E_OK;
 
 {
   int err = E_OK;
 
@@ -92,7 +94,8 @@ int set_form_page(FORM * form, int page)
 |   Return Values :  >= 0  : current page number
 |                    -1    : invalid form pointer
 +--------------------------------------------------------------------------*/
 |   Return Values :  >= 0  : current page number
 |                    -1    : invalid form pointer
 +--------------------------------------------------------------------------*/
-int form_page(const FORM * form)
+NCURSES_EXPORT(int)
+form_page (const FORM * form)
 {
   return Normalize_Form(form)->curpage;
 }
 {
   return Normalize_Form(form)->curpage;
 }
index 3fdb57a09b8f4d99cdf1d20f1c77014b3a72cb56..ac1aa1c2cb68b58e6521e289716bdd9d0c775dee 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 #include "form.priv.h"
 
  ****************************************************************************/
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_post.c,v 1.4 1999/05/16 17:21:39 juergen Exp $")
+MODULE_ID("$Id: frm_post.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,7 +47,8 @@ MODULE_ID("$Id: frm_post.c,v 1.4 1999/05/16 17:21:39 juergen Exp $")
 |                    E_NO_ROOM         - form doesn't fit into subwindow
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 |                    E_NO_ROOM         - form doesn't fit into subwindow
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
-int post_form(FORM * form)
+NCURSES_EXPORT(int)
+post_form (FORM * form)
 {
   WINDOW *formwin;
   int err;
 {
   WINDOW *formwin;
   int err;
@@ -93,7 +95,8 @@ int post_form(FORM * form)
 |                    E_NOT_POSTED    - form isn't posted
 |                    E_BAD_STATE     - called from a hook routine
 +--------------------------------------------------------------------------*/
 |                    E_NOT_POSTED    - form isn't posted
 |                    E_BAD_STATE     - called from a hook routine
 +--------------------------------------------------------------------------*/
-int unpost_form(FORM * form)
+NCURSES_EXPORT(int)
+unpost_form (FORM * form)
 {
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 {
   if (!form)
     RETURN(E_BAD_ARGUMENT);
index 63006517ee855507b55b52565d77cf50525a4b84..e7d5aa4a8e828829884d4d157f5d3555f9577bf9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "form.priv.h"
 
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_req_name.c,v 1.7 1999/05/16 17:21:53 juergen Exp $")
+MODULE_ID("$Id: frm_req_name.c,v 1.9 2002/07/06 15:33:27 juergen Exp $")
 
 static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
   "NEXT_PAGE"   ,
 
 static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
   "NEXT_PAGE"   ,
@@ -113,7 +114,8 @@ static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
 |   Return Values :  Pointer to name      - on success
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
 |   Return Values :  Pointer to name      - on success
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
-const char *form_request_name( int request )
+NCURSES_EXPORT(const char *)
+form_request_name ( int request )
 {
   if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
     {
 {
   if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
     {
@@ -134,7 +136,8 @@ const char *form_request_name( int request )
 |   Return Values :  Request Id       - on success
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
 |   Return Values :  Request Id       - on success
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
-int form_request_by_name( const char *str )
+NCURSES_EXPORT(int)
+form_request_by_name ( const char *str )
 { 
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
 { 
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
index bb197177098776826b895860d411a5a1b8435076..e86df103999128b4a7ecec1bca25bfa0ef84a826 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_scale.c,v 1.4 1999/05/16 17:22:02 juergen Exp $")
+MODULE_ID("$Id: frm_scale.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,7 +45,8 @@ MODULE_ID("$Id: frm_scale.c,v 1.4 1999/05/16 17:22:02 juergen Exp $")
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_NOT_CONNECTED   - no fields connected to form
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT    - invalid form pointer
 |                    E_NOT_CONNECTED   - no fields connected to form
 +--------------------------------------------------------------------------*/
-int scale_form(const FORM * form, int * rows, int * cols)
+NCURSES_EXPORT(int)
+scale_form (const FORM * form, int * rows, int * cols)
 {
   if ( !form )
     RETURN(E_BAD_ARGUMENT);
 {
   if ( !form )
     RETURN(E_BAD_ARGUMENT);
index 849f9cb0c3b24dcaddbdba71ebb2b32be589ade5..1c33930e65d43782973aede0b8606df0ae135d79 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_sub.c,v 1.4 1999/05/16 17:22:11 juergen Exp $")
+MODULE_ID("$Id: frm_sub.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -43,7 +44,8 @@ MODULE_ID("$Id: frm_sub.c,v 1.4 1999/05/16 17:22:11 juergen Exp $")
 |   Return Values :  E_OK       - success
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK       - success
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
-int set_form_sub(FORM * form, WINDOW * win)
+NCURSES_EXPORT(int)
+set_form_sub (FORM * form, WINDOW * win)
 {
   if (form && (form->status & _POSTED))        
     RETURN(E_POSTED);
 {
   if (form && (form->status & _POSTED))        
     RETURN(E_POSTED);
@@ -60,7 +62,8 @@ int set_form_sub(FORM * form, WINDOW * win)
 |
 |   Return Values :  The pointer to the Subwindow.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The pointer to the Subwindow.
 +--------------------------------------------------------------------------*/
-WINDOW *form_sub(const FORM * form)
+NCURSES_EXPORT(WINDOW *)
+form_sub (const FORM * form)
 {
   const FORM* f = Normalize_Form( form );
   return Get_Form_Window(f);
 {
   const FORM* f = Normalize_Form( form );
   return Get_Form_Window(f);
index 853904f054138eaab3e15f5de88cac6889a4a0fe..a9b6b397d471c14c4c2458d36f036b25e9dd9c49 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_user.c,v 1.8 1999/05/16 17:22:21 juergen Exp $")
+MODULE_ID("$Id: frm_user.c,v 1.10 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -43,7 +44,8 @@ MODULE_ID("$Id: frm_user.c,v 1.8 1999/05/16 17:22:21 juergen Exp $")
 |
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
-int set_form_userptr(FORM * form, void *usrptr)
+NCURSES_EXPORT(int)
+set_form_userptr (FORM * form, void *usrptr)
 {
   Normalize_Form(form)->usrptr = usrptr;
   RETURN(E_OK);
 {
   Normalize_Form(form)->usrptr = usrptr;
   RETURN(E_OK);
@@ -59,7 +61,8 @@ int set_form_userptr(FORM * form, void *usrptr)
 |   Return Values :  Value of pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 |   Return Values :  Value of pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
-void *form_userptr(const FORM * form)
+NCURSES_EXPORT(void *)
+form_userptr (const FORM * form)
 {
   return Normalize_Form(form)->usrptr;
 }
 {
   return Normalize_Form(form)->usrptr;
 }
index b705d03314ba4bb8b27a8c746ad4284e25a74ac0..b765d33db1a968f59212b171c50f43a5da891aec 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #include "form.priv.h"
 
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_win.c,v 1.8 1999/05/16 17:22:32 juergen Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.10 2002/07/06 15:33:27 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -43,7 +44,8 @@ MODULE_ID("$Id: frm_win.c,v 1.8 1999/05/16 17:22:32 juergen Exp $")
 |   Return Values :  E_OK       - success
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK       - success
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
-int set_form_win(FORM * form, WINDOW * win)
+NCURSES_EXPORT(int)
+set_form_win (FORM * form, WINDOW * win)
 {
   if (form && (form->status & _POSTED))        
     RETURN(E_POSTED);
 {
   if (form && (form->status & _POSTED))        
     RETURN(E_POSTED);
@@ -60,7 +62,8 @@ int set_form_win(FORM * form, WINDOW * win)
 |
 |   Return Values :  The pointer to the Window or stdscr if there is none.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The pointer to the Window or stdscr if there is none.
 +--------------------------------------------------------------------------*/
-WINDOW *form_win(const FORM * form)
+NCURSES_EXPORT(WINDOW *)
+form_win (const FORM * form)
 {
   const FORM* f = Normalize_Form( form );
   return (f->win ? f->win : stdscr);
 {
   const FORM* f = Normalize_Form( form );
   return (f->win ? f->win : stdscr);
index cb3909d7b1c70c563ae2534c8cfde77f72bd1fa2..bf16c66d472085dbeb6f5930b292820324126fd6 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alnum.c,v 1.9 1999/05/16 17:22:49 juergen Exp $")
+MODULE_ID("$Id: fty_alnum.c,v 1.11 2002/07/06 15:33:27 juergen Exp $")
 
 typedef struct {
   int width;
 
 typedef struct {
   int width;
@@ -132,6 +133,6 @@ static FIELDTYPE typeALNUM = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_ALNUM = &typeALNUM;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
 
 /* fty_alnum.c ends here */
 
 /* fty_alnum.c ends here */
index 3dd8f2cb142e62dbed3fe60cb8b3408e9fd90ef6..aa5c7c7d08f9de6d7b2b56ffc4a966c30f3dd150 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alpha.c,v 1.9 1999/05/16 17:22:58 juergen Exp $")
+MODULE_ID("$Id: fty_alpha.c,v 1.11 2002/07/06 15:33:27 juergen Exp $")
 
 typedef struct {
   int width;
 
 typedef struct {
   int width;
@@ -133,6 +134,6 @@ static FIELDTYPE typeALPHA = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_ALPHA = &typeALPHA;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
 
 /* fty_alpha.c ends here */
 
 /* fty_alpha.c ends here */
index 4ad69fb50a7db5606e14ec05e9e442cc6a41fd24..ab256db1ef14cba7c8e290b4401258860925a207 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_enum.c,v 1.14 2000/10/18 09:28:19 juergen Exp $")
+MODULE_ID("$Id: fty_enum.c,v 1.16 2002/07/13 11:35:08 juergen Exp $")
 
 typedef struct {
   char **kwds;
 
 typedef struct {
   char **kwds;
@@ -290,6 +291,6 @@ static FIELDTYPE typeENUM = {
   Previous_Enum
 };
 
   Previous_Enum
 };
 
-FIELDTYPE* TYPE_ENUM = &typeENUM;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
 
 /* fty_enum.c ends here */
 
 /* fty_enum.c ends here */
index cb690bdaf03d5c4492bb87f76f3c05b52a6acf2a..61ad9e429a5faa159bbd229d0f1c4b9c21d9dcdd 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_int.c,v 1.10 1999/05/16 17:23:22 juergen Exp $")
+MODULE_ID("$Id: fty_int.c,v 1.12 2002/07/06 15:33:27 juergen Exp $")
 
 typedef struct {
   int precision;
 
 typedef struct {
   int precision;
@@ -155,6 +156,6 @@ static FIELDTYPE typeINTEGER = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_INTEGER = &typeINTEGER;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
 
 /* fty_int.c ends here */
 
 /* fty_int.c ends here */
index 064c02c8fa78a4458363e592aa744ff3a99dcab9..f49dcdb195676bdd18e1198101b74cdffbae2dd8 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "form.priv.h"
 
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_ipv4.c,v 1.2 1997/04/26 22:06:00 tom Exp $")
+MODULE_ID("$Id: fty_ipv4.c,v 1.4 2000/12/09 23:46:12 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -32,13 +32,13 @@ static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
   int num = 0, len;
   unsigned int d1, d2, d3, d4;
 
   int num = 0, len;
   unsigned int d1, d2, d3, d4;
 
-  if(isdigit(*bp))              /* Must start with digit */
+  if(isdigit((unsigned char)*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 */
     {
       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(*bp))
+          while (*bp && isspace((unsigned char)*bp))
             bp++;               /* Allow trailing whitespace */
         }
     }
             bp++;               /* Allow trailing whitespace */
         }
     }
@@ -76,6 +76,6 @@ static FIELDTYPE typeIPV4 = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_IPV4 = &typeIPV4;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
 
 /* fty_ipv4.c ends here */
 
 /* fty_ipv4.c ends here */
index ca0fbe01e00f7637cec808aff32b136a7b82d57a..db4d648c5f4467c3690c7147ac46c5750ff7bb35 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_num.c,v 1.13 1999/05/16 17:23:30 juergen Exp $")
+MODULE_ID("$Id: fty_num.c,v 1.15 2002/07/06 15:33:27 juergen Exp $")
 
 #if HAVE_LOCALE_H
 #include <locale.h>
 
 #if HAVE_LOCALE_H
 #include <locale.h>
@@ -190,6 +191,6 @@ static FIELDTYPE typeNUMERIC = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_NUMERIC = &typeNUMERIC;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
 
 /* fty_num.c ends here */
 
 /* fty_num.c ends here */
index 7a928125d4adf594992d810d47e3761e9839c96f..6cb69d04675254dfe3547b3382b01151123feef3 100644 (file)
@@ -7,13 +7,14 @@
  */
 /***************************************************************************
 *                                                                          *
  */
 /***************************************************************************
 *                                                                          *
-*  Author : Juergen Pfeifer, juergen.pfeifer@gmx.net                       *
+*  Author : Juergen Pfeifer                                                *
+*  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
 *                                                                          *
 ***************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_regex.c,v 1.14 1999/05/16 17:23:38 juergen Exp $")
+MODULE_ID("$Id: fty_regex.c,v 1.16 2002/07/06 15:33:27 juergen Exp $")
 
 #if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
 #include <regex.h>
 
 #if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
 #include <regex.h>
@@ -252,6 +253,6 @@ static FIELDTYPE typeREGEXP = {
   NULL
 };
 
   NULL
 };
 
-FIELDTYPE* TYPE_REGEXP = &typeREGEXP;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
 
 /* fty_regex.c ends here */
 
 /* fty_regex.c ends here */
index ac2ba436d66699ea9cea20ab6977ed859e602335..d66a96202585f4aaa887220ee0e21178b689fc06 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission 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,1997                   *
+ *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2002              *
  ****************************************************************************/
 /* LINTLIBRARY */
 
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -119,10 +119,10 @@ void      _nc_Free_Argument(
                { /* void */ }
 
 #undef _nc_Copy_Type
                { /* void */ }
 
 #undef _nc_Copy_Type
-bool   _nc_Copy_Type(
+NCURSES_BOOL _nc_Copy_Type(
                FIELD   *dst, 
                FIELD const *src)
                FIELD   *dst, 
                FIELD const *src)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_Free_Type
 void   _nc_Free_Type(
 
 #undef _nc_Free_Type
 void   _nc_Free_Type(
@@ -158,10 +158,10 @@ FIELD     *dup_field(
 #undef set_fieldtype_choice
 int    set_fieldtype_choice(
                FIELDTYPE *typ, 
 #undef set_fieldtype_choice
 int    set_fieldtype_choice(
                FIELDTYPE *typ, 
-               bool    (*const next_choice)(
+               NCURSES_BOOL (*const next_choice)(
                FIELD   *p1, 
                const void *p2), 
                FIELD   *p1, 
                const void *p2), 
-               bool    (*const prev_choice)(
+               NCURSES_BOOL (*const prev_choice)(
                FIELD   *p1, 
                const void *p2))
                { return(*(int *)0); }
                FIELD   *p1, 
                const void *p2))
                { return(*(int *)0); }
@@ -241,10 +241,10 @@ const FIELDTYPE *_nc_Default_FieldType = {0};
 
 #undef new_fieldtype
 FIELDTYPE *new_fieldtype(
 
 #undef new_fieldtype
 FIELDTYPE *new_fieldtype(
-               bool    (*const field_check)(
+               NCURSES_BOOL (*const field_check)(
                FIELD   *p1, 
                const void *p2), 
                FIELD   *p1, 
                const void *p2), 
-               bool    (*const char_check)(
+               NCURSES_BOOL (*const char_check)(
                int     p1, 
                const void *p2))
                { return(*(FIELDTYPE **)0); }
                int     p1, 
                const void *p2))
                { return(*(FIELDTYPE **)0); }
@@ -297,26 +297,26 @@ int       field_pad(
 #undef set_new_page
 int    set_new_page(
                FIELD   *field, 
 #undef set_new_page
 int    set_new_page(
                FIELD   *field, 
-               bool    new_page_flag)
+               NCURSES_BOOL new_page_flag)
                { return(*(int *)0); }
 
 #undef new_page
                { return(*(int *)0); }
 
 #undef new_page
-bool   new_page(
+NCURSES_BOOL new_page(
                const FIELD *field)
                const FIELD *field)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./fld_stat.c */
 
 #undef set_field_status
 int    set_field_status(
                FIELD   *field, 
 
 /* ./fld_stat.c */
 
 #undef set_field_status
 int    set_field_status(
                FIELD   *field, 
-               bool    status)
+               NCURSES_BOOL status)
                { return(*(int *)0); }
 
 #undef field_status
                { return(*(int *)0); }
 
 #undef field_status
-bool   field_status(
+NCURSES_BOOL field_status(
                const FIELD *field)
                const FIELD *field)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./fld_type.c */
 
 
 /* ./fld_type.c */
 
@@ -355,14 +355,14 @@ int       pos_form_cursor(
 /* ./frm_data.c */
 
 #undef data_behind
 /* ./frm_data.c */
 
 #undef data_behind
-bool   data_behind(
+NCURSES_BOOL data_behind(
                const FORM *form)
                const FORM *form)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef data_ahead
 
 #undef data_ahead
-bool   data_ahead(
+NCURSES_BOOL data_ahead(
                const FORM *form)
                const FORM *form)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./frm_def.c */
 
 
 /* ./frm_def.c */
 
@@ -425,9 +425,9 @@ int _nc_Set_Current_Field(
                { return(*(int *)0); }
 
 #undef _nc_Internal_Validation
                { return(*(int *)0); }
 
 #undef _nc_Internal_Validation
-bool   _nc_Internal_Validation(
+NCURSES_BOOL _nc_Internal_Validation(
                FORM    *form)
                FORM    *form)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_First_Active_Field
 FIELD  *_nc_First_Active_Field(
 
 #undef _nc_First_Active_Field
 FIELD  *_nc_First_Active_Field(
@@ -644,8 +644,8 @@ FIELDTYPE *TYPE_ALPHA;
 typedef struct {
   char **kwds;
   int  count;
 typedef struct {
   char **kwds;
   int  count;
-  bool checkcase;
-  bool checkunique;
+  NCURSES_BOOL  checkcase;
+  NCURSES_BOOL  checkunique;
 } enumARG;
 
 #undef TYPE_ENUM
 } enumARG;
 
 #undef TYPE_ENUM
diff --git a/form/llib-lformw b/form/llib-lformw
new file mode 100644 (file)
index 0000000..f572018
--- /dev/null
@@ -0,0 +1,692 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey <dickey@clark.net> 2002                        *
+ ****************************************************************************/
+/* LINTLIBRARY */
+
+/* ./fld_arg.c */
+
+#include "form.priv.h"
+
+#undef set_fieldtype_arg
+int    set_fieldtype_arg(
+               FIELDTYPE *typ, 
+               void    *(*const make_arg)(
+               va_list *p1), 
+               void    *(*const copy_arg)(
+               const void *p1), 
+               void    (*const free_arg)(
+               void    *p1))
+               { return(*(int *)0); }
+
+#undef field_arg
+void   *field_arg(
+               const FIELD *field)
+               { return(*(void **)0); }
+
+/* ./fld_attr.c */
+
+#undef set_field_fore
+int    set_field_fore(
+               FIELD   *field, 
+               chtype  attr)
+               { return(*(int *)0); }
+
+#undef field_fore
+chtype field_fore(
+               const FIELD *field)
+               { return(*(chtype *)0); }
+
+#undef set_field_back
+int    set_field_back(
+               FIELD   *field, 
+               chtype  attr)
+               { return(*(int *)0); }
+
+#undef field_back
+chtype field_back(
+               const FIELD *field)
+               { return(*(chtype *)0); }
+
+/* ./fld_current.c */
+
+#undef set_current_field
+int    set_current_field(
+               FORM    *form, 
+               FIELD   *field)
+               { return(*(int *)0); }
+
+#undef current_field
+FIELD  *current_field(
+               const FORM *form)
+               { return(*(FIELD **)0); }
+
+#undef field_index
+int    field_index(
+               const FIELD *field)
+               { return(*(int *)0); }
+
+/* ./fld_def.c */
+
+#undef _nc_Default_Field
+FIELD  *_nc_Default_Field;
+
+#undef _nc_Make_Argument
+TypeArgument *_nc_Make_Argument(
+               const FIELDTYPE *typ, 
+               va_list *ap, 
+               int     *err)
+               { return(*(TypeArgument **)0); }
+
+#undef _nc_Copy_Argument
+TypeArgument *_nc_Copy_Argument(
+               const FIELDTYPE *typ, 
+               const TypeArgument *argp, 
+               int     *err)
+               { return(*(TypeArgument **)0); }
+
+#undef _nc_Free_Argument
+void   _nc_Free_Argument(
+               const FIELDTYPE *typ, 
+               TypeArgument *argp)
+               { /* void */ }
+
+#undef _nc_Copy_Type
+NCURSES_BOOL _nc_Copy_Type(
+               FIELD   *dst, 
+               FIELD const *src)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_Free_Type
+void   _nc_Free_Type(
+               FIELD   *field)
+               { /* void */ }
+
+#undef new_field
+FIELD  *new_field(
+               int     rows, 
+               int     cols, 
+               int     frow, 
+               int     fcol, 
+               int     nrow, 
+               int     nbuf)
+               { return(*(FIELD **)0); }
+
+#undef free_field
+int    free_field(
+               FIELD   *field)
+               { return(*(int *)0); }
+
+/* ./fld_dup.c */
+
+#undef dup_field
+FIELD  *dup_field(
+               FIELD   *field, 
+               int     frow, 
+               int     fcol)
+               { return(*(FIELD **)0); }
+
+/* ./fld_ftchoice.c */
+
+#undef set_fieldtype_choice
+int    set_fieldtype_choice(
+               FIELDTYPE *typ, 
+               NCURSES_BOOL (*const next_choice)(
+               FIELD   *p1, 
+               const void *p2), 
+               NCURSES_BOOL (*const prev_choice)(
+               FIELD   *p1, 
+               const void *p2))
+               { return(*(int *)0); }
+
+/* ./fld_ftlink.c */
+
+#undef link_fieldtype
+FIELDTYPE *link_fieldtype(
+               FIELDTYPE *type1, 
+               FIELDTYPE *type2)
+               { return(*(FIELDTYPE **)0); }
+
+/* ./fld_info.c */
+
+#undef field_info
+int    field_info(
+               const FIELD *field, 
+               int     *rows, 
+               int     *cols, 
+               int     *frow, 
+               int     *fcol, 
+               int     *nrow, 
+               int     *nbuf)
+               { return(*(int *)0); }
+
+#undef dynamic_field_info
+int    dynamic_field_info(
+               const FIELD *field, 
+               int     *drows, 
+               int     *dcols, 
+               int     *maxgrow)
+               { return(*(int *)0); }
+
+/* ./fld_just.c */
+
+#undef set_field_just
+int    set_field_just(
+               FIELD   *field, 
+               int     just)
+               { return(*(int *)0); }
+
+#undef field_just
+int    field_just(
+               const FIELD *field)
+               { return(*(int *)0); }
+
+/* ./fld_link.c */
+
+#undef link_field
+FIELD  *link_field(
+               FIELD   *field, 
+               int     frow, 
+               int     fcol)
+               { return(*(FIELD **)0); }
+
+/* ./fld_max.c */
+
+#undef set_max_field
+int    set_max_field(
+               FIELD   *field, 
+               int     maxgrow)
+               { return(*(int *)0); }
+
+/* ./fld_move.c */
+
+#undef move_field
+int    move_field(
+               FIELD   *field, 
+               int     frow, 
+               int     fcol)
+               { return(*(int *)0); }
+
+/* ./fld_newftyp.c */
+
+#undef _nc_Default_FieldType
+const FIELDTYPE *_nc_Default_FieldType = {0};
+
+#undef new_fieldtype
+FIELDTYPE *new_fieldtype(
+               NCURSES_BOOL (*const field_check)(
+               FIELD   *p1, 
+               const void *p2), 
+               NCURSES_BOOL (*const char_check)(
+               int     p1, 
+               const void *p2))
+               { return(*(FIELDTYPE **)0); }
+
+#undef free_fieldtype
+int    free_fieldtype(
+               FIELDTYPE *typ)
+               { return(*(int *)0); }
+
+/* ./fld_opts.c */
+
+#undef set_field_opts
+int    set_field_opts(
+               FIELD   *field, 
+               Field_Options opts)
+               { return(*(int *)0); }
+
+#undef field_opts
+Field_Options field_opts(
+               const FIELD *field)
+               { return(*(Field_Options *)0); }
+
+#undef field_opts_on
+int    field_opts_on(
+               FIELD   *field, 
+               Field_Options opts)
+               { return(*(int *)0); }
+
+#undef field_opts_off
+int    field_opts_off(
+               FIELD   *field, 
+               Field_Options opts)
+               { return(*(int *)0); }
+
+/* ./fld_pad.c */
+
+#undef set_field_pad
+int    set_field_pad(
+               FIELD   *field, 
+               int     ch)
+               { return(*(int *)0); }
+
+#undef field_pad
+int    field_pad(
+               const FIELD *field)
+               { return(*(int *)0); }
+
+/* ./fld_page.c */
+
+#undef set_new_page
+int    set_new_page(
+               FIELD   *field, 
+               NCURSES_BOOL new_page_flag)
+               { return(*(int *)0); }
+
+#undef new_page
+NCURSES_BOOL new_page(
+               const FIELD *field)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./fld_stat.c */
+
+#undef set_field_status
+int    set_field_status(
+               FIELD   *field, 
+               NCURSES_BOOL status)
+               { return(*(int *)0); }
+
+#undef field_status
+NCURSES_BOOL field_status(
+               const FIELD *field)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./fld_type.c */
+
+#undef set_field_type
+int    set_field_type(
+               FIELD   *field, 
+               FIELDTYPE *type, 
+               ...)
+               { return(*(int *)0); }
+
+#undef field_type
+FIELDTYPE *field_type(
+               const FIELD *field)
+               { return(*(FIELDTYPE **)0); }
+
+/* ./fld_user.c */
+
+#undef set_field_userptr
+int    set_field_userptr(
+               FIELD   *field, 
+               void    *usrptr)
+               { return(*(int *)0); }
+
+#undef field_userptr
+void   *field_userptr(
+               const FIELD *field)
+               { return(*(void **)0); }
+
+/* ./frm_cursor.c */
+
+#undef pos_form_cursor
+int    pos_form_cursor(
+               FORM    *form)
+               { return(*(int *)0); }
+
+/* ./frm_data.c */
+
+#undef data_behind
+NCURSES_BOOL data_behind(
+               const FORM *form)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef data_ahead
+NCURSES_BOOL data_ahead(
+               const FORM *form)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./frm_def.c */
+
+#undef _nc_Default_Form
+FORM   *_nc_Default_Form;
+
+#undef new_form
+FORM   *new_form(
+               FIELD   **fields)
+               { return(*(FORM **)0); }
+
+#undef free_form
+int    free_form(
+               FORM    *form)
+               { return(*(int *)0); }
+
+#undef set_form_fields
+int    set_form_fields(
+               FORM    *form, 
+               FIELD   **fields)
+               { return(*(int *)0); }
+
+#undef form_fields
+FIELD  **form_fields(
+               const FORM *form)
+               { return(*(FIELD ***)0); }
+
+#undef field_count
+int    field_count(
+               const FORM *form)
+               { return(*(int *)0); }
+
+/* ./frm_driver.c */
+
+#undef _nc_Position_Form_Cursor
+int    _nc_Position_Form_Cursor(
+               FORM    *form)
+               { return(*(int *)0); }
+
+#undef _nc_Refresh_Current_Field
+int    _nc_Refresh_Current_Field(
+               FORM    *form)
+               { return(*(int *)0); }
+
+#undef _nc_Synchronize_Attributes
+int    _nc_Synchronize_Attributes(
+               FIELD   *field)
+               { return(*(int *)0); }
+
+#undef _nc_Synchronize_Options
+int    _nc_Synchronize_Options(
+               FIELD   *field, 
+               Field_Options newopts)
+               { return(*(int *)0); }
+
+#undef _nc_Set_Current_Field
+int    _nc_Set_Current_Field(
+               FORM    *form, 
+               FIELD   *newfield)
+               { return(*(int *)0); }
+
+#undef _nc_Internal_Validation
+NCURSES_BOOL _nc_Internal_Validation(
+               FORM    *form)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_First_Active_Field
+FIELD  *_nc_First_Active_Field(
+               FORM    *form)
+               { return(*(FIELD **)0); }
+
+#undef _nc_Set_Form_Page
+int    _nc_Set_Form_Page(
+               FORM    *form, 
+               int     page, 
+               FIELD   *field)
+               { return(*(int *)0); }
+
+typedef struct {
+  int keycode;           
+  int (*cmd)(FORM *);    
+} Binding_Info;
+
+#undef form_driver
+int    form_driver(
+               FORM    *form, 
+               int     c)
+               { return(*(int *)0); }
+
+#undef set_field_buffer
+int    set_field_buffer(
+               FIELD   *field, 
+               int     buffer, 
+               const char *value)
+               { return(*(int *)0); }
+
+#undef field_buffer
+char   *field_buffer(
+               const FIELD *field, 
+               int     buffer)
+               { return(*(char **)0); }
+
+/* ./frm_hook.c */
+
+#undef set_field_init
+int    set_field_init(
+               FORM    *form, 
+               Form_Hook func)
+               { return(*(int *)0); }
+
+#undef field_init
+Form_Hook field_init(
+               const FORM *form)
+               { return(*(Form_Hook *)0); }
+
+#undef set_field_term
+int    set_field_term(
+               FORM    *form, 
+               Form_Hook func)
+               { return(*(int *)0); }
+
+#undef field_term
+Form_Hook field_term(
+               const FORM *form)
+               { return(*(Form_Hook *)0); }
+
+#undef set_form_init
+int    set_form_init(
+               FORM    *form, 
+               Form_Hook func)
+               { return(*(int *)0); }
+
+#undef form_init
+Form_Hook form_init(
+               const FORM *form)
+               { return(*(Form_Hook *)0); }
+
+#undef set_form_term
+int    set_form_term(
+               FORM    *form, 
+               Form_Hook func)
+               { return(*(int *)0); }
+
+#undef form_term
+Form_Hook form_term(
+               const FORM *form)
+               { return(*(Form_Hook *)0); }
+
+/* ./frm_opts.c */
+
+#undef set_form_opts
+int    set_form_opts(
+               FORM    *form, 
+               Form_Options opts)
+               { return(*(int *)0); }
+
+#undef form_opts
+Form_Options form_opts(
+               const FORM *form)
+               { return(*(Form_Options *)0); }
+
+#undef form_opts_on
+int    form_opts_on(
+               FORM    *form, 
+               Form_Options opts)
+               { return(*(int *)0); }
+
+#undef form_opts_off
+int    form_opts_off(
+               FORM    *form, 
+               Form_Options opts)
+               { return(*(int *)0); }
+
+/* ./frm_page.c */
+
+#undef set_form_page
+int    set_form_page(
+               FORM    *form, 
+               int     page)
+               { return(*(int *)0); }
+
+#undef form_page
+int    form_page(
+               const FORM *form)
+               { return(*(int *)0); }
+
+/* ./frm_post.c */
+
+#undef post_form
+int    post_form(
+               FORM    *form)
+               { return(*(int *)0); }
+
+#undef unpost_form
+int    unpost_form(
+               FORM    *form)
+               { return(*(int *)0); }
+
+/* ./frm_req_name.c */
+
+#undef form_request_name
+const char *form_request_name(
+               int     request)
+               { return(*(const char **)0); }
+
+#undef form_request_by_name
+int    form_request_by_name(
+               const char *str)
+               { return(*(int *)0); }
+
+/* ./frm_scale.c */
+
+#undef scale_form
+int    scale_form(
+               const FORM *form, 
+               int     *rows, 
+               int     *cols)
+               { return(*(int *)0); }
+
+/* ./frm_sub.c */
+
+#undef set_form_sub
+int    set_form_sub(
+               FORM    *form, 
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef form_sub
+WINDOW *form_sub(
+               const FORM *form)
+               { return(*(WINDOW **)0); }
+
+/* ./frm_user.c */
+
+#undef set_form_userptr
+int    set_form_userptr(
+               FORM    *form, 
+               void    *usrptr)
+               { return(*(int *)0); }
+
+#undef form_userptr
+void   *form_userptr(
+               const FORM *form)
+               { return(*(void **)0); }
+
+/* ./frm_win.c */
+
+#undef set_form_win
+int    set_form_win(
+               FORM    *form, 
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef form_win
+WINDOW *form_win(
+               const FORM *form)
+               { return(*(WINDOW **)0); }
+
+/* ./fty_alnum.c */
+
+typedef struct {
+  int width;
+} alnumARG;
+
+#undef TYPE_ALNUM
+FIELDTYPE *TYPE_ALNUM;
+
+/* ./fty_alpha.c */
+
+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;
+
+#undef TYPE_ENUM
+FIELDTYPE *TYPE_ENUM;
+
+/* ./fty_int.c */
+
+typedef struct {
+  int precision;
+  long low;
+  long high;
+} integerARG;
+
+#undef TYPE_INTEGER
+FIELDTYPE *TYPE_INTEGER;
+
+/* ./fty_ipv4.c */
+#undef TYPE_IPV4
+FIELDTYPE *TYPE_IPV4;
+
+/* ./fty_num.c */
+
+typedef struct {
+  int    precision;
+  double low;
+  double high;
+  struct lconv* L;
+} numericARG;
+
+#undef TYPE_NUMERIC
+FIELDTYPE *TYPE_NUMERIC;
+
+/* ./fty_regex.c */
+
+#include <regex.h>
+
+typedef struct
+{
+  regex_t *pRegExp;
+  unsigned long *refCount;
+} RegExp_Arg;
+
+#undef TYPE_REGEXP
+FIELDTYPE *TYPE_REGEXP;
index b12370f032abdb90a1d0bfa3ec0dd5ec80bcfe6f..795f9daa8500bf1c68c21f22758a2667322f0782 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2001 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +29,7 @@
 # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
 #    and: Eric S. Raymond <esr@snark.thyrsus.com>
 #
 # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
 #    and: Eric S. Raymond <esr@snark.thyrsus.com>
 #
-# $Id: Caps,v 1.30 2000/10/14 17:36:14 tom Exp $
+# $Id: Caps,v 1.35 2002/04/20 15:43:34 tom Exp $
 #
 # This is the master termcap/terminfo capability table.
 #
 #
 # This is the master termcap/terminfo capability table.
 #
 # Column 2: terminfo capability name
 # Column 3: capability type (boolean, numeric, or string)
 # Column 4: termcap capability name
 # Column 2: terminfo capability name
 # Column 3: capability type (boolean, numeric, or string)
 # Column 4: termcap capability name
-# Column 5: Lead with `Y' if capability should be emitted in termcap
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
 #           translations, `-' otherwise
 #           translations, `-' otherwise
-# Column 6: capability description
+# Column 8: capability description
 #
 #
-# The codes following [Y-] in column 5 describe the versions of termcap which
+# The codes following [Y-] in column 7 describe the versions of termcap which
 # use the given capability.  This information is not used by the curses library
 # proper; rather, it's there to help the terminfo maintainer avoid emitting
 # termcap entry translations that are more than 1023 bytes long (and tank a
 # use the given capability.  This information is not used by the curses library
 # proper; rather, it's there to help the terminfo maintainer avoid emitting
 # termcap entry translations that are more than 1023 bytes long (and tank a
@@ -67,7 +69,7 @@
 # translation if possible.  The problem is that preserving all such caps may
 # lead to some termcap translations being too long.  The termcap maintainer
 # has a bit of a juggling act to do...potential problem cases are marked with
 # translation if possible.  The problem is that preserving all such caps may
 # lead to some termcap translations being too long.  The termcap maintainer
 # has a bit of a juggling act to do...potential problem cases are marked with
-# a * or **.
+# an asterisk (*).
 #
 # The aliases section has the following format:
 #
 #
 # The aliases section has the following format:
 #
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBBooleans  name    Code\fR
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBBooleans  name    Code\fR
-auto_left_margin       bw      bool    bw      YB-G-   cub1 wraps from column 0 to last column
-auto_right_margin      am      bool    am      YBCGE   terminal has automatic margins
-no_esc_ctlc            xsb     bool    xb      YBCG-   beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch   xhp     bool    xs      YBCGE   standout not erased by overwriting (hp)
-eat_newline_glitch     xenl    bool    xn      YBCGE   newline ignored after 80 cols (concept)
-erase_overstrike       eo      bool    eo      YBCG-   can erase overstrikes with a blank
-generic_type           gn      bool    gn      YB-G-   generic line type
-hard_copy              hc      bool    hc      YBCG-   hardcopy terminal
-has_meta_key           km      bool    km      YB-GE   Has a meta key (i.e., sets 8th-bit)
-has_status_line        hs      bool    hs      YB-G-   has extra status line
-insert_null_glitch     in      bool    in      YBCGE   insert mode distinguishes nulls
-memory_above           da      bool    da      YBCG-   display may be retained above the screen
-memory_below           db      bool    db      YB-GE   display may be retained below the screen
-move_insert_mode       mir     bool    mi      YBCGE   safe to move while in insert mode
-move_standout_mode     msgr    bool    ms      YBCGE   safe to move while in standout mode
-over_strike            os      bool    os      YBCG-   terminal can overstrike
-status_line_esc_ok     eslok   bool    es      YB-G-   escape can be used on the status line
-dest_tabs_magic_smso   xt      bool    xt      YBCGE   tabs destructive, magic so char (t1061)
-tilde_glitch           hz      bool    hz      YB-GE   can't print ~'s (hazeltine)
-transparent_underline  ul      bool    ul      YBCGE   underline character overstrikes
-xon_xoff               xon     bool    xo      YB---   terminal uses xon/xoff handshaking
-needs_xon_xoff         nxon    bool    nx      -----   padding won't work, xon/xoff required
-prtr_silent            mc5i    bool    5i      -----   printer won't echo on screen
-hard_cursor            chts    bool    HC      -----   cursor is hard to see
-non_rev_rmcup          nrrmc   bool    NR      -----   smcup does not reverse rmcup
-no_pad_char            npc     bool    NP      -----   pad character does not exist
-non_dest_scroll_region ndscr   bool    ND      -----   scrolling region is non-destructive
-can_change             ccc     bool    cc      -----   terminal can re-define existing colors
-back_color_erase       bce     bool    ut      -----   screen erased with background color
-hue_lightness_saturation       hls     bool    hl      -----   terminal uses only HLS color notation (Tektronix)
-col_addr_glitch        xhpa    bool    YA      -----   only positive motion for hpa/mhpa caps
-cr_cancels_micro_mode  crxm    bool    YB      -----   using cr turns off micro mode
-has_print_wheel        daisy   bool    YC      -----   printer needs operator to change character set
-row_addr_glitch        xvpa    bool    YD      -----   only positive motion for vpa/mvpa caps
-semi_auto_right_margin sam     bool    YE      -----   printing in last column causes cr
-cpi_changes_res        cpix    bool    YF      -----   changing character pitch changes resolution
-lpi_changes_res        lpix    bool    YG      -----   changing line pitch changes resolution
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   cannot print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding will not work, xon/xoff required
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer will not echo on screen
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+col_addr_glitch                        xhpa    bool    YA      -       -       -----   only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode          crxm    bool    YB      -       -       -----   using cr turns off micro mode
+has_print_wheel                        daisy   bool    YC      -       -       -----   printer needs operator to change character set
+row_addr_glitch                        xvpa    bool    YD      -       -       -----   only positive motion for vpa/mvpa caps
+semi_auto_right_margin         sam     bool    YE      -       -       -----   printing in last column causes cr
+cpi_changes_res                        cpix    bool    YF      -       -       -----   changing character pitch changes resolution
+lpi_changes_res                        lpix    bool    YG      -       -       -----   changing line pitch changes resolution
 #%.TE
 #%.ad
 #%
 #%.TE
 #%.ad
 #%
@@ -257,23 +259,23 @@ lpi_changes_res   lpix    bool    YG      -----   changing line pitch changes resolution
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBNumeric   name    Code\fR
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBNumeric   name    Code\fR
-columns                cols    num     co      YBCGE   number of columns in a line
-init_tabs              it      num     it      YB-G-   tabs initially every # spaces
-lines                  lines   num     li      YBCGE   number of lines on screen or page
-lines_of_memory        lm      num     lm      YB-G-   lines of memory if > line. 0 means varies
-magic_cookie_glitch    xmc     num     sg      YBCGE   number of blank characters left by smso or rmso
-padding_baud_rate      pb      num     pb      YB-GE   lowest baud rate where padding needed
-virtual_terminal       vt      num     vt      YB---   virtual terminal number (CB/unix)
-width_status_line      wsl     num     ws      YB-G-   number of columns in status line
-num_labels             nlab    num     Nl      -----   number of labels on screen
-label_height           lh      num     lh      -----   rows in each label
-label_width            lw      num     lw      -----   columns in each label
-max_attributes         ma      num     ma      YBC--   maximum combined attributes terminal can handle
-maximum_windows        wnum    num     MW      -----   maximum number of defineable windows
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+max_attributes                 ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+maximum_windows                        wnum    num     MW      -       -       -----   maximum number of defineable windows
 # These came in with SVr4's color support
 # These came in with SVr4's color support
-max_colors             colors  num     Co      -----   maximum number of colors on screen
-max_pairs              pairs   num     pa      -----   maximum number of color-pairs on the screen
-no_color_video         ncv     num     NC      -----   video attributes that can't be used with colors
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that cannot be used with colors
 #%.TE
 #%.ad
 #%
 #%.TE
 #%.ad
 #%
@@ -289,23 +291,23 @@ no_color_video    ncv     num     NC      -----   video attributes that can't be used with color
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBNumeric   name    Code\fR
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBNumeric   name    Code\fR
-buffer_capacity        bufsz   num     Ya      -----   numbers of bytes buffered before printing
-dot_vert_spacing       spinv   num     Yb      -----   spacing of pins vertically in pins per inch
-dot_horz_spacing       spinh   num     Yc      -----   spacing of dots horizontally in dots per inch
-max_micro_address      maddr   num     Yd      -----   maximum value in micro_..._address
-max_micro_jump         mjump   num     Ye      -----   maximum value in parm_..._micro
-micro_col_size         mcs     num     Yf      -----   character step size when in micro mode
-micro_line_size        mls     num     Yg      -----   line step size when in micro mode
-number_of_pins         npins   num     Yh      -----   numbers of pins in print-head
-output_res_char        orc     num     Yi      -----   horizontal resolution in units per line
-output_res_line        orl     num     Yj      -----   vertical resolution in units per line
-output_res_horz_inch   orhi    num     Yk      -----   horizontal resolution in units per inch
-output_res_vert_inch   orvi    num     Yl      -----   vertical resolution in units per inch
-print_rate             cps     num     Ym      -----   print rate in characters per second
-wide_char_size         widcs   num     Yn      -----   character step size when in double wide mode
-buttons                btns    num     BT      -----   number of buttons on mouse
-bit_image_entwining    bitwin  num     Yo      -----   number of passes for each bit-image row
-bit_image_type         bitype  num     Yp      -----   type of bit-image device
+buffer_capacity                        bufsz   num     Ya      -       -       -----   numbers of bytes buffered before printing
+dot_vert_spacing               spinv   num     Yb      -       -       -----   spacing of pins vertically in pins per inch
+dot_horz_spacing               spinh   num     Yc      -       -       -----   spacing of dots horizontally in dots per inch
+max_micro_address              maddr   num     Yd      -       -       -----   maximum value in micro_..._address
+max_micro_jump                 mjump   num     Ye      -       -       -----   maximum value in parm_..._micro
+micro_col_size                 mcs     num     Yf      -       -       -----   character step size when in micro mode
+micro_line_size                        mls     num     Yg      -       -       -----   line step size when in micro mode
+number_of_pins                 npins   num     Yh      -       -       -----   numbers of pins in print-head
+output_res_char                        orc     num     Yi      -       -       -----   horizontal resolution in units per line
+output_res_line                        orl     num     Yj      -       -       -----   vertical resolution in units per line
+output_res_horz_inch           orhi    num     Yk      -       -       -----   horizontal resolution in units per inch
+output_res_vert_inch           orvi    num     Yl      -       -       -----   vertical resolution in units per inch
+print_rate                     cps     num     Ym      -       -       -----   print rate in characters per second
+wide_char_size                 widcs   num     Yn      -       -       -----   character step size when in double wide mode
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+bit_image_entwining            bitwin  num     Yo      -       -       -----   number of passes for each bit-image row
+bit_image_type                 bitype  num     Yp      -       -       -----   type of bit-image device
 #%.TE
 #%.ad
 #%
 #%.TE
 #%.ad
 #%
@@ -319,370 +321,370 @@ bit_image_type          bitype  num     Yp      -----   type of bit-image device
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
-back_tab               cbt     str     bt      YBCGE   back tab (P)
-bell                   bel     str     bl      YB-GE   audible signal (bell) (P)
-carriage_return        cr      str     cr      YBCGE   carriage return (P*) (P*)
-change_scroll_region   csr     str     cs      YBCGE   change region to line #1 to line #2 (P)
-clear_all_tabs         tbc     str     ct      YB-G-   clear all tab stops (P)
-clear_screen           clear   str     cl      YBCGE   clear screen and home cursor (P*)
-clr_eol                el      str     ce      YBCGE   clear to end of line (P)
-clr_eos                ed      str     cd      YBCGE   clear to end of screen (P*)
-column_address         hpa     str     ch      -B-GE** horizontal position #1, absolute (P)
-command_character      cmdch   str     CC      YB-G-   terminal settable cmd character in prototype !?
-cursor_address         cup     str     cm      YBCGE   move to row #1 columns #2
-cursor_down            cud1    str     do      YBCGE   down one line
-cursor_home            home    str     ho      YBCGE   home cursor (if no cup)
-cursor_invisible       civis   str     vi      YB-G-   make cursor invisible
-cursor_left            cub1    str     le      YBCGE   move left one space
-cursor_mem_address     mrcup   str     CM      YB-G-   memory relative cursor addressing, move to row #1 columns #2
-cursor_normal          cnorm   str     ve      YBCGE   make cursor appear normal (undo civis/cvvis)
-cursor_right           cuf1    str     nd      YBCGE   non-destructive space (move right one space)
-cursor_to_ll           ll      str     ll      YBCGE   last line, first column (if no cup)
-cursor_up              cuu1    str     up      YBCGE   up one line
-cursor_visible         cvvis   str     vs      YBCGE   make cursor very visible
-delete_character       dch1    str     dc      YBCGE   delete character (P*)
-delete_line            dl1     str     dl      YBCGE   delete line (P*)
-dis_status_line        dsl     str     ds      YB-G-   disable status line
-down_half_line         hd      str     hd      YB-G-   half a line down
-enter_alt_charset_mode smacs   str     as      YB-G-   start alternate character set (P)
-enter_blink_mode       blink   str     mb      YB-G-   turn on blinking
-enter_bold_mode        bold    str     md      YB-G-   turn on bold (extra bright) mode
-enter_ca_mode          smcup   str     ti      YBCGE   string to start programs using cup
-enter_delete_mode      smdc    str     dm      YBCGE   enter delete mode
-enter_dim_mode         dim     str     mh      YB-G-   turn on half-bright mode
-enter_insert_mode      smir    str     im      YBCGE   enter insert mode
-enter_secure_mode      invis   str     mk      -B-G-*  turn on blank mode (characters invisible)
-enter_protected_mode   prot    str     mp      -B-G-*  turn on protected mode
-enter_reverse_mode     rev     str     mr      YB-G-   turn on reverse video mode
-enter_standout_mode    smso    str     so      YBCGE   begin standout mode
-enter_underline_mode   smul    str     us      YBCGE   begin underline mode
-erase_chars            ech     str     ec      YB-G-   erase #1 characters (P)
-exit_alt_charset_mode  rmacs   str     ae      YB-G-   end alternate character set (P)
-exit_attribute_mode    sgr0    str     me      YB-GE   turn off all attributes
-exit_ca_mode           rmcup   str     te      YBCGE   strings to end programs using cup
-exit_delete_mode       rmdc    str     ed      YBCGE   end delete mode
-exit_insert_mode       rmir    str     ei      YBCGE   exit insert mode
-exit_standout_mode     rmso    str     se      YBCGE   exit standout mode
-exit_underline_mode    rmul    str     ue      YBCGE   exit underline mode
-flash_screen           flash   str     vb      YBCGE   visible bell (may not move cursor)
-form_feed              ff      str     ff      YB-G-   hardcopy terminal page eject (P*)
-from_status_line       fsl     str     fs      YB-G-   return from status line
-init_1string           is1     str     i1      YB-G-   initialization string
-init_2string           is2     str     is      YB-G-   initialization string
-init_3string           is3     str     i3      YB-G-   initialization string
-init_file              if      str     if      YB-G-   name of initialization file
-insert_character       ich1    str     ic      YBCGE   insert character (P)
-insert_line            il1     str     al      YBCGE   insert line (P*)
-insert_padding         ip      str     ip      YBCGE   insert padding after inserted character
-key_backspace          kbs     str     kb      YB-G-   backspace key
-key_catab              ktbc    str     ka      -B-G-*  clear-all-tabs key
-key_clear              kclr    str     kC      -B-G-*  clear-screen or erase key
-key_ctab               kctab   str     kt      -B-G-*  clear-tab key
-key_dc                 kdch1   str     kD      YB-G-   delete-character key
-key_dl                 kdl1    str     kL      -B-G-*  delete-line key
-key_down               kcud1   str     kd      YBCGE   down-arrow key
-key_eic                krmir   str     kM      -B-G-*  sent by rmir or smir in insert mode
-key_eol                kel     str     kE      -B-G-*  clear-to-end-of-line key
-key_eos                ked     str     kS      -B-G-*  clear-to-end-of-screen key
-key_f0                 kf0     str     k0      YBCGE   F0 function key
-key_f1                 kf1     str     k1      YBCGE   F1 function key
-key_f10                kf10    str     k;      ----E   F10 function key
-key_f2                 kf2     str     k2      YBCGE   F2 function key
-key_f3                 kf3     str     k3      YBCGE   F3 function key
-key_f4                 kf4     str     k4      YBCGE   F4 function key
-key_f5                 kf5     str     k5      YBCGE   F5 function key
-key_f6                 kf6     str     k6      YBCGE   F6 function key
-key_f7                 kf7     str     k7      YBCGE   F7 function key
-key_f8                 kf8     str     k8      YBCGE   F8 function key
-key_f9                 kf9     str     k9      YBCGE   F9 function key
-key_home               khome   str     kh      YBCGE   home key
-key_ic                 kich1   str     kI      YB-GE   insert-character key
-key_il                 kil1    str     kA      -B-G-*  insert-line key
-key_left               kcub1   str     kl      YBCGE   left-arrow key
-key_ll                 kll     str     kH      YB-G-   lower-left key (home down)
-key_npage              knp     str     kN      YB-GE   next-page key
-key_ppage              kpp     str     kP      YB-GE   previous-page key
-key_right              kcuf1   str     kr      YBCGE   right-arrow key
-key_sf                 kind    str     kF      -B-G-*  scroll-forward key
-key_sr                 kri     str     kR      -B-G-*  scroll-backward key
-key_stab               khts    str     kT      -B-G-*  set-tab key
-key_up                 kcuu1   str     ku      YBCGE   up-arrow key
-keypad_local           rmkx    str     ke      YBCGE   leave 'keyboard_transmit' mode
-keypad_xmit            smkx    str     ks      YBCGE   enter 'keyboard_transmit' mode
-lab_f0                 lf0     str     l0      -B-G-*  label on function key f0 if not f0
-lab_f1                 lf1     str     l1      -B-G-*  label on function key f1 if not f1
-lab_f10                lf10    str     la      -----   label on function key f10 if not f10
-lab_f2                 lf2     str     l2      -B-G-*  label on function key f2 if not f2
-lab_f3                 lf3     str     l3      -B-G-*  label on function key f3 if not f3
-lab_f4                 lf4     str     l4      -B-G-*  label on function key f4 if not f4
-lab_f5                 lf5     str     l5      -B-G-*  label on function key f5 if not f5
-lab_f6                 lf6     str     l6      -B-G-*  label on function key f6 if not f6
-lab_f7                 lf7     str     l7      -B-G-*  label on function key f7 if not f7
-lab_f8                 lf8     str     l8      -B-G-*  label on function key f8 if not f8
-lab_f9                 lf9     str     l9      -B-G-*  label on function key f9 if not f9
-meta_off               rmm     str     mo      YB-G-*  turn off meta mode
-meta_on                smm     str     mm      YB-G-*  turn on meta mode (8th-bit on)
-newline                nel     str     nw      YB-G-*  newline (behave like cr followed by lf)
-pad_char               pad     str     pc      YBCGE   padding char (instead of null)
-parm_dch               dch     str     DC      YB-GE   delete #1 characters (P*)
-parm_delete_line       dl      str     DL      YBCGE   delete #1 lines (P*)
-parm_down_cursor       cud     str     DO      YBCGE   down #1 lines (P*)
-parm_ich               ich     str     IC      YB-GE   insert #1 characters (P*)
-parm_index             indn    str     SF      YBCG-   scroll forward #1 lines (P)
-parm_insert_line       il      str     AL      YBCGE   insert #1 lines (P*)
-parm_left_cursor       cub     str     LE      YBCGE   move #1 characters to the left (P)
-parm_right_cursor      cuf     str     RI      YBCGE   move #1 characters to the right (P*)
-parm_rindex            rin     str     SR      YBCG-   scroll back #1 lines (P)
-parm_up_cursor         cuu     str     UP      YBCGE   up #1 lines (P*)
-pkey_key               pfkey   str     pk      -B---   program function key #1 to type string #2
-pkey_local             pfloc   str     pl      -B---   program function key #1 to execute string #2
-pkey_xmit              pfx     str     px      -B---   program function key #1 to transmit string #2
-print_screen           mc0     str     ps      -B-G-*  print contents of screen
-prtr_off               mc4     str     pf      -B-G-*  turn off printer
-prtr_on                mc5     str     po      -B-G-*  turn on printer
-repeat_char            rep     str     rp      YB-GE   repeat char #1 #2 times (P*)
-reset_1string                  rs1     str     r1      -B---   reset string
-reset_2string                  rs2     str     r2      -B---   reset string
-reset_3string                  rs3     str     r3      -B---   reset string
-reset_file             rf      str     rf      -B---   name of reset file
-restore_cursor         rc      str     rc      YBCG-   restore cursor to position of last save_cursor
-row_address            vpa     str     cv      -B-GE** vertical position #1 absolute (P)
-save_cursor            sc      str     sc      YBCG-   save current cursor position (P)
-scroll_forward         ind     str     sf      YBCGE   scroll text up (P)
-scroll_reverse         ri      str     sr      YBCGE   scroll text down (P)
-set_attributes         sgr     str     sa      YB-G-   define video attributes #1-#9 (PG9)
-set_tab                hts     str     st      YB-G-   set a tab in every row, current columns
-set_window             wind    str     wi      -B-GE   current window is lines #1-#2 cols #3-#4
-tab                    ht      str     ta      YBCGE   tab to next 8-space hardware tab stop
-to_status_line         tsl     str     ts      YB-G-   move to status line, column #1
-underline_char         uc      str     uc      YBCG-   underline char and move past it
-up_half_line           hu      str     hu      YB-G-   half a line up
-init_prog              iprog   str     iP      -B---   path name of program for initialization
-key_a1                 ka1     str     K1      YB-GE   upper left of keypad
-key_a3                 ka3     str     K3      YB-GE   upper right of keypad
-key_b2                 kb2     str     K2      YB-GE   center of keypad
-key_c1                 kc1     str     K4      YB-GE   lower left of keypad
-key_c3                 kc3     str     K5      YB-GE   lower right of keypad
-prtr_non               mc5p    str     pO      -B-G-*  turn on printer for #1 bytes
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
 #
 # SVr1 capabilities stop here. IBM's version of terminfo is the same as
 # SVr4 up to this point, but has a different set afterwards.
 #
 #
 # SVr1 capabilities stop here. IBM's version of terminfo is the same as
 # SVr4 up to this point, but has a different set afterwards.
 #
-char_padding           rmp     str     rP      -----   like ip but when in insert mode
-acs_chars              acsc    str     ac      -----   graphics charset pairs, based on vt100
-plab_norm              pln     str     pn      -----   program label #1 to show string #2
-key_btab               kcbt    str     kB      -----   back-tab key
-enter_xon_mode         smxon   str     SX      -----   turn on xon/xoff handshaking
-exit_xon_mode          rmxon   str     RX      -----   turn off xon/xoff handshaking
-enter_am_mode          smam    str     SA      -----   turn on automatic margins
-exit_am_mode           rmam    str     RA      -----   turn off automatic margins
-xon_character          xonc    str     XN      -----   XON character
-xoff_character         xoffc   str     XF      -----   XOFF character
-ena_acs                enacs   str     eA      -----   enable alternate char set
-label_on               smln    str     LO      -----   turn on soft labels
-label_off              rmln    str     LF      -----   turn off soft labels
-key_beg                kbeg    str     @1      -----   begin key
-key_cancel             kcan    str     @2      -----   cancel key
-key_close              kclo    str     @3      -----   close key
-key_command            kcmd    str     @4      -----   command key
-key_copy               kcpy    str     @5      -----   copy key
-key_create             kcrt    str     @6      -----   create key
-key_end                kend    str     @7      -----   end key
-key_enter              kent    str     @8      -----   enter/send key
-key_exit               kext    str     @9      -----   exit key
-key_find               kfnd    str     @0      -----   find key
-key_help               khlp    str     %1      -----   help key
-key_mark               kmrk    str     %2      -----   mark key
-key_message            kmsg    str     %3      -----   message key
-key_move               kmov    str     %4      -----   move key
-key_next               knxt    str     %5      -----   next key
-key_open               kopn    str     %6      -----   open key
-key_options            kopt    str     %7      -----   options key
-key_previous           kprv    str     %8      -----   previous key
-key_print              kprt    str     %9      -----   print key
-key_redo               krdo    str     %0      -----   redo key
-key_reference                  kref    str     &1      -----   reference key
-key_refresh            krfr    str     &2      -----   refresh key
-key_replace            krpl    str     &3      -----   replace key
-key_restart            krst    str     &4      -----   restart key
-key_resume             kres    str     &5      -----   resume key
-key_save               ksav    str     &6      -----   save key
-key_suspend            kspd    str     &7      -----   suspend key
-key_undo               kund    str     &8      -----   undo key
-key_sbeg               kBEG    str     &9      -----   shifted begin key
-key_scancel            kCAN    str     &0      -----   shifted cancel key
-key_scommand           kCMD    str     *1      -----   shifted command key
-key_scopy              kCPY    str     *2      -----   shifted copy key
-key_screate            kCRT    str     *3      -----   shifted create key
-key_sdc                kDC     str     *4      -----   shifted delete-character key
-key_sdl                kDL     str     *5      -----   shifted delete-line key
-key_select             kslt    str     *6      -----   select key
-key_send               kEND    str     *7      -----   shifted end key
-key_seol               kEOL    str     *8      -----   shifted clear-to-end-of-line key
-key_sexit              kEXT    str     *9      -----   shifted exit key
-key_sfind              kFND    str     *0      -----   shifted find key
-key_shelp              kHLP    str     #1      -----   shifted help key
-key_shome              kHOM    str     #2      -----   shifted home key
-key_sic                kIC     str     #3      -----   shifted insert-character key
-key_sleft              kLFT    str     #4      -----   shifted left-arrow key
-key_smessage           kMSG    str     %a      -----   shifted message key
-key_smove              kMOV    str     %b      -----   shifted move key
-key_snext              kNXT    str     %c      -----   shifted next key
-key_soptions           kOPT    str     %d      -----   shifted options key
-key_sprevious                  kPRV    str     %e      -----   shifted previous key
-key_sprint             kPRT    str     %f      -----   shifted print key
-key_sredo              kRDO    str     %g      -----   shifted redo key
-key_sreplace           kRPL    str     %h      -----   shifted replace key
-key_sright             kRIT    str     %i      -----   shifted right-arrow key
-key_srsume             kRES    str     %j      -----   shifted resume key
-key_ssave              kSAV    str     !1      -----   shifted save key
-key_ssuspend           kSPD    str     !2      -----   shifted suspend key
-key_sundo              kUND    str     !3      -----   shifted undo key
-req_for_input          rfi     str     RF      -----   send next input char (for ptys)
-key_f11                kf11    str     F1      ----E   F11 function key
-key_f12                kf12    str     F2      ----E   F12 function key
-key_f13                kf13    str     F3      ----E   F13 function key
-key_f14                kf14    str     F4      ----E   F14 function key
-key_f15                kf15    str     F5      ----E   F15 function key
-key_f16                kf16    str     F6      ----E   F16 function key
-key_f17                kf17    str     F7      ----E   F17 function key
-key_f18                kf18    str     F8      ----E   F18 function key
-key_f19                kf19    str     F9      ----E   F19 function key
-key_f20                kf20    str     FA      ----E   F20 function key
-key_f21                kf21    str     FB      ----E   F21 function key
-key_f22                kf22    str     FC      ----E   F22 function key
-key_f23                kf23    str     FD      ----E   F23 function key
-key_f24                kf24    str     FE      ----E   F24 function key
-key_f25                kf25    str     FF      ----E   F25 function key
-key_f26                kf26    str     FG      ----E   F26 function key
-key_f27                kf27    str     FH      ----E   F27 function key
-key_f28                kf28    str     FI      ----E   F28 function key
-key_f29                kf29    str     FJ      ----E   F29 function key
-key_f30                kf30    str     FK      ----E   F30 function key
-key_f31                kf31    str     FL      ----E   F31 function key
-key_f32                kf32    str     FM      ----E   F32 function key
-key_f33                kf33    str     FN      ----E   F33 function key
-key_f34                kf34    str     FO      ----E   F34 function key
-key_f35                kf35    str     FP      ----E   F35 function key
-key_f36                kf36    str     FQ      ----E   F36 function key
-key_f37                kf37    str     FR      ----E   F37 function key
-key_f38                kf38    str     FS      ----E   F38 function key
-key_f39                kf39    str     FT      ----E   F39 function key
-key_f40                kf40    str     FU      ----E   F40 function key
-key_f41                kf41    str     FV      ----E   F41 function key
-key_f42                kf42    str     FW      ----E   F42 function key
-key_f43                kf43    str     FX      ----E   F43 function key
-key_f44                kf44    str     FY      ----E   F44 function key
-key_f45                kf45    str     FZ      ----E   F45 function key
-key_f46                kf46    str     Fa      ----E   F46 function key
-key_f47                kf47    str     Fb      ----E   F47 function key
-key_f48                kf48    str     Fc      ----E   F48 function key
-key_f49                kf49    str     Fd      ----E   F49 function key
-key_f50                kf50    str     Fe      ----E   F50 function key
-key_f51                kf51    str     Ff      ----E   F51 function key
-key_f52                kf52    str     Fg      ----E   F52 function key
-key_f53                kf53    str     Fh      ----E   F53 function key
-key_f54                kf54    str     Fi      ----E   F54 function key
-key_f55                kf55    str     Fj      ----E   F55 function key
-key_f56                kf56    str     Fk      ----E   F56 function key
-key_f57                kf57    str     Fl      ----E   F57 function key
-key_f58                kf58    str     Fm      ----E   F58 function key
-key_f59                kf59    str     Fn      ----E   F59 function key
-key_f60                kf60    str     Fo      ----E   F60 function key
-key_f61                kf61    str     Fp      ----E   F61 function key
-key_f62                kf62    str     Fq      ----E   F62 function key
-key_f63                kf63    str     Fr      ----E   F63 function key
-clr_bol                el1     str     cb      -----   Clear to beginning of line
-clear_margins          mgc     str     MC      -----   clear right and left soft margins
-set_left_margin        smgl    str     ML      -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
-set_right_margin       smgr    str     MR      -----   set right soft margin at current column
-label_format           fln     str     Lf      -----   label format
-set_clock              sclk    str     SC      -----   set clock, #1 hrs #2 mins #3 secs
-display_clock          dclk    str     DK      -----   display clock
-remove_clock           rmclk   str     RC      -----   remove clock
-create_window          cwin    str     CW      -----   define a window #1 from #2,#3 to #4,#5
-goto_window            wingo   str     WG      -----   go to window #1
-hangup                 hup     str     HU      -----   hang-up phone
-dial_phone             dial    str     DI      -----   dial number #1
-quick_dial             qdial   str     QD      -----   dial number #1 without checking
-tone                   tone    str     TO      -----   select touch tone dialing
-pulse                  pulse   str     PU      -----   select pulse dialing
-flash_hook             hook    str     fh      -----   flash switch hook
-fixed_pause            pause   str     PA      -----   pause for 2-3 seconds
-wait_tone              wait    str     WA      -----   wait for dial-tone
-user0                  u0      str     u0      -----   User string #0
-user1                  u1      str     u1      -----   User string #1
-user2                  u2      str     u2      -----   User string #2
-user3                  u3      str     u3      -----   User string #3
-user4                  u4      str     u4      -----   User string #4
-user5                  u5      str     u5      -----   User string #5
-user6                  u6      str     u6      -----   User string #6
-user7                  u7      str     u7      -----   User string #7
-user8                  u8      str     u8      -----   User string #8
-user9                  u9      str     u9      -----   User string #9
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+key_btab                       kcbt    str     kB      KEY_BTAB        0541    -----   back-tab key
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+xon_character                  xonc    str     XN      -               -       -----   XON character
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+key_command                    kcmd    str     @4      KEY_COMMAND     0545    -----   command key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+key_end                                kend    str     @7      KEY_END         0550    -----   end key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+key_help                       khlp    str     %1      KEY_HELP        0553    -----   help key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+label_format                   fln     str     Lf      -               -       -----   label format
+set_clock                      sclk    str     SC      -               -       -----   set clock, #1 hrs #2 mins #3 secs
+display_clock                  dclk    str     DK      -               -       -----   display clock
+remove_clock                   rmclk   str     RC      -               -       -----   remove clock
+create_window                  cwin    str     CW      -               -       -----   define a window #1 from #2,#3 to #4,#5
+goto_window                    wingo   str     WG      -               -       -----   go to window #1
+hangup                         hup     str     HU      -               -       -----   hang-up phone
+dial_phone                     dial    str     DI      -               -       -----   dial number #1
+quick_dial                     qdial   str     QD      -               -       -----   dial number #1 without checking
+tone                           tone    str     TO      -               -       -----   select touch tone dialing
+pulse                          pulse   str     PU      -               -       -----   select pulse dialing
+flash_hook                     hook    str     fh      -               -       -----   flash switch hook
+fixed_pause                    pause   str     PA      -               -       -----   pause for 2-3 seconds
+wait_tone                      wait    str     WA      -               -       -----   wait for dial-tone
+user0                          u0      str     u0      -               -       -----   User string #0
+user1                          u1      str     u1      -               -       -----   User string #1
+user2                          u2      str     u2      -               -       -----   User string #2
+user3                          u3      str     u3      -               -       -----   User string #3
+user4                          u4      str     u4      -               -       -----   User string #4
+user5                          u5      str     u5      -               -       -----   User string #5
+user6                          u6      str     u6      -               -       -----   User string #6
+user7                          u7      str     u7      -               -       -----   User string #7
+user8                          u8      str     u8      -               -       -----   User string #8
+user9                          u9      str     u9      -               -       -----   User string #9
 #
 # SVr4 added these capabilities to support color
 #
 #
 # SVr4 added these capabilities to support color
 #
-orig_pair              op      str     op      -----   Set default pair to its original value
-orig_colors            oc      str     oc      -----   Set all color pairs to the original ones
-initialize_color       initc   str     Ic      -----   initialize color #1 to (#2,#3,#4)
-initialize_pair        initp   str     Ip      -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-set_color_pair         scp     str     sp      -----   Set current color pair to #1
-set_foreground         setf    str     Sf      -----   Set foreground color #1
-set_background         setb    str     Sb      -----   Set background color #1
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
 #
 # SVr4 added these capabilities to support printers
 #
 #
 # SVr4 added these capabilities to support printers
 #
-change_char_pitch      cpi     str     ZA      -----   Change number of characters per inch to #1
-change_line_pitch      lpi     str     ZB      -----   Change number of lines per inch to #1
-change_res_horz        chr     str     ZC      -----   Change horizontal resolution to #1
-change_res_vert        cvr     str     ZD      -----   Change vertical resolution to #1
-define_char            defc    str     ZE      -----   Define a character #1, #2 dots wide, descender #3
-enter_doublewide_mode  swidm   str     ZF      -----   Enter double-wide mode
-enter_draft_quality    sdrfq   str     ZG      -----   Enter draft-quality mode
-enter_italics_mode     sitm    str     ZH      -----   Enter italic mode
-enter_leftward_mode    slm     str     ZI      -----   Start leftward carriage motion
-enter_micro_mode       smicm   str     ZJ      -----   Start micro-motion mode
-enter_near_letter_quality      snlq    str     ZK      -----   Enter NLQ mode
-enter_normal_quality   snrmq   str     ZL      -----   Enter normal-quality mode
-enter_shadow_mode      sshm    str     ZM      -----   Enter shadow-print mode
-enter_subscript_mode   ssubm   str     ZN      -----   Enter subscript mode
-enter_superscript_mode ssupm   str     ZO      -----   Enter superscript mode
-enter_upward_mode      sum     str     ZP      -----   Start upward carriage motion
-exit_doublewide_mode   rwidm   str     ZQ      -----   End double-wide mode
-exit_italics_mode      ritm    str     ZR      -----   End italic mode
-exit_leftward_mode     rlm     str     ZS      -----   End left-motion mode
-exit_micro_mode        rmicm   str     ZT      -----   End micro-motion mode
-exit_shadow_mode       rshm    str     ZU      -----   End shadow-print mode
-exit_subscript_mode    rsubm   str     ZV      -----   End subscript mode
-exit_superscript_mode  rsupm   str     ZW      -----   End superscript mode
-exit_upward_mode       rum     str     ZX      -----   End reverse character motion
-micro_column_address   mhpa    str     ZY      -----   Like column_address in micro mode
-micro_down             mcud1   str     ZZ      -----   Like cursor_down in micro mode
-micro_left             mcub1   str     Za      -----   Like cursor_left in micro mode
-micro_right            mcuf1   str     Zb      -----   Like cursor_right in micro mode
-micro_row_address      mvpa    str     Zc      -----   Like row_address #1 in micro mode
-micro_up               mcuu1   str     Zd      -----   Like cursor_up in micro mode
-order_of_pins          porder  str     Ze      -----   Match software bits to print-head pins
-parm_down_micro        mcud    str     Zf      -----   Like parm_down_cursor in micro mode
-parm_left_micro        mcub    str     Zg      -----   Like parm_left_cursor in micro mode
-parm_right_micro       mcuf    str     Zh      -----   Like parm_right_cursor in micro mode
-parm_up_micro          mcuu    str     Zi      -----   Like parm_up_cursor in micro mode
-select_char_set        scs     str     Zj      -----   Select character set, #1
-set_bottom_margin      smgb    str     Zk      -----   Set bottom margin at current line
-set_bottom_margin_parm smgbp   str     Zl      -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
-set_left_margin_parm   smglp   str     Zm      -----   Set left (right) margin at column #1
-set_right_margin_parm  smgrp   str     Zn      -----   Set right margin at column #1
-set_top_margin         smgt    str     Zo      -----   Set top margin at current line
-set_top_margin_parm    smgtp   str     Zp      -----   Set top (bottom) margin at row #1
-start_bit_image        sbim    str     Zq      -----   Start printing bit image graphics
-start_char_set_def     scsd    str     Zr      -----   Start character set definition #1, with #2 characters in the set
-stop_bit_image         rbim    str     Zs      -----   Stop printing bit image graphics
-stop_char_set_def      rcsd    str     Zt      -----   End definition of character set #1
-subscript_characters   subcs   str     Zu      -----   List of subscriptable characters
-superscript_characters supcs   str     Zv      -----   List of superscriptable characters
-these_cause_cr         docr    str     Zw      -----   Printing any of these characters causes CR
-zero_motion            zerom   str     Zx      -----   No motion for subsequent character
+change_char_pitch              cpi     str     ZA      -               -       -----   Change number of characters per inch to #1
+change_line_pitch              lpi     str     ZB      -               -       -----   Change number of lines per inch to #1
+change_res_horz                        chr     str     ZC      -               -       -----   Change horizontal resolution to #1
+change_res_vert                        cvr     str     ZD      -               -       -----   Change vertical resolution to #1
+define_char                    defc    str     ZE      -               -       -----   Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode          swidm   str     ZF      -               -       -----   Enter double-wide mode
+enter_draft_quality            sdrfq   str     ZG      -               -       -----   Enter draft-quality mode
+enter_italics_mode             sitm    str     ZH      -               -       -----   Enter italic mode
+enter_leftward_mode            slm     str     ZI      -               -       -----   Start leftward carriage motion
+enter_micro_mode               smicm   str     ZJ      -               -       -----   Start micro-motion mode
+enter_near_letter_quality      snlq    str     ZK      -               -       -----   Enter NLQ mode
+enter_normal_quality           snrmq   str     ZL      -               -       -----   Enter normal-quality mode
+enter_shadow_mode              sshm    str     ZM      -               -       -----   Enter shadow-print mode
+enter_subscript_mode           ssubm   str     ZN      -               -       -----   Enter subscript mode
+enter_superscript_mode         ssupm   str     ZO      -               -       -----   Enter superscript mode
+enter_upward_mode              sum     str     ZP      -               -       -----   Start upward carriage motion
+exit_doublewide_mode           rwidm   str     ZQ      -               -       -----   End double-wide mode
+exit_italics_mode              ritm    str     ZR      -               -       -----   End italic mode
+exit_leftward_mode             rlm     str     ZS      -               -       -----   End left-motion mode
+exit_micro_mode                        rmicm   str     ZT      -               -       -----   End micro-motion mode
+exit_shadow_mode               rshm    str     ZU      -               -       -----   End shadow-print mode
+exit_subscript_mode            rsubm   str     ZV      -               -       -----   End subscript mode
+exit_superscript_mode          rsupm   str     ZW      -               -       -----   End superscript mode
+exit_upward_mode               rum     str     ZX      -               -       -----   End reverse character motion
+micro_column_address           mhpa    str     ZY      -               -       -----   Like column_address in micro mode
+micro_down                     mcud1   str     ZZ      -               -       -----   Like cursor_down in micro mode
+micro_left                     mcub1   str     Za      -               -       -----   Like cursor_left in micro mode
+micro_right                    mcuf1   str     Zb      -               -       -----   Like cursor_right in micro mode
+micro_row_address              mvpa    str     Zc      -               -       -----   Like row_address #1 in micro mode
+micro_up                       mcuu1   str     Zd      -               -       -----   Like cursor_up in micro mode
+order_of_pins                  porder  str     Ze      -               -       -----   Match software bits to print-head pins
+parm_down_micro                        mcud    str     Zf      -               -       -----   Like parm_down_cursor in micro mode
+parm_left_micro                        mcub    str     Zg      -               -       -----   Like parm_left_cursor in micro mode
+parm_right_micro               mcuf    str     Zh      -               -       -----   Like parm_right_cursor in micro mode
+parm_up_micro                  mcuu    str     Zi      -               -       -----   Like parm_up_cursor in micro mode
+select_char_set                        scs     str     Zj      -               -       -----   Select character set, #1
+set_bottom_margin              smgb    str     Zk      -               -       -----   Set bottom margin at current line
+set_bottom_margin_parm         smgbp   str     Zl      -               -       -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm           smglp   str     Zm      -               -       -----   Set left (right) margin at column #1
+set_right_margin_parm          smgrp   str     Zn      -               -       -----   Set right margin at column #1
+set_top_margin                 smgt    str     Zo      -               -       -----   Set top margin at current line
+set_top_margin_parm            smgtp   str     Zp      -               -       -----   Set top (bottom) margin at row #1
+start_bit_image                        sbim    str     Zq      -               -       -----   Start printing bit image graphics
+start_char_set_def             scsd    str     Zr      -               -       -----   Start character set definition #1, with #2 characters in the set
+stop_bit_image                 rbim    str     Zs      -               -       -----   Stop printing bit image graphics
+stop_char_set_def              rcsd    str     Zt      -               -       -----   End definition of character set #1
+subscript_characters           subcs   str     Zu      -               -       -----   List of subscriptable characters
+superscript_characters         supcs   str     Zv      -               -       -----   List of superscriptable characters
+these_cause_cr                 docr    str     Zw      -               -       -----   Printing any of these characters causes CR
+zero_motion                    zerom   str     Zx      -               -       -----   No motion for subsequent character
 #%.TE
 #%.ad
 #%
 #%.TE
 #%.ad
 #%
@@ -697,41 +699,41 @@ zero_motion       zerom   str     Zx      -----   No motion for subsequent character
 #%lw25 lw6 lw2 lw18.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
 #%lw25 lw6 lw2 lw18.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
-char_set_names         csnm    str     Zy      -----   Produce #1'th item from list of character set names
-key_mouse              kmous   str     Km      -----   Mouse event has occurred
-mouse_info             minfo   str     Mi      -----   Mouse status information
-req_mouse_pos          reqmp   str     RQ      -----   Request mouse position
-get_mouse              getm    str     Gm      -----   Curses should get button events, parameter #1 not documented.
-set_a_foreground       setaf   str     AF      -----   Set foreground color to #1, using ANSI escape
-set_a_background       setab   str     AB      -----   Set background color to #1, using ANSI escape
-pkey_plab              pfxl    str     xl      -----   Program function key #1 to type string #2 and show string #3
-device_type            devt    str     dv      -----   Indicate language/codeset support
-code_set_init          csin    str     ci      -----   Init sequence for multiple codesets
-set0_des_seq           s0ds    str     s0      -----   Shift to code set 0 (EUC set 0, ASCII)
-set1_des_seq           s1ds    str     s1      -----   Shift to code set 1
-set2_des_seq           s2ds    str     s2      -----   Shift to code set 2
-set3_des_seq           s3ds    str     s3      -----   Shift to code set 3
-set_lr_margin          smglr   str     ML      -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
-set_tb_margin          smgtb   str     MT      -----   Sets both top and bottom margins to #1, #2
-bit_image_repeat       birep   str     Xy      -----   Repeat bit image cell #1 #2 times
-bit_image_newline      binel   str     Zz      -----   Move to next row of the bit image
-bit_image_carriage_return      bicr    str     Yv      -----   Move to beginning of same row
-color_names            colornm str     Yw      -----   Give name for color #1
-define_bit_image_region        defbi   str     Yx      -----   Define rectangualar bit image region
-end_bit_image_region   endbi   str     Yy      -----   End a bit-image region
-set_color_band         setcolor        str     Yz      -----   Change to ribbon color #1
-set_page_length        slines  str     YZ      -----   Set page length to #1 lines
+char_set_names                 csnm    str     Zy      -               -       -----   Produce #1'th item from list of character set names
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+pkey_plab                      pfxl    str     xl      -               -       -----   Program function key #1 to type string #2 and show string #3
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+set_lr_margin                  smglr   str     ML      -               -       -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_tb_margin                  smgtb   str     MT      -               -       -----   Sets both top and bottom margins to #1, #2
+bit_image_repeat               birep   str     Xy      -               -       -----   Repeat bit image cell #1 #2 times
+bit_image_newline              binel   str     Zz      -               -       -----   Move to next row of the bit image
+bit_image_carriage_return      bicr    str     Yv      -               -       -----   Move to beginning of same row
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+define_bit_image_region                defbi   str     Yx      -               -       -----   Define rectangualar bit image region
+end_bit_image_region           endbi   str     Yy      -               -       -----   End a bit-image region
+set_color_band         setcolor        str     Yz      -               -       -----   Change to ribbon color #1
+set_page_length                        slines  str     YZ      -               -       -----   Set page length to #1 lines
 #
 # SVr4 added these capabilities for direct PC-clone support
 #
 #
 # SVr4 added these capabilities for direct PC-clone support
 #
-display_pc_char        dispc   str     S1      -----   Display PC character #1
-enter_pc_charset_mode  smpch   str     S2      -----   Enter PC character display mode
-exit_pc_charset_mode   rmpch   str     S3      -----   Exit PC character display mode
-enter_scancode_mode    smsc    str     S4      -----   Enter PC scancode mode
-exit_scancode_mode     rmsc    str     S5      -----   Exit PC scancode mode
-pc_term_options        pctrm   str     S6      -----   PC terminal options
-scancode_escape        scesc   str     S7      -----   Escape for scancode emulation
-alt_scancode_esc       scesa   str     S8      -----   Alternate escape for scancode emulation
+display_pc_char                        dispc   str     S1      -               -       -----   Display PC character #1
+enter_pc_charset_mode          smpch   str     S2      -               -       -----   Enter PC character display mode
+exit_pc_charset_mode           rmpch   str     S3      -               -       -----   Exit PC character display mode
+enter_scancode_mode            smsc    str     S4      -               -       -----   Enter PC scancode mode
+exit_scancode_mode             rmsc    str     S5      -               -       -----   Exit PC scancode mode
+pc_term_options                        pctrm   str     S6      -               -       -----   PC terminal options
+scancode_escape                        scesc   str     S7      -               -       -----   Escape for scancode emulation
+alt_scancode_esc               scesa   str     S8      -               -       -----   Alternate escape for scancode emulation
 #%.TE
 #%.ad
 #%
 #%.TE
 #%.ad
 #%
@@ -751,14 +753,14 @@ alt_scancode_esc  scesa   str     S8      -----   Alternate escape for scancode emulation
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
 #%lw25 lw6 lw2 lw20.
 #%\fBVariable  Cap-    TCap    Description\fR
 #%\fBString    name    Code\fR
-enter_horizontal_hl_mode       ehhlm   str     Xh      -----   Enter horizontal highlight mode
-enter_left_hl_mode     elhlm   str     Xl      -----   Enter left highlight mode
-enter_low_hl_mode      elohlm  str     Xo      -----   Enter low highlight mode
-enter_right_hl_mode    erhlm   str     Xr      -----   Enter right highlight mode
-enter_top_hl_mode      ethlm   str     Xt      -----   Enter top highlight mode
-enter_vertical_hl_mode evhlm   str     Xv      -----   Enter vertical highlight mode
-set_a_attributes       sgr1    str     sA      -----   Define second set of video attributes #1-#6
-set_pglen_inch         slength str     sL      -----   YI Set page length to #1 hundredth of an inch
+enter_horizontal_hl_mode       ehhlm   str     Xh      -               -       -----   Enter horizontal highlight mode
+enter_left_hl_mode             elhlm   str     Xl      -               -       -----   Enter left highlight mode
+enter_low_hl_mode              elohlm  str     Xo      -               -       -----   Enter low highlight mode
+enter_right_hl_mode            erhlm   str     Xr      -               -       -----   Enter right highlight mode
+enter_top_hl_mode              ethlm   str     Xt      -               -       -----   Enter top highlight mode
+enter_vertical_hl_mode         evhlm   str     Xv      -               -       -----   Enter vertical highlight mode
+set_a_attributes               sgr1    str     sA      -               -       -----   Define second set of video attributes #1-#6
+set_pglen_inch                 slength str     sL      -               -       -----   YI Set page length to #1 hundredth of an inch
 #%.TE
 #%.ad
 #
 #%.TE
 #%.ad
 #
@@ -795,34 +797,34 @@ set_pglen_inch    slength str     sL      -----   YI Set page length to #1 hundredth of an i
 # The ug capability is thrown away, but assumed to be whatever sg is if the
 # latter is nonzero and we're dumping in termcap format.
 #
 # The ug capability is thrown away, but assumed to be whatever sg is if the
 # latter is nonzero and we're dumping in termcap format.
 #
-termcap_init2          OTi2    str     i2      YB---   secondary initialization string
-termcap_reset          OTrs    str     rs      YB-G-   terminal reset string
-magic_cookie_glitch_ul OTug    num     ug      YBCGE   number of blanks left by ul
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
 #
 # Obsolete termcap capabilities.  Some are used for termcap translation.  The
 # code uses the 'OT' prefix we put on obsolete capabilities to suppress
 # printing them in terminfo source dumps of compiled entries.
 #
 #
 # Obsolete termcap capabilities.  Some are used for termcap translation.  The
 # code uses the 'OT' prefix we put on obsolete capabilities to suppress
 # printing them in terminfo source dumps of compiled entries.
 #
-backspaces_with_bs      OTbs   bool    bs      YBCGE   uses ^H to move left
-crt_no_scrolling       OTns    bool    ns      YBCG-   crt cannot scroll
-no_correctly_working_cr        OTnc    bool    nc      YBCG-   no way to go to start of line
-carriage_return_delay  OTdC    num     dC      YB-G-   pad needed for CR
-new_line_delay         OTdN    num     dN      YB-G-   pad needed for LF
-linefeed_if_not_lf      OTnl   str     nl      YBCGE   use to move down
-backspace_if_not_bs     OTbc   str     bc      YBCGE   move left, if not ^H
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
 #
 # GNU termcap library extensions.  The GNU termcap file distributed with
 # Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
 # BSD termcap file.  The name clash with terminfo MT is resolved by type
 # info; MT is converted to km.
 #
 #
 # GNU termcap library extensions.  The GNU termcap file distributed with
 # Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
 # BSD termcap file.  The name clash with terminfo MT is resolved by type
 # info; MT is converted to km.
 #
-gnu_has_meta_key       OTMT    bool    MT      ----E   has meta key
-# gnu_tab_width                OTtw    num     tw      ----E   tab width in spaces
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
 #
 # GNU termcap *does* include the following extended capability,  Only the
 # now-obsolete Ann Arbor terminals used it.
 #
 #
 # GNU termcap *does* include the following extended capability,  Only the
 # now-obsolete Ann Arbor terminals used it.
 #
-# gnu_change_scroll_region     OTcS    str     cS      ---GE   alternate set scrolling region 
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
 #
 # The following comments describe capnames so ancient that I believe no
 # software uses them any longer.  Some of these have to go because they
 #
 # The following comments describe capnames so ancient that I believe no
 # software uses them any longer.  Some of these have to go because they
@@ -855,50 +857,50 @@ gnu_has_meta_key  OTMT    bool    MT      ----E   has meta key
 # Applications that use terminfo are supposed to behave as though xr is
 # always true.
 #
 # Applications that use terminfo are supposed to behave as though xr is
 # always true.
 #
-linefeed_is_newline     OTNL   bool    NL      YB---   move down with \n
-# even_parity          OTEP    bool    EP      -B---   terminal requires even parity
-# odd_parity           OTOP    bool    OP      -B---   terminal requires odd parity
-# half_duplex          OTHD    bool    HD      -B---   terminal is half-duplex
-# lower_case_only      OTLC    bool    LC      -B---   terminal has only lower case
-# upper_case_only      OTUC    bool    UC      -B---   terminal has only upper case
-backspace_delay                OTdB    num     dB      YB-G-   padding required for ^H
-# form_feed_delay      OTdF    num     dF      -B-G-   padding required for ^L
-horizontal_tab_delay   OTdT    num     dT      YB-G-   padding required for ^I
-# vertical_tab_delay   OTdV    num     dV      -B---   padding required for ^V
-number_of_function_keys        OTkn    num     kn      -B-G-   count of function keys
-other_non_function_keys OTko   str     ko      -B-G-   list of self-mapped keycaps
-arrow_key_map           OTma   str     ma      YBC--   map arrow keys rogue(1) motion keys
-# memory_lock_above     OTml   str     ml      -B---   lock visible screen memory above the current line
-# memory_unlock         OTmu   str     mu      -B---   unlock visible screen memory above the current line
-has_hardware_tabs       OTpt   bool    pt      YB---   has 8-char tabs invoked with ^I
-return_does_clr_eol    OTxr    bool    xr      YB---   return clears the line
-# tek_4025_insert_line OTxx    bool    xx      -BC--   Tektronix 4025 insert-line glitch
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
 #
 # mytinfo described this as a termcap capability, but it's not listed in the
 # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
 # package, like System V, behaves as though it is always true.
 #
 #
 # mytinfo described this as a termcap capability, but it's not listed in the
 # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
 # package, like System V, behaves as though it is always true.
 #
-# rind_only_at_top     OTxq    bool    xq      -----   reverse index only works from top line
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
 #
 # University of Waterloo termcap extensions (as described in mytinfo).
 # The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
 # be resolved by a type check.  The descriptions are guesses from what was
 # in the mytinfo tables. 
 #
 #
 # University of Waterloo termcap extensions (as described in mytinfo).
 # The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
 # be resolved by a type check.  The descriptions are guesses from what was
 # in the mytinfo tables. 
 #
-# key_interrupt_char    OTki   str     ki      -----   string set by interrupt key (?)
-# key_kill_char         OTkk   str     kk      -----   string set by kill key (?)
-# key_suspend_char      OTkz   str     kz      -----   string set by suspend key (?)
-# initialization_messy OTxc    bool    xc      -----   initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr        OTxl    bool    xl      -----   index does a carriage return
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
 #
 # Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
 # SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
 # check.
 #
 #
 # Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
 # SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
 # check.
 #
-# scroll_left                  OTsl1   str     Sl      -----   scroll screen leftward
-# scroll_right                 OTsr1   str     Sr      -----   scroll screen rightward
-# parm_scroll_left             OTsl    str     SL      -----   scroll screen leftward #1 characters
-# parm_scroll_right            OTsr    str     SR      -----   scroll screen rightward #1 characters
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
 #
 # The mytinfo capabilities end here.
 #
 #
 # The mytinfo capabilities end here.
 #
@@ -938,17 +940,17 @@ return_does_clr_eol       OTxr    bool    xr      YB---   return clears the line
 # that detects the acs_ prefix and uses it to suppress pad translation.
 # These terminfo names are invented.
 #
 # that detects the acs_ prefix and uses it to suppress pad translation.
 # These terminfo names are invented.
 #
-acs_ulcorner           OTG2    str     G2      -----   single upper left
-acs_llcorner           OTG3    str     G3      -----   single lower left
-acs_urcorner           OTG1    str     G1      -----   single upper right
-acs_lrcorner           OTG4    str     G4      -----   single lower right
-acs_ltee               OTGR    str     GR      -----   tee pointing right
-acs_rtee               OTGL    str     GL      -----   tee pointing left
-acs_btee               OTGU    str     GU      -----   tee pointing up
-acs_ttee               OTGD    str     GD      -----   tee pointing down
-acs_hline              OTGH    str     GH      -----   single horizontal line
-acs_vline              OTGV    str     GV      -----   single vertical line
-acs_plus               OTGC    str     GC      -----   single intersection
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
 #
 #############################################################################
 #
 #
 #############################################################################
 #
@@ -965,64 +967,64 @@ acs_plus          OTGC    str     GC      -----   single intersection
 # functionally identical to SVr4 extensions, but they make the binary format
 # different.  Grrr....
 #
 # functionally identical to SVr4 extensions, but they make the binary format
 # different.  Grrr....
 #
-memory_lock            meml    str     ml      ----K   memory lock above
-memory_unlock          memu    str     mu      ----K   memory unlock
-#plab_norm             pln     str     pn      -----   program label #1 to show string #2
-#label_on              smln    str     LO      -----   turn on soft labels
-#label_off             rmln    str     LF      -----   turn off soft labels
-#key_f11               kf11    str     F1      -----   F11 function key
-#key_f12               kf12    str     F2      -----   F12 function key
-#key_f13               kf13    str     F3      -----   F13 function key
-#key_f14               kf14    str     F4      -----   F14 function key
-#key_f15               kf15    str     F5      -----   F15 function key
-#key_f16               kf16    str     F6      -----   F16 function key
-#key_f17               kf17    str     F7      -----   F17 function key
-#key_f18               kf18    str     F8      -----   F18 function key
-#key_f19               kf19    str     F9      -----   F19 function key
-#key_f20               kf20    str     FA      -----   F20 function key
-#key_f21               kf21    str     FB      -----   F21 function key
-#key_f22               kf22    str     FC      -----   F22 function key
-#key_f23               kf23    str     FD      -----   F23 function key
-#key_f24               kf24    str     FE      -----   F24 function key
-#key_f25               kf25    str     FF      -----   F25 function key
-#key_f26               kf26    str     FG      -----   F26 function key
-#key_f27               kf27    str     FH      -----   F27 function key
-#key_f28               kf28    str     FI      -----   F28 function key
-#key_f29               kf29    str     FJ      -----   F29 function key
-#key_f30               kf30    str     FK      -----   F30 function key
-#key_f31               kf31    str     FL      -----   F31 function key
-#key_f32               kf32    str     FM      -----   F32 function key
-#key_f33               kf33    str     FN      -----   F33 function key
-#key_f34               kf34    str     FO      -----   F34 function key
-#key_f35               kf35    str     FP      -----   F35 function key
-#key_f36               kf36    str     FQ      -----   F36 function key
-#key_f37               kf37    str     FR      -----   F37 function key
-#key_f38               kf38    str     FS      -----   F38 function key
-#key_f39               kf39    str     FT      -----   F39 function key
-#key_f40               kf40    str     FU      -----   F40 function key
-#key_f41               kf41    str     FV      -----   F41 function key
-#key_f42               kf42    str     FW      -----   F42 function key
-#key_f43               kf43    str     FX      -----   F43 function key
-#key_f44               kf44    str     FY      -----   F44 function key
-#key_f45               kf45    str     FZ      -----   F45 function key
-#key_f46               kf46    str     Fa      -----   F46 function key
-#key_f47               kf47    str     Fb      -----   F47 function key
-#key_f48               kf48    str     Fc      -----   F48 function key
-#key_f49               kf49    str     Fd      -----   F49 function key
-#key_f50               kf50    str     Fe      -----   F50 function key
-#key_f51               kf51    str     Ff      -----   F51 function key
-#key_f52               kf52    str     Fg      -----   F52 function key
-#key_f53               kf53    str     Fh      -----   F53 function key
-#key_f54               kf54    str     Fi      -----   F54 function key
-#key_f55               kf55    str     Fj      -----   F55 function key
-#key_f56               kf56    str     Fk      -----   F56 function key
-#key_f57               kf57    str     Fl      -----   F57 function key
-#key_f58               kf58    str     Fm      -----   F58 function key
-#key_f59               kf59    str     Fn      -----   F59 function key
-#key_f60               kf60    str     Fo      -----   F60 function key
-#key_f61               kf61    str     Fp      -----   F61 function key
-#key_f62               kf62    str     Fq      -----   F62 function key
-#key_f63               kf63    str     Fr      -----   F63 function key
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
 #
 # IBM extensions
 #
 #
 # IBM extensions
 #
@@ -1046,146 +1048,94 @@ memory_unlock          memu    str     mu      ----K   memory unlock
 #
 # The box2 characters are the double-line versions of these forms graphics.
 #
 #
 # The box2 characters are the double-line versions of these forms graphics.
 #
-box_chars_1            box1    str     bx      ----K   box characters primary set
-#box_chars_2           box2    str     by      ----K   box characters secondary set
-#box_attr_1            batt1   str     Bx      ----K   attributes for box1
-#box_attr_2            batt2   str     By      ----K   attributes for box2
-#color_bg_0            colb0   str     d0      ----K   background color 0
-#color_bg_1            colb1   str     d1      ----K   background color 1
-#color_bg_2            colb2   str     d2      ----K   background color 2
-#color_bg_3            colb3   str     d3      ----K   background color 3
-#color_bg_4            colb4   str     d4      ----K   background color 4
-#color_bg_5            colb5   str     d5      ----K   background color 5
-#color_bg_6            colb6   str     d6      ----K   background color 6
-#color_bg_7            colb7   str     d7      ----K   background color 7
-#color_fg_0            colf0   str     c0      ----K   foreground color 0
-#color_fg_1            colf1   str     c1      ----K   foreground color 1
-#color_fg_2            colf2   str     c2      ----K   foreground color 2
-#color_fg_3            colf3   str     c3      ----K   foreground color 3
-#color_fg_4            colf4   str     c4      ----K   foreground color 4
-#color_fg_5            colf5   str     c5      ----K   foreground color 5
-#color_fg_6            colf6   str     c6      ----K   foreground color 6
-#color_fg_7            colf7   str     c7      ----K   foreground color 7
-#font_0                font0   str     f0      -----   select font 0
-#font_1                font1   str     f1      -----   select font 1
-#font_2                font2   str     f2      -----   select font 2
-#font_3                font3   str     f3      -----   select font 3
-#font_4                font4   str     f4      ----K   select font 4
-#font_5                font5   str     f5      ----K   select font 5
-#font_6                font6   str     f6      ----K   select font 6
-#font_7                font7   str     f7      ----K   select font 7
-#key_back_tab          kbtab   str     k0      -----   backtab key
-#key_do                kdo     str     ki      ----K   do request key
-#key_command           kcmd    str     kd      ----K   command-request key
-#key_command_pane      kcpn    str     kW      ----K   command-pane key
-#key_end               kend    str     kw      -----   end key
-#key_help              khlp    str     kq      -----   help key
-#key_newline           knl     str     nl      ----K   newline key
-#key_next_pane         knpn    str     kv      ----K   next-pane key
-#key_prev_cmd          kppn    str     kp      ----K   previous-command key
-#key_prev_pane         kppn    str     kV      ----K   previous-pane key
-#key_quit              kquit   str     kQ      ----K   quit key
-#key_select            ksel    str     kU      -----   select key
-#key_scroll_left       kscl    str     kz      ----K   scroll left
-#key_scroll_right      kscr    str     kZ      ----K   scroll right
-#key_tab               ktab    str     ko      ----K   tab key
-#key_smap_in1          kmpf1   str     Kv      ----K   special mapped key 1 input
-#key_smap_out1         kmpt1   str     KV      ----K   special mapped key 1 output
-#key_smap_in2          kmpf2   str     Kw      ----K   special mapped key 2 input
-#key_smap_out2         kmpt2   str     KW      ----K   special mapped key 2 output
-#key_smap_in3          kmpf3   str     Kx      ----K   special mapped key 3 input
-#key_smap_out3         kmpt3   str     KX      ----K   special mapped key 3 output
-#key_smap_in4          kmpf4   str     Ky      ----K   special mapped key 4 input
-#key_smap_out4         kmpt4   str     KY      ----K   special mapped key 4 output
-#key_smap_in5          kmpf5   str     Kz      ----K   special mapped key 5 input
-#key_smap_out5         kmpt5   str     KZ      ----K   special mapped key 5 output
-#appl_defined_str              apstr   str     za      ----K   application-defined string
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+#box_chars_2                   box2    str     by      -               -       ----K   box characters secondary set
+#box_attr_1                    batt1   str     Bx      -               -       ----K   attributes for box1
+#box_attr_2                    batt2   str     By      -               -       ----K   attributes for box2
+#color_bg_0                    colb0   str     d0      -               -       ----K   background color 0
+#color_bg_1                    colb1   str     d1      -               -       ----K   background color 1
+#color_bg_2                    colb2   str     d2      -               -       ----K   background color 2
+#color_bg_3                    colb3   str     d3      -               -       ----K   background color 3
+#color_bg_4                    colb4   str     d4      -               -       ----K   background color 4
+#color_bg_5                    colb5   str     d5      -               -       ----K   background color 5
+#color_bg_6                    colb6   str     d6      -               -       ----K   background color 6
+#color_bg_7                    colb7   str     d7      -               -       ----K   background color 7
+#color_fg_0                    colf0   str     c0      -               -       ----K   foreground color 0
+#color_fg_1                    colf1   str     c1      -               -       ----K   foreground color 1
+#color_fg_2                    colf2   str     c2      -               -       ----K   foreground color 2
+#color_fg_3                    colf3   str     c3      -               -       ----K   foreground color 3
+#color_fg_4                    colf4   str     c4      -               -       ----K   foreground color 4
+#color_fg_5                    colf5   str     c5      -               -       ----K   foreground color 5
+#color_fg_6                    colf6   str     c6      -               -       ----K   foreground color 6
+#color_fg_7                    colf7   str     c7      -               -       ----K   foreground color 7
+#font_0                                font0   str     f0      -               -       -----   select font 0
+#font_1                                font1   str     f1      -               -       -----   select font 1
+#font_2                                font2   str     f2      -               -       -----   select font 2
+#font_3                                font3   str     f3      -               -       -----   select font 3
+#font_4                                font4   str     f4      -               -       ----K   select font 4
+#font_5                                font5   str     f5      -               -       ----K   select font 5
+#font_6                                font6   str     f6      -               -       ----K   select font 6
+#font_7                                font7   str     f7      -               -       ----K   select font 7
+#key_back_tab                  kbtab   str     k0      -               -       -----   backtab key
+#key_do                                kdo     str     ki      -               -       ----K   do request key
+#key_command                   kcmd    str     kd      -               -       ----K   command-request key
+#key_command_pane              kcpn    str     kW      -               -       ----K   command-pane key
+#key_end                       kend    str     kw      -               -       -----   end key
+#key_help                      khlp    str     kq      -               -       -----   help key
+#key_newline                   knl     str     nl      -               -       ----K   newline key
+#key_next_pane                 knpn    str     kv      -               -       ----K   next-pane key
+#key_prev_cmd                  kppn    str     kp      -               -       ----K   previous-command key
+#key_prev_pane                 kppn    str     kV      -               -       ----K   previous-pane key
+#key_quit                      kquit   str     kQ      -               -       ----K   quit key
+#key_select                    ksel    str     kU      -               -       -----   select key
+#key_scroll_left               kscl    str     kz      -               -       ----K   scroll left
+#key_scroll_right              kscr    str     kZ      -               -       ----K   scroll right
+#key_tab                       ktab    str     ko      -               -       ----K   tab key
+#key_smap_in1                  kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+#key_smap_out1                 kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+#key_smap_in2                  kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+#key_smap_out2                 kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+#key_smap_in3                  kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+#key_smap_out3                 kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+#key_smap_in4                  kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+#key_smap_out4                 kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+#key_smap_in5                  kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+#key_smap_out5                 kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+#appl_defined_str              apstr   str     za      -               -       ----K   application-defined string
 # The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
 # the IBM manual pages, so the cap name strings are guesses.  The terminfo
 # names are almost certainly right, the termcap ones almost certainly wrong.
 # The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
 # the IBM manual pages, so the cap name strings are guesses.  The terminfo
 # names are almost certainly right, the termcap ones almost certainly wrong.
-#key_smap_in6          kmpf6   str     k!      ----K   special mapped key 6 input
-#key_smap_out6         kmpt6   str     K@      ----K   special mapped key 6 output
-#key_smap_in7          kmpf7   str     k#      ----K   special mapped key 7 input
-#key_smap_out7         kmpt7   str     K$      ----K   special mapped key 7 output
-#key_smap_in8          kmpf8   str     k%      ----K   special mapped key 8 input
-#key_smap_out8         kmpt8   str     K^      ----K   special mapped key 8 output
-#key_smap_in9          kmpf9   str     k&      ----K   special mapped key 9 input
-#key_smap_out9         kmpt9   str     K*      ----K   special mapped key 9 output
+#key_smap_in6                  kmpf6   str     k!      -               -       ----K   special mapped key 6 input
+#key_smap_out6                 kmpt6   str     K@      -               -       ----K   special mapped key 6 output
+#key_smap_in7                  kmpf7   str     k#      -               -       ----K   special mapped key 7 input
+#key_smap_out7                 kmpt7   str     K$      -               -       ----K   special mapped key 7 output
+#key_smap_in8                  kmpf8   str     k%      -               -       ----K   special mapped key 8 input
+#key_smap_out8                 kmpt8   str     K^      -               -       ----K   special mapped key 8 output
+#key_smap_in9                  kmpf9   str     k&      -               -       ----K   special mapped key 9 input
+#key_smap_out9                 kmpt9   str     K*      -               -       ----K   special mapped key 9 output
 # Undocumented capabilities end here
 # Undocumented capabilities end here
-#key_sf1               ksf1    str     S1      ----K   special function key 1
-#key_sf2               ksf2    str     S2      ----K   special function key 2
-#key_sf3               ksf3    str     S3      ----K   special function key 3
-#key_sf4               ksf4    str     S4      ----K   special function key 4
-#key_sf5               ksf5    str     S5      ----K   special function key 5
-#key_sf6               ksf6    str     S6      ----K   special function key 6
-#key_sf7               ksf7    str     S7      ----K   special function key 7
-#key_sf8               ksf8    str     S8      ----K   special function key 8
-#key_sf9               ksf9    str     S9      ----K   special function key 9
-#key_sf10              ksf10   str     SA      ----K   special function key 10
-#key_f11               kf11    str     k<      -----   function key 11
-#key_f12               kf12    str     k>      -----   function key 12
-# The key_f13 through key_f64 capabilities aren't described in
-# the IBM manual pages, so the cap name strings are guesses.  The terminfo
-# names are almost certainly right, the termcap ones certainly wrong.
-#key_f13               kf13    str     k+      -----   function key 13
-#key_f14               kf14    str     k+      -----   function key 14
-#key_f15               kf15    str     k+      -----   function key 15
-#key_f16               kf16    str     k+      -----   function key 16
-#key_f17               kf17    str     k+      -----   function key 17
-#key_f18               kf18    str     k+      -----   function key 18
-#key_f19               kf19    str     k+      -----   function key 19
-#key_f20               kf20    str     k+      -----   function key 20
-#key_f21               kf21    str     k+      -----   function key 21
-#key_f22               kf22    str     k+      -----   function key 22
-#key_f23               kf23    str     k+      -----   function key 23
-#key_f24               kf24    str     k+      -----   function key 24
-#key_f25               kf25    str     k+      -----   function key 25
-#key_f26               kf26    str     k+      -----   function key 26
-#key_f27               kf26    str     k+      -----   function key 26
-#key_f28               kf28    str     k+      -----   function key 28
-#key_f29               kf29    str     k+      -----   function key 29
-#key_f30               kf30    str     k+      -----   function key 30
-#key_f31               kf31    str     k+      -----   function key 31
-#key_f32               kf31    str     k+      -----   function key 32
-#key_f33               kf33    str     k+      -----   function key 33
-#key_f34               kf34    str     k+      -----   function key 34
-#key_f35               kf35    str     k+      -----   function key 35
-#key_f36               kf36    str     k+      -----   function key 36
-#key_f37               kf37    str     k+      -----   function key 37
-#key_f38               kf38    str     k+      -----   function key 38
-#key_f39               kf39    str     k+      -----   function key 39
-#key_f40               kf40    str     k+      -----   function key 40
-#key_f41               kf41    str     k+      -----   function key 41
-#key_f42               kf42    str     k+      -----   function key 42
-#key_f43               kf43    str     k+      -----   function key 43
-#key_f44               kf44    str     k+      -----   function key 44
-#key_f45               kf45    str     k+      -----   function key 45
-#key_f46               kf46    str     k+      -----   function key 46
-#key_f47               kf47    str     k+      -----   function key 47
-#key_f48               kf48    str     k+      -----   function key 48
-#key_f49               kf49    str     k+      -----   function key 49
-#key_f50               kf50    str     k+      -----   function key 50
-#key_f51               kf51    str     k+      -----   function key 51
-#key_f52               kf52    str     k+      -----   function key 52
-#key_f53               kf53    str     k+      -----   function key 53
-#key_f54               kf54    str     k+      -----   function key 54
-#key_f55               kf55    str     k+      -----   function key 55
-#key_f56               kf56    str     k+      -----   function key 56
-#key_f57               kf57    str     k+      -----   function key 57
-#key_f58               kf58    str     k+      -----   function key 58
-#key_f59               kf59    str     k+      -----   function key 59
-#key_f60               kf60    str     k+      -----   function key 60
-#key_f61               kf61    str     k+      -----   function key 61
-#key_f62               kf62    str     k+      -----   function key 62
-#key_f63               kf63    str     k+      -----   function key 63
+#key_sf1                       ksf1    str     S1      -               -       ----K   special function key 1
+#key_sf2                       ksf2    str     S2      -               -       ----K   special function key 2
+#key_sf3                       ksf3    str     S3      -               -       ----K   special function key 3
+#key_sf4                       ksf4    str     S4      -               -       ----K   special function key 4
+#key_sf5                       ksf5    str     S5      -               -       ----K   special function key 5
+#key_sf6                       ksf6    str     S6      -               -       ----K   special function key 6
+#key_sf7                       ksf7    str     S7      -               -       ----K   special function key 7
+#key_sf8                       ksf8    str     S8      -               -       ----K   special function key 8
+#key_sf9                       ksf9    str     S9      -               -       ----K   special function key 9
+#key_sf10                      ksf10   str     SA      -               -       ----K   special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11                       kf11    str     k<      -               -       -----   function key 11
+#key_f12                       kf12    str     k>      -               -       -----   function key 12
 # Undocumented capabilities end here.
 # Undocumented capabilities end here.
-#key_action            kact    str     kJ      ----K   sent by action key
+#key_action                    kact    str     kJ      -               -       ----K   sent by action key
 # The IBM docs say these capabilities are for table-drawing, and are
 # valid only for aixterm descriptions.
 # The IBM docs say these capabilities are for table-drawing, and are
 # valid only for aixterm descriptions.
-#enter_topline_mode    topl    str     tp      ----K   start top-line mode
-#enter_bottom_mode     btml    str     bm      ----K   start bottom-line mode
-#enter_rvert_mode      rvert   str     rv      ----K   start right-vertical mode
-#enter_lvert_mode      lvert   str     lv      ----K   start left-vertical mode
+#enter_topline_mode            topl    str     tp      -               -       ----K   start top-line mode
+#enter_bottom_mode             btml    str     bm      -               -       ----K   start bottom-line mode
+#enter_rvert_mode              rvert   str     rv      -               -       ----K   start right-vertical mode
+#enter_lvert_mode              lvert   str     lv      -               -       ----K   start left-vertical mode
 #
 #############################################################################
 #
 #
 #############################################################################
 #
diff --git a/include/Caps.aix4 b/include/Caps.aix4
new file mode 100644 (file)
index 0000000..3f94628
--- /dev/null
@@ -0,0 +1,1255 @@
+##############################################################################
+# Copyright (c) 2001 Free Software 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
+#
+# $Id: Caps.aix4,v 1.6 2002/07/07 00:00:32 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with AIX 4.x's terminfo.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap 
+# compatibility hack.  It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+#           translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability.  This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs).  The codes read as follows:
+#      B = mentioned in the BSD man page for 4.4BSD curses
+#      C = used by the 4.4BSD curses library
+#      G = mentioned in the documentation for GNU termcap
+#      E = used by GNU Emacs
+#      K = remove this terminfo capability when translating to standard format
+# The important codes are C and E.  A cap with C or E should be preserved in
+# translation if possible.  The problem is that preserving all such caps may
+# lead to some termcap translations being too long.  The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to.  The name IGNORE means it
+#           should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future).  If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it.  This is appropriate if the capability has the same meaning
+# as an already-supported one.  The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table.  You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad.  It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBBooleans  name    Code\fR
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   cannot print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding will not work, xon/xoff required
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer will not echo on screen
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+col_addr_glitch                        xhpa    bool    YA      -       -       -----   only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode          crxm    bool    YB      -       -       -----   using cr turns off micro mode
+has_print_wheel                        daisy   bool    YC      -       -       -----   printer needs operator to change character set
+row_addr_glitch                        xvpa    bool    YD      -       -       -----   only positive motion for vpa/mvpa caps
+semi_auto_right_margin         sam     bool    YE      -       -       -----   printing in last column causes cr
+cpi_changes_res                        cpix    bool    YF      -       -       -----   changing character pitch changes resolution
+lpi_changes_res                        lpix    bool    YG      -       -       -----   changing line pitch changes resolution
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+max_attributes                 ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+maximum_windows                        wnum    num     MW      -       -       -----   maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that cannot be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page.  They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+buffer_capacity                        bufsz   num     Ya      -       -       -----   numbers of bytes buffered before printing
+dot_vert_spacing               spinv   num     Yb      -       -       -----   spacing of pins vertically in pins per inch
+dot_horz_spacing               spinh   num     Yc      -       -       -----   spacing of dots horizontally in dots per inch
+max_micro_address              maddr   num     Yd      -       -       -----   maximum value in micro_..._address
+max_micro_jump                 mjump   num     Ye      -       -       -----   maximum value in parm_..._micro
+micro_col_size                 mcs     num     Yf      -       -       -----   character step size when in micro mode
+micro_line_size                        mls     num     Yg      -       -       -----   line step size when in micro mode
+number_of_pins                 npins   num     Yh      -       -       -----   numbers of pins in print-head
+output_res_char                        orc     num     Yi      -       -       -----   horizontal resolution in units per line
+output_res_line                        orl     num     Yj      -       -       -----   vertical resolution in units per line
+output_res_horz_inch           orhi    num     Yk      -       -       -----   horizontal resolution in units per inch
+output_res_vert_inch           orvi    num     Yl      -       -       -----   vertical resolution in units per inch
+print_rate                     cps     num     Ym      -       -       -----   print rate in characters per second
+wide_char_size                 widcs   num     Yn      -       -       -----   character step size when in double wide mode
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+bit_image_entwining            bitwin  num     Yo      -       -       -----   number of passes for each bit-image row
+bit_image_type                 bitype  num     Yp      -       -       -----   type of bit-image device
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE    
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+box_chars_2                    box2    str     by      -               -       ----K   box characters secondary set
+box_attr_1                     batt1   str     Bx      -               -       ----K   attributes for box1
+box_attr_2                     batt2   str     By      -               -       ----K   attributes for box2
+color_bg_0                     colb0   str     d0      -               -       ----K   background color 0
+color_bg_1                     colb1   str     d1      -               -       ----K   background color 1
+color_bg_2                     colb2   str     d2      -               -       ----K   background color 2
+color_bg_3                     colb3   str     d3      -               -       ----K   background color 3
+color_bg_4                     colb4   str     d4      -               -       ----K   background color 4
+color_bg_5                     colb5   str     d5      -               -       ----K   background color 5
+color_bg_6                     colb6   str     d6      -               -       ----K   background color 6
+color_bg_7                     colb7   str     d7      -               -       ----K   background color 7
+color_fg_0                     colf0   str     c0      -               -       ----K   foreground color 0
+color_fg_1                     colf1   str     c1      -               -       ----K   foreground color 1
+color_fg_2                     colf2   str     c2      -               -       ----K   foreground color 2
+color_fg_3                     colf3   str     c3      -               -       ----K   foreground color 3
+color_fg_4                     colf4   str     c4      -               -       ----K   foreground color 4
+color_fg_5                     colf5   str     c5      -               -       ----K   foreground color 5
+color_fg_6                     colf6   str     c6      -               -       ----K   foreground color 6
+color_fg_7                     colf7   str     c7      -               -       ----K   foreground color 7
+font_0                         font0   str     f0      -               -       ----K   select font 0
+font_1                         font1   str     f1      -               -       ----K   select font 1
+font_2                         font2   str     f2      -               -       ----K   select font 2
+font_3                         font3   str     f3      -               -       ----K   select font 3
+font_4                         font4   str     f4      -               -       ----K   select font 4
+font_5                         font5   str     f5      -               -       ----K   select font 5
+font_6                         font6   str     f6      -               -       ----K   select font 6
+font_7                         font7   str     f7      -               -       ----K   select font 7
+key_back_tab                   kbtab   str     k0      -               -       ----K   backtab key
+key_do                         kdo     str     ki      -               -       ----K   do request key
+key_command                    kcmd    str     kd      -               -       ----K   command-request key
+key_command_pane               kcpn    str     kW      -               -       ----K   command-pane key
+key_end                                kend    str     kw      KEY_END         0550    -----   end key
+key_help                       khlp    str     kq      -               -       -----   help key
+key_newline                    knl     str     nl      -               -       ----K   newline key
+key_next_pane                  knpn    str     kv      -               -       ----K   next-pane key
+key_prev_cmd                   kppn    str     kp      -               -       ----K   previous-command key
+key_prev_pane                  kppn    str     kV      -               -       ----K   previous-pane key
+key_quit                       kquit   str     kQ      -               -       ----K   quit key
+key_select_aix                 ksel    str     kU      -               -       -----   select key
+key_scroll_left                        kscl    str     kz      -               -       ----K   scroll left
+key_scroll_right               kscr    str     kZ      -               -       ----K   scroll right
+key_tab                                ktab    str     ko      -               -       ----K   tab key
+key_smap_in1                   kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+key_smap_out1                  kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+key_smap_in2                   kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+key_smap_out2                  kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+key_smap_in3                   kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+key_smap_out3                  kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+key_smap_in4                   kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+key_smap_out4                  kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+key_smap_in5                   kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+key_smap_out5                  kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+appl_defined_str               apstr   str     za      -               -       ----K   application-defined string
+key_smap_in6                   kmpf6   str     kr      -               -       ----K   special mapped key 6 input
+key_smap_out6                  kmpt6   str     KR      -               -       ----K   special mapped key 6 output
+key_smap_in7                   kmpf7   str     ks      -               -       ----K   special mapped key 7 input
+key_smap_out7                  kmpt7   str     KS      -               -       ----K   special mapped key 7 output
+key_smap_in8                   kmpf8   str     kt      -               -       ----K   special mapped key 8 input
+key_smap_out8                  kmpt8   str     KT      -               -       ----K   special mapped key 8 output
+key_smap_in9                   kmpf9   str     ku      -               -       ----K   special mapped key 9 input
+key_smap_out9                  kmpt9   str     KU      -               -       ----K   special mapped key 9 output
+key_sf1                                ksf1    str     S1      -               -       ----K   special function key 1
+key_sf2                                ksf2    str     S2      -               -       ----K   special function key 2
+key_sf3                                ksf3    str     S3      -               -       ----K   special function key 3
+key_sf4                                ksf4    str     S4      -               -       ----K   special function key 4
+key_sf5                                ksf5    str     S5      -               -       ----K   special function key 5
+key_sf6                                ksf6    str     S6      -               -       ----K   special function key 6
+key_sf7                                ksf7    str     S7      -               -       ----K   special function key 7
+key_sf8                                ksf8    str     S8      -               -       ----K   special function key 8
+key_sf9                                ksf9    str     S9      -               -       ----K   special function key 9
+key_sf10                       ksf10   str     S0      -               -       ----K   special function key 10
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+key_action                     kact    str     kJ      -               -       ----K   sent by action key
+
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+enter_topline_mode             topl    str     tp      -               -       ----K   start top-line mode
+enter_bottom_mode              btml    str     bm      -               -       ----K   start bottom-line mode
+enter_rvert_mode               rvert   str     rv      -               -       ----K   start right-vertical mode
+enter_lvert_mode               lvert   str     lv      -               -       ----K   start left-vertical mode
+#
+# SVr4 capabilities resume here.  Note that key_end is in the IBM-extensions.
+#
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+key_btab                       kcbt    str     kB      KEY_BTAB        0541    -----   back-tab key
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+xon_character                  xonc    str     XN      -               -       -----   XON character
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+#key_command                   kcmd    str     @4      KEY_COMMAND     0545    -----   command key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+#key_end                       kend    str     @7      KEY_END         0550    -----   end key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+#key_help                      khlp    str     %1      KEY_HELP        0553    -----   help key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+label_format                   fln     str     Lf      -               -       -----   label format
+set_clock                      sclk    str     SC      -               -       -----   set clock, #1 hrs #2 mins #3 secs
+display_clock                  dclk    str     DK      -               -       -----   display clock
+remove_clock                   rmclk   str     RC      -               -       -----   remove clock
+create_window                  cwin    str     CW      -               -       -----   define a window #1 from #2,#3 to #4,#5
+goto_window                    wingo   str     WG      -               -       -----   go to window #1
+hangup                         hup     str     HU      -               -       -----   hang-up phone
+dial_phone                     dial    str     DI      -               -       -----   dial number #1
+quick_dial                     qdial   str     QD      -               -       -----   dial number #1 without checking
+tone                           tone    str     TO      -               -       -----   select touch tone dialing
+pulse                          pulse   str     PU      -               -       -----   select pulse dialing
+flash_hook                     hook    str     fh      -               -       -----   flash switch hook
+fixed_pause                    pause   str     PA      -               -       -----   pause for 2-3 seconds
+wait_tone                      wait    str     WA      -               -       -----   wait for dial-tone
+user0                          u0      str     u0      -               -       -----   User string #0
+user1                          u1      str     u1      -               -       -----   User string #1
+user2                          u2      str     u2      -               -       -----   User string #2
+user3                          u3      str     u3      -               -       -----   User string #3
+user4                          u4      str     u4      -               -       -----   User string #4
+user5                          u5      str     u5      -               -       -----   User string #5
+user6                          u6      str     u6      -               -       -----   User string #6
+user7                          u7      str     u7      -               -       -----   User string #7
+user8                          u8      str     u8      -               -       -----   User string #8
+user9                          u9      str     u9      -               -       -----   User string #9
+#
+# SVr4 added these capabilities to support color
+#
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
+#
+# SVr4 added these capabilities to support printers
+#
+change_char_pitch              cpi     str     ZA      -               -       -----   Change number of characters per inch to #1
+change_line_pitch              lpi     str     ZB      -               -       -----   Change number of lines per inch to #1
+change_res_horz                        chr     str     ZC      -               -       -----   Change horizontal resolution to #1
+change_res_vert                        cvr     str     ZD      -               -       -----   Change vertical resolution to #1
+define_char                    defc    str     ZE      -               -       -----   Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode          swidm   str     ZF      -               -       -----   Enter double-wide mode
+enter_draft_quality            sdrfq   str     ZG      -               -       -----   Enter draft-quality mode
+enter_italics_mode             sitm    str     ZH      -               -       -----   Enter italic mode
+enter_leftward_mode            slm     str     ZI      -               -       -----   Start leftward carriage motion
+enter_micro_mode               smicm   str     ZJ      -               -       -----   Start micro-motion mode
+enter_near_letter_quality      snlq    str     ZK      -               -       -----   Enter NLQ mode
+enter_normal_quality           snrmq   str     ZL      -               -       -----   Enter normal-quality mode
+enter_shadow_mode              sshm    str     ZM      -               -       -----   Enter shadow-print mode
+enter_subscript_mode           ssubm   str     ZN      -               -       -----   Enter subscript mode
+enter_superscript_mode         ssupm   str     ZO      -               -       -----   Enter superscript mode
+enter_upward_mode              sum     str     ZP      -               -       -----   Start upward carriage motion
+exit_doublewide_mode           rwidm   str     ZQ      -               -       -----   End double-wide mode
+exit_italics_mode              ritm    str     ZR      -               -       -----   End italic mode
+exit_leftward_mode             rlm     str     ZS      -               -       -----   End left-motion mode
+exit_micro_mode                        rmicm   str     ZT      -               -       -----   End micro-motion mode
+exit_shadow_mode               rshm    str     ZU      -               -       -----   End shadow-print mode
+exit_subscript_mode            rsubm   str     ZV      -               -       -----   End subscript mode
+exit_superscript_mode          rsupm   str     ZW      -               -       -----   End superscript mode
+exit_upward_mode               rum     str     ZX      -               -       -----   End reverse character motion
+micro_column_address           mhpa    str     ZY      -               -       -----   Like column_address in micro mode
+micro_down                     mcud1   str     ZZ      -               -       -----   Like cursor_down in micro mode
+micro_left                     mcub1   str     Za      -               -       -----   Like cursor_left in micro mode
+micro_right                    mcuf1   str     Zb      -               -       -----   Like cursor_right in micro mode
+micro_row_address              mvpa    str     Zc      -               -       -----   Like row_address #1 in micro mode
+micro_up                       mcuu1   str     Zd      -               -       -----   Like cursor_up in micro mode
+order_of_pins                  porder  str     Ze      -               -       -----   Match software bits to print-head pins
+parm_down_micro                        mcud    str     Zf      -               -       -----   Like parm_down_cursor in micro mode
+parm_left_micro                        mcub    str     Zg      -               -       -----   Like parm_left_cursor in micro mode
+parm_right_micro               mcuf    str     Zh      -               -       -----   Like parm_right_cursor in micro mode
+parm_up_micro                  mcuu    str     Zi      -               -       -----   Like parm_up_cursor in micro mode
+select_char_set                        scs     str     Zj      -               -       -----   Select character set, #1
+set_bottom_margin              smgb    str     Zk      -               -       -----   Set bottom margin at current line
+set_bottom_margin_parm         smgbp   str     Zl      -               -       -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm           smglp   str     Zm      -               -       -----   Set left (right) margin at column #1
+set_right_margin_parm          smgrp   str     Zn      -               -       -----   Set right margin at column #1
+set_top_margin                 smgt    str     Zo      -               -       -----   Set top margin at current line
+set_top_margin_parm            smgtp   str     Zp      -               -       -----   Set top (bottom) margin at row #1
+start_bit_image                        sbim    str     Zq      -               -       -----   Start printing bit image graphics
+start_char_set_def             scsd    str     Zr      -               -       -----   Start character set definition #1, with #2 characters in the set
+stop_bit_image                 rbim    str     Zs      -               -       -----   Stop printing bit image graphics
+stop_char_set_def              rcsd    str     Zt      -               -       -----   End definition of character set #1
+subscript_characters           subcs   str     Zu      -               -       -----   List of subscriptable characters
+superscript_characters         supcs   str     Zv      -               -       -----   List of superscriptable characters
+these_cause_cr                 docr    str     Zw      -               -       -----   Printing any of these characters causes CR
+zero_motion                    zerom   str     Zx      -               -       -----   No motion for subsequent character
+#%.TE
+#%.ad
+#%
+#%The following string capabilities are present in the SVr4.0 term structure,
+#%but were originally not documented in the man page.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw18.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+char_set_names                 csnm    str     Zy      -               -       -----   Produce #1'th item from list of character set names
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+pkey_plab                      pfxl    str     xl      -               -       -----   Program function key #1 to type string #2 and show string #3
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+set_lr_margin                  smglr   str     ML      -               -       -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_tb_margin                  smgtb   str     MT      -               -       -----   Sets both top and bottom margins to #1, #2
+bit_image_repeat               birep   str     Xy      -               -       -----   Repeat bit image cell #1 #2 times
+bit_image_newline              binel   str     Zz      -               -       -----   Move to next row of the bit image
+bit_image_carriage_return      bicr    str     Yv      -               -       -----   Move to beginning of same row
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+define_bit_image_region                defbi   str     Yx      -               -       -----   Define rectangualar bit image region
+end_bit_image_region           endbi   str     Yy      -               -       -----   End a bit-image region
+set_color_band         setcolor        str     Yz      -               -       -----   Change to ribbon color #1
+set_page_length                        slines  str     YZ      -               -       -----   Set page length to #1 lines
+#
+# SVr4 added these capabilities for direct PC-clone support
+#
+display_pc_char                        dispc   str     S1      -               -       -----   Display PC character #1
+enter_pc_charset_mode          smpch   str     S2      -               -       -----   Enter PC character display mode
+exit_pc_charset_mode           rmpch   str     S3      -               -       -----   Exit PC character display mode
+enter_scancode_mode            smsc    str     S4      -               -       -----   Enter PC scancode mode
+exit_scancode_mode             rmsc    str     S5      -               -       -----   Exit PC scancode mode
+pc_term_options                        pctrm   str     S6      -               -       -----   PC terminal options
+scancode_escape                        scesc   str     S7      -               -       -----   Escape for scancode emulation
+alt_scancode_esc               scesa   str     S8      -               -       -----   Alternate escape for scancode emulation
+#%.TE
+#%.ad
+#%
+#%.in .8i
+#%The XSI Curses standard added these.  They are some post-4.1 
+#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+#%The \fBncurses\fR termcap names for them are invented; according to the
+#%XSI Curses standard, they have no termcap names.  If your compiled terminfo
+#%entries use these, they may not be binary-compatible with System V terminfo
+#%entries after SVr4.1; beware!
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+enter_horizontal_hl_mode       ehhlm   str     Xh      -               -       -----   Enter horizontal highlight mode
+enter_left_hl_mode             elhlm   str     Xl      -               -       -----   Enter left highlight mode
+enter_low_hl_mode              elohlm  str     Xo      -               -       -----   Enter low highlight mode
+enter_right_hl_mode            erhlm   str     Xr      -               -       -----   Enter right highlight mode
+enter_top_hl_mode              ethlm   str     Xt      -               -       -----   Enter top highlight mode
+enter_vertical_hl_mode         evhlm   str     Xv      -               -       -----   Enter vertical highlight mode
+set_a_attributes               sgr1    str     sA      -               -       -----   Define second set of video attributes #1-#6
+set_pglen_inch                 slength str     sL      -               -       -----   YI Set page length to #1 hundredth of an inch
+#%.TE
+#%.ad
+#
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually!  In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents.  The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2.  Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
+#
+# Obsolete termcap capabilities.  Some are used for termcap translation.  The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
+#
+# GNU termcap library extensions.  The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file.  The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
+#
+# GNU termcap *does* include the following extended capability,  Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer.  Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code.  They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both.  This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code.  It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text.  All lines above the cursor's current line become locked in place on
+# the screen.  Then enter data normally.  When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data.  Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check.  The descriptions are guesses from what was
+# in the mytinfo tables. 
+#
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap  IBM ASCII       description             ACS             ASCII
+# ---  -----------     --------------------    -------------   ------
+# G1   191 \277 M-?    single upper right      ACS_URCORNER
+# G2   218 \332 M-Z    single upper left       ACS_ULCORNER
+# G3   192 \300 M-@    single lower left       ACS_LLCORNER
+# G4   217 \331 M-Y    single lower right      ACS_LRCORNER
+# G5   187 \273 M-;    double upper right
+# G6   201 \311 M-I    double upper left
+# G7   200 \310 M-H    double lower left
+# G8   188 \274 M-<    double lower right
+# GC   197 \305 M-E    single intersection     ACS_PLUS        _ _
+# GD   194 \302 M-B    single down-tick        ACS_TTEE         |
+# GH   196 \304 M-D    single horizontal line  ACS_HLINE
+# GL   180 \264 M-4    single left tick        ACS_RTEE        -|
+# GR   195 \303 M-C    single right tick       ACS_LTEE        |-
+# GU   193 \301 M-A    single up tick          ACS_BTEE        _|_
+# GV   179 \263 M-3    single vertical line    ACS_VLINE
+# Gc   206 \316 M-N    double intersection
+# Gd   203 \313 M-K    double down tick
+# Gh   205 \315 M-M    double horizontal line
+# Gl   204 \204 M-L    double left tick
+# Gr   185 \271 M-9    double right tick
+# Gu   202 \312 M-J    double up tick
+# Gv   186 \272 M-:    double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down).  We don't want to do normal pad 
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics.  There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments.  What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set.  They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files.  Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different.  Grrr....
+#
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files.  We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias       sb      sr      BSD     scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias       BO      mr      AT&T    enter_reverse_mode
+capalias       CI      vi      AT&T    cursor_invisible
+capalias       CV      ve      AT&T    cursor_normal
+capalias       DS      mh      AT&T    enter_dim_mode
+#capalias      EE      me      AT&T    exit_attribute_mode     
+capalias       FE      LF      AT&T    label_on
+capalias       FL      LO      AT&T    label_off
+capalias       XS      mk      AT&T    enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in 
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias       EE      mh      XENIX   exit_attribute_mode     
+capalias       GE      ae      XENIX   exit_alt_charset_mode
+capalias       GS      as      XENIX   enter_alt_charset_mode
+capalias       CF      vi      XENIX   cursor_invis
+capalias       CO      ve      XENIX   cursor_normal
+capalias       EN      @7      XENIX   key_end
+capalias       HM      kh      XENIX   key_home
+capalias       LD      kL      XENIX   key_dl
+capalias       PD      kN      XENIX   key_npage
+capalias       PN      po      XENIX   prtr_off
+capalias       PS      pf      XENIX   prtr_on
+capalias       PU      kP      XENIX   key_ppage
+capalias       RT      @8      XENIX   kent
+capalias       UP      ku      XENIX   kcuu1
+capalias       G6      IGNORE  XENIX   double-ACS_ULCORNER
+capalias       G7      IGNORE  XENIX   double-ACS_LLCORNER
+capalias       G5      IGNORE  XENIX   double-ACS_URCORNER
+capalias       G8      IGNORE  XENIX   double-ACS_LRCORNER
+capalias       Gr      IGNORE  XENIX   double-ACS_LTEE
+capalias       Gr      IGNORE  XENIX   double-ACS_RTEE
+capalias       Gu      IGNORE  XENIX   double-ACS_BTEE
+capalias       Gd      IGNORE  XENIX   double ACS_TTEE
+capalias       Gh      IGNORE  XENIX   double-ACS_HLINE
+capalias       Gv      IGNORE  XENIX   double-ACS_VLINE
+capalias       Gc      IGNORE  XENIX   double-ACS_PLUS
+capalias       GG      IGNORE  XENIX   acs-glitch
+#
+# IBM extensions:
+#
+capalias       kq      %1      IBM     key_help
+#
+# Iris extensions:
+#
+capalias       HS      mh      IRIS    enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias       KA      k;      Tek     key_f10
+capalias       KB      F1      Tek     key_f11
+capalias       KC      F2      Tek     key_f12
+capalias       KD      F3      Tek     key_f13
+capalias       KE      F4      Tek     key_f14
+capalias       KF      F5      Tek     key_f15
+capalias       BC      Sb      Tek     set_background
+capalias       FC      Sf      Tek     set_foreground
+#
+# There are also the following:
+#
+#      XENIX   XENIX variable name     name clash with terminfo?
+#      -----   -------------------     -------------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window
+#      HP      ??
+#      LF      key_linefeed            label_off
+#      NU      key_next_unlocked_cell
+#      PL      ??
+#      PR      ??
+#      RC      key_recalc              remove_clock
+#      RF      key_toggle_ref          req_for_input
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias      font0   s0ds    IBM     set0_des_seq
+infoalias      font1   s1ds    IBM     set1_des_seq
+infoalias      font2   s2ds    IBM     set2_des_seq
+infoalias      font3   s3ds    IBM     set3_des_seq
+infoalias      kbtab   kcbt    IBM     key_backtab
+infoalias      ksel    kslt    IBM     key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/include/Caps.hpux11 b/include/Caps.hpux11
new file mode 100644 (file)
index 0000000..449ffe1
--- /dev/null
@@ -0,0 +1,1275 @@
+##############################################################################
+# Copyright (c) 2002 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas Dickey
+#
+# $Id: Caps.hpux11,v 1.2 2002/07/07 00:11:56 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with AIX 4.x's terminfo.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap 
+# compatibility hack.  It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+#           translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability.  This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs).  The codes read as follows:
+#      B = mentioned in the BSD man page for 4.4BSD curses
+#      C = used by the 4.4BSD curses library
+#      G = mentioned in the documentation for GNU termcap
+#      E = used by GNU Emacs
+#      K = remove this terminfo capability when translating to standard format
+# The important codes are C and E.  A cap with C or E should be preserved in
+# translation if possible.  The problem is that preserving all such caps may
+# lead to some termcap translations being too long.  The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to.  The name IGNORE means it
+#           should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future).  If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it.  This is appropriate if the capability has the same meaning
+# as an already-supported one.  The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table.  You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad.  It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBBooleans  name    Code\fR
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   cannot print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding will not work, xon/xoff required
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer will not echo on screen
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+col_addr_glitch                        xhpa    bool    YA      -       -       -----   only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode          crxm    bool    YB      -       -       -----   using cr turns off micro mode
+has_print_wheel                        daisy   bool    YC      -       -       -----   printer needs operator to change character set
+row_addr_glitch                        xvpa    bool    YD      -       -       -----   only positive motion for vpa/mvpa caps
+semi_auto_right_margin         sam     bool    YE      -       -       -----   printing in last column causes cr
+cpi_changes_res                        cpix    bool    YF      -       -       -----   changing character pitch changes resolution
+lpi_changes_res                        lpix    bool    YG      -       -       -----   changing line pitch changes resolution
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+max_attributes                 ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+maximum_windows                        wnum    num     MW      -       -       -----   maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that cannot be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page.  They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+buffer_capacity                        bufsz   num     Ya      -       -       -----   numbers of bytes buffered before printing
+dot_vert_spacing               spinv   num     Yb      -       -       -----   spacing of pins vertically in pins per inch
+dot_horz_spacing               spinh   num     Yc      -       -       -----   spacing of dots horizontally in dots per inch
+max_micro_address              maddr   num     Yd      -       -       -----   maximum value in micro_..._address
+max_micro_jump                 mjump   num     Ye      -       -       -----   maximum value in parm_..._micro
+micro_col_size                 mcs     num     Yf      -       -       -----   character step size when in micro mode
+micro_line_size                        mls     num     Yg      -       -       -----   line step size when in micro mode
+number_of_pins                 npins   num     Yh      -       -       -----   numbers of pins in print-head
+output_res_char                        orc     num     Yi      -       -       -----   horizontal resolution in units per line
+output_res_line                        orl     num     Yj      -       -       -----   vertical resolution in units per line
+output_res_horz_inch           orhi    num     Yk      -       -       -----   horizontal resolution in units per inch
+output_res_vert_inch           orvi    num     Yl      -       -       -----   vertical resolution in units per inch
+print_rate                     cps     num     Ym      -       -       -----   print rate in characters per second
+wide_char_size                 widcs   num     Yn      -       -       -----   character step size when in double wide mode
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+bit_image_entwining            bitwin  num     Yo      -       -       -----   number of passes for each bit-image row
+bit_image_type                 bitype  num     Yp      -       -       -----   type of bit-image device
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+# HPUX defines these if __HP_CURSES_COMPAT is defined:
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#
+#
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+key_btab                       kcbt    str     kB      KEY_BTAB        0541    -----   back-tab key
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+xon_character                  xonc    str     XN      -               -       -----   XON character
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+key_command                    kcmd    str     @4      KEY_COMMAND     0545    -----   command key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+key_end                                kend    str     @7      KEY_END         0550    -----   end key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+key_help                       khlp    str     %1      KEY_HELP        0553    -----   help key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+label_format                   fln     str     Lf      -               -       -----   label format
+set_clock                      sclk    str     SC      -               -       -----   set clock, #1 hrs #2 mins #3 secs
+display_clock                  dclk    str     DK      -               -       -----   display clock
+remove_clock                   rmclk   str     RC      -               -       -----   remove clock
+create_window                  cwin    str     CW      -               -       -----   define a window #1 from #2,#3 to #4,#5
+goto_window                    wingo   str     WG      -               -       -----   go to window #1
+hangup                         hup     str     HU      -               -       -----   hang-up phone
+dial_phone                     dial    str     DI      -               -       -----   dial number #1
+quick_dial                     qdial   str     QD      -               -       -----   dial number #1 without checking
+tone                           tone    str     TO      -               -       -----   select touch tone dialing
+pulse                          pulse   str     PU      -               -       -----   select pulse dialing
+flash_hook                     hook    str     fh      -               -       -----   flash switch hook
+fixed_pause                    pause   str     PA      -               -       -----   pause for 2-3 seconds
+wait_tone                      wait    str     WA      -               -       -----   wait for dial-tone
+user0                          u0      str     u0      -               -       -----   User string #0
+user1                          u1      str     u1      -               -       -----   User string #1
+user2                          u2      str     u2      -               -       -----   User string #2
+user3                          u3      str     u3      -               -       -----   User string #3
+user4                          u4      str     u4      -               -       -----   User string #4
+user5                          u5      str     u5      -               -       -----   User string #5
+user6                          u6      str     u6      -               -       -----   User string #6
+user7                          u7      str     u7      -               -       -----   User string #7
+user8                          u8      str     u8      -               -       -----   User string #8
+user9                          u9      str     u9      -               -       -----   User string #9
+#
+# SVr4 added these capabilities to support color
+#
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
+#
+# SVr4 added these capabilities to support printers
+#
+change_char_pitch              cpi     str     ZA      -               -       -----   Change number of characters per inch to #1
+change_line_pitch              lpi     str     ZB      -               -       -----   Change number of lines per inch to #1
+change_res_horz                        chr     str     ZC      -               -       -----   Change horizontal resolution to #1
+change_res_vert                        cvr     str     ZD      -               -       -----   Change vertical resolution to #1
+define_char                    defc    str     ZE      -               -       -----   Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode          swidm   str     ZF      -               -       -----   Enter double-wide mode
+enter_draft_quality            sdrfq   str     ZG      -               -       -----   Enter draft-quality mode
+enter_italics_mode             sitm    str     ZH      -               -       -----   Enter italic mode
+enter_leftward_mode            slm     str     ZI      -               -       -----   Start leftward carriage motion
+enter_micro_mode               smicm   str     ZJ      -               -       -----   Start micro-motion mode
+enter_near_letter_quality      snlq    str     ZK      -               -       -----   Enter NLQ mode
+enter_normal_quality           snrmq   str     ZL      -               -       -----   Enter normal-quality mode
+enter_shadow_mode              sshm    str     ZM      -               -       -----   Enter shadow-print mode
+enter_subscript_mode           ssubm   str     ZN      -               -       -----   Enter subscript mode
+enter_superscript_mode         ssupm   str     ZO      -               -       -----   Enter superscript mode
+enter_upward_mode              sum     str     ZP      -               -       -----   Start upward carriage motion
+exit_doublewide_mode           rwidm   str     ZQ      -               -       -----   End double-wide mode
+exit_italics_mode              ritm    str     ZR      -               -       -----   End italic mode
+exit_leftward_mode             rlm     str     ZS      -               -       -----   End left-motion mode
+exit_micro_mode                        rmicm   str     ZT      -               -       -----   End micro-motion mode
+exit_shadow_mode               rshm    str     ZU      -               -       -----   End shadow-print mode
+exit_subscript_mode            rsubm   str     ZV      -               -       -----   End subscript mode
+exit_superscript_mode          rsupm   str     ZW      -               -       -----   End superscript mode
+exit_upward_mode               rum     str     ZX      -               -       -----   End reverse character motion
+micro_column_address           mhpa    str     ZY      -               -       -----   Like column_address in micro mode
+micro_down                     mcud1   str     ZZ      -               -       -----   Like cursor_down in micro mode
+micro_left                     mcub1   str     Za      -               -       -----   Like cursor_left in micro mode
+micro_right                    mcuf1   str     Zb      -               -       -----   Like cursor_right in micro mode
+micro_row_address              mvpa    str     Zc      -               -       -----   Like row_address #1 in micro mode
+micro_up                       mcuu1   str     Zd      -               -       -----   Like cursor_up in micro mode
+order_of_pins                  porder  str     Ze      -               -       -----   Match software bits to print-head pins
+parm_down_micro                        mcud    str     Zf      -               -       -----   Like parm_down_cursor in micro mode
+parm_left_micro                        mcub    str     Zg      -               -       -----   Like parm_left_cursor in micro mode
+parm_right_micro               mcuf    str     Zh      -               -       -----   Like parm_right_cursor in micro mode
+parm_up_micro                  mcuu    str     Zi      -               -       -----   Like parm_up_cursor in micro mode
+select_char_set                        scs     str     Zj      -               -       -----   Select character set, #1
+set_bottom_margin              smgb    str     Zk      -               -       -----   Set bottom margin at current line
+set_bottom_margin_parm         smgbp   str     Zl      -               -       -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm           smglp   str     Zm      -               -       -----   Set left (right) margin at column #1
+set_right_margin_parm          smgrp   str     Zn      -               -       -----   Set right margin at column #1
+set_top_margin                 smgt    str     Zo      -               -       -----   Set top margin at current line
+set_top_margin_parm            smgtp   str     Zp      -               -       -----   Set top (bottom) margin at row #1
+start_bit_image                        sbim    str     Zq      -               -       -----   Start printing bit image graphics
+start_char_set_def             scsd    str     Zr      -               -       -----   Start character set definition #1, with #2 characters in the set
+stop_bit_image                 rbim    str     Zs      -               -       -----   Stop printing bit image graphics
+stop_char_set_def              rcsd    str     Zt      -               -       -----   End definition of character set #1
+subscript_characters           subcs   str     Zu      -               -       -----   List of subscriptable characters
+superscript_characters         supcs   str     Zv      -               -       -----   List of superscriptable characters
+these_cause_cr                 docr    str     Zw      -               -       -----   Printing any of these characters causes CR
+zero_motion                    zerom   str     Zx      -               -       -----   No motion for subsequent character
+#%.TE
+#%.ad
+#%
+#%The following string capabilities are present in the SVr4.0 term structure,
+#%but were originally not documented in the man page.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw18.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+char_set_names                 csnm    str     Zy      -               -       -----   Produce #1'th item from list of character set names
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+pkey_plab                      pfxl    str     xl      -               -       -----   Program function key #1 to type string #2 and show string #3
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+set_lr_margin                  smglr   str     ML      -               -       -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_tb_margin                  smgtb   str     MT      -               -       -----   Sets both top and bottom margins to #1, #2
+bit_image_repeat               birep   str     Xy      -               -       -----   Repeat bit image cell #1 #2 times
+bit_image_newline              binel   str     Zz      -               -       -----   Move to next row of the bit image
+bit_image_carriage_return      bicr    str     Yv      -               -       -----   Move to beginning of same row
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+define_bit_image_region                defbi   str     Yx      -               -       -----   Define rectangualar bit image region
+end_bit_image_region           endbi   str     Yy      -               -       -----   End a bit-image region
+set_color_band         setcolor        str     Yz      -               -       -----   Change to ribbon color #1
+set_page_length                        slines  str     YZ      -               -       -----   Set page length to #1 lines
+#
+# SVr4 added these capabilities for direct PC-clone support
+#
+display_pc_char                        dispc   str     S1      -               -       -----   Display PC character #1
+enter_pc_charset_mode          smpch   str     S2      -               -       -----   Enter PC character display mode
+exit_pc_charset_mode           rmpch   str     S3      -               -       -----   Exit PC character display mode
+enter_scancode_mode            smsc    str     S4      -               -       -----   Enter PC scancode mode
+exit_scancode_mode             rmsc    str     S5      -               -       -----   Exit PC scancode mode
+pc_term_options                        pctrm   str     S6      -               -       -----   PC terminal options
+scancode_escape                        scesc   str     S7      -               -       -----   Escape for scancode emulation
+alt_scancode_esc               scesa   str     S8      -               -       -----   Alternate escape for scancode emulation
+#%.TE
+#%.ad
+#%
+#%.in .8i
+#%The XSI Curses standard added these.  They are some post-4.1 
+#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+#%The \fBncurses\fR termcap names for them are invented; according to the
+#%XSI Curses standard, they have no termcap names.  If your compiled terminfo
+#%entries use these, they may not be binary-compatible with System V terminfo
+#%entries after SVr4.1; beware!
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+set_pglen_inch                 slength str     sL      -               -       -----   YI Set page length to #1 hundredth of an inch
+enter_horizontal_hl_mode       ehhlm   str     Xh      -               -       -----   Enter horizontal highlight mode
+enter_left_hl_mode             elhlm   str     Xl      -               -       -----   Enter left highlight mode
+enter_low_hl_mode              elohlm  str     Xo      -               -       -----   Enter low highlight mode
+enter_right_hl_mode            erhlm   str     Xr      -               -       -----   Enter right highlight mode
+enter_top_hl_mode              ethlm   str     Xt      -               -       -----   Enter top highlight mode
+enter_vertical_hl_mode         evhlm   str     Xv      -               -       -----   Enter vertical highlight mode
+set_a_attributes               sgr1    str     sA      -               -       -----   Define second set of video attributes #1-#6
+exit_horizontal_hl_mode        rhhlm   str     XH      -               -       ----K   Exit horizontal highlight mode
+exit_left_hl_mode              rlhlm   str     XL      -               -       ----K   Exit left highlight mode
+exit_low_hl_mode               rlohlm  str     XO      -               -       ----K   Exit low highlight mode
+exit_right_hl_mode             rrhlm   str     XR      -               -       ----K   Exit right highlight mode
+exit_top_hl_mode               rthlm   str     XT      -               -       ----K   Exit top highlight mode
+exit_vertical_hl_mode          rvhlm   str     XV      -               -       ----K   Exit vertical highlight mode
+#%.TE
+#%.ad
+#
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually!  In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents.  The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2.  Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
+#
+# Obsolete termcap capabilities.  Some are used for termcap translation.  The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
+#
+# GNU termcap library extensions.  The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file.  The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
+#
+# GNU termcap *does* include the following extended capability,  Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer.  Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code.  They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both.  This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code.  It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text.  All lines above the cursor's current line become locked in place on
+# the screen.  Then enter data normally.  When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data.  Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check.  The descriptions are guesses from what was
+# in the mytinfo tables. 
+#
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap  IBM ASCII       description             ACS             ASCII
+# ---  -----------     --------------------    -------------   ------
+# G1   191 \277 M-?    single upper right      ACS_URCORNER
+# G2   218 \332 M-Z    single upper left       ACS_ULCORNER
+# G3   192 \300 M-@    single lower left       ACS_LLCORNER
+# G4   217 \331 M-Y    single lower right      ACS_LRCORNER
+# G5   187 \273 M-;    double upper right
+# G6   201 \311 M-I    double upper left
+# G7   200 \310 M-H    double lower left
+# G8   188 \274 M-<    double lower right
+# GC   197 \305 M-E    single intersection     ACS_PLUS        _ _
+# GD   194 \302 M-B    single down-tick        ACS_TTEE         |
+# GH   196 \304 M-D    single horizontal line  ACS_HLINE
+# GL   180 \264 M-4    single left tick        ACS_RTEE        -|
+# GR   195 \303 M-C    single right tick       ACS_LTEE        |-
+# GU   193 \301 M-A    single up tick          ACS_BTEE        _|_
+# GV   179 \263 M-3    single vertical line    ACS_VLINE
+# Gc   206 \316 M-N    double intersection
+# Gd   203 \313 M-K    double down tick
+# Gh   205 \315 M-M    double horizontal line
+# Gl   204 \204 M-L    double left tick
+# Gr   185 \271 M-9    double right tick
+# Gu   202 \312 M-J    double up tick
+# Gv   186 \272 M-:    double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down).  We don't want to do normal pad 
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics.  There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments.  What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set.  They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files.  Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different.  Grrr....
+#
+#memory_lock                   meml    str     ml      -               -       ----K   memory lock above
+#memory_unlock                 memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE    
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+#box_chars_2                   box2    str     by      -               -       ----K   box characters secondary set
+#box_attr_1                    batt1   str     Bx      -               -       ----K   attributes for box1
+#box_attr_2                    batt2   str     By      -               -       ----K   attributes for box2
+#color_bg_0                    colb0   str     d0      -               -       ----K   background color 0
+#color_bg_1                    colb1   str     d1      -               -       ----K   background color 1
+#color_bg_2                    colb2   str     d2      -               -       ----K   background color 2
+#color_bg_3                    colb3   str     d3      -               -       ----K   background color 3
+#color_bg_4                    colb4   str     d4      -               -       ----K   background color 4
+#color_bg_5                    colb5   str     d5      -               -       ----K   background color 5
+#color_bg_6                    colb6   str     d6      -               -       ----K   background color 6
+#color_bg_7                    colb7   str     d7      -               -       ----K   background color 7
+#color_fg_0                    colf0   str     c0      -               -       ----K   foreground color 0
+#color_fg_1                    colf1   str     c1      -               -       ----K   foreground color 1
+#color_fg_2                    colf2   str     c2      -               -       ----K   foreground color 2
+#color_fg_3                    colf3   str     c3      -               -       ----K   foreground color 3
+#color_fg_4                    colf4   str     c4      -               -       ----K   foreground color 4
+#color_fg_5                    colf5   str     c5      -               -       ----K   foreground color 5
+#color_fg_6                    colf6   str     c6      -               -       ----K   foreground color 6
+#color_fg_7                    colf7   str     c7      -               -       ----K   foreground color 7
+#font_0                                font0   str     f0      -               -       -----   select font 0
+#font_1                                font1   str     f1      -               -       -----   select font 1
+#font_2                                font2   str     f2      -               -       -----   select font 2
+#font_3                                font3   str     f3      -               -       -----   select font 3
+#font_4                                font4   str     f4      -               -       ----K   select font 4
+#font_5                                font5   str     f5      -               -       ----K   select font 5
+#font_6                                font6   str     f6      -               -       ----K   select font 6
+#font_7                                font7   str     f7      -               -       ----K   select font 7
+#key_back_tab                  kbtab   str     k0      -               -       -----   backtab key
+#key_do                                kdo     str     ki      -               -       ----K   do request key
+#key_command                   kcmd    str     kd      -               -       ----K   command-request key
+#key_command_pane              kcpn    str     kW      -               -       ----K   command-pane key
+#key_end                       kend    str     kw      -               -       -----   end key
+#key_help                      khlp    str     kq      -               -       -----   help key
+#key_newline                   knl     str     nl      -               -       ----K   newline key
+#key_next_pane                 knpn    str     kv      -               -       ----K   next-pane key
+#key_prev_cmd                  kppn    str     kp      -               -       ----K   previous-command key
+#key_prev_pane                 kppn    str     kV      -               -       ----K   previous-pane key
+#key_quit                      kquit   str     kQ      -               -       ----K   quit key
+#key_select                    ksel    str     kU      -               -       -----   select key
+#key_scroll_left               kscl    str     kz      -               -       ----K   scroll left
+#key_scroll_right              kscr    str     kZ      -               -       ----K   scroll right
+#key_tab                       ktab    str     ko      -               -       ----K   tab key
+#key_smap_in1                  kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+#key_smap_out1                 kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+#key_smap_in2                  kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+#key_smap_out2                 kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+#key_smap_in3                  kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+#key_smap_out3                 kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+#key_smap_in4                  kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+#key_smap_out4                 kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+#key_smap_in5                  kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+#key_smap_out5                 kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+#appl_defined_str              apstr   str     za      -               -       ----K   application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses.  The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6                  kmpf6   str     k!      -               -       ----K   special mapped key 6 input
+#key_smap_out6                 kmpt6   str     K@      -               -       ----K   special mapped key 6 output
+#key_smap_in7                  kmpf7   str     k#      -               -       ----K   special mapped key 7 input
+#key_smap_out7                 kmpt7   str     K$      -               -       ----K   special mapped key 7 output
+#key_smap_in8                  kmpf8   str     k%      -               -       ----K   special mapped key 8 input
+#key_smap_out8                 kmpt8   str     K^      -               -       ----K   special mapped key 8 output
+#key_smap_in9                  kmpf9   str     k&      -               -       ----K   special mapped key 9 input
+#key_smap_out9                 kmpt9   str     K*      -               -       ----K   special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1                       ksf1    str     S1      -               -       ----K   special function key 1
+#key_sf2                       ksf2    str     S2      -               -       ----K   special function key 2
+#key_sf3                       ksf3    str     S3      -               -       ----K   special function key 3
+#key_sf4                       ksf4    str     S4      -               -       ----K   special function key 4
+#key_sf5                       ksf5    str     S5      -               -       ----K   special function key 5
+#key_sf6                       ksf6    str     S6      -               -       ----K   special function key 6
+#key_sf7                       ksf7    str     S7      -               -       ----K   special function key 7
+#key_sf8                       ksf8    str     S8      -               -       ----K   special function key 8
+#key_sf9                       ksf9    str     S9      -               -       ----K   special function key 9
+#key_sf10                      ksf10   str     SA      -               -       ----K   special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11                       kf11    str     k<      -               -       -----   function key 11
+#key_f12                       kf12    str     k>      -               -       -----   function key 12
+# Undocumented capabilities end here.
+#key_action                    kact    str     kJ      -               -       ----K   sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode            topl    str     tp      -               -       ----K   start top-line mode
+#enter_bottom_mode             btml    str     bm      -               -       ----K   start bottom-line mode
+#enter_rvert_mode              rvert   str     rv      -               -       ----K   start right-vertical mode
+#enter_lvert_mode              lvert   str     lv      -               -       ----K   start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files.  We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias       sb      sr      BSD     scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias       BO      mr      AT&T    enter_reverse_mode
+capalias       CI      vi      AT&T    cursor_invisible
+capalias       CV      ve      AT&T    cursor_normal
+capalias       DS      mh      AT&T    enter_dim_mode
+#capalias      EE      me      AT&T    exit_attribute_mode     
+capalias       FE      LF      AT&T    label_on
+capalias       FL      LO      AT&T    label_off
+capalias       XS      mk      AT&T    enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in 
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias       EE      mh      XENIX   exit_attribute_mode     
+capalias       GE      ae      XENIX   exit_alt_charset_mode
+capalias       GS      as      XENIX   enter_alt_charset_mode
+capalias       CF      vi      XENIX   cursor_invis
+capalias       CO      ve      XENIX   cursor_normal
+capalias       EN      @7      XENIX   key_end
+capalias       HM      kh      XENIX   key_home
+capalias       LD      kL      XENIX   key_dl
+capalias       PD      kN      XENIX   key_npage
+capalias       PN      po      XENIX   prtr_off
+capalias       PS      pf      XENIX   prtr_on
+capalias       PU      kP      XENIX   key_ppage
+capalias       RT      @8      XENIX   kent
+capalias       UP      ku      XENIX   kcuu1
+capalias       G6      IGNORE  XENIX   double-ACS_ULCORNER
+capalias       G7      IGNORE  XENIX   double-ACS_LLCORNER
+capalias       G5      IGNORE  XENIX   double-ACS_URCORNER
+capalias       G8      IGNORE  XENIX   double-ACS_LRCORNER
+capalias       Gr      IGNORE  XENIX   double-ACS_LTEE
+capalias       Gr      IGNORE  XENIX   double-ACS_RTEE
+capalias       Gu      IGNORE  XENIX   double-ACS_BTEE
+capalias       Gd      IGNORE  XENIX   double ACS_TTEE
+capalias       Gh      IGNORE  XENIX   double-ACS_HLINE
+capalias       Gv      IGNORE  XENIX   double-ACS_VLINE
+capalias       Gc      IGNORE  XENIX   double-ACS_PLUS
+capalias       GG      IGNORE  XENIX   acs-glitch
+#
+# IBM extensions:
+#
+capalias       kq      %1      IBM     key_help
+#
+# Iris extensions:
+#
+capalias       HS      mh      IRIS    enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias       KA      k;      Tek     key_f10
+capalias       KB      F1      Tek     key_f11
+capalias       KC      F2      Tek     key_f12
+capalias       KD      F3      Tek     key_f13
+capalias       KE      F4      Tek     key_f14
+capalias       KF      F5      Tek     key_f15
+capalias       BC      Sb      Tek     set_background
+capalias       FC      Sf      Tek     set_foreground
+#
+# There are also the following:
+#
+#      XENIX   XENIX variable name     name clash with terminfo?
+#      -----   -------------------     -------------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window
+#      HP      ??
+#      LF      key_linefeed            label_off
+#      NU      key_next_unlocked_cell
+#      PL      ??
+#      PR      ??
+#      RC      key_recalc              remove_clock
+#      RF      key_toggle_ref          req_for_input
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias      font0   s0ds    IBM     set0_des_seq
+infoalias      font1   s1ds    IBM     set1_des_seq
+infoalias      font2   s2ds    IBM     set2_des_seq
+infoalias      font3   s3ds    IBM     set3_des_seq
+infoalias      kbtab   kcbt    IBM     key_backtab
+infoalias      ksel    kslt    IBM     key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/include/Caps.keys b/include/Caps.keys
new file mode 100644 (file)
index 0000000..7ef7545
--- /dev/null
@@ -0,0 +1,1354 @@
+##############################################################################
+# Copyright (c) 2001 Free Software 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
+#    and: Ilya Zakharevich
+#
+# $Id: Caps.keys,v 1.2 2002/04/20 15:43:49 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is illustrates an experimental extension to describe alt-, shift- and
+# control-modifiers applied to function and normal keys, as done on IBM pc's.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap 
+# compatibility hack.  It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+#           translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability.  This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs).  The codes read as follows:
+#      B = mentioned in the BSD man page for 4.4BSD curses
+#      C = used by the 4.4BSD curses library
+#      G = mentioned in the documentation for GNU termcap
+#      E = used by GNU Emacs
+#      K = remove this terminfo capability when translating to standard format
+# The important codes are C and E.  A cap with C or E should be preserved in
+# translation if possible.  The problem is that preserving all such caps may
+# lead to some termcap translations being too long.  The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to.  The name IGNORE means it
+#           should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future).  If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it.  This is appropriate if the capability has the same meaning
+# as an already-supported one.  The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table.  You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad.  It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBBooleans  name    Code\fR
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   can't print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding won't work, xon/xoff required
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer won't echo on screen
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+col_addr_glitch                        xhpa    bool    YA      -       -       -----   only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode          crxm    bool    YB      -       -       -----   using cr turns off micro mode
+has_print_wheel                        daisy   bool    YC      -       -       -----   printer needs operator to change character set
+row_addr_glitch                        xvpa    bool    YD      -       -       -----   only positive motion for vpa/mvpa caps
+semi_auto_right_margin         sam     bool    YE      -       -       -----   printing in last column causes cr
+cpi_changes_res                        cpix    bool    YF      -       -       -----   changing character pitch changes resolution
+lpi_changes_res                        lpix    bool    YG      -       -       -----   changing line pitch changes resolution
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+max_attributes                 ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+maximum_windows                        wnum    num     MW      -       -       -----   maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that can't be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page.  They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+buffer_capacity                        bufsz   num     Ya      -       -       -----   numbers of bytes buffered before printing
+dot_vert_spacing               spinv   num     Yb      -       -       -----   spacing of pins vertically in pins per inch
+dot_horz_spacing               spinh   num     Yc      -       -       -----   spacing of dots horizontally in dots per inch
+max_micro_address              maddr   num     Yd      -       -       -----   maximum value in micro_..._address
+max_micro_jump                 mjump   num     Ye      -       -       -----   maximum value in parm_..._micro
+micro_col_size                 mcs     num     Yf      -       -       -----   character step size when in micro mode
+micro_line_size                        mls     num     Yg      -       -       -----   line step size when in micro mode
+number_of_pins                 npins   num     Yh      -       -       -----   numbers of pins in print-head
+output_res_char                        orc     num     Yi      -       -       -----   horizontal resolution in units per line
+output_res_line                        orl     num     Yj      -       -       -----   vertical resolution in units per line
+output_res_horz_inch           orhi    num     Yk      -       -       -----   horizontal resolution in units per inch
+output_res_vert_inch           orvi    num     Yl      -       -       -----   vertical resolution in units per inch
+print_rate                     cps     num     Ym      -       -       -----   print rate in characters per second
+wide_char_size                 widcs   num     Yn      -       -       -----   character step size when in double wide mode
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+bit_image_entwining            bitwin  num     Yo      -       -       -----   number of passes for each bit-image row
+bit_image_type                 bitype  num     Yp      -       -       -----   type of bit-image device
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+key_btab                       kcbt    str     kB      KEY_BTAB        0541    -----   back-tab key
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+xon_character                  xonc    str     XN      -               -       -----   XON character
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+key_command                    kcmd    str     @4      KEY_COMMAND     0545    -----   command key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+key_end                                kend    str     @7      KEY_END         0550    -----   end key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+key_help                       khlp    str     %1      KEY_HELP        0553    -----   help key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+label_format                   fln     str     Lf      -               -       -----   label format
+set_clock                      sclk    str     SC      -               -       -----   set clock, #1 hrs #2 mins #3 secs
+display_clock                  dclk    str     DK      -               -       -----   display clock
+remove_clock                   rmclk   str     RC      -               -       -----   remove clock
+create_window                  cwin    str     CW      -               -       -----   define a window #1 from #2,#3 to #4,#5
+goto_window                    wingo   str     WG      -               -       -----   go to window #1
+hangup                         hup     str     HU      -               -       -----   hang-up phone
+dial_phone                     dial    str     DI      -               -       -----   dial number #1
+quick_dial                     qdial   str     QD      -               -       -----   dial number #1 without checking
+tone                           tone    str     TO      -               -       -----   select touch tone dialing
+pulse                          pulse   str     PU      -               -       -----   select pulse dialing
+flash_hook                     hook    str     fh      -               -       -----   flash switch hook
+fixed_pause                    pause   str     PA      -               -       -----   pause for 2-3 seconds
+wait_tone                      wait    str     WA      -               -       -----   wait for dial-tone
+user0                          u0      str     u0      -               -       -----   User string #0
+user1                          u1      str     u1      -               -       -----   User string #1
+user2                          u2      str     u2      -               -       -----   User string #2
+user3                          u3      str     u3      -               -       -----   User string #3
+user4                          u4      str     u4      -               -       -----   User string #4
+user5                          u5      str     u5      -               -       -----   User string #5
+user6                          u6      str     u6      -               -       -----   User string #6
+user7                          u7      str     u7      -               -       -----   User string #7
+user8                          u8      str     u8      -               -       -----   User string #8
+user9                          u9      str     u9      -               -       -----   User string #9
+#
+# NCurses extensions for keys accessible on most PC consoles
+#
+key_sup                                kUP     str     !5      KEY_SUP         +       -----   shifted up-arrow key
+key_sdown                      kDOWN   str     !6      KEY_SDOWN       +       -----   shifted down-arrow key
+key_sbackspace                 kBS     str     !7      KEY_SBACKSPACE  +       -----   shifted backspace key
+key_c_delete                   kcdelete str    !8      KEY_C_DELETE    +       -----   control- delete-character key
+key_c_end                      kcend   str     !9      KEY_C_END       +       -----   control- end key
+key_c_home                     kchom   str     !0      KEY_C_HOME      +       -----   control- home key
+key_c_insert                   kcinsert str    !_      KEY_C_INSERT    +       -----   control- insert-character key
+key_c_left                     kclft   str     %k      KEY_C_LEFT      +       -----   control- left-arrow key
+key_c_next                     kcnxt   str     %l      KEY_C_NEXT      +       -----   control- next key
+key_c_previous                 kcprv   str     %m      KEY_C_PREVIOUS  +       -----   control- previous key
+key_c_print                    kcprt   str     %n      KEY_C_PRINT     +       -----   control- print key
+key_c_right                    kcrit   str     %o      KEY_C_RIGHT     +       -----   control- right-arrow key
+key_c_backspace                        kcbs    str     %p      KEY_C_BACKSPACE +       -----   control- backspace key
+key_c_up                       kcup    str     %q      KEY_C_UP        +       -----   control- up-arrow key
+key_c_down                     kcdown  str     %r      KEY_C_DOWN      +       -----   control- down-arrow key
+key_a_delete                   kadelete str    %s      KEY_A_DELETE    +       -----   alt- delete-character key
+key_a_end                      kaend   str     %t      KEY_A_END       +       -----   alt- end key
+key_a_home                     kahom   str     %u      KEY_A_HOME      +       -----   alt- home key
+key_a_insert                   kainsert str    %v      KEY_A_INSERT    +       -----   alt- insert-character key
+key_a_left                     kalft   str     %w      KEY_A_LEFT      +       -----   alt- left-arrow key
+key_a_next                     kanxt   str     %x      KEY_A_NEXT      +       -----   alt- next key
+key_a_previous                 kaprv   str     %y      KEY_A_PREVIOUS  +       -----   alt- previous key
+key_a_print                    kaprt   str     %z      KEY_A_PRINT     +       -----   alt- print key
+key_a_right                    karit   str     %!      KEY_A_RIGHT     +       -----   alt- right-arrow key
+key_a_backspace                        kabs    str     %@      KEY_A_BACKSPACE +       -----   alt- backspace key
+key_a_up                       kaup    str     %#      KEY_A_UP        +       -----   alt- up-arrow key
+key_a_down                     kadown  str     %$      KEY_A_DOWN      +       -----   alt- down-arrow key
+key_a_a                                kaa     str     $a      KEY_A_A         +       -----   alt- a key
+key_a_b                                kab     str     $b      KEY_A_B         +       -----   alt- b key
+key_a_c                                kac     str     $c      KEY_A_C         +       -----   alt- c key
+key_a_d                                kad     str     $d      KEY_A_D         +       -----   alt- d key
+key_a_e                                kae     str     $e      KEY_A_E         +       -----   alt- e key
+key_a_f                                kaf     str     $f      KEY_A_F         +       -----   alt- f key
+key_a_g                                kag     str     $g      KEY_A_G         +       -----   alt- g key
+key_a_h                                kah     str     $h      KEY_A_H         +       -----   alt- h key
+key_a_i                                kai     str     $i      KEY_A_I         +       -----   alt- i key
+key_a_j                                kaj     str     $j      KEY_A_J         +       -----   alt- j key
+key_a_k                                kak     str     $k      KEY_A_K         +       -----   alt- k key
+key_a_l                                kal     str     $l      KEY_A_L         +       -----   alt- l key
+key_a_m                                kam     str     $m      KEY_A_M         +       -----   alt- m key
+key_a_n                                kan     str     $n      KEY_A_N         +       -----   alt- n key
+key_a_o                                kao     str     $o      KEY_A_O         +       -----   alt- o key
+key_a_p                                kap     str     $p      KEY_A_P         +       -----   alt- p key
+key_a_q                                kaq     str     $q      KEY_A_Q         +       -----   alt- q key
+key_a_r                                kar     str     $r      KEY_A_R         +       -----   alt- r key
+key_a_s                                kas     str     $s      KEY_A_S         +       -----   alt- s key
+key_a_t                                kat     str     $t      KEY_A_T         +       -----   alt- t key
+key_a_u                                kau     str     $u      KEY_A_U         +       -----   alt- u key
+key_a_v                                kav     str     $v      KEY_A_V         +       -----   alt- v key
+key_a_w                                kaw     str     $w      KEY_A_W         +       -----   alt- w key
+key_a_x                                kax     str     $x      KEY_A_X         +       -----   alt- x key
+key_a_y                                kay     str     $y      KEY_A_Y         +       -----   alt- y key
+key_a_z                                kaz     str     $z      KEY_A_Z         +       -----   alt- z key
+key_a_0                                ka_0    str     $0      KEY_A_0         +       -----   alt- 0 key
+key_a_1                                ka_1    str     $1      KEY_A_1         +       -----   alt- 1 key
+key_a_2                                ka_2    str     $2      KEY_A_2         +       -----   alt- 2 key
+key_a_3                                ka_3    str     $3      KEY_A_3         +       -----   alt- 3 key
+key_a_4                                ka_4    str     $4      KEY_A_4         +       -----   alt- 4 key
+key_a_5                                ka_5    str     $5      KEY_A_5         +       -----   alt- 5 key
+key_a_6                                ka_6    str     $6      KEY_A_6         +       -----   alt- 6 key
+key_a_7                                ka_7    str     $7      KEY_A_7         +       -----   alt- 7 key
+key_a_8                                ka_8    str     $8      KEY_A_8         +       -----   alt- 8 key
+key_a_9                                ka_9    str     $9      KEY_A_9         +       -----   alt- 9 key
+key_a_backtick                 ka_bt   str     $`      KEY_A_BACKTICK  +       -----   alt- ` key
+key_a_under                    ka_und  str     $_      KEY_A_UNDER     +       -----   alt- _ key
+key_a_equals                   ka_eq   str     $=      KEY_A_EQUALS    +       -----   alt- = key
+key_a_bar                      ka_bsl  str     $|      KEY_A_BAR       +       -----   alt- | key
+key_a_lbracker                 ka_lbr  str     $[      KEY_A_LBRACKER  +       -----   alt- [ key
+key_a_rbracker                 ka_rbr  str     $]      KEY_A_RBRACKER  +       -----   alt- ] key
+key_a_semi                     ka_semi str     $;      KEY_A_SEMI      +       -----   alt- ; key
+key_a_tick                     ka_tick str     $'      KEY_A_TICK      +       -----   alt- ' key
+key_a_comma                    ka_com  str     $,      KEY_A_COMMA     +       -----   alt- , key
+key_a_dot                      ka_dot  str     $.      KEY_A_DOT       +       -----   alt- . key
+key_a_question                 ka_sla  str     $?      KEY_A_QUESTION  +       -----   alt- ? key
+key_a_divide                   ka_div  str     $/      KEY_A_DIVIDE    +       -----   alt- keypad / key
+key_a_multiply                 ka_mul  str     $*      KEY_A_MULTIPLY  +       -----   alt- keypad * key
+key_a_add                      ka_add  str     $+      KEY_A_ADD       +       -----   alt- keypad + key
+key_a_subtract                 ka_sub  str     $-      KEY_A_SUBTRACT  +       -----   alt- keypad - key
+key_a_kenter                   ka_kent str     $<      KEY_A_KENTER    +       -----   alt- keypad enter key
+key_a_enter                    ka_ent  str     $>      KEY_A_ENTER     +       -----   alt- enter key
+key_c_at                       kcat    str     %%      KEY_C_AT        +       -----   control- @ key
+key_c_divide                   kcdiv   str     %/      KEY_C_DIVIDE    +       -----   control- keypad / key
+key_c_multiply                 kcmul   str     %*      KEY_C_MULTIPLY  +       -----   control- keypad * key
+key_c_add                      kcadd   str     %+      KEY_C_ADD       +       -----   control- keypad + key
+key_c_subtract                 kcsub   str     %-      KEY_C_SUBTRACT  +       -----   control- keypad - key
+#
+# SVr4 added these capabilities to support color
+#
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
+#
+# SVr4 added these capabilities to support printers
+#
+change_char_pitch              cpi     str     ZA      -               -       -----   Change number of characters per inch to #1
+change_line_pitch              lpi     str     ZB      -               -       -----   Change number of lines per inch to #1
+change_res_horz                        chr     str     ZC      -               -       -----   Change horizontal resolution to #1
+change_res_vert                        cvr     str     ZD      -               -       -----   Change vertical resolution to #1
+define_char                    defc    str     ZE      -               -       -----   Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode          swidm   str     ZF      -               -       -----   Enter double-wide mode
+enter_draft_quality            sdrfq   str     ZG      -               -       -----   Enter draft-quality mode
+enter_italics_mode             sitm    str     ZH      -               -       -----   Enter italic mode
+enter_leftward_mode            slm     str     ZI      -               -       -----   Start leftward carriage motion
+enter_micro_mode               smicm   str     ZJ      -               -       -----   Start micro-motion mode
+enter_near_letter_quality      snlq    str     ZK      -               -       -----   Enter NLQ mode
+enter_normal_quality           snrmq   str     ZL      -               -       -----   Enter normal-quality mode
+enter_shadow_mode              sshm    str     ZM      -               -       -----   Enter shadow-print mode
+enter_subscript_mode           ssubm   str     ZN      -               -       -----   Enter subscript mode
+enter_superscript_mode         ssupm   str     ZO      -               -       -----   Enter superscript mode
+enter_upward_mode              sum     str     ZP      -               -       -----   Start upward carriage motion
+exit_doublewide_mode           rwidm   str     ZQ      -               -       -----   End double-wide mode
+exit_italics_mode              ritm    str     ZR      -               -       -----   End italic mode
+exit_leftward_mode             rlm     str     ZS      -               -       -----   End left-motion mode
+exit_micro_mode                        rmicm   str     ZT      -               -       -----   End micro-motion mode
+exit_shadow_mode               rshm    str     ZU      -               -       -----   End shadow-print mode
+exit_subscript_mode            rsubm   str     ZV      -               -       -----   End subscript mode
+exit_superscript_mode          rsupm   str     ZW      -               -       -----   End superscript mode
+exit_upward_mode               rum     str     ZX      -               -       -----   End reverse character motion
+micro_column_address           mhpa    str     ZY      -               -       -----   Like column_address in micro mode
+micro_down                     mcud1   str     ZZ      -               -       -----   Like cursor_down in micro mode
+micro_left                     mcub1   str     Za      -               -       -----   Like cursor_left in micro mode
+micro_right                    mcuf1   str     Zb      -               -       -----   Like cursor_right in micro mode
+micro_row_address              mvpa    str     Zc      -               -       -----   Like row_address #1 in micro mode
+micro_up                       mcuu1   str     Zd      -               -       -----   Like cursor_up in micro mode
+order_of_pins                  porder  str     Ze      -               -       -----   Match software bits to print-head pins
+parm_down_micro                        mcud    str     Zf      -               -       -----   Like parm_down_cursor in micro mode
+parm_left_micro                        mcub    str     Zg      -               -       -----   Like parm_left_cursor in micro mode
+parm_right_micro               mcuf    str     Zh      -               -       -----   Like parm_right_cursor in micro mode
+parm_up_micro                  mcuu    str     Zi      -               -       -----   Like parm_up_cursor in micro mode
+select_char_set                        scs     str     Zj      -               -       -----   Select character set, #1
+set_bottom_margin              smgb    str     Zk      -               -       -----   Set bottom margin at current line
+set_bottom_margin_parm         smgbp   str     Zl      -               -       -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm           smglp   str     Zm      -               -       -----   Set left (right) margin at column #1
+set_right_margin_parm          smgrp   str     Zn      -               -       -----   Set right margin at column #1
+set_top_margin                 smgt    str     Zo      -               -       -----   Set top margin at current line
+set_top_margin_parm            smgtp   str     Zp      -               -       -----   Set top (bottom) margin at row #1
+start_bit_image                        sbim    str     Zq      -               -       -----   Start printing bit image graphics
+start_char_set_def             scsd    str     Zr      -               -       -----   Start character set definition #1, with #2 characters in the set
+stop_bit_image                 rbim    str     Zs      -               -       -----   Stop printing bit image graphics
+stop_char_set_def              rcsd    str     Zt      -               -       -----   End definition of character set #1
+subscript_characters           subcs   str     Zu      -               -       -----   List of subscriptable characters
+superscript_characters         supcs   str     Zv      -               -       -----   List of superscriptable characters
+these_cause_cr                 docr    str     Zw      -               -       -----   Printing any of these characters causes CR
+zero_motion                    zerom   str     Zx      -               -       -----   No motion for subsequent character
+#%.TE
+#%.ad
+#%
+#%The following string capabilities are present in the SVr4.0 term structure,
+#%but were originally not documented in the man page.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw18.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+char_set_names                 csnm    str     Zy      -               -       -----   Produce #1'th item from list of character set names
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+pkey_plab                      pfxl    str     xl      -               -       -----   Program function key #1 to type string #2 and show string #3
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+set_lr_margin                  smglr   str     ML      -               -       -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_tb_margin                  smgtb   str     MT      -               -       -----   Sets both top and bottom margins to #1, #2
+bit_image_repeat               birep   str     Xy      -               -       -----   Repeat bit image cell #1 #2 times
+bit_image_newline              binel   str     Zz      -               -       -----   Move to next row of the bit image
+bit_image_carriage_return      bicr    str     Yv      -               -       -----   Move to beginning of same row
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+define_bit_image_region                defbi   str     Yx      -               -       -----   Define rectangualar bit image region
+end_bit_image_region           endbi   str     Yy      -               -       -----   End a bit-image region
+set_color_band         setcolor        str     Yz      -               -       -----   Change to ribbon color #1
+set_page_length                        slines  str     YZ      -               -       -----   Set page length to #1 lines
+#
+# SVr4 added these capabilities for direct PC-clone support
+#
+display_pc_char                        dispc   str     S1      -               -       -----   Display PC character #1
+enter_pc_charset_mode          smpch   str     S2      -               -       -----   Enter PC character display mode
+exit_pc_charset_mode           rmpch   str     S3      -               -       -----   Exit PC character display mode
+enter_scancode_mode            smsc    str     S4      -               -       -----   Enter PC scancode mode
+exit_scancode_mode             rmsc    str     S5      -               -       -----   Exit PC scancode mode
+pc_term_options                        pctrm   str     S6      -               -       -----   PC terminal options
+scancode_escape                        scesc   str     S7      -               -       -----   Escape for scancode emulation
+alt_scancode_esc               scesa   str     S8      -               -       -----   Alternate escape for scancode emulation
+#%.TE
+#%.ad
+#%
+#%.in .8i
+#%The XSI Curses standard added these.  They are some post-4.1 
+#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+#%The \fBncurses\fR termcap names for them are invented; according to the
+#%XSI Curses standard, they have no termcap names.  If your compiled terminfo
+#%entries use these, they may not be binary-compatible with System V terminfo
+#%entries after SVr4.1; beware!
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+enter_horizontal_hl_mode       ehhlm   str     Xh      -               -       -----   Enter horizontal highlight mode
+enter_left_hl_mode             elhlm   str     Xl      -               -       -----   Enter left highlight mode
+enter_low_hl_mode              elohlm  str     Xo      -               -       -----   Enter low highlight mode
+enter_right_hl_mode            erhlm   str     Xr      -               -       -----   Enter right highlight mode
+enter_top_hl_mode              ethlm   str     Xt      -               -       -----   Enter top highlight mode
+enter_vertical_hl_mode         evhlm   str     Xv      -               -       -----   Enter vertical highlight mode
+set_a_attributes               sgr1    str     sA      -               -       -----   Define second set of video attributes #1-#6
+set_pglen_inch                 slength str     sL      -               -       -----   YI Set page length to #1 hundredth of an inch
+#%.TE
+#%.ad
+#
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually!  In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents.  The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2.  Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
+#
+# Obsolete termcap capabilities.  Some are used for termcap translation.  The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
+#
+# GNU termcap library extensions.  The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file.  The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
+#
+# GNU termcap *does* include the following extended capability,  Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer.  Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code.  They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both.  This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code.  It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text.  All lines above the cursor's current line become locked in place on
+# the screen.  Then enter data normally.  When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data.  Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check.  The descriptions are guesses from what was
+# in the mytinfo tables. 
+#
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap  IBM ASCII       description             ACS             ASCII
+# ---  -----------     --------------------    -------------   ------
+# G1   191 \277 M-?    single upper right      ACS_URCORNER
+# G2   218 \332 M-Z    single upper left       ACS_ULCORNER
+# G3   192 \300 M-@    single lower left       ACS_LLCORNER
+# G4   217 \331 M-Y    single lower right      ACS_LRCORNER
+# G5   187 \273 M-;    double upper right
+# G6   201 \311 M-I    double upper left
+# G7   200 \310 M-H    double lower left
+# G8   188 \274 M-<    double lower right
+# GC   197 \305 M-E    single intersection     ACS_PLUS        _ _
+# GD   194 \302 M-B    single down-tick        ACS_TTEE         |
+# GH   196 \304 M-D    single horizontal line  ACS_HLINE
+# GL   180 \264 M-4    single left tick        ACS_RTEE        -|
+# GR   195 \303 M-C    single right tick       ACS_LTEE        |-
+# GU   193 \301 M-A    single up tick          ACS_BTEE        _|_
+# GV   179 \263 M-3    single vertical line    ACS_VLINE
+# Gc   206 \316 M-N    double intersection
+# Gd   203 \313 M-K    double down tick
+# Gh   205 \315 M-M    double horizontal line
+# Gl   204 \204 M-L    double left tick
+# Gr   185 \271 M-9    double right tick
+# Gu   202 \312 M-J    double up tick
+# Gv   186 \272 M-:    double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down).  We don't want to do normal pad 
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics.  There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments.  What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set.  They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files.  Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different.  Grrr....
+#
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE    
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+#box_chars_2                   box2    str     by      -               -       ----K   box characters secondary set
+#box_attr_1                    batt1   str     Bx      -               -       ----K   attributes for box1
+#box_attr_2                    batt2   str     By      -               -       ----K   attributes for box2
+#color_bg_0                    colb0   str     d0      -               -       ----K   background color 0
+#color_bg_1                    colb1   str     d1      -               -       ----K   background color 1
+#color_bg_2                    colb2   str     d2      -               -       ----K   background color 2
+#color_bg_3                    colb3   str     d3      -               -       ----K   background color 3
+#color_bg_4                    colb4   str     d4      -               -       ----K   background color 4
+#color_bg_5                    colb5   str     d5      -               -       ----K   background color 5
+#color_bg_6                    colb6   str     d6      -               -       ----K   background color 6
+#color_bg_7                    colb7   str     d7      -               -       ----K   background color 7
+#color_fg_0                    colf0   str     c0      -               -       ----K   foreground color 0
+#color_fg_1                    colf1   str     c1      -               -       ----K   foreground color 1
+#color_fg_2                    colf2   str     c2      -               -       ----K   foreground color 2
+#color_fg_3                    colf3   str     c3      -               -       ----K   foreground color 3
+#color_fg_4                    colf4   str     c4      -               -       ----K   foreground color 4
+#color_fg_5                    colf5   str     c5      -               -       ----K   foreground color 5
+#color_fg_6                    colf6   str     c6      -               -       ----K   foreground color 6
+#color_fg_7                    colf7   str     c7      -               -       ----K   foreground color 7
+#font_0                                font0   str     f0      -               -       -----   select font 0
+#font_1                                font1   str     f1      -               -       -----   select font 1
+#font_2                                font2   str     f2      -               -       -----   select font 2
+#font_3                                font3   str     f3      -               -       -----   select font 3
+#font_4                                font4   str     f4      -               -       ----K   select font 4
+#font_5                                font5   str     f5      -               -       ----K   select font 5
+#font_6                                font6   str     f6      -               -       ----K   select font 6
+#font_7                                font7   str     f7      -               -       ----K   select font 7
+#key_back_tab                  kbtab   str     k0      -               -       -----   backtab key
+#key_do                                kdo     str     ki      -               -       ----K   do request key
+#key_command                   kcmd    str     kd      -               -       ----K   command-request key
+#key_command_pane              kcpn    str     kW      -               -       ----K   command-pane key
+#key_end                       kend    str     kw      -               -       -----   end key
+#key_help                      khlp    str     kq      -               -       -----   help key
+#key_newline                   knl     str     nl      -               -       ----K   newline key
+#key_next_pane                 knpn    str     kv      -               -       ----K   next-pane key
+#key_prev_cmd                  kppn    str     kp      -               -       ----K   previous-command key
+#key_prev_pane                 kppn    str     kV      -               -       ----K   previous-pane key
+#key_quit                      kquit   str     kQ      -               -       ----K   quit key
+#key_select                    ksel    str     kU      -               -       -----   select key
+#key_scroll_left               kscl    str     kz      -               -       ----K   scroll left
+#key_scroll_right              kscr    str     kZ      -               -       ----K   scroll right
+#key_tab                       ktab    str     ko      -               -       ----K   tab key
+#key_smap_in1                  kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+#key_smap_out1                 kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+#key_smap_in2                  kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+#key_smap_out2                 kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+#key_smap_in3                  kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+#key_smap_out3                 kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+#key_smap_in4                  kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+#key_smap_out4                 kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+#key_smap_in5                  kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+#key_smap_out5                 kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+#appl_defined_str              apstr   str     za      -               -       ----K   application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses.  The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6                  kmpf6   str     k!      -               -       ----K   special mapped key 6 input
+#key_smap_out6                 kmpt6   str     K@      -               -       ----K   special mapped key 6 output
+#key_smap_in7                  kmpf7   str     k#      -               -       ----K   special mapped key 7 input
+#key_smap_out7                 kmpt7   str     K$      -               -       ----K   special mapped key 7 output
+#key_smap_in8                  kmpf8   str     k%      -               -       ----K   special mapped key 8 input
+#key_smap_out8                 kmpt8   str     K^      -               -       ----K   special mapped key 8 output
+#key_smap_in9                  kmpf9   str     k&      -               -       ----K   special mapped key 9 input
+#key_smap_out9                 kmpt9   str     K*      -               -       ----K   special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1                       ksf1    str     S1      -               -       ----K   special function key 1
+#key_sf2                       ksf2    str     S2      -               -       ----K   special function key 2
+#key_sf3                       ksf3    str     S3      -               -       ----K   special function key 3
+#key_sf4                       ksf4    str     S4      -               -       ----K   special function key 4
+#key_sf5                       ksf5    str     S5      -               -       ----K   special function key 5
+#key_sf6                       ksf6    str     S6      -               -       ----K   special function key 6
+#key_sf7                       ksf7    str     S7      -               -       ----K   special function key 7
+#key_sf8                       ksf8    str     S8      -               -       ----K   special function key 8
+#key_sf9                       ksf9    str     S9      -               -       ----K   special function key 9
+#key_sf10                      ksf10   str     SA      -               -       ----K   special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11                       kf11    str     k<      -               -       -----   function key 11
+#key_f12                       kf12    str     k>      -               -       -----   function key 12
+# Undocumented capabilities end here.
+#key_action                    kact    str     kJ      -               -       ----K   sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode            topl    str     tp      -               -       ----K   start top-line mode
+#enter_bottom_mode             btml    str     bm      -               -       ----K   start bottom-line mode
+#enter_rvert_mode              rvert   str     rv      -               -       ----K   start right-vertical mode
+#enter_lvert_mode              lvert   str     lv      -               -       ----K   start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files.  We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias       sb      sr      BSD     scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias       BO      mr      AT&T    enter_reverse_mode
+capalias       CI      vi      AT&T    cursor_invisible
+capalias       CV      ve      AT&T    cursor_normal
+capalias       DS      mh      AT&T    enter_dim_mode
+#capalias      EE      me      AT&T    exit_attribute_mode     
+capalias       FE      LF      AT&T    label_on
+capalias       FL      LO      AT&T    label_off
+capalias       XS      mk      AT&T    enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in 
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias       EE      mh      XENIX   exit_attribute_mode     
+capalias       GE      ae      XENIX   exit_alt_charset_mode
+capalias       GS      as      XENIX   enter_alt_charset_mode
+capalias       CF      vi      XENIX   cursor_invis
+capalias       CO      ve      XENIX   cursor_normal
+capalias       EN      @7      XENIX   key_end
+capalias       HM      kh      XENIX   key_home
+capalias       LD      kL      XENIX   key_dl
+capalias       PD      kN      XENIX   key_npage
+capalias       PN      po      XENIX   prtr_off
+capalias       PS      pf      XENIX   prtr_on
+capalias       PU      kP      XENIX   key_ppage
+capalias       RT      @8      XENIX   kent
+capalias       UP      ku      XENIX   kcuu1
+capalias       G6      IGNORE  XENIX   double-ACS_ULCORNER
+capalias       G7      IGNORE  XENIX   double-ACS_LLCORNER
+capalias       G5      IGNORE  XENIX   double-ACS_URCORNER
+capalias       G8      IGNORE  XENIX   double-ACS_LRCORNER
+capalias       Gr      IGNORE  XENIX   double-ACS_LTEE
+capalias       Gr      IGNORE  XENIX   double-ACS_RTEE
+capalias       Gu      IGNORE  XENIX   double-ACS_BTEE
+capalias       Gd      IGNORE  XENIX   double ACS_TTEE
+capalias       Gh      IGNORE  XENIX   double-ACS_HLINE
+capalias       Gv      IGNORE  XENIX   double-ACS_VLINE
+capalias       Gc      IGNORE  XENIX   double-ACS_PLUS
+capalias       GG      IGNORE  XENIX   acs-glitch
+#
+# IBM extensions:
+#
+capalias       kq      %1      IBM     key_help
+#
+# Iris extensions:
+#
+capalias       HS      mh      IRIS    enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias       KA      k;      Tek     key_f10
+capalias       KB      F1      Tek     key_f11
+capalias       KC      F2      Tek     key_f12
+capalias       KD      F3      Tek     key_f13
+capalias       KE      F4      Tek     key_f14
+capalias       KF      F5      Tek     key_f15
+capalias       BC      Sb      Tek     set_background
+capalias       FC      Sf      Tek     set_foreground
+#
+# There are also the following:
+#
+#      XENIX   XENIX variable name     name clash with terminfo?
+#      -----   -------------------     -------------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window
+#      HP      ??
+#      LF      key_linefeed            label_off
+#      NU      key_next_unlocked_cell
+#      PL      ??
+#      PR      ??
+#      RC      key_recalc              remove_clock
+#      RF      key_toggle_ref          req_for_input
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias      font0   s0ds    IBM     set0_des_seq
+infoalias      font1   s1ds    IBM     set1_des_seq
+infoalias      font2   s2ds    IBM     set2_des_seq
+infoalias      font3   s3ds    IBM     set3_des_seq
+infoalias      kbtab   kcbt    IBM     key_backtab
+infoalias      ksel    kslt    IBM     key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/include/Caps.osf1r5 b/include/Caps.osf1r5
new file mode 100644 (file)
index 0000000..958461a
--- /dev/null
@@ -0,0 +1,1274 @@
+##############################################################################
+# Copyright (c) 2002 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas Dickey
+#
+# $Id: Caps.osf1r5,v 1.3 2002/07/07 00:02:52 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with OSF/1 version 5 (Tru64) terminfo.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap 
+# compatibility hack.  It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+#           translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability.  This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs).  The codes read as follows:
+#      B = mentioned in the BSD man page for 4.4BSD curses
+#      C = used by the 4.4BSD curses library
+#      G = mentioned in the documentation for GNU termcap
+#      E = used by GNU Emacs
+#      K = remove this terminfo capability when translating to standard format
+# The important codes are C and E.  A cap with C or E should be preserved in
+# translation if possible.  The problem is that preserving all such caps may
+# lead to some termcap translations being too long.  The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to.  The name IGNORE means it
+#           should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future).  If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it.  This is appropriate if the capability has the same meaning
+# as an already-supported one.  The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table.  You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad.  It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBBooleans  name    Code\fR
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   cannot print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+col_addr_glitch                        xhpa    bool    YA      -       -       -----   only positive motion for hpa/mhpa caps
+cpi_changes_res                        cpix    bool    YF      -       -       -----   changing character pitch changes resolution
+cr_cancels_micro_mode          crxm    bool    YB      -       -       -----   using cr turns off micro mode
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+has_print_wheel                        daisy   bool    YC      -       -       -----   printer needs operator to change character set
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+lpi_changes_res                        lpix    bool    YG      -       -       -----   changing line pitch changes resolution
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding will not work, xon/xoff required
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer will not echo on screen
+row_addr_glitch                        xvpa    bool    YD      -       -       -----   only positive motion for vpa/mvpa caps
+semi_auto_right_margin         sam     bool    YE      -       -       -----   printing in last column causes cr
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+bit_image_entwining            bitwin  num     Yo      -       -       -----   number of passes for each bit-image row
+bit_image_type                 bitype  num     Yp      -       -       -----   type of bit-image device
+buffer_capacity                        bufsz   num     Ya      -       -       -----   numbers of bytes buffered before printing
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+dot_vert_spacing               spinv   num     Yb      -       -       -----   spacing of pins vertically in pins per inch
+dot_horz_spacing               spinh   num     Yc      -       -       -----   spacing of dots horizontally in dots per inch
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+max_attributes                 ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_micro_address              maddr   num     Yd      -       -       -----   maximum value in micro_..._address
+max_micro_jump                 mjump   num     Ye      -       -       -----   maximum value in parm_..._micro
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+maximum_windows                        wnum    num     MW      -       -       -----   maximum number of defineable windows
+micro_col_size                 mcs     num     Yf      -       -       -----   character step size when in micro mode
+micro_line_size                        mls     num     Yg      -       -       -----   line step size when in micro mode
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that can not be used with colors
+number_of_pins                 npins   num     Yh      -       -       -----   numbers of pins in print-head
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+output_res_char                        orc     num     Yi      -       -       -----   horizontal resolution in units per line
+output_res_line                        orl     num     Yj      -       -       -----   vertical resolution in units per line
+output_res_horz_inch           orhi    num     Yk      -       -       -----   horizontal resolution in units per inch
+output_res_vert_inch           orvi    num     Yl      -       -       -----   vertical resolution in units per inch
+print_rate                     cps     num     Ym      -       -       -----   print rate in characters per second
+wide_char_size                 widcs   num     Yn      -       -       -----   character step size when in double wide mode
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+# OSF1 differences start here, based on IBM version:
+#
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+box_chars_2                    box2    str     by      -               -       ----K   box characters secondary set
+box_attr_1                     batt1   str     Bx      -               -       ----K   attributes for box1
+box_attr_2                     batt2   str     By      -               -       ----K   attributes for box2
+color_bg_0                     colb0   str     d0      -               -       ----K   background color 0
+color_bg_1                     colb1   str     d1      -               -       ----K   background color 1
+color_bg_2                     colb2   str     d2      -               -       ----K   background color 2
+color_bg_3                     colb3   str     d3      -               -       ----K   background color 3
+color_bg_4                     colb4   str     d4      -               -       ----K   background color 4
+color_bg_5                     colb5   str     d5      -               -       ----K   background color 5
+color_bg_6                     colb6   str     d6      -               -       ----K   background color 6
+color_bg_7                     colb7   str     d7      -               -       ----K   background color 7
+color_fg_0                     colf0   str     c0      -               -       ----K   foreground color 0
+color_fg_1                     colf1   str     c1      -               -       ----K   foreground color 1
+color_fg_2                     colf2   str     c2      -               -       ----K   foreground color 2
+color_fg_3                     colf3   str     c3      -               -       ----K   foreground color 3
+color_fg_4                     colf4   str     c4      -               -       ----K   foreground color 4
+color_fg_5                     colf5   str     c5      -               -       ----K   foreground color 5
+color_fg_6                     colf6   str     c6      -               -       ----K   foreground color 6
+color_fg_7                     colf7   str     c7      -               -       ----K   foreground color 7
+font_0                         font0   str     f0      -               -       -----   select font 0
+font_1                         font1   str     f1      -               -       -----   select font 1
+font_2                         font2   str     f2      -               -       -----   select font 2
+font_3                         font3   str     f3      -               -       -----   select font 3
+font_4                         font4   str     f4      -               -       ----K   select font 4
+font_5                         font5   str     f5      -               -       ----K   select font 5
+font_6                         font6   str     f6      -               -       ----K   select font 6
+font_7                         font7   str     f7      -               -       ----K   select font 7
+key_back_tab                   kbtab   str     k0      -               -       -----   backtab key
+key_do                         kdo     str     ki      -               -       ----K   do request key
+key_command                    kcmd    str     kc      KEY_COMMAND     0545    -----   command key
+key_command_pane               kcpn    str     kW      -               -       ----K   command-pane key
+key_end                                kend    str     @7      KEY_END         0550    -----   end key
+key_help                       khlp    str     %1      KEY_HELP        0553    -----   help key
+key_newline                    knl     str     nl      -               -       ----K   newline key
+key_next_pane                  knpn    str     kv      -               -       ----K   next-pane key
+key_prev_cmd                   kppn    str     kp      -               -       ----K   previous-command key
+key_prev_pane                  kppn    str     kV      -               -       ----K   previous-pane key
+key_quit                       kquit   str     kQ      -               -       ----K   quit key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_scroll_left                        kscl    str     kz      -               -       ----K   scroll left
+key_scroll_right               kscr    str     kZ      -               -       ----K   scroll right
+key_tab                                ktab    str     ko      -               -       ----K   tab key
+key_smap_in1                   kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+key_smap_out1                  kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+key_smap_in2                   kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+key_smap_out2                  kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+key_smap_in3                   kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+key_smap_out3                  kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+key_smap_in4                   kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+key_smap_out4                  kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+key_smap_in5                   kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+key_smap_out5                  kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+appl_defined_str               apstr   str     za      -               -       ----K   application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities are described in
+# the Tru64 manual pages.
+key_smap_in6                   kmpf6   str     Kr      -               -       ----K   special mapped key 6 input
+key_smap_out6                  kmpt6   str     KR      -               -       ----K   special mapped key 6 output
+key_smap_in7                   kmpf7   str     Ks      -               -       ----K   special mapped key 7 input
+key_smap_out7                  kmpt7   str     KS      -               -       ----K   special mapped key 7 output
+key_smap_in8                   kmpf8   str     Kt      -               -       ----K   special mapped key 8 input
+key_smap_out8                  kmpt8   str     KT      -               -       ----K   special mapped key 8 output
+key_smap_in9                   kmpf9   str     Ku      -               -       ----K   special mapped key 9 input
+key_smap_out9                  kmpt9   str     KU      -               -       ----K   special mapped key 9 output
+key_sf1                                ksf1    str     S1      -               -       ----K   special function key 1
+key_sf2                                ksf2    str     S2      -               -       ----K   special function key 2
+key_sf3                                ksf3    str     S3      -               -       ----K   special function key 3
+key_sf4                                ksf4    str     S4      -               -       ----K   special function key 4
+key_sf5                                ksf5    str     S5      -               -       ----K   special function key 5
+key_sf6                                ksf6    str     S6      -               -       ----K   special function key 6
+key_sf7                                ksf7    str     S7      -               -       ----K   special function key 7
+key_sf8                                ksf8    str     S8      -               -       ----K   special function key 8
+key_sf9                                ksf9    str     S9      -               -       ----K   special function key 9
+key_sf10                       ksf10   str     SA      -               -       ----K   special function key 10
+#
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_action                     kact    str     kJ      KEY_ACTION      0541    ----K   sent by action key
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+alt_scancode_esc               scesa   str     S8      -               -       -----   Alternate escape for scancode emulation
+bit_image_repeat               birep   str     Xy      -               -       -----   Repeat bit image cell #1 #2 times
+bit_image_newline              binel   str     Zz      -               -       -----   Move to next row of the bit image
+bit_image_carriage_return      bicr    str     Yv      -               -       -----   Move to beginning of same row
+change_char_pitch              cpi     str     ZA      -               -       -----   Change number of characters per inch to #1
+change_line_pitch              lpi     str     ZB      -               -       -----   Change number of lines per inch to #1
+change_res_horz                        chr     str     ZC      -               -       -----   Change horizontal resolution to #1
+change_res_vert                        cvr     str     ZD      -               -       -----   Change vertical resolution to #1
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+char_set_names                 csnm    str     Zy      -               -       -----   Produce #1'th item from list of character set names
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+create_window                  cwin    str     CW      -               -       -----   define a window #1 from #2,#3 to #4,#5
+define_bit_image_region                defbi   str     Yx      -               -       -----   Define rectangualar bit image region
+define_char                    defc    str     ZE      -               -       -----   Define a character #1, #2 dots wide, descender #3
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+dial_phone                     dial    str     DI      -               -       -----   dial number #1
+display_clock                  dclk    str     DK      -               -       -----   display clock
+display_pc_char                        dispc   str     S1      -               -       -----   Display PC character #1
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+end_bit_image_region           endbi   str     Yy      -               -       -----   End a bit-image region
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+enter_doublewide_mode          swidm   str     ZF      -               -       -----   Enter double-wide mode
+enter_draft_quality            sdrfq   str     ZG      -               -       -----   Enter draft-quality mode
+enter_italics_mode             sitm    str     ZH      -               -       -----   Enter italic mode
+enter_leftward_mode            slm     str     ZI      -               -       -----   Start leftward carriage motion
+enter_micro_mode               smicm   str     ZJ      -               -       -----   Start micro-motion mode
+enter_near_letter_quality      snlq    str     ZK      -               -       -----   Enter NLQ mode
+enter_normal_quality           snrmq   str     ZL      -               -       -----   Enter normal-quality mode
+enter_pc_charset_mode          smpch   str     S2      -               -       -----   Enter PC character display mode
+enter_scancode_mode            smsc    str     S4      -               -       -----   Enter PC scancode mode
+enter_shadow_mode              sshm    str     ZM      -               -       -----   Enter shadow-print mode
+enter_subscript_mode           ssubm   str     ZN      -               -       -----   Enter subscript mode
+enter_superscript_mode         ssupm   str     ZO      -               -       -----   Enter superscript mode
+enter_upward_mode              sum     str     ZP      -               -       -----   Start upward carriage motion
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+exit_doublewide_mode           rwidm   str     ZQ      -               -       -----   End double-wide mode
+exit_italics_mode              ritm    str     ZR      -               -       -----   End italic mode
+exit_leftward_mode             rlm     str     ZS      -               -       -----   End left-motion mode
+exit_micro_mode                        rmicm   str     ZT      -               -       -----   End micro-motion mode
+exit_pc_charset_mode           rmpch   str     S3      -               -       -----   Exit PC character display mode
+exit_scancode_mode             rmsc    str     S5      -               -       -----   Exit PC scancode mode
+exit_shadow_mode               rshm    str     ZU      -               -       -----   End shadow-print mode
+exit_subscript_mode            rsubm   str     ZV      -               -       -----   End subscript mode
+exit_superscript_mode          rsupm   str     ZW      -               -       -----   End superscript mode
+exit_upward_mode               rum     str     ZX      -               -       -----   End reverse character motion
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+fixed_pause                    pause   str     PA      -               -       -----   pause for 2-3 seconds
+flash_hook                     hook    str     fh      -               -       -----   flash switch hook
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+goto_window                    wingo   str     WG      -               -       -----   go to window #1
+hangup                         hup     str     HU      -               -       -----   hang-up phone
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_btab                       kcbt    str     kB      KEY_BTAB        0632    -----   back-tab key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+label_format                   fln     str     Lf      -               -       -----   label format
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+micro_column_address           mhpa    str     ZY      -               -       -----   Like column_address in micro mode
+micro_down                     mcud1   str     ZZ      -               -       -----   Like cursor_down in micro mode
+micro_left                     mcub1   str     Za      -               -       -----   Like cursor_left in micro mode
+micro_right                    mcuf1   str     Zb      -               -       -----   Like cursor_right in micro mode
+micro_row_address              mvpa    str     Zc      -               -       -----   Like row_address #1 in micro mode
+micro_up                       mcuu1   str     Zd      -               -       -----   Like cursor_up in micro mode
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+order_of_pins                  porder  str     Ze      -               -       -----   Match software bits to print-head pins
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+parm_down_micro                        mcud    str     Zf      -               -       -----   Like parm_down_cursor in micro mode
+parm_left_micro                        mcub    str     Zg      -               -       -----   Like parm_left_cursor in micro mode
+parm_right_micro               mcuf    str     Zh      -               -       -----   Like parm_right_cursor in micro mode
+parm_up_micro                  mcuu    str     Zi      -               -       -----   Like parm_up_cursor in micro mode
+pc_term_options                        pctrm   str     S6      -               -       -----   PC terminal options
+pkey_plab                      pfxl    str     xl      -               -       -----   Program function key #1 to type string #2 and show string #3
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+pulse                          pulse   str     PU      -               -       -----   select pulse dialing
+quick_dial                     qdial   str     QD      -               -       -----   dial number #1 without checking
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+remove_clock                   rmclk   str     RC      -               -       -----   remove clock
+scancode_escape                        scesc   str     S7      -               -       -----   Escape for scancode emulation
+select_char_set                        scs     str     Zj      -               -       -----   Select character set, #1
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
+set_bottom_margin              smgb    str     Zk      -               -       -----   Set bottom margin at current line
+set_bottom_margin_parm         smgbp   str     Zl      -               -       -----   Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_clock                      sclk    str     SC      -               -       -----   set clock, #1 hrs #2 mins #3 secs
+set_color_band         setcolor        str     Yz      -               -       -----   Change to ribbon color #1
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_left_margin_parm           smglp   str     Zm      -               -       -----   Set left (right) margin at column #1
+set_lr_margin                  smglr   str     ML      -               -       -----   Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_page_length                        slines  str     YZ      -               -       -----   Set page length to #1 lines
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+set_right_margin_parm          smgrp   str     Zn      -               -       -----   Set right margin at column #1
+set_tb_margin                  smgtb   str     MT      -               -       -----   Sets both top and bottom margins to #1, #2
+set_top_margin                 smgt    str     Zo      -               -       -----   Set top margin at current line
+set_top_margin_parm            smgtp   str     Zp      -               -       -----   Set top (bottom) margin at row #1
+start_bit_image                        sbim    str     Zq      -               -       -----   Start printing bit image graphics
+start_char_set_def             scsd    str     Zr      -               -       -----   Start character set definition #1, with #2 characters in the set
+stop_bit_image                 rbim    str     Zs      -               -       -----   Stop printing bit image graphics
+stop_char_set_def              rcsd    str     Zt      -               -       -----   End definition of character set #1
+subscript_characters           subcs   str     Zu      -               -       -----   List of subscriptable characters
+superscript_characters         supcs   str     Zv      -               -       -----   List of superscriptable characters
+these_cause_cr                 docr    str     Zw      -               -       -----   Printing any of these characters causes CR
+tone                           tone    str     TO      -               -       -----   select touch tone dialing
+user0                          u0      str     u0      -               -       -----   User string #0
+user1                          u1      str     u1      -               -       -----   User string #1
+user2                          u2      str     u2      -               -       -----   User string #2
+user3                          u3      str     u3      -               -       -----   User string #3
+user4                          u4      str     u4      -               -       -----   User string #4
+user5                          u5      str     u5      -               -       -----   User string #5
+user6                          u6      str     u6      -               -       -----   User string #6
+user7                          u7      str     u7      -               -       -----   User string #7
+user8                          u8      str     u8      -               -       -----   User string #8
+user9                          u9      str     u9      -               -       -----   User string #9
+wait_tone                      wait    str     WA      -               -       -----   wait for dial-tone
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+xon_character                  xonc    str     XN      -               -       -----   XON character
+zero_motion                    zerom   str     Zx      -               -       -----   No motion for subsequent character
+set_pglen_inch                 slength str     sL      -               -       -----   YI Set page length to #1 hundredth of an inch
+enter_horizontal_hl_mode       ehhlm   str     Xh      -               -       -----   Enter horizontal highlight mode
+enter_left_hl_mode             elhlm   str     Xl      -               -       -----   Enter left highlight mode
+enter_low_hl_mode              elohlm  str     Xo      -               -       -----   Enter low highlight mode
+enter_right_hl_mode            erhlm   str     Xr      -               -       -----   Enter right highlight mode
+enter_top_hl_mode              ethlm   str     Xt      -               -       -----   Enter top highlight mode
+enter_vertical_hl_mode         evhlm   str     Xv      -               -       -----   Enter vertical highlight mode
+set_a_attributes               sgr1    str     sA      -               -       -----   Define second set of video attributes #1-#6
+#
+#
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually!  In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents.  The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2.  Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
+#
+# Obsolete termcap capabilities.  Some are used for termcap translation.  The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
+#
+# GNU termcap library extensions.  The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file.  The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
+#
+# GNU termcap *does* include the following extended capability,  Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer.  Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code.  They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both.  This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code.  It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text.  All lines above the cursor's current line become locked in place on
+# the screen.  Then enter data normally.  When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data.  Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check.  The descriptions are guesses from what was
+# in the mytinfo tables. 
+#
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap  IBM ASCII       description             ACS             ASCII
+# ---  -----------     --------------------    -------------   ------
+# G1   191 \277 M-?    single upper right      ACS_URCORNER
+# G2   218 \332 M-Z    single upper left       ACS_ULCORNER
+# G3   192 \300 M-@    single lower left       ACS_LLCORNER
+# G4   217 \331 M-Y    single lower right      ACS_LRCORNER
+# G5   187 \273 M-;    double upper right
+# G6   201 \311 M-I    double upper left
+# G7   200 \310 M-H    double lower left
+# G8   188 \274 M-<    double lower right
+# GC   197 \305 M-E    single intersection     ACS_PLUS        _ _
+# GD   194 \302 M-B    single down-tick        ACS_TTEE         |
+# GH   196 \304 M-D    single horizontal line  ACS_HLINE
+# GL   180 \264 M-4    single left tick        ACS_RTEE        -|
+# GR   195 \303 M-C    single right tick       ACS_LTEE        |-
+# GU   193 \301 M-A    single up tick          ACS_BTEE        _|_
+# GV   179 \263 M-3    single vertical line    ACS_VLINE
+# Gc   206 \316 M-N    double intersection
+# Gd   203 \313 M-K    double down tick
+# Gh   205 \315 M-M    double horizontal line
+# Gl   204 \204 M-L    double left tick
+# Gr   185 \271 M-9    double right tick
+# Gu   202 \312 M-J    double up tick
+# Gv   186 \272 M-:    double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down).  We don't want to do normal pad 
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics.  There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments.  What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set.  They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files.  Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different.  Grrr....
+#
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE    
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+#box_chars_1                   box1    str     bx      -               -       ----K   box characters primary set
+#box_chars_2                   box2    str     by      -               -       ----K   box characters secondary set
+#box_attr_1                    batt1   str     Bx      -               -       ----K   attributes for box1
+#box_attr_2                    batt2   str     By      -               -       ----K   attributes for box2
+#color_bg_0                    colb0   str     d0      -               -       ----K   background color 0
+#color_bg_1                    colb1   str     d1      -               -       ----K   background color 1
+#color_bg_2                    colb2   str     d2      -               -       ----K   background color 2
+#color_bg_3                    colb3   str     d3      -               -       ----K   background color 3
+#color_bg_4                    colb4   str     d4      -               -       ----K   background color 4
+#color_bg_5                    colb5   str     d5      -               -       ----K   background color 5
+#color_bg_6                    colb6   str     d6      -               -       ----K   background color 6
+#color_bg_7                    colb7   str     d7      -               -       ----K   background color 7
+#color_fg_0                    colf0   str     c0      -               -       ----K   foreground color 0
+#color_fg_1                    colf1   str     c1      -               -       ----K   foreground color 1
+#color_fg_2                    colf2   str     c2      -               -       ----K   foreground color 2
+#color_fg_3                    colf3   str     c3      -               -       ----K   foreground color 3
+#color_fg_4                    colf4   str     c4      -               -       ----K   foreground color 4
+#color_fg_5                    colf5   str     c5      -               -       ----K   foreground color 5
+#color_fg_6                    colf6   str     c6      -               -       ----K   foreground color 6
+#color_fg_7                    colf7   str     c7      -               -       ----K   foreground color 7
+#font_0                                font0   str     f0      -               -       -----   select font 0
+#font_1                                font1   str     f1      -               -       -----   select font 1
+#font_2                                font2   str     f2      -               -       -----   select font 2
+#font_3                                font3   str     f3      -               -       -----   select font 3
+#font_4                                font4   str     f4      -               -       ----K   select font 4
+#font_5                                font5   str     f5      -               -       ----K   select font 5
+#font_6                                font6   str     f6      -               -       ----K   select font 6
+#font_7                                font7   str     f7      -               -       ----K   select font 7
+#key_back_tab                  kbtab   str     k0      -               -       -----   backtab key
+#key_do                                kdo     str     ki      -               -       ----K   do request key
+#key_command                   kcmd    str     kd      -               -       ----K   command-request key
+#key_command_pane              kcpn    str     kW      -               -       ----K   command-pane key
+#key_end                       kend    str     kw      -               -       -----   end key
+#key_help                      khlp    str     kq      -               -       -----   help key
+#key_newline                   knl     str     nl      -               -       ----K   newline key
+#key_next_pane                 knpn    str     kv      -               -       ----K   next-pane key
+#key_prev_cmd                  kppn    str     kp      -               -       ----K   previous-command key
+#key_prev_pane                 kppn    str     kV      -               -       ----K   previous-pane key
+#key_quit                      kquit   str     kQ      -               -       ----K   quit key
+#key_select                    ksel    str     kU      -               -       -----   select key
+#key_scroll_left               kscl    str     kz      -               -       ----K   scroll left
+#key_scroll_right              kscr    str     kZ      -               -       ----K   scroll right
+#key_tab                       ktab    str     ko      -               -       ----K   tab key
+#key_smap_in1                  kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+#key_smap_out1                 kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+#key_smap_in2                  kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+#key_smap_out2                 kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+#key_smap_in3                  kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+#key_smap_out3                 kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+#key_smap_in4                  kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+#key_smap_out4                 kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+#key_smap_in5                  kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+#key_smap_out5                 kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+#appl_defined_str              apstr   str     za      -               -       ----K   application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses.  The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6                  kmpf6   str     k!      -               -       ----K   special mapped key 6 input
+#key_smap_out6                 kmpt6   str     K@      -               -       ----K   special mapped key 6 output
+#key_smap_in7                  kmpf7   str     k#      -               -       ----K   special mapped key 7 input
+#key_smap_out7                 kmpt7   str     K$      -               -       ----K   special mapped key 7 output
+#key_smap_in8                  kmpf8   str     k%      -               -       ----K   special mapped key 8 input
+#key_smap_out8                 kmpt8   str     K^      -               -       ----K   special mapped key 8 output
+#key_smap_in9                  kmpf9   str     k&      -               -       ----K   special mapped key 9 input
+#key_smap_out9                 kmpt9   str     K*      -               -       ----K   special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1                       ksf1    str     S1      -               -       ----K   special function key 1
+#key_sf2                       ksf2    str     S2      -               -       ----K   special function key 2
+#key_sf3                       ksf3    str     S3      -               -       ----K   special function key 3
+#key_sf4                       ksf4    str     S4      -               -       ----K   special function key 4
+#key_sf5                       ksf5    str     S5      -               -       ----K   special function key 5
+#key_sf6                       ksf6    str     S6      -               -       ----K   special function key 6
+#key_sf7                       ksf7    str     S7      -               -       ----K   special function key 7
+#key_sf8                       ksf8    str     S8      -               -       ----K   special function key 8
+#key_sf9                       ksf9    str     S9      -               -       ----K   special function key 9
+#key_sf10                      ksf10   str     SA      -               -       ----K   special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11                       kf11    str     k<      -               -       -----   function key 11
+#key_f12                       kf12    str     k>      -               -       -----   function key 12
+# Undocumented capabilities end here.
+#key_action                    kact    str     kJ      -               -       ----K   sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode            topl    str     tp      -               -       ----K   start top-line mode
+#enter_bottom_mode             btml    str     bm      -               -       ----K   start bottom-line mode
+#enter_rvert_mode              rvert   str     rv      -               -       ----K   start right-vertical mode
+#enter_lvert_mode              lvert   str     lv      -               -       ----K   start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files.  We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias       sb      sr      BSD     scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias       BO      mr      AT&T    enter_reverse_mode
+capalias       CI      vi      AT&T    cursor_invisible
+capalias       CV      ve      AT&T    cursor_normal
+capalias       DS      mh      AT&T    enter_dim_mode
+#capalias      EE      me      AT&T    exit_attribute_mode     
+capalias       FE      LF      AT&T    label_on
+capalias       FL      LO      AT&T    label_off
+capalias       XS      mk      AT&T    enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in 
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias       EE      mh      XENIX   exit_attribute_mode     
+capalias       GE      ae      XENIX   exit_alt_charset_mode
+capalias       GS      as      XENIX   enter_alt_charset_mode
+capalias       CF      vi      XENIX   cursor_invis
+capalias       CO      ve      XENIX   cursor_normal
+capalias       EN      @7      XENIX   key_end
+capalias       HM      kh      XENIX   key_home
+capalias       LD      kL      XENIX   key_dl
+capalias       PD      kN      XENIX   key_npage
+capalias       PN      po      XENIX   prtr_off
+capalias       PS      pf      XENIX   prtr_on
+capalias       PU      kP      XENIX   key_ppage
+capalias       RT      @8      XENIX   kent
+capalias       UP      ku      XENIX   kcuu1
+capalias       G6      IGNORE  XENIX   double-ACS_ULCORNER
+capalias       G7      IGNORE  XENIX   double-ACS_LLCORNER
+capalias       G5      IGNORE  XENIX   double-ACS_URCORNER
+capalias       G8      IGNORE  XENIX   double-ACS_LRCORNER
+capalias       Gr      IGNORE  XENIX   double-ACS_LTEE
+capalias       Gr      IGNORE  XENIX   double-ACS_RTEE
+capalias       Gu      IGNORE  XENIX   double-ACS_BTEE
+capalias       Gd      IGNORE  XENIX   double ACS_TTEE
+capalias       Gh      IGNORE  XENIX   double-ACS_HLINE
+capalias       Gv      IGNORE  XENIX   double-ACS_VLINE
+capalias       Gc      IGNORE  XENIX   double-ACS_PLUS
+capalias       GG      IGNORE  XENIX   acs-glitch
+#
+# IBM extensions:
+#
+capalias       kq      %1      IBM     key_help
+#
+# Iris extensions:
+#
+capalias       HS      mh      IRIS    enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias       KA      k;      Tek     key_f10
+capalias       KB      F1      Tek     key_f11
+capalias       KC      F2      Tek     key_f12
+capalias       KD      F3      Tek     key_f13
+capalias       KE      F4      Tek     key_f14
+capalias       KF      F5      Tek     key_f15
+capalias       BC      Sb      Tek     set_background
+capalias       FC      Sf      Tek     set_foreground
+#
+# There are also the following:
+#
+#      XENIX   XENIX variable name     name clash with terminfo?
+#      -----   -------------------     -------------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window
+#      HP      ??
+#      LF      key_linefeed            label_off
+#      NU      key_next_unlocked_cell
+#      PL      ??
+#      PR      ??
+#      RC      key_recalc              remove_clock
+#      RF      key_toggle_ref          req_for_input
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias      font0   s0ds    IBM     set0_des_seq
+infoalias      font1   s1ds    IBM     set1_des_seq
+infoalias      font2   s2ds    IBM     set2_des_seq
+infoalias      font3   s3ds    IBM     set3_des_seq
+infoalias      kbtab   kcbt    IBM     key_backtab
+infoalias      ksel    kslt    IBM     key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/include/Caps.uwin b/include/Caps.uwin
new file mode 100644 (file)
index 0000000..6efa208
--- /dev/null
@@ -0,0 +1,1090 @@
+##############################################################################
+# Copyright (c) 2001 Free Software 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
+#
+# $Id: Caps.uwin,v 1.3 2002/07/07 00:05:00 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with U/Win's terminfo.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap 
+# compatibility hack.  It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+#           translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability.  This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs).  The codes read as follows:
+#      B = mentioned in the BSD man page for 4.4BSD curses
+#      C = used by the 4.4BSD curses library
+#      G = mentioned in the documentation for GNU termcap
+#      E = used by GNU Emacs
+#      K = remove this terminfo capability when translating to standard format
+# The important codes are C and E.  A cap with C or E should be preserved in
+# translation if possible.  The problem is that preserving all such caps may
+# lead to some termcap translations being too long.  The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to.  The name IGNORE means it
+#           should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future).  If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it.  This is appropriate if the capability has the same meaning
+# as an already-supported one.  The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table.  You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad.  It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBBooleans  name    Code\fR
+auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
+auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
+no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch           xhp     bool    xs      -       -       YBCGE   standout not erased by overwriting (hp)
+eat_newline_glitch             xenl    bool    xn      -       -       YBCGE   newline ignored after 80 cols (concept)
+erase_overstrike               eo      bool    eo      -       -       YBCG-   can erase overstrikes with a blank
+generic_type                   gn      bool    gn      -       -       YB-G-   generic line type
+hard_copy                      hc      bool    hc      -       -       YBCG-   hardcopy terminal
+has_meta_key                   km      bool    km      -       -       YB-GE   Has a meta key (i.e., sets 8th-bit)
+has_status_line                        hs      bool    hs      -       -       YB-G-   has extra status line
+insert_null_glitch             in      bool    in      -       -       YBCGE   insert mode distinguishes nulls
+memory_above                   da      bool    da      -       -       YBCG-   display may be retained above the screen
+memory_below                   db      bool    db      -       -       YB-GE   display may be retained below the screen
+move_insert_mode               mir     bool    mi      -       -       YBCGE   safe to move while in insert mode
+move_standout_mode             msgr    bool    ms      -       -       YBCGE   safe to move while in standout mode
+over_strike                    os      bool    os      -       -       YBCG-   terminal can overstrike
+status_line_esc_ok             eslok   bool    es      -       -       YB-G-   escape can be used on the status line
+dest_tabs_magic_smso           xt      bool    xt      -       -       YBCGE   tabs destructive, magic so char (t1061)
+tilde_glitch                   hz      bool    hz      -       -       YB-GE   cannot print ~'s (hazeltine)
+transparent_underline          ul      bool    ul      -       -       YBCGE   underline character overstrikes
+xon_xoff                       xon     bool    xo      -       -       YB---   terminal uses xon/xoff handshaking
+needs_xon_xoff                 nxon    bool    nx      -       -       -----   padding will not work, xon/xoff required
+prtr_silent                    mc5i    bool    5i      -       -       -----   printer will not echo on screen
+hard_cursor                    chts    bool    HC      -       -       -----   cursor is hard to see
+non_rev_rmcup                  nrrmc   bool    NR      -       -       -----   smcup does not reverse rmcup
+no_pad_char                    npc     bool    NP      -       -       -----   pad character does not exist
+non_dest_scroll_region         ndscr   bool    ND      -       -       -----   scrolling region is non-destructive
+back_color_erase               bce     bool    ut      -       -       -----   screen erased with background color
+can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
+hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBNumeric   name    Code\fR
+columns                                cols    num     co      -       -       YBCGE   number of columns in a line
+init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
+lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
+lines_of_memory                        lm      num     lm      -       -       YB-G-   lines of memory if > line. 0 means varies
+magic_cookie_glitch            xmc     num     sg      -       -       YBCGE   number of blank characters left by smso or rmso
+padding_baud_rate              pb      num     pb      -       -       YB-GE   lowest baud rate where padding needed
+virtual_terminal               vt      num     vt      -       -       YB---   virtual terminal number (CB/unix)
+width_status_line              wsl     num     ws      -       -       YB-G-   number of columns in status line
+num_labels                     nlab    num     Nl      -       -       -----   number of labels on screen
+label_height                   lh      num     lh      -       -       -----   rows in each label
+label_width                    lw      num     lw      -       -       -----   columns in each label
+buttons                                btns    num     BT      -       -       -----   number of buttons on mouse
+#max_attributes                        ma      num     ma      -       -       YBC--   maximum combined attributes terminal can handle
+#maximum_windows               wnum    num     MW      -       -       -----   maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors                     colors  num     Co      -       -       -----   maximum number of colors on screen
+max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
+no_color_video                 ncv     num     NC      -       -       -----   video attributes that cannot be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page.  They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable  Cap-    TCap    Description\fR
+#%\fBString    name    Code\fR
+back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
+bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
+carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
+change_scroll_region           csr     str     cs      -               -       YBCGE   change region to line #1 to line #2 (P)
+clear_all_tabs                 tbc     str     ct      -               -       YB-G-   clear all tab stops (P)
+clear_screen                   clear   str     cl      -               -       YBCGE   clear screen and home cursor (P*)
+clr_eol                                el      str     ce      -               -       YBCGE   clear to end of line (P)
+clr_eos                                ed      str     cd      -               -       YBCGE   clear to end of screen (P*)
+column_address                 hpa     str     ch      -               -       -B-GE*  horizontal position #1, absolute (P)
+command_character              cmdch   str     CC      -               -       YB-G-   terminal settable cmd character in prototype !?
+cursor_address                 cup     str     cm      -               -       YBCGE   move to row #1 columns #2
+cursor_down                    cud1    str     do      -               -       YBCGE   down one line
+cursor_home                    home    str     ho      -               -       YBCGE   home cursor (if no cup)
+cursor_invisible               civis   str     vi      -               -       YB-G-   make cursor invisible
+cursor_left                    cub1    str     le      -               -       YBCGE   move left one space
+cursor_mem_address             mrcup   str     CM      -               -       YB-G-   memory relative cursor addressing, move to row #1 columns #2
+cursor_normal                  cnorm   str     ve      -               -       YBCGE   make cursor appear normal (undo civis/cvvis)
+cursor_right                   cuf1    str     nd      -               -       YBCGE   non-destructive space (move right one space)
+cursor_to_ll                   ll      str     ll      -               -       YBCGE   last line, first column (if no cup)
+cursor_up                      cuu1    str     up      -               -       YBCGE   up one line
+cursor_visible                 cvvis   str     vs      -               -       YBCGE   make cursor very visible
+delete_character               dch1    str     dc      -               -       YBCGE   delete character (P*)
+delete_line                    dl1     str     dl      -               -       YBCGE   delete line (P*)
+dis_status_line                        dsl     str     ds      -               -       YB-G-   disable status line
+down_half_line                 hd      str     hd      -               -       YB-G-   half a line down
+enter_alt_charset_mode         smacs   str     as      -               -       YB-G-   start alternate character set (P)
+enter_blink_mode               blink   str     mb      -               -       YB-G-   turn on blinking
+enter_bold_mode                        bold    str     md      -               -       YB-G-   turn on bold (extra bright) mode
+enter_ca_mode                  smcup   str     ti      -               -       YBCGE   string to start programs using cup
+enter_delete_mode              smdc    str     dm      -               -       YBCGE   enter delete mode
+enter_dim_mode                 dim     str     mh      -               -       YB-G-   turn on half-bright mode
+enter_insert_mode              smir    str     im      -               -       YBCGE   enter insert mode
+enter_secure_mode              invis   str     mk      -               -       -B-G-*  turn on blank mode (characters invisible)
+enter_protected_mode           prot    str     mp      -               -       -B-G-*  turn on protected mode
+enter_reverse_mode             rev     str     mr      -               -       YB-G-   turn on reverse video mode
+enter_standout_mode            smso    str     so      -               -       YBCGE   begin standout mode
+enter_underline_mode           smul    str     us      -               -       YBCGE   begin underline mode
+erase_chars                    ech     str     ec      -               -       YB-G-   erase #1 characters (P)
+exit_alt_charset_mode          rmacs   str     ae      -               -       YB-G-   end alternate character set (P)
+exit_attribute_mode            sgr0    str     me      -               -       YB-GE   turn off all attributes
+exit_ca_mode                   rmcup   str     te      -               -       YBCGE   strings to end programs using cup
+exit_delete_mode               rmdc    str     ed      -               -       YBCGE   end delete mode
+exit_insert_mode               rmir    str     ei      -               -       YBCGE   exit insert mode
+exit_standout_mode             rmso    str     se      -               -       YBCGE   exit standout mode
+exit_underline_mode            rmul    str     ue      -               -       YBCGE   exit underline mode
+flash_screen                   flash   str     vb      -               -       YBCGE   visible bell (may not move cursor)
+form_feed                      ff      str     ff      -               -       YB-G-   hardcopy terminal page eject (P*)
+from_status_line               fsl     str     fs      -               -       YB-G-   return from status line
+init_1string                   is1     str     i1      -               -       YB-G-   initialization string
+init_2string                   is2     str     is      -               -       YB-G-   initialization string
+init_3string                   is3     str     i3      -               -       YB-G-   initialization string
+init_file                      if      str     if      -               -       YB-G-   name of initialization file
+insert_character               ich1    str     ic      -               -       YBCGE   insert character (P)
+insert_line                    il1     str     al      -               -       YBCGE   insert line (P*)
+insert_padding                 ip      str     ip      -               -       YBCGE   insert padding after inserted character
+key_backspace                  kbs     str     kb      KEY_BACKSPACE   0407    YB-G-   backspace key
+key_catab                      ktbc    str     ka      KEY_CATAB       0526    -B-G-*  clear-all-tabs key
+key_clear                      kclr    str     kC      KEY_CLEAR       0515    -B-G-*  clear-screen or erase key
+key_ctab                       kctab   str     kt      KEY_CTAB        0525    -B-G-*  clear-tab key
+key_dc                         kdch1   str     kD      KEY_DC          0512    YB-G-   delete-character key
+key_dl                         kdl1    str     kL      KEY_DL          0510    -B-G-*  delete-line key
+key_down                       kcud1   str     kd      KEY_DOWN        0402    YBCGE   down-arrow key
+key_eic                                krmir   str     kM      KEY_EIC         0514    -B-G-*  sent by rmir or smir in insert mode
+key_eol                                kel     str     kE      KEY_EOL         0517    -B-G-*  clear-to-end-of-line key
+key_eos                                ked     str     kS      KEY_EOS         0516    -B-G-*  clear-to-end-of-screen key
+key_f0                         kf0     str     k0      KEY_F(0)        0410    YBCGE   F0 function key
+key_f1                         kf1     str     k1      KEY_F(1)        -       YBCGE   F1 function key
+key_f10                                kf10    str     k;      KEY_F(10)       -       ----E   F10 function key
+key_f2                         kf2     str     k2      KEY_F(2)        -       YBCGE   F2 function key
+key_f3                         kf3     str     k3      KEY_F(3)        -       YBCGE   F3 function key
+key_f4                         kf4     str     k4      KEY_F(4)        -       YBCGE   F4 function key
+key_f5                         kf5     str     k5      KEY_F(5)        -       YBCGE   F5 function key
+key_f6                         kf6     str     k6      KEY_F(6)        -       YBCGE   F6 function key
+key_f7                         kf7     str     k7      KEY_F(7)        -       YBCGE   F7 function key
+key_f8                         kf8     str     k8      KEY_F(8)        -       YBCGE   F8 function key
+key_f9                         kf9     str     k9      KEY_F(9)        -       YBCGE   F9 function key
+key_home                       khome   str     kh      KEY_HOME        0406    YBCGE   home key
+key_ic                         kich1   str     kI      KEY_IC          0513    YB-GE   insert-character key
+key_il                         kil1    str     kA      KEY_IL          0511    -B-G-*  insert-line key
+key_left                       kcub1   str     kl      KEY_LEFT        0404    YBCGE   left-arrow key
+key_ll                         kll     str     kH      KEY_LL          0533    YB-G-   lower-left key (home down)
+key_npage                      knp     str     kN      KEY_NPAGE       0522    YB-GE   next-page key
+key_ppage                      kpp     str     kP      KEY_PPAGE       0523    YB-GE   previous-page key
+key_right                      kcuf1   str     kr      KEY_RIGHT       0405    YBCGE   right-arrow key
+key_sf                         kind    str     kF      KEY_SF          0520    -B-G-*  scroll-forward key
+key_sr                         kri     str     kR      KEY_SR          0521    -B-G-*  scroll-backward key
+key_stab                       khts    str     kT      KEY_STAB        0524    -B-G-*  set-tab key
+key_up                         kcuu1   str     ku      KEY_UP          0403    YBCGE   up-arrow key
+keypad_local                   rmkx    str     ke      -               -       YBCGE   leave 'keyboard_transmit' mode
+keypad_xmit                    smkx    str     ks      -               -       YBCGE   enter 'keyboard_transmit' mode
+lab_f0                         lf0     str     l0      -               -       -B-G-*  label on function key f0 if not f0
+lab_f1                         lf1     str     l1      -               -       -B-G-*  label on function key f1 if not f1
+lab_f10                                lf10    str     la      -               -       -----   label on function key f10 if not f10
+lab_f2                         lf2     str     l2      -               -       -B-G-*  label on function key f2 if not f2
+lab_f3                         lf3     str     l3      -               -       -B-G-*  label on function key f3 if not f3
+lab_f4                         lf4     str     l4      -               -       -B-G-*  label on function key f4 if not f4
+lab_f5                         lf5     str     l5      -               -       -B-G-*  label on function key f5 if not f5
+lab_f6                         lf6     str     l6      -               -       -B-G-*  label on function key f6 if not f6
+lab_f7                         lf7     str     l7      -               -       -B-G-*  label on function key f7 if not f7
+lab_f8                         lf8     str     l8      -               -       -B-G-*  label on function key f8 if not f8
+lab_f9                         lf9     str     l9      -               -       -B-G-*  label on function key f9 if not f9
+meta_off                       rmm     str     mo      -               -       YB-G-*  turn off meta mode
+meta_on                                smm     str     mm      -               -       YB-G-*  turn on meta mode (8th-bit on)
+newline                                nel     str     nw      -               -       YB-G-*  newline (behave like cr followed by lf)
+pad_char                       pad     str     pc      -               -       YBCGE   padding char (instead of null)
+parm_dch                       dch     str     DC      -               -       YB-GE   delete #1 characters (P*)
+parm_delete_line               dl      str     DL      -               -       YBCGE   delete #1 lines (P*)
+parm_down_cursor               cud     str     DO      -               -       YBCGE   down #1 lines (P*)
+parm_ich                       ich     str     IC      -               -       YB-GE   insert #1 characters (P*)
+parm_index                     indn    str     SF      -               -       YBCG-   scroll forward #1 lines (P)
+parm_insert_line               il      str     AL      -               -       YBCGE   insert #1 lines (P*)
+parm_left_cursor               cub     str     LE      -               -       YBCGE   move #1 characters to the left (P)
+parm_right_cursor              cuf     str     RI      -               -       YBCGE   move #1 characters to the right (P*)
+parm_rindex                    rin     str     SR      -               -       YBCG-   scroll back #1 lines (P)
+parm_up_cursor                 cuu     str     UP      -               -       YBCGE   up #1 lines (P*)
+pkey_key                       pfkey   str     pk      -               -       -B---   program function key #1 to type string #2
+pkey_local                     pfloc   str     pl      -               -       -B---   program function key #1 to execute string #2
+pkey_xmit                      pfx     str     px      -               -       -B---   program function key #1 to transmit string #2
+print_screen                   mc0     str     ps      -               -       -B-G-*  print contents of screen
+prtr_off                       mc4     str     pf      -               -       -B-G-*  turn off printer
+prtr_on                                mc5     str     po      -               -       -B-G-*  turn on printer
+repeat_char                    rep     str     rp      -               -       YB-GE   repeat char #1 #2 times (P*)
+reset_1string                  rs1     str     r1      -               -       -B---   reset string
+reset_2string                  rs2     str     r2      -               -       -B---   reset string
+reset_3string                  rs3     str     r3      -               -       -B---   reset string
+reset_file                     rf      str     rf      -               -       -B---   name of reset file
+restore_cursor                 rc      str     rc      -               -       YBCG-   restore cursor to position of last save_cursor
+row_address                    vpa     str     cv      -               -       -B-GE*  vertical position #1 absolute (P)
+save_cursor                    sc      str     sc      -               -       YBCG-   save current cursor position (P)
+scroll_forward                 ind     str     sf      -               -       YBCGE   scroll text up (P)
+scroll_reverse                 ri      str     sr      -               -       YBCGE   scroll text down (P)
+set_attributes                 sgr     str     sa      -               -       YB-G-   define video attributes #1-#9 (PG9)
+set_tab                                hts     str     st      -               -       YB-G-   set a tab in every row, current columns
+set_window                     wind    str     wi      -               -       -B-GE   current window is lines #1-#2 cols #3-#4
+tab                            ht      str     ta      -               -       YBCGE   tab to next 8-space hardware tab stop
+to_status_line                 tsl     str     ts      -               -       YB-G-   move to status line, column #1
+underline_char                 uc      str     uc      -               -       YBCG-   underline char and move past it
+up_half_line                   hu      str     hu      -               -       YB-G-   half a line up
+init_prog                      iprog   str     iP      -               -       -B---   path name of program for initialization
+key_a1                         ka1     str     K1      KEY_A1          0534    YB-GE   upper left of keypad
+key_a3                         ka3     str     K3      KEY_A3          0535    YB-GE   upper right of keypad
+key_b2                         kb2     str     K2      KEY_B2          0536    YB-GE   center of keypad
+key_c1                         kc1     str     K4      KEY_C1          0537    YB-GE   lower left of keypad
+key_c3                         kc3     str     K5      KEY_C3          0540    YB-GE   lower right of keypad
+prtr_non                       mc5p    str     pO      -               -       -B-G-*  turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+char_padding                   rmp     str     rP      -               -       -----   like ip but when in insert mode
+acs_chars                      acsc    str     ac      -               -       -----   graphics charset pairs, based on vt100
+plab_norm                      pln     str     pn      -               -       -----   program label #1 to show string #2
+key_btab                       kcbt    str     kB      KEY_BTAB        0541    -----   back-tab key
+enter_xon_mode                 smxon   str     SX      -               -       -----   turn on xon/xoff handshaking
+exit_xon_mode                  rmxon   str     RX      -               -       -----   turn off xon/xoff handshaking
+enter_am_mode                  smam    str     SA      -               -       -----   turn on automatic margins
+exit_am_mode                   rmam    str     RA      -               -       -----   turn off automatic margins
+xon_character                  xonc    str     XN      -               -       -----   XON character
+xoff_character                 xoffc   str     XF      -               -       -----   XOFF character
+ena_acs                                enacs   str     eA      -               -       -----   enable alternate char set
+label_on                       smln    str     LO      -               -       -----   turn on soft labels
+label_off                      rmln    str     LF      -               -       -----   turn off soft labels
+key_beg                                kbeg    str     @1      KEY_BEG         0542    -----   begin key
+key_cancel                     kcan    str     @2      KEY_CANCEL      0543    -----   cancel key
+key_close                      kclo    str     @3      KEY_CLOSE       0544    -----   close key
+key_command                    kcmd    str     @4      KEY_COMMAND     0545    -----   command key
+key_copy                       kcpy    str     @5      KEY_COPY        0546    -----   copy key
+key_create                     kcrt    str     @6      KEY_CREATE      0547    -----   create key
+key_end                                kend    str     @7      KEY_END         0550    -----   end key
+key_enter                      kent    str     @8      KEY_ENTER       0527    -----   enter/send key
+key_exit                       kext    str     @9      KEY_EXIT        0551    -----   exit key
+key_find                       kfnd    str     @0      KEY_FIND        0552    -----   find key
+key_help                       khlp    str     %1      KEY_HELP        0553    -----   help key
+key_mark                       kmrk    str     %2      KEY_MARK        0554    -----   mark key
+key_message                    kmsg    str     %3      KEY_MESSAGE     0555    -----   message key
+key_move                       kmov    str     %4      KEY_MOVE        0556    -----   move key
+key_next                       knxt    str     %5      KEY_NEXT        0557    -----   next key
+key_open                       kopn    str     %6      KEY_OPEN        0560    -----   open key
+key_options                    kopt    str     %7      KEY_OPTIONS     0561    -----   options key
+key_previous                   kprv    str     %8      KEY_PREVIOUS    0562    -----   previous key
+key_print                      kprt    str     %9      KEY_PRINT       0532    -----   print key
+key_redo                       krdo    str     %0      KEY_REDO        0563    -----   redo key
+key_reference                  kref    str     &1      KEY_REFERENCE   0564    -----   reference key
+key_refresh                    krfr    str     &2      KEY_REFRESH     0565    -----   refresh key
+key_replace                    krpl    str     &3      KEY_REPLACE     0566    -----   replace key
+key_restart                    krst    str     &4      KEY_RESTART     0567    -----   restart key
+key_resume                     kres    str     &5      KEY_RESUME      0570    -----   resume key
+key_save                       ksav    str     &6      KEY_SAVE        0571    -----   save key
+key_suspend                    kspd    str     &7      KEY_SUSPEND     0627    -----   suspend key
+key_undo                       kund    str     &8      KEY_UNDO        0630    -----   undo key
+key_sbeg                       kBEG    str     &9      KEY_SBEG        0572    -----   shifted begin key
+key_scancel                    kCAN    str     &0      KEY_SCANCEL     0573    -----   shifted cancel key
+key_scommand                   kCMD    str     *1      KEY_SCOMMAND    0574    -----   shifted command key
+key_scopy                      kCPY    str     *2      KEY_SCOPY       0575    -----   shifted copy key
+key_screate                    kCRT    str     *3      KEY_SCREATE     0576    -----   shifted create key
+key_sdc                                kDC     str     *4      KEY_SDC         0577    -----   shifted delete-character key
+key_sdl                                kDL     str     *5      KEY_SDL         0600    -----   shifted delete-line key
+key_select                     kslt    str     *6      KEY_SELECT      0601    -----   select key
+key_send                       kEND    str     *7      KEY_SEND        0602    -----   shifted end key
+key_seol                       kEOL    str     *8      KEY_SEOL        0603    -----   shifted clear-to-end-of-line key
+key_sexit                      kEXT    str     *9      KEY_SEXIT       0604    -----   shifted exit key
+key_sfind                      kFND    str     *0      KEY_SFIND       0605    -----   shifted find key
+key_shelp                      kHLP    str     #1      KEY_SHELP       0606    -----   shifted help key
+key_shome                      kHOM    str     #2      KEY_SHOME       0607    -----   shifted home key
+key_sic                                kIC     str     #3      KEY_SIC         0610    -----   shifted insert-character key
+key_sleft                      kLFT    str     #4      KEY_SLEFT       0611    -----   shifted left-arrow key
+key_smessage                   kMSG    str     %a      KEY_SMESSAGE    0612    -----   shifted message key
+key_smove                      kMOV    str     %b      KEY_SMOVE       0613    -----   shifted move key
+key_snext                      kNXT    str     %c      KEY_SNEXT       0614    -----   shifted next key
+key_soptions                   kOPT    str     %d      KEY_SOPTIONS    0615    -----   shifted options key
+key_sprevious                  kPRV    str     %e      KEY_SPREVIOUS   0616    -----   shifted previous key
+key_sprint                     kPRT    str     %f      KEY_SPRINT      0617    -----   shifted print key
+key_sredo                      kRDO    str     %g      KEY_SREDO       0620    -----   shifted redo key
+key_sreplace                   kRPL    str     %h      KEY_SREPLACE    0621    -----   shifted replace key
+key_sright                     kRIT    str     %i      KEY_SRIGHT      0622    -----   shifted right-arrow key
+key_srsume                     kRES    str     %j      KEY_SRSUME      0623    -----   shifted resume key
+key_ssave                      kSAV    str     !1      KEY_SSAVE       0624    -----   shifted save key
+key_ssuspend                   kSPD    str     !2      KEY_SSUSPEND    0625    -----   shifted suspend key
+key_sundo                      kUND    str     !3      KEY_SUNDO       0626    -----   shifted undo key
+req_for_input                  rfi     str     RF      -               -       -----   send next input char (for ptys)
+key_f11                                kf11    str     F1      KEY_F(11)       -       ----E   F11 function key
+key_f12                                kf12    str     F2      KEY_F(12)       -       ----E   F12 function key
+key_f13                                kf13    str     F3      KEY_F(13)       -       ----E   F13 function key
+key_f14                                kf14    str     F4      KEY_F(14)       -       ----E   F14 function key
+key_f15                                kf15    str     F5      KEY_F(15)       -       ----E   F15 function key
+key_f16                                kf16    str     F6      KEY_F(16)       -       ----E   F16 function key
+key_f17                                kf17    str     F7      KEY_F(17)       -       ----E   F17 function key
+key_f18                                kf18    str     F8      KEY_F(18)       -       ----E   F18 function key
+key_f19                                kf19    str     F9      KEY_F(19)       -       ----E   F19 function key
+key_f20                                kf20    str     FA      KEY_F(20)       -       ----E   F20 function key
+key_f21                                kf21    str     FB      KEY_F(21)       -       ----E   F21 function key
+key_f22                                kf22    str     FC      KEY_F(22)       -       ----E   F22 function key
+key_f23                                kf23    str     FD      KEY_F(23)       -       ----E   F23 function key
+key_f24                                kf24    str     FE      KEY_F(24)       -       ----E   F24 function key
+key_f25                                kf25    str     FF      KEY_F(25)       -       ----E   F25 function key
+key_f26                                kf26    str     FG      KEY_F(26)       -       ----E   F26 function key
+key_f27                                kf27    str     FH      KEY_F(27)       -       ----E   F27 function key
+key_f28                                kf28    str     FI      KEY_F(28)       -       ----E   F28 function key
+key_f29                                kf29    str     FJ      KEY_F(29)       -       ----E   F29 function key
+key_f30                                kf30    str     FK      KEY_F(30)       -       ----E   F30 function key
+key_f31                                kf31    str     FL      KEY_F(31)       -       ----E   F31 function key
+key_f32                                kf32    str     FM      KEY_F(32)       -       ----E   F32 function key
+key_f33                                kf33    str     FN      KEY_F(33)       -       ----E   F33 function key
+key_f34                                kf34    str     FO      KEY_F(34)       -       ----E   F34 function key
+key_f35                                kf35    str     FP      KEY_F(35)       -       ----E   F35 function key
+key_f36                                kf36    str     FQ      KEY_F(36)       -       ----E   F36 function key
+key_f37                                kf37    str     FR      KEY_F(37)       -       ----E   F37 function key
+key_f38                                kf38    str     FS      KEY_F(38)       -       ----E   F38 function key
+key_f39                                kf39    str     FT      KEY_F(39)       -       ----E   F39 function key
+key_f40                                kf40    str     FU      KEY_F(40)       -       ----E   F40 function key
+key_f41                                kf41    str     FV      KEY_F(41)       -       ----E   F41 function key
+key_f42                                kf42    str     FW      KEY_F(42)       -       ----E   F42 function key
+key_f43                                kf43    str     FX      KEY_F(43)       -       ----E   F43 function key
+key_f44                                kf44    str     FY      KEY_F(44)       -       ----E   F44 function key
+key_f45                                kf45    str     FZ      KEY_F(45)       -       ----E   F45 function key
+key_f46                                kf46    str     Fa      KEY_F(46)       -       ----E   F46 function key
+key_f47                                kf47    str     Fb      KEY_F(47)       -       ----E   F47 function key
+key_f48                                kf48    str     Fc      KEY_F(48)       -       ----E   F48 function key
+key_f49                                kf49    str     Fd      KEY_F(49)       -       ----E   F49 function key
+key_f50                                kf50    str     Fe      KEY_F(50)       -       ----E   F50 function key
+key_f51                                kf51    str     Ff      KEY_F(51)       -       ----E   F51 function key
+key_f52                                kf52    str     Fg      KEY_F(52)       -       ----E   F52 function key
+key_f53                                kf53    str     Fh      KEY_F(53)       -       ----E   F53 function key
+key_f54                                kf54    str     Fi      KEY_F(54)       -       ----E   F54 function key
+key_f55                                kf55    str     Fj      KEY_F(55)       -       ----E   F55 function key
+key_f56                                kf56    str     Fk      KEY_F(56)       -       ----E   F56 function key
+key_f57                                kf57    str     Fl      KEY_F(57)       -       ----E   F57 function key
+key_f58                                kf58    str     Fm      KEY_F(58)       -       ----E   F58 function key
+key_f59                                kf59    str     Fn      KEY_F(59)       -       ----E   F59 function key
+key_f60                                kf60    str     Fo      KEY_F(60)       -       ----E   F60 function key
+key_f61                                kf61    str     Fp      KEY_F(61)       -       ----E   F61 function key
+key_f62                                kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
+key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
+clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
+clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
+device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
+code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
+set0_des_seq                   s0ds    str     s0      -               -       -----   Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq                   s1ds    str     s1      -               -       -----   Shift to codeset 1
+set2_des_seq                   s2ds    str     s2      -               -       -----   Shift to codeset 2
+set3_des_seq                   s3ds    str     s3      -               -       -----   Shift to codeset 3
+key_mouse                      kmous   str     Km      KEY_MOUSE       0631    -----   Mouse event has occurred
+mouse_info                     minfo   str     Mi      -               -       -----   Mouse status information
+req_mouse_pos                  reqmp   str     RQ      -               -       -----   Request mouse position
+get_mouse                      getm    str     Gm      -               -       -----   Curses should get button events, parameter #1 not documented.
+release_mouse                  relm    str     Rm      -               -       -----   Curses should release the mouse */
+color_names                    colornm str     Yw      -               -       -----   Give name for color #1
+initialize_color               initc   str     Ic      -               -       -----   initialize color #1 to (#2,#3,#4)
+initialize_pair                        initp   str     Ip      -               -       -----   Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+orig_colors                    oc      str     oc      -               -       -----   Set all color pairs to the original ones
+orig_pair                      op      str     op      -               -       -----   Set default pair to its original value
+set_a_background               setab   str     AB      -               -       -----   Set background color to #1, using ANSI escape
+set_a_foreground               setaf   str     AF      -               -       -----   Set foreground color to #1, using ANSI escape
+set_background                 setb    str     Sb      -               -       -----   Set background color #1
+set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
+set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
+#%.TE
+#%.ad
+#%
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually!  In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents.  The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2.  Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2                  OTi2    str     i2      -               -       YB---   secondary initialization string
+termcap_reset                  OTrs    str     rs      -               -       YB-G-   terminal reset string
+magic_cookie_glitch_ul         OTug    num     ug      -               -       YBCGE   number of blanks left by ul
+#
+# Obsolete termcap capabilities.  Some are used for termcap translation.  The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs             OTbs    bool    bs      -               -       YBCGE   uses ^H to move left
+crt_no_scrolling               OTns    bool    ns      -               -       YBCG-   crt cannot scroll
+no_correctly_working_cr                OTnc    bool    nc      -               -       YBCG-   no way to go to start of line
+carriage_return_delay          OTdC    num     dC      -               -       YB-G-   pad needed for CR
+new_line_delay                 OTdN    num     dN      -               -       YB-G-   pad needed for LF
+linefeed_if_not_lf             OTnl    str     nl      -               -       YBCGE   use to move down
+backspace_if_not_bs            OTbc    str     bc      -               -       YBCGE   move left, if not ^H
+#
+# GNU termcap library extensions.  The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file.  The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key               OTMT    bool    MT      -               -       ----E   has meta key
+# gnu_tab_width                        OTtw    num     tw      -               -       ----E   tab width in spaces
+#
+# GNU termcap *does* include the following extended capability,  Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region     OTcS    str     cS      -               -       ---GE   alternate set scrolling region 
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer.  Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code.  They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both.  This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code.  It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text.  All lines above the cursor's current line become locked in place on
+# the screen.  Then enter data normally.  When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data.  Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline            OTNL    bool    NL      -               -       YB---   move down with \n
+# even_parity                  OTEP    bool    EP      -               -       -B---   terminal requires even parity
+# odd_parity                   OTOP    bool    OP      -               -       -B---   terminal requires odd parity
+# half_duplex                  OTHD    bool    HD      -               -       -B---   terminal is half-duplex
+# lower_case_only              OTLC    bool    LC      -               -       -B---   terminal has only lower case
+# upper_case_only              OTUC    bool    UC      -               -       -B---   terminal has only upper case
+backspace_delay                        OTdB    num     dB      -               -       YB-G-   padding required for ^H
+# form_feed_delay              OTdF    num     dF      -               -       -B-G-   padding required for ^L
+horizontal_tab_delay           OTdT    num     dT      -               -       YB-G-   padding required for ^I
+# vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
+number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
+other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+# memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
+# memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
+has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
+return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
+# tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top             OTxq    bool    xq      -               -       -----   reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check.  The descriptions are guesses from what was
+# in the mytinfo tables. 
+#
+# key_interrupt_char           OTki    str     ki      -               -       -----   string set by interrupt key (?)
+# key_kill_char                        OTkk    str     kk      -               -       -----   string set by kill key (?)
+# key_suspend_char             OTkz    str     kz      -               -       -----   string set by suspend key (?)
+# initialization_messy         OTxc    bool    xc      -               -       -----   initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr                OTxl    bool    xl      -               -       -----   index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left                  OTsl1   str     Sl      -               -       -----   scroll screen leftward
+# scroll_right                 OTsr1   str     Sr      -               -       -----   scroll screen rightward
+# parm_scroll_left             OTsl    str     SL      -               -       -----   scroll screen leftward #1 characters
+# parm_scroll_right            OTsr    str     SR      -               -       -----   scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap  IBM ASCII       description             ACS             ASCII
+# ---  -----------     --------------------    -------------   ------
+# G1   191 \277 M-?    single upper right      ACS_URCORNER
+# G2   218 \332 M-Z    single upper left       ACS_ULCORNER
+# G3   192 \300 M-@    single lower left       ACS_LLCORNER
+# G4   217 \331 M-Y    single lower right      ACS_LRCORNER
+# G5   187 \273 M-;    double upper right
+# G6   201 \311 M-I    double upper left
+# G7   200 \310 M-H    double lower left
+# G8   188 \274 M-<    double lower right
+# GC   197 \305 M-E    single intersection     ACS_PLUS        _ _
+# GD   194 \302 M-B    single down-tick        ACS_TTEE         |
+# GH   196 \304 M-D    single horizontal line  ACS_HLINE
+# GL   180 \264 M-4    single left tick        ACS_RTEE        -|
+# GR   195 \303 M-C    single right tick       ACS_LTEE        |-
+# GU   193 \301 M-A    single up tick          ACS_BTEE        _|_
+# GV   179 \263 M-3    single vertical line    ACS_VLINE
+# Gc   206 \316 M-N    double intersection
+# Gd   203 \313 M-K    double down tick
+# Gh   205 \315 M-M    double horizontal line
+# Gl   204 \204 M-L    double left tick
+# Gr   185 \271 M-9    double right tick
+# Gu   202 \312 M-J    double up tick
+# Gv   186 \272 M-:    double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down).  We don't want to do normal pad 
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics.  There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner                   OTG2    str     G2      -               -       -----   single upper left
+acs_llcorner                   OTG3    str     G3      -               -       -----   single lower left
+acs_urcorner                   OTG1    str     G1      -               -       -----   single upper right
+acs_lrcorner                   OTG4    str     G4      -               -       -----   single lower right
+acs_ltee                       OTGR    str     GR      -               -       -----   tee pointing right
+acs_rtee                       OTGL    str     GL      -               -       -----   tee pointing left
+acs_btee                       OTGU    str     GU      -               -       -----   tee pointing up
+acs_ttee                       OTGD    str     GD      -               -       -----   tee pointing down
+acs_hline                      OTGH    str     GH      -               -       -----   single horizontal line
+acs_vline                      OTGV    str     GV      -               -       -----   single vertical line
+acs_plus                       OTGC    str     GC      -               -       -----   single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments.  What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set.  They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files.  Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different.  Grrr....
+#
+memory_lock                    meml    str     ml      -               -       ----K   memory lock above
+memory_unlock                  memu    str     mu      -               -       ----K   memory unlock
+#plab_norm                     pln     str     pn      -               -       -----   program label #1 to show string #2
+#label_on                      smln    str     LO      -               -       -----   turn on soft labels
+#label_off                     rmln    str     LF      -               -       -----   turn off soft labels
+#key_f11                       kf11    str     F1      -               -       -----   F11 function key
+#key_f12                       kf12    str     F2      -               -       -----   F12 function key
+#key_f13                       kf13    str     F3      -               -       -----   F13 function key
+#key_f14                       kf14    str     F4      -               -       -----   F14 function key
+#key_f15                       kf15    str     F5      -               -       -----   F15 function key
+#key_f16                       kf16    str     F6      -               -       -----   F16 function key
+#key_f17                       kf17    str     F7      -               -       -----   F17 function key
+#key_f18                       kf18    str     F8      -               -       -----   F18 function key
+#key_f19                       kf19    str     F9      -               -       -----   F19 function key
+#key_f20                       kf20    str     FA      -               -       -----   F20 function key
+#key_f21                       kf21    str     FB      -               -       -----   F21 function key
+#key_f22                       kf22    str     FC      -               -       -----   F22 function key
+#key_f23                       kf23    str     FD      -               -       -----   F23 function key
+#key_f24                       kf24    str     FE      -               -       -----   F24 function key
+#key_f25                       kf25    str     FF      -               -       -----   F25 function key
+#key_f26                       kf26    str     FG      -               -       -----   F26 function key
+#key_f27                       kf27    str     FH      -               -       -----   F27 function key
+#key_f28                       kf28    str     FI      -               -       -----   F28 function key
+#key_f29                       kf29    str     FJ      -               -       -----   F29 function key
+#key_f30                       kf30    str     FK      -               -       -----   F30 function key
+#key_f31                       kf31    str     FL      -               -       -----   F31 function key
+#key_f32                       kf32    str     FM      -               -       -----   F32 function key
+#key_f33                       kf33    str     FN      -               -       -----   F33 function key
+#key_f34                       kf34    str     FO      -               -       -----   F34 function key
+#key_f35                       kf35    str     FP      -               -       -----   F35 function key
+#key_f36                       kf36    str     FQ      -               -       -----   F36 function key
+#key_f37                       kf37    str     FR      -               -       -----   F37 function key
+#key_f38                       kf38    str     FS      -               -       -----   F38 function key
+#key_f39                       kf39    str     FT      -               -       -----   F39 function key
+#key_f40                       kf40    str     FU      -               -       -----   F40 function key
+#key_f41                       kf41    str     FV      -               -       -----   F41 function key
+#key_f42                       kf42    str     FW      -               -       -----   F42 function key
+#key_f43                       kf43    str     FX      -               -       -----   F43 function key
+#key_f44                       kf44    str     FY      -               -       -----   F44 function key
+#key_f45                       kf45    str     FZ      -               -       -----   F45 function key
+#key_f46                       kf46    str     Fa      -               -       -----   F46 function key
+#key_f47                       kf47    str     Fb      -               -       -----   F47 function key
+#key_f48                       kf48    str     Fc      -               -       -----   F48 function key
+#key_f49                       kf49    str     Fd      -               -       -----   F49 function key
+#key_f50                       kf50    str     Fe      -               -       -----   F50 function key
+#key_f51                       kf51    str     Ff      -               -       -----   F51 function key
+#key_f52                       kf52    str     Fg      -               -       -----   F52 function key
+#key_f53                       kf53    str     Fh      -               -       -----   F53 function key
+#key_f54                       kf54    str     Fi      -               -       -----   F54 function key
+#key_f55                       kf55    str     Fj      -               -       -----   F55 function key
+#key_f56                       kf56    str     Fk      -               -       -----   F56 function key
+#key_f57                       kf57    str     Fl      -               -       -----   F57 function key
+#key_f58                       kf58    str     Fm      -               -       -----   F58 function key
+#key_f59                       kf59    str     Fn      -               -       -----   F59 function key
+#key_f60                       kf60    str     Fo      -               -       -----   F60 function key
+#key_f61                       kf61    str     Fp      -               -       -----   F61 function key
+#key_f62                       kf62    str     Fq      -               -       -----   F62 function key
+#key_f63                       kf63    str     Fr      -               -       -----   F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+#      box1[0]  = ACS_ULCORNER
+#      box1[1]  = ACS_HLINE    
+#      box1[2]  = ACS_URCORNER
+#      box1[3]  = ACS_VLINE
+#      box1[4]  = ACS_LRCORNER
+#      box1[5]  = ACS_LLCORNER
+#      box1[6]  = ACS_TTEE
+#      box1[7]  = ACS_RTEE
+#      box1[8]  = ACS_BTEE
+#      box1[9]  = ACS_LTEE
+#      box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1                    box1    str     bx      -               -       ----K   box characters primary set
+#box_chars_2                   box2    str     by      -               -       ----K   box characters secondary set
+#box_attr_1                    batt1   str     Bx      -               -       ----K   attributes for box1
+#box_attr_2                    batt2   str     By      -               -       ----K   attributes for box2
+#color_bg_0                    colb0   str     d0      -               -       ----K   background color 0
+#color_bg_1                    colb1   str     d1      -               -       ----K   background color 1
+#color_bg_2                    colb2   str     d2      -               -       ----K   background color 2
+#color_bg_3                    colb3   str     d3      -               -       ----K   background color 3
+#color_bg_4                    colb4   str     d4      -               -       ----K   background color 4
+#color_bg_5                    colb5   str     d5      -               -       ----K   background color 5
+#color_bg_6                    colb6   str     d6      -               -       ----K   background color 6
+#color_bg_7                    colb7   str     d7      -               -       ----K   background color 7
+#color_fg_0                    colf0   str     c0      -               -       ----K   foreground color 0
+#color_fg_1                    colf1   str     c1      -               -       ----K   foreground color 1
+#color_fg_2                    colf2   str     c2      -               -       ----K   foreground color 2
+#color_fg_3                    colf3   str     c3      -               -       ----K   foreground color 3
+#color_fg_4                    colf4   str     c4      -               -       ----K   foreground color 4
+#color_fg_5                    colf5   str     c5      -               -       ----K   foreground color 5
+#color_fg_6                    colf6   str     c6      -               -       ----K   foreground color 6
+#color_fg_7                    colf7   str     c7      -               -       ----K   foreground color 7
+#font_0                                font0   str     f0      -               -       -----   select font 0
+#font_1                                font1   str     f1      -               -       -----   select font 1
+#font_2                                font2   str     f2      -               -       -----   select font 2
+#font_3                                font3   str     f3      -               -       -----   select font 3
+#font_4                                font4   str     f4      -               -       ----K   select font 4
+#font_5                                font5   str     f5      -               -       ----K   select font 5
+#font_6                                font6   str     f6      -               -       ----K   select font 6
+#font_7                                font7   str     f7      -               -       ----K   select font 7
+#key_back_tab                  kbtab   str     k0      -               -       -----   backtab key
+#key_do                                kdo     str     ki      -               -       ----K   do request key
+#key_command                   kcmd    str     kd      -               -       ----K   command-request key
+#key_command_pane              kcpn    str     kW      -               -       ----K   command-pane key
+#key_end                       kend    str     kw      -               -       -----   end key
+#key_help                      khlp    str     kq      -               -       -----   help key
+#key_newline                   knl     str     nl      -               -       ----K   newline key
+#key_next_pane                 knpn    str     kv      -               -       ----K   next-pane key
+#key_prev_cmd                  kppn    str     kp      -               -       ----K   previous-command key
+#key_prev_pane                 kppn    str     kV      -               -       ----K   previous-pane key
+#key_quit                      kquit   str     kQ      -               -       ----K   quit key
+#key_select                    ksel    str     kU      -               -       -----   select key
+#key_scroll_left               kscl    str     kz      -               -       ----K   scroll left
+#key_scroll_right              kscr    str     kZ      -               -       ----K   scroll right
+#key_tab                       ktab    str     ko      -               -       ----K   tab key
+#key_smap_in1                  kmpf1   str     Kv      -               -       ----K   special mapped key 1 input
+#key_smap_out1                 kmpt1   str     KV      -               -       ----K   special mapped key 1 output
+#key_smap_in2                  kmpf2   str     Kw      -               -       ----K   special mapped key 2 input
+#key_smap_out2                 kmpt2   str     KW      -               -       ----K   special mapped key 2 output
+#key_smap_in3                  kmpf3   str     Kx      -               -       ----K   special mapped key 3 input
+#key_smap_out3                 kmpt3   str     KX      -               -       ----K   special mapped key 3 output
+#key_smap_in4                  kmpf4   str     Ky      -               -       ----K   special mapped key 4 input
+#key_smap_out4                 kmpt4   str     KY      -               -       ----K   special mapped key 4 output
+#key_smap_in5                  kmpf5   str     Kz      -               -       ----K   special mapped key 5 input
+#key_smap_out5                 kmpt5   str     KZ      -               -       ----K   special mapped key 5 output
+#appl_defined_str              apstr   str     za      -               -       ----K   application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses.  The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6                  kmpf6   str     k!      -               -       ----K   special mapped key 6 input
+#key_smap_out6                 kmpt6   str     K@      -               -       ----K   special mapped key 6 output
+#key_smap_in7                  kmpf7   str     k#      -               -       ----K   special mapped key 7 input
+#key_smap_out7                 kmpt7   str     K$      -               -       ----K   special mapped key 7 output
+#key_smap_in8                  kmpf8   str     k%      -               -       ----K   special mapped key 8 input
+#key_smap_out8                 kmpt8   str     K^      -               -       ----K   special mapped key 8 output
+#key_smap_in9                  kmpf9   str     k&      -               -       ----K   special mapped key 9 input
+#key_smap_out9                 kmpt9   str     K*      -               -       ----K   special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1                       ksf1    str     S1      -               -       ----K   special function key 1
+#key_sf2                       ksf2    str     S2      -               -       ----K   special function key 2
+#key_sf3                       ksf3    str     S3      -               -       ----K   special function key 3
+#key_sf4                       ksf4    str     S4      -               -       ----K   special function key 4
+#key_sf5                       ksf5    str     S5      -               -       ----K   special function key 5
+#key_sf6                       ksf6    str     S6      -               -       ----K   special function key 6
+#key_sf7                       ksf7    str     S7      -               -       ----K   special function key 7
+#key_sf8                       ksf8    str     S8      -               -       ----K   special function key 8
+#key_sf9                       ksf9    str     S9      -               -       ----K   special function key 9
+#key_sf10                      ksf10   str     SA      -               -       ----K   special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11                       kf11    str     k<      -               -       -----   function key 11
+#key_f12                       kf12    str     k>      -               -       -----   function key 12
+# Undocumented capabilities end here.
+#key_action                    kact    str     kJ      -               -       ----K   sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode            topl    str     tp      -               -       ----K   start top-line mode
+#enter_bottom_mode             btml    str     bm      -               -       ----K   start bottom-line mode
+#enter_rvert_mode              rvert   str     rv      -               -       ----K   start right-vertical mode
+#enter_lvert_mode              lvert   str     lv      -               -       ----K   start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files.  We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias       sb      sr      BSD     scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities.  Its signature is the KM capability, used to name
+# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set.  Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias       BO      mr      AT&T    enter_reverse_mode
+capalias       CI      vi      AT&T    cursor_invisible
+capalias       CV      ve      AT&T    cursor_normal
+capalias       DS      mh      AT&T    enter_dim_mode
+#capalias      EE      me      AT&T    exit_attribute_mode     
+capalias       FE      LF      AT&T    label_on
+capalias       FL      LO      AT&T    label_off
+capalias       XS      mk      AT&T    enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in 
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias       EE      mh      XENIX   exit_attribute_mode     
+capalias       GE      ae      XENIX   exit_alt_charset_mode
+capalias       GS      as      XENIX   enter_alt_charset_mode
+capalias       CF      vi      XENIX   cursor_invis
+capalias       CO      ve      XENIX   cursor_normal
+capalias       EN      @7      XENIX   key_end
+capalias       HM      kh      XENIX   key_home
+capalias       LD      kL      XENIX   key_dl
+capalias       PD      kN      XENIX   key_npage
+capalias       PN      po      XENIX   prtr_off
+capalias       PS      pf      XENIX   prtr_on
+capalias       PU      kP      XENIX   key_ppage
+capalias       RT      @8      XENIX   kent
+capalias       UP      ku      XENIX   kcuu1
+capalias       G6      IGNORE  XENIX   double-ACS_ULCORNER
+capalias       G7      IGNORE  XENIX   double-ACS_LLCORNER
+capalias       G5      IGNORE  XENIX   double-ACS_URCORNER
+capalias       G8      IGNORE  XENIX   double-ACS_LRCORNER
+capalias       Gr      IGNORE  XENIX   double-ACS_LTEE
+capalias       Gr      IGNORE  XENIX   double-ACS_RTEE
+capalias       Gu      IGNORE  XENIX   double-ACS_BTEE
+capalias       Gd      IGNORE  XENIX   double ACS_TTEE
+capalias       Gh      IGNORE  XENIX   double-ACS_HLINE
+capalias       Gv      IGNORE  XENIX   double-ACS_VLINE
+capalias       Gc      IGNORE  XENIX   double-ACS_PLUS
+capalias       GG      IGNORE  XENIX   acs-glitch
+#
+# IBM extensions:
+#
+capalias       kq      %1      IBM     key_help
+#
+# Iris extensions:
+#
+capalias       HS      mh      IRIS    enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias       KA      k;      Tek     key_f10
+capalias       KB      F1      Tek     key_f11
+capalias       KC      F2      Tek     key_f12
+capalias       KD      F3      Tek     key_f13
+capalias       KE      F4      Tek     key_f14
+capalias       KF      F5      Tek     key_f15
+capalias       BC      Sb      Tek     set_background
+capalias       FC      Sf      Tek     set_foreground
+#
+# There are also the following:
+#
+#      XENIX   XENIX variable name     name clash with terminfo?
+#      -----   -------------------     -------------------------
+#      CL      key_char_left
+#      CR      key_char_right
+#      CW      key_change_window
+#      HP      ??
+#      LF      key_linefeed            label_off
+#      NU      key_next_unlocked_cell
+#      PL      ??
+#      PR      ??
+#      RC      key_recalc              remove_clock
+#      RF      key_toggle_ref          req_for_input
+#      WL      key_word_left
+#      WR      key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias      font0   s0ds    IBM     set0_des_seq
+infoalias      font1   s1ds    IBM     set1_des_seq
+infoalias      font2   s2ds    IBM     set2_des_seq
+infoalias      font3   s3ds    IBM     set3_des_seq
+infoalias      kbtab   kcbt    IBM     key_backtab
+infoalias      ksel    kslt    IBM     key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/include/MKkey_defs.sh b/include/MKkey_defs.sh
new file mode 100755 (executable)
index 0000000..655078b
--- /dev/null
@@ -0,0 +1,178 @@
+#! /bin/sh
+# $Id: MKkey_defs.sh,v 1.10 2002/09/28 23:32:16 tom Exp $
+##############################################################################
+# Copyright (c) 2001,2002 Free Software Foundation, Inc.                     #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "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.                                                             #
+##############################################################################
+#
+# MKkey_defs.sh -- generate function-key definitions for curses.h
+#
+# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2001
+#
+# Extract function-key definitions from the Caps file
+#
+: ${AWK-awk}
+DATA=${1-Caps}
+
+data=data$$
+pass1=pass1_$$
+pass2=pass2_$$
+pass3=pass3_$$
+pass4=pass4_$$
+trap 'rm -f $data pass[1234]_$$' 0 1 2 5 15
+
+# change repeated tabs (used for readability) to single tabs (needed to make
+# awk see the right field alignment of the corresponding columns):
+if sort -k 6 $DATA >$data 2>/dev/null
+then
+       # POSIX
+       sed -e 's/[     ]\+/    /g' < $DATA |sort -n -k 6 >$data
+else
+       # SunOS (and SVr4, marked as obsolete but still recognized)
+       sed -e 's/[     ]\+/    /g' < $DATA |sort -n +5 >$data
+fi
+
+# add keys that we generate automatically:
+cat >>$data <<EOF
+key_resize     kr1     str     R1      KEY_RESIZE      +       -----   Terminal resize event
+key_event      kv1     str     V1      KEY_EVENT       +       -----   We were interrupted by an event
+EOF
+
+cat <<EOF
+/*
+ * These definitions were generated by $0 $DATA
+ */
+EOF
+
+# KEY_RESET
+maxkey=345
+
+for pass in 1 2 3 4
+do
+
+output=pass${pass}_$$
+
+${AWK-awk} >$output <$data '
+function print_cols(text,cols) {
+       printf "%s", text
+       len = length(text);
+       while (len < cols) {
+               printf "        "
+               len += 8;
+       }
+}
+function decode(keycode) {
+       result = 0;
+       if (substr(keycode, 1, 2) == "0x") {
+               digits="0123456789abcdef";
+       } else if (substr(keycode, 1, 1) == "0") {
+               digits="01234567";
+       } else {
+               digits="0123456789";
+       }
+       while (length(keycode) != 0) {
+               digit=substr(keycode, 1, 1);
+               keycode=substr(keycode, 2);
+               result = result * length(digits) + index(digits, digit) - 1;
+       }
+       return result;
+}
+
+BEGIN  {
+       maxkey='$maxkey';
+       pass='$pass';
+       key_max=1;
+       bits=1;
+       while (key_max < maxkey) {
+               bits = bits + 1;
+               key_max = (key_max * 2) + 1;
+       }
+       octal_fmt = sprintf ("%%0%do", (bits + 2) / 3 + 1);
+}
+
+/^$/           {next;}
+/^#/           {next;}
+/^capalias/    {next;}
+/^infoalias/   {next;}
+
+$5 != "-" && $6 != "-" {
+               if ($6 == "+") {
+                       if (pass == 1 || pass == 2)
+                               next;
+                       thiskey=maxkey + 1;
+               } else {
+                       if (pass == 3)
+                               next;
+                       thiskey=decode($6);
+               }
+               if (thiskey > maxkey)
+                       maxkey = thiskey;
+               if (pass == 2 || pass == 3) {
+                       showkey=sprintf(octal_fmt, thiskey);
+                       if ($5 == "KEY_F(0)" ) {
+                               printf "#define "
+                               print_cols("KEY_F0", 16);
+                               print_cols(showkey, 16);
+                               print "/* Function keys.  Space for 64 */";
+                               printf "#define "
+                               print_cols("KEY_F(n)", 16);
+                               print_cols("(KEY_F0+(n))", 16);
+                               print "/* Value of function key n */"
+                       } else {
+                               printf "#define "
+                               print_cols($5, 16);
+                               print_cols(showkey, 16);
+                               printf "/*"
+                               for (i = 8; i <= NF; i++)
+                                       printf " %s", $i
+                               print " */"
+                       }
+               }
+       }
+END    {
+               if (pass == 1) {
+                       print maxkey;
+               } else if (pass == 4) {
+                       print "";
+                       printf "#define ";
+                       print_cols("KEY_MAX", 16);
+                       result = sprintf (octal_fmt, key_max);
+                       print_cols(result, 16);
+                       printf "/* Maximum key value is ";
+                       printf octal_fmt, maxkey;
+                       print " */";
+               }
+       }
+'
+if test $pass = 1 ; then
+       maxkey=`cat $pass1`
+fi
+
+done
+
+cat $pass2
+cat $pass3
+cat $pass4
index e839cf4ac6a043947e4418ad83f328fe6e8fbc5e..8243aea52dbef8cfd3cf8641d949ac6a7438b813 100644 (file)
@@ -1,7 +1,6 @@
-
 BEGIN          {
                    print  "/****************************************************************************"
 BEGIN          {
                    print  "/****************************************************************************"
-                   print  " * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *"
+                   print  " * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *"
                    print  " *                                                                          *"
                    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
                    print  " * copy of this software and associated documentation files (the            *"
                    print  " *                                                                          *"
                    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
                    print  " * copy of this software and associated documentation files (the            *"
@@ -33,39 +32,34 @@ BEGIN               {
                    print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
                    print  "/****************************************************************************/"
                    print  ""
                    print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
                    print  "/****************************************************************************/"
                    print  ""
-                   print  "/* $Id: MKterm.h.awk.in,v 1.37 2000/03/12 02:40:07 tom Exp $ */"
+                   print  "/* $Id: MKterm.h.awk.in,v 1.41 2001/12/23 01:04:38 tom Exp $ */"
                    print  ""
                    print  "/*"
                    print  "**  term.h -- Definition of struct term"
                    print  "*/"
                    print  ""
                    print  ""
                    print  "/*"
                    print  "**  term.h -- Definition of struct term"
                    print  "*/"
                    print  ""
-                   print  "#ifndef _NCU_TERM_H"
-                   print  "#define _NCU_TERM_H 1"
+                   print  "#ifndef NCURSES_TERM_H_incl"
+                   print  "#define NCURSES_TERM_H_incl 1"
                    print  ""
                    print  "#undef  NCURSES_VERSION"
                    print  "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
                    print  ""
                    print  ""
                    print  "#undef  NCURSES_VERSION"
                    print  "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
                    print  ""
+                   print  "#include <ncurses_dll.h>"
+                   print  ""
                    print  "#ifdef __cplusplus"
                    print  "extern \"C\" {"
                    print  "#endif"
                    print  ""
                    print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
                    print  "#ifdef __cplusplus"
                    print  "extern \"C\" {"
                    print  "#endif"
                    print  ""
                    print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
-                   print  " * and BROKEN_LINKER definition (based on the system for which this was"
-                   print  " * configured)."
+                   print  " * definition (based on the system for which this was configured)."
                    print  " */"
                    print  ""
                    print  "#undef  HAVE_TERMIOS_H"
                    print  "#define HAVE_TERMIOS_H 1/*default*/"
                    print  ""
                    print  " */"
                    print  ""
                    print  "#undef  HAVE_TERMIOS_H"
                    print  "#define HAVE_TERMIOS_H 1/*default*/"
                    print  ""
-                   print  "#undef  HAVE_TERMIO_H"
-                   print  "#define HAVE_TERMIO_H 0/*default*/"
-                   print  ""
                    print  "#undef  HAVE_TCGETATTR"
                    print  "#define HAVE_TCGETATTR 1/*default*/"
                    print  ""
                    print  "#undef  HAVE_TCGETATTR"
                    print  "#define HAVE_TCGETATTR 1/*default*/"
                    print  ""
-                   print  "#undef  BROKEN_LINKER"
-                   print  "#define BROKEN_LINKER 0/*default*/"
-                   print  ""
                    print  "#undef  NCURSES_CONST"
                    print  "#define NCURSES_CONST @NCURSES_CONST@"
                    print  ""
                    print  "#undef  NCURSES_CONST"
                    print  "#define NCURSES_CONST @NCURSES_CONST@"
                    print  ""
@@ -79,7 +73,7 @@ BEGIN         {
                    print  "#undef  SET_TTY"
                    print  "#undef  GET_TTY"
                    print  ""
                    print  "#undef  SET_TTY"
                    print  "#undef  GET_TTY"
                    print  ""
-                   print  "/* Assume Posix termio if we have the header and function */"
+                   print  "/* Assume POSIX termio if we have the header and function */"
                    print  "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
                    print  ""
                    print  "#undef  TERMIOS"
                    print  "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
                    print  ""
                    print  "#undef  TERMIOS"
@@ -226,13 +220,13 @@ END               {
                        print  ""
                        print  "typedef struct term {           /* describe an actual terminal */"
                        print  "    TERMTYPE    type;           /* terminal type description */"
                        print  ""
                        print  "typedef struct term {           /* describe an actual terminal */"
                        print  "    TERMTYPE    type;           /* terminal type description */"
-                       print  "    short       Filedes;        /* file description being written to */"
+                       print  "    short       Filedes;        /* file description being written to */"
                        print  "    TTY         Ottyb,          /* original state of the terminal */"
                        print  "                Nttyb;          /* current state of the terminal */"
                        print  "    int         _baudrate;      /* used to compute padding */"
                        print  "} TERMINAL;"
                        print  ""
                        print  "    TTY         Ottyb,          /* original state of the terminal */"
                        print  "                Nttyb;          /* current state of the terminal */"
                        print  "    int         _baudrate;      /* used to compute padding */"
                        print  "} TERMINAL;"
                        print  ""
-                       print  "extern TERMINAL *cur_term;"
+                       print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
                        print  ""
                        print  "#if BROKEN_LINKER"
                        print  "#define boolnames  _nc_boolnames()"
                        print  ""
                        print  "#if BROKEN_LINKER"
                        print  "#define boolnames  _nc_boolnames()"
@@ -245,71 +239,71 @@ END               {
                        print  "#define strcodes   _nc_strcodes()"
                        print  "#define strfnames  _nc_strfnames()"
                        print  ""
                        print  "#define strcodes   _nc_strcodes()"
                        print  "#define strfnames  _nc_strfnames()"
                        print  ""
-                       print  "extern NCURSES_CONST char * const *_nc_boolnames(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_boolcodes(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_boolfnames(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_numnames(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_numcodes(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_numfnames(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_strnames(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_strcodes(void);"
-                       print  "extern NCURSES_CONST char * const *_nc_strfnames(void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);"
+                       print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);"
                        print  ""
                        print  "#else"
                        print  ""
                        print  ""
                        print  "#else"
                        print  ""
-                       print  "extern NCURSES_CONST char *const boolnames[];"
-                       print  "extern NCURSES_CONST char *const boolcodes[];"
-                       print  "extern NCURSES_CONST char *const boolfnames[];"
-                       print  "extern NCURSES_CONST char *const numnames[];"
-                       print  "extern NCURSES_CONST char *const numcodes[];"
-                       print  "extern NCURSES_CONST char *const numfnames[];"
-                       print  "extern NCURSES_CONST char *const strnames[];"
-                       print  "extern NCURSES_CONST char *const strcodes[];"
-                       print  "extern NCURSES_CONST char *const strfnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
+                       print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
                        print  ""
                        print  "#endif"
                        print  ""
                        print  "/* internals */"
                        print  ""
                        print  "#endif"
                        print  ""
                        print  "/* internals */"
-                       print  "extern int _nc_set_tty_mode(TTY *buf);"
-                       print  "extern int _nc_get_tty_mode(TTY *buf);"
-                       print  "extern int _nc_read_entry(const char * const, char * const, TERMTYPE *const);"
-                       print  "extern int _nc_read_file_entry(const char *const, TERMTYPE *);"
-                       print  "extern char *_nc_first_name(const char *const);"
-                       print  "extern int _nc_name_match(const char *const, const char *const, const char *const);"
-                       print  "extern int _nc_read_termcap_entry(const char *const, TERMTYPE *const);"
-                       print  "extern const TERMTYPE *_nc_fallback(const char *);"
+                       print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
+                       print  "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);"
+                       print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
+                       print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);"
+                       print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
+                       print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
+                       print  "extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);"
+                       print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
                        print  ""
                        print  "/* entry points */"
                        print  ""
                        print  "/* entry points */"
-                       print  "extern TERMINAL *set_curterm(TERMINAL *);"
-                       print  "extern int del_curterm(TERMINAL *);"
+                       print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
+                       print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
                        print  ""
                        print  "/* miscellaneous entry points */"
                        print  ""
                        print  "/* miscellaneous entry points */"
-                       print  "extern int restartterm(NCURSES_CONST char *, int, int *);"
-                       print  "extern int setupterm(NCURSES_CONST char *,int,int *);"
+                       print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
+                       print  "extern NCURSES_EXPORT(int) setupterm (NCURSES_CONST char *,int,int *);"
                        print  ""
                        print  "/* terminfo entry points, also declared in curses.h */"
                        print  "#if !defined(__NCURSES_H)"
                        print  ""
                        print  "/* terminfo entry points, also declared in curses.h */"
                        print  "#if !defined(__NCURSES_H)"
-                       print  "extern char *tigetstr(NCURSES_CONST char *);"
-                       print  "extern char *tparm(NCURSES_CONST char *, ...);"
-                       print  "extern char ttytype[];"
-                       print  "extern int putp(const char *);"
-                       print  "extern int tigetflag(NCURSES_CONST char *);"
-                       print  "extern int tigetnum(NCURSES_CONST char *);"
+                       print  "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
+                       print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);"
+                       print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
+                       print  "extern NCURSES_EXPORT(int) putp (const char *);"
+                       print  "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
+                       print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
                        print  "#endif /* __NCURSES_H */"
                        print  ""
                        print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
                        print  "#endif /* __NCURSES_H */"
                        print  ""
                        print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
-                       print  "#if !defined(_NCU_TERMCAP_H)"
-                       print  "extern char *tgetstr(NCURSES_CONST char *, char **);"
-                       print  "extern char *tgoto(const char *, int, int);"
-                       print  "extern int tgetent(char *, const char *);"
-                       print  "extern int tgetflag(NCURSES_CONST char *);"
-                       print  "extern int tgetnum(NCURSES_CONST char *);"
-                       print  "extern int tputs(const char *, int, int (*)(int));"
-                       print  "#endif /* _NCU_TERMCAP_H */"
+                       print  "#if !defined(NCURSES_TERMCAP_H_incl)"
+                       print  "extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);"
+                       print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
+                       print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
+                       print  "extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);"
+                       print  "extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);"
+                       print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
+                       print  "#endif /* NCURSES_TERMCAP_H_incl */"
                        print  ""
                        print  "#ifdef __cplusplus"
                        print  "}"
                        print  "#endif"
                        print  ""
                        print  ""
                        print  "#ifdef __cplusplus"
                        print  "}"
                        print  "#endif"
                        print  ""
-                       print  "#endif /* _NCU_TERM_H */"
+                       print  "#endif /* NCURSES_TERM_H_incl */"
                }
                }
index 49190916d68185cec503656a2ace11dea49f03f8..1a48a1700a86401ce2965b2ecdc5ad240ad12c22 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.26 2000/09/02 17:53:40 tom Exp $
+# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996-2001
 #
 # Makefile for ncurses source code.
 #
 #
 # Makefile for ncurses source code.
 #
@@ -56,15 +56,20 @@ LN_S                = @LN_S@
 
 VERSION                = @cf_cv_rel_version@
 
 
 VERSION                = @cf_cv_rel_version@
 
+# The "Caps" file specifies the terminfo database format, as well as the list
+# of function keys.
+TERMINFO_CAPS  = $(srcdir)/@TERMINFO_CAPS@
+
 # These files are generated by the configure script
 CONFIG_SRC = \
        MKterm.h.awk \
 # These files are generated by the configure script
 CONFIG_SRC = \
        MKterm.h.awk \
-       curses.h \
+       curses.head \
        termcap.h \
        unctrl.h
 
 # These files are generated by this makefile
 AUTO_SRC = \
        termcap.h \
        unctrl.h
 
 # These files are generated by this makefile
 AUTO_SRC = \
+       curses.h \
        hashsize.h \
        ncurses_def.h \
        parametrized.h \
        hashsize.h \
        ncurses_def.h \
        parametrized.h \
@@ -73,21 +78,31 @@ AUTO_SRC = \
 ################################################################################
 all \
 libs \
 ################################################################################
 all \
 libs \
+depend \
 sources \
 install ::     $(AUTO_SRC)
 
 sources \
 install ::     $(AUTO_SRC)
 
-term.h: $(srcdir)/Caps MKterm.h.awk
-       $(AWK) -f MKterm.h.awk $(srcdir)/Caps > $@
+curses.h : $(TERMINFO_CAPS) \
+               curses.head \
+               $(srcdir)/curses.tail \
+               $(srcdir)/MKkey_defs.sh
+       cat curses.head >$@
+       AWK=$(AWK) sh $(srcdir)/MKkey_defs.sh $(TERMINFO_CAPS) >>$@
+       sh -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi'
+       cat $(srcdir)/curses.tail >>$@
+
+term.h: $(TERMINFO_CAPS) MKterm.h.awk
+       $(AWK) -f MKterm.h.awk $(TERMINFO_CAPS) > $@
        sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
 
        sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
 
-hashsize.h: $(srcdir)/Caps $(srcdir)/MKhashsize.sh
-       sh $(srcdir)/MKhashsize.sh $(srcdir)/Caps >$@
+hashsize.h: $(TERMINFO_CAPS) $(srcdir)/MKhashsize.sh
+       sh $(srcdir)/MKhashsize.sh $(TERMINFO_CAPS) >$@
 
 ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh
        AWK=$(AWK) sh $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@
 
 
 ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh
        AWK=$(AWK) sh $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@
 
-parametrized.h: $(srcdir)/Caps $(srcdir)/MKparametrized.sh
-       AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(srcdir)/Caps >$@
+parametrized.h: $(TERMINFO_CAPS) $(srcdir)/MKparametrized.sh
+       AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(TERMINFO_CAPS) >$@
 
 tags:
        ctags *.[ch]
 
 tags:
        ctags *.[ch]
@@ -96,7 +111,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
index 5b9e19be266d73d3bc81d5447d437db2321616ae..8b2b622338c83a2314c9a69fa6347dd15815fdfd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  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: curses.h.in,v 1.96 2000/09/16 16:11:01 tom Exp $ */
+/* $Id: curses.h.in,v 1.134 2002/09/28 15:08:06 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -40,7 +41,7 @@
 #define CURSES_H 1
 
 /* This should be defined for the enhanced functionality to be visible.
 #define CURSES_H 1
 
 /* This should be defined for the enhanced functionality to be visible.
- * However, none of the wide-character (enhanced) functionality is implemented.
+ * However, some of the wide-character (enhanced) functionality is missing.
  * So we do not define it (yet).
 #define _XOPEN_CURSES 1
  */
  * So we do not define it (yet).
 #define _XOPEN_CURSES 1
  */
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
+#include <ncurses_dll.h>
+
+/*
+ * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
+ * configured using --disable-macros.
+ */
 #ifdef NCURSES_NOMACROS
 #define NCURSES_ATTR_T attr_t
 #endif
 #ifdef NCURSES_NOMACROS
 #define NCURSES_ATTR_T attr_t
 #endif
 #define NCURSES_ATTR_T int
 #endif
 
 #define NCURSES_ATTR_T int
 #endif
 
+/*
+ * Expands to 'const' if ncurses is configured using --enable-const.  Note that
+ * doing so makes it incompatible with other implementations of X/Open Curses.
+ */
 #undef  NCURSES_CONST
 #define NCURSES_CONST @NCURSES_CONST@
 
 #undef  NCURSES_CONST
 #define NCURSES_CONST @NCURSES_CONST@
 
+/*
+ * The internal type used for color values
+ */
 #undef NCURSES_COLOR_T
 #define        NCURSES_COLOR_T short
 
 #undef NCURSES_COLOR_T
 #define        NCURSES_COLOR_T short
 
+/*
+ * The internal type used for window dimensions.
+ */
 #undef NCURSES_SIZE_T
 #define        NCURSES_SIZE_T short
 
 #undef NCURSES_SIZE_T
 #define        NCURSES_SIZE_T short
 
+/*
+ * NCURSES_CH_T is used in building the library, but not used otherwise in
+ * this header file, since that would make the normal/wide-character versions
+ * of the header incompatible.
+ */
+#undef NCURSES_CH_T
+#define NCURSES_CH_T @NCURSES_CH_T@
+
 typedef unsigned @cf_cv_typeof_chtype@ chtype;
 
 #include <stdio.h>
 typedef unsigned @cf_cv_typeof_chtype@ chtype;
 
 #include <stdio.h>
@@ -83,6 +108,13 @@ typedef unsigned @cf_cv_typeof_chtype@ chtype;
 /* XSI and SVr4 specify that curses implements 'bool'.  However, C++ may also
  * implement it.  If so, we must use the C++ compiler's type to avoid conflict
  * with other interfaces.
 /* XSI and SVr4 specify that curses implements 'bool'.  However, C++ may also
  * implement it.  If so, we must use the C++ compiler's type to avoid conflict
  * with other interfaces.
+ *
+ * A further complication is that <stdbool.h> may declare 'bool' to be a
+ * different type, such as an enum which is not necessarily compatible with
+ * C++.  If we have <stdbool.h>, make 'bool' a macro, so users may #undef it.
+ * Otherwise, let it remain a typedef to avoid conflicts with other #define's.
+ * In either case, make a typedef for NCURSES_BOOL which can be used if needed
+ * from either C or C++.
  */
 
 #undef TRUE
  */
 
 #undef TRUE
@@ -91,11 +123,24 @@ typedef unsigned @cf_cv_typeof_chtype@ chtype;
 #undef FALSE
 #define FALSE   0
 
 #undef FALSE
 #define FALSE   0
 
+typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
+
 #if (!defined(__cplusplus) || !@cf_cv_builtin_bool@) && (!@cf_cv_cc_bool_type@)
 #if (!defined(__cplusplus) || !@cf_cv_builtin_bool@) && (!@cf_cv_cc_bool_type@)
+
+#if @cf_cv_header_stdbool_h@
+#include <stdbool.h>
+#endif
+
 #undef bool
 #undef bool
+
+#if @cf_cv_header_stdbool_h@
+#define bool NCURSES_BOOL
+#else
 typedef @cf_cv_type_of_bool@ bool;
 #endif
 
 typedef @cf_cv_type_of_bool@ bool;
 #endif
 
+#endif /* !__cplusplus, etc. */
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -123,8 +168,8 @@ extern "C" {
 #define WA_VERTICAL    A_VERTICAL
 
 /* colors */
 #define WA_VERTICAL    A_VERTICAL
 
 /* colors */
-extern int COLORS;
-extern int COLOR_PAIRS;
+extern NCURSES_EXPORT_VAR(int) COLORS;
+extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
 
 #define COLOR_BLACK    0
 #define COLOR_RED      1
 
 #define COLOR_BLACK    0
 #define COLOR_RED      1
@@ -137,7 +182,12 @@ extern int COLOR_PAIRS;
 
 /* line graphics */
 
 
 /* line graphics */
 
-extern chtype acs_map[];
+#if @BROKEN_LINKER@
+extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
+#define acs_map (_nc_acs_map())
+#else
+extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+#endif
 
 /* VT100 symbols begin here */
 #define ACS_ULCORNER   (acs_map['l'])  /* upper left corner */
 
 /* VT100 symbols begin here */
 #define ACS_ULCORNER   (acs_map['l'])  /* upper left corner */
@@ -197,13 +247,11 @@ extern    chtype acs_map[];
 #define ACS_SBSB       ACS_VLINE
 #define ACS_SSSS       ACS_PLUS
 
 #define ACS_SBSB       ACS_VLINE
 #define ACS_SSSS       ACS_PLUS
 
-#if    !defined(ERR) || ((ERR) != -1)
+#undef ERR
 #define ERR     (-1)
 #define ERR     (-1)
-#endif
 
 
-#if    !defined(OK) || ((OK) != 0)
+#undef OK
 #define OK      (0)
 #define OK      (0)
-#endif
 
 /* values for the _flags member */
 #define _SUBWIN         0x01   /* is this a sub-window? */
 
 /* values for the _flags member */
 #define _SUBWIN         0x01   /* is this a sub-window? */
@@ -232,6 +280,20 @@ typedef struct _win_st WINDOW;
 typedef        chtype  attr_t;         /* ...must be at least as wide as chtype */
 
 #ifdef _XOPEN_SOURCE_EXTENDED
 typedef        chtype  attr_t;         /* ...must be at least as wide as chtype */
 
 #ifdef _XOPEN_SOURCE_EXTENDED
+
+#if @NCURSES_LIBUTF8@
+#ifdef mblen                   /* libutf8.h defines it w/o undefining first */
+#undef mblen
+#endif
+#include <libutf8.h>
+#define _WCHAR_T
+#define _WINT_T
+#endif
+
+#if @NCURSES_MBSTATE_T@
+#include <wchar.h>             /* ...to get mbstate_t, etc. */
+#endif
+
 #ifndef _WCHAR_T
 typedef unsigned long wchar_t;
 #endif /* _WCHAR_T */
 #ifndef _WCHAR_T
 typedef unsigned long wchar_t;
 #endif /* _WCHAR_T */
@@ -246,15 +308,10 @@ typedef struct
     wchar_t    chars[CCHARW_MAX];
 }
 cchar_t;
     wchar_t    chars[CCHARW_MAX];
 }
 cchar_t;
+
 #endif /* _XOPEN_SOURCE_EXTENDED */
 
 #endif /* _XOPEN_SOURCE_EXTENDED */
 
-struct ldat
-{
-       chtype  *text;          /* text of the line */
-       NCURSES_SIZE_T firstchar; /* first changed character in the line */
-       NCURSES_SIZE_T lastchar; /* last changed character in the line */
-       NCURSES_SIZE_T oldindex; /* index of the line at last update */
-};
+struct ldat;
 
 struct _win_st
 {
 
 struct _win_st
 {
@@ -272,14 +329,14 @@ struct _win_st
 
        /* option values set by user */
        bool    _notimeout;     /* no time out on function-key entry? */
 
        /* option values set by user */
        bool    _notimeout;     /* no time out on function-key entry? */
-       bool    _clear;         /* consider all data in the window invalid? */
-       bool    _leaveok;       /* OK to not reset cursor on exit? */
-       bool    _scroll;        /* OK to scroll this window? */
-       bool    _idlok;         /* OK to use insert/delete line? */
-       bool    _idcok;         /* OK to use insert/delete char? */
+       bool    _clear;         /* consider all data in the window invalid? */
+       bool    _leaveok;       /* OK to not reset cursor on exit? */
+       bool    _scroll;        /* OK to scroll this window? */
+       bool    _idlok;         /* OK to use insert/delete line? */
+       bool    _idcok;         /* OK to use insert/delete char? */
        bool    _immed;         /* window in immed mode? (not yet used) */
        bool    _sync;          /* window in sync mode? */
        bool    _immed;         /* window in immed mode? (not yet used) */
        bool    _sync;          /* window in sync mode? */
-       bool    _use_keypad;    /* process function keys into KEY_ symbols? */
+       bool    _use_keypad;    /* process function keys into KEY_ symbols? */
        int     _delay;         /* 0 = nodelay, <0 = blocking, >0 = delay */
 
        struct ldat *_line;     /* the actual line data */
        int     _delay;         /* 0 = nodelay, <0 = blocking, >0 = delay */
 
        struct ldat *_line;     /* the actual line data */
@@ -302,35 +359,93 @@ struct _win_st
        } _pad;
 
        NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
        } _pad;
 
        NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+       cchar_t  _bkgrnd;       /* current background char/attribute pair */
+#endif
 };
 
 };
 
-extern WINDOW   *stdscr;
-extern WINDOW   *curscr;
-extern WINDOW   *newscr;
+extern NCURSES_EXPORT_VAR(WINDOW *)   stdscr;
+extern NCURSES_EXPORT_VAR(WINDOW *)   curscr;
+extern NCURSES_EXPORT_VAR(WINDOW *)   newscr;
 
 
-extern int     LINES;
-extern int     COLS;
-extern int     TABSIZE;
+extern NCURSES_EXPORT_VAR(int) LINES;
+extern NCURSES_EXPORT_VAR(int) COLS;
+extern NCURSES_EXPORT_VAR(int) TABSIZE;
 
 /*
  * This global was an undocumented feature under AIX curses.
  */
 
 /*
  * This global was an undocumented feature under AIX curses.
  */
-extern int ESCDELAY;   /* ESC expire time in milliseconds */
+extern NCURSES_EXPORT_VAR(int) ESCDELAY;       /* ESC expire time in milliseconds */
 
 
-extern char ttytype[];         /* needed for backward compatibility */
+extern NCURSES_EXPORT_VAR(char) ttytype[];     /* needed for backward compatibility */
 
 /*
  * These functions are extensions - not in XSI Curses.
  */
 
 /*
  * These functions are extensions - not in XSI Curses.
  */
-extern char *keybound (int, int);
-extern const char *curses_version (void);
-extern int assume_default_colors (int, int);
-extern int define_key (char *, int);
-extern int keyok (int, bool);
-extern int resizeterm (int, int);
-extern int use_default_colors (void);
-extern int use_extended_names (bool);
-extern int wresize (WINDOW *, int, int);
+#if @NCURSES_EXT_FUNCS@
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
+extern NCURSES_EXPORT(char *) keybound (int, int);
+extern NCURSES_EXPORT(const char *) curses_version (void);
+extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+extern NCURSES_EXPORT(int) define_key (char *, int);
+extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(int) resize_term (int, int);
+extern NCURSES_EXPORT(int) resizeterm (int, int);
+extern NCURSES_EXPORT(int) use_default_colors (void);
+extern NCURSES_EXPORT(int) use_extended_names (bool);
+extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+#else
+#define curses_version() NCURSES_VERSION
+#endif
+
+/*
+ * This is an extension to support events...
+ */
+#if @NCURSES_EXT_FUNCS@
+#ifdef NCURSES_WGETCH_EVENTS
+#if !defined(__BEOS__)         /* Fix _nc_timed_wait() on BEOS... */
+#  define NCURSES_EVENT_VERSION        1
+#endif /* !defined(__BEOS__) */
+
+/*
+ * Bits to set in _nc_event.data.flags
+ */
+#  define _NC_EVENT_TIMEOUT_MSEC       1
+#  define _NC_EVENT_FILE               2
+#  define _NC_EVENT_FILE_READABLE      2
+#  if 0                                        /* Not supported yet... */
+#    define _NC_EVENT_FILE_WRITABLE    4
+#    define _NC_EVENT_FILE_EXCEPTION   8
+#  endif
+
+typedef struct
+{
+    int type;
+    union
+    {
+       long timeout_msec;      /* _NC_EVENT_TIMEOUT_MSEC */
+       struct
+       {
+           unsigned int flags;
+           int fd;
+           unsigned int result;
+       } fev;                          /* _NC_EVENT_FILE */
+    } data;
+} _nc_event;
+
+typedef struct
+{
+    int count;
+    int result_flags;  /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */
+    _nc_event *events[1];
+} _nc_eventlist;
+
+extern NCURSES_EXPORT(int) wgetch_events(WINDOW *, _nc_eventlist *);   /* experimental */
+extern NCURSES_EXPORT(int) wgetnstr_events(WINDOW *,char *,int,_nc_eventlist *);/* experimental */
+
+#endif /* NCURSES_WGETCH_EVENTS */
+#endif /* NCURSES_EXT_FUNCS */
 
 /*
  * GCC (and some other compilers) define '__attribute__'; we're using this
 
 /*
  * GCC (and some other compilers) define '__attribute__'; we're using this
@@ -357,17 +472,21 @@ extern int wresize (WINDOW *, int, int);
  * We cannot define these in ncurses_cfg.h, since they require parameters to be
  * passed (that's non-portable).
  */
  * We cannot define these in ncurses_cfg.h, since they require parameters to be
  * passed (that's non-portable).
  */
-#ifdef GCC_PRINTF
+#ifndef GCC_PRINTFLIKE
+#if defined(GCC_PRINTF) && !defined(printf)
 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
 #else
 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
 #endif
 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
 #else
 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
 #endif
+#endif
 
 
-#ifdef GCC_SCANF
+#ifndef GCC_SCANFLIKE
+#if defined(GCC_SCANF) && !defined(scanf)
 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
 #else
 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
 #endif
 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
 #else
 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
 #endif
+#endif
 
 #ifndef        GCC_NORETURN
 #define        GCC_NORETURN /* nothing */
 
 #ifndef        GCC_NORETURN
 #define        GCC_NORETURN /* nothing */
@@ -384,482 +503,295 @@ extern int wresize (WINDOW *, int, int);
  * requirements.
  */
 
  * requirements.
  */
 
-extern int addch(const chtype);                                /* generated */
-extern int addchnstr(const chtype *, int);             /* generated */
-extern int addchstr(const chtype *);                   /* generated */
-extern int addnstr(const char *, int);                 /* generated */
-extern int addstr(const char *);                       /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int addnwstr(const wchar_t *, int);             /* missing */
-extern int addwstr(const wchar_t *);                   /* missing */
-extern int add_wch(const cchar_t *);                   /* missing */
-extern int add_wchnstr(const cchar_t *, int);          /* missing */
-extern int add_wchstr(const cchar_t *);                        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int attroff(NCURSES_ATTR_T);                    /* generated */
-extern int attron(NCURSES_ATTR_T);                     /* generated */
-extern int attrset(NCURSES_ATTR_T);                    /* generated */
-extern int attr_get(attr_t *, short *, void *);                /* generated */
-extern int attr_off(attr_t, void *);                   /* generated */
-extern int attr_on(attr_t, void *);                    /* generated */
-extern int attr_set(attr_t, short, void *);            /* generated */
-extern int baudrate(void);                             /* implemented */
-extern int beep(void);                                 /* implemented */
-extern int bkgd(chtype);                               /* generated */
-extern void bkgdset(chtype);                           /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern void bkgrndset(const cchar_t *);                        /* missing */
-extern int bkgrnd(const cchar_t *);                    /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int border(chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);    /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int border_set(const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int box(WINDOW *, chtype, chtype);              /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int box_set(WINDOW *, const cchar_t *, const cchar_t *);        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern bool can_change_color(void);                    /* implemented */
-extern int cbreak(void);                               /* implemented */
-extern int chgat(int, attr_t, short, const void *);    /* generated */
-extern int clear(void);                                        /* generated */
-extern int clearok(WINDOW *,bool);                     /* implemented */
-extern int clrtobot(void);                             /* generated */
-extern int clrtoeol(void);                             /* generated */
-extern int color_content(short,short*,short*,short*);  /* implemented */
-extern int color_set(short,void*);                     /* generated */
-extern int COLOR_PAIR(int);                            /* generated */
-extern int copywin(const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */
-extern int curs_set(int);                              /* implemented */
-extern int def_prog_mode(void);                                /* implemented */
-extern int def_shell_mode(void);                       /* implemented */
-extern int delay_output(int);                          /* implemented */
-extern int delch(void);                                        /* generated */
-extern void delscreen(SCREEN *);                       /* implemented */
-extern int delwin(WINDOW *);                           /* implemented */
-extern int deleteln(void);                             /* generated */
-extern WINDOW *derwin(WINDOW *,int,int,int,int);       /* implemented */
-extern int doupdate(void);                             /* implemented */
-extern WINDOW *dupwin(WINDOW *);                       /* implemented */
-extern int echo(void);                                 /* implemented */
-extern int echochar(const chtype);                     /* generated */
-extern int erase(void);                                        /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int echo_wchar(const cchar_t *);                        /* missing */
-extern int erasewchar(wchar_t*);                       /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int endwin(void);                               /* implemented */
-extern char erasechar(void);                           /* implemented */
-extern void filter(void);                              /* implemented */
-extern int flash(void);                                        /* implemented */
-extern int flushinp(void);                             /* implemented */
-extern chtype getbkgd(WINDOW *);                       /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int getbkgrnd(cchar_t *);                       /* missing */
-extern int getcchar(const cchar_t *, wchar_t*, attr_t*, short*, void*);        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int getch(void);                                        /* generated */
-extern int getnstr(char *, int);                       /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int getn_wstr(wint_t *, int);                   /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int getstr(char *);                             /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int get_wch(wint_t *);                          /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern WINDOW *getwin(FILE *);                         /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int get_wstr(wint_t *);                         /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int halfdelay(int);                             /* implemented */
-extern bool has_colors(void);                          /* implemented */
-extern bool has_ic(void);                              /* implemented */
-extern bool has_il(void);                              /* implemented */
-extern int hline(chtype, int);                         /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int hline_set(const cchar_t *, int);            /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern void idcok(WINDOW *, bool);                     /* implemented */
-extern int idlok(WINDOW *, bool);                      /* implemented */
-extern void immedok(WINDOW *, bool);                   /* implemented */
-extern chtype inch(void);                              /* generated */
-extern int inchnstr(chtype *, int);                    /* generated */
-extern int inchstr(chtype *);                          /* generated */
-extern WINDOW *initscr(void);                          /* implemented */
-extern int init_color(short,short,short,short);                /* implemented */
-extern int init_pair(short,short,short);               /* implemented */
-extern int innstr(char *, int);                                /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int innwstr(wchar_t *, int);                    /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int insch(chtype);                              /* generated */
-extern int insdelln(int);                              /* generated */
-extern int insertln(void);                             /* generated */
-extern int insnstr(const char *, int);                 /* generated */
-extern int insstr(const char *);                       /* generated */
-extern int instr(char *);                              /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int ins_nwstr(const wchar_t *, int);            /* missing */
-extern int ins_wch(const cchar_t *);                   /* missing */
-extern int ins_wstr(const wchar_t *);                  /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int intrflush(WINDOW *,bool);                   /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int inwstr(wchar_t *);                          /* missing */
-extern int in_wch(NCURSES_CONST cchar_t *);            /* missing */
-extern int in_wchstr(NCURSES_CONST cchar_t *);         /* missing */
-extern int in_wchnstr(NCURSES_CONST cchar_t *, int);   /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern bool isendwin(void);                            /* implemented */
-extern bool is_linetouched(WINDOW *,int);              /* implemented */
-extern bool is_wintouched(WINDOW *);                   /* implemented */
-extern NCURSES_CONST char *keyname(int);               /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern char *key_name(wchar_t);                                /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int keypad(WINDOW *,bool);                      /* implemented */
-extern char killchar(void);                            /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int killwchar(wchar_t *);                       /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int leaveok(WINDOW *,bool);                     /* implemented */
-extern char *longname(void);                           /* implemented */
-extern int meta(WINDOW *,bool);                                /* implemented */
-extern int move(int, int);                             /* generated */
-extern int mvaddch(int, int, const chtype);            /* generated */
-extern int mvaddchnstr(int, int, const chtype *, int); /* generated */
-extern int mvaddchstr(int, int, const chtype *);       /* generated */
-extern int mvaddnstr(int, int, const char *, int);     /* generated */
-extern int mvaddstr(int, int, const char *);           /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvaddnwstr(int, int, const wchar_t *, int); /* missing */
-extern int mvaddwstr(int, int, const wchar_t *);       /* missing */
-extern int mvadd_wch(int, int, const cchar_t *);       /* missing */
-extern int mvadd_wchnstr(int, int, const cchar_t *, int);/* missing */
-extern int mvadd_wchstr(int, int, const cchar_t *);    /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvchgat(int, int, int, attr_t, short, const void *);        /* generated */
-extern int mvcur(int,int,int,int);                     /* implemented */
-extern int mvdelch(int, int);                          /* generated */
-extern int mvderwin(WINDOW *, int, int);               /* implemented */
-extern int mvgetch(int, int);                          /* generated */
-extern int mvgetnstr(int, int, char *, int);           /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvgetn_wstr(int, int, wint_t *, int);       /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvgetstr(int, int, char *);                 /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvget_wch(int, int, wint_t *);              /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvget_wstr(int, int, wint_t *);             /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvhline(int, int, chtype, int);             /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvhline_set(int, int, const cchar_t *, int);        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern chtype mvinch(int, int);                                /* generated */
-extern int mvinchnstr(int, int, chtype *, int);                /* generated */
-extern int mvinchstr(int, int, chtype *);              /* generated */
-extern int mvinnstr(int, int, char *, int);            /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvinnwstr(int, int, wchar_t *, int);                /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvinsch(int, int, chtype);                  /* generated */
-extern int mvinsnstr(int, int, const char *, int);     /* generated */
-extern int mvinsstr(int, int, const char *);           /* generated */
-extern int mvinstr(int, int, char *);                  /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvins_nwstr(int, int, const wchar_t *, int);        /* missing */
-extern int mvins_wch(int, int, const cchar_t *);       /* missing */
-extern int mvins_wstr(int, int, const wchar_t *);      /* missing */
-extern int mvinwstr(int, int, wchar_t *);              /* missing */
-extern int mvin_wch(int, int, NCURSES_CONST cchar_t *);        /* missing */
-extern int mvin_wchstr(int, int, NCURSES_CONST cchar_t *);     /* missing */
-extern int mvin_wchnstr(int, int, NCURSES_CONST cchar_t *, int);       /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvprintw(int,int, NCURSES_CONST char *,...) /* implemented */
+extern NCURSES_EXPORT(int) addch (const chtype);                       /* generated */
+extern NCURSES_EXPORT(int) addchnstr (const chtype *, int);            /* generated */
+extern NCURSES_EXPORT(int) addchstr (const chtype *);                  /* generated */
+extern NCURSES_EXPORT(int) addnstr (const char *, int);                        /* generated */
+extern NCURSES_EXPORT(int) addstr (const char *);                      /* generated */
+extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T);                   /* generated */
+extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T);                    /* generated */
+extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T);                   /* generated */
+extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *);       /* generated */
+extern NCURSES_EXPORT(int) attr_off (attr_t, void *);                  /* generated */
+extern NCURSES_EXPORT(int) attr_on (attr_t, void *);                   /* generated */
+extern NCURSES_EXPORT(int) attr_set (attr_t, short, void *);           /* generated */
+extern NCURSES_EXPORT(int) baudrate (void);                            /* implemented */
+extern NCURSES_EXPORT(int) beep  (void);                               /* implemented */
+extern NCURSES_EXPORT(int) bkgd (chtype);                              /* generated */
+extern NCURSES_EXPORT(void) bkgdset (chtype);                          /* generated */
+extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);   /* generated */
+extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype);             /* generated */
+extern NCURSES_EXPORT(bool) can_change_color (void);                   /* implemented */
+extern NCURSES_EXPORT(int) cbreak (void);                              /* implemented */
+extern NCURSES_EXPORT(int) chgat (int, attr_t, short, const void *);   /* generated */
+extern NCURSES_EXPORT(int) clear (void);                               /* generated */
+extern NCURSES_EXPORT(int) clearok (WINDOW *,bool);                    /* implemented */
+extern NCURSES_EXPORT(int) clrtobot (void);                            /* generated */
+extern NCURSES_EXPORT(int) clrtoeol (void);                            /* generated */
+extern NCURSES_EXPORT(int) color_content (short,short*,short*,short*); /* implemented */
+extern NCURSES_EXPORT(int) color_set (short,void*);                    /* generated */
+extern NCURSES_EXPORT(int) COLOR_PAIR (int);                           /* generated */
+extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int);        /* implemented */
+extern NCURSES_EXPORT(int) curs_set (int);                             /* implemented */
+extern NCURSES_EXPORT(int) def_prog_mode (void);                       /* implemented */
+extern NCURSES_EXPORT(int) def_shell_mode (void);                      /* implemented */
+extern NCURSES_EXPORT(int) delay_output (int);                         /* implemented */
+extern NCURSES_EXPORT(int) delch (void);                               /* generated */
+extern NCURSES_EXPORT(void) delscreen (SCREEN *);                      /* implemented */
+extern NCURSES_EXPORT(int) delwin (WINDOW *);                          /* implemented */
+extern NCURSES_EXPORT(int) deleteln (void);                            /* generated */
+extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int);     /* implemented */
+extern NCURSES_EXPORT(int) doupdate (void);                            /* implemented */
+extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *);                     /* implemented */
+extern NCURSES_EXPORT(int) echo (void);                                        /* implemented */
+extern NCURSES_EXPORT(int) echochar (const chtype);                    /* generated */
+extern NCURSES_EXPORT(int) erase (void);                               /* generated */
+extern NCURSES_EXPORT(int) endwin (void);                              /* implemented */
+extern NCURSES_EXPORT(char) erasechar (void);                          /* implemented */
+extern NCURSES_EXPORT(void) filter (void);                             /* implemented */
+extern NCURSES_EXPORT(int) flash (void);                               /* implemented */
+extern NCURSES_EXPORT(int) flushinp (void);                            /* implemented */
+extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *);                      /* generated */
+extern NCURSES_EXPORT(int) getch (void);                               /* generated */
+extern NCURSES_EXPORT(int) getnstr (char *, int);                      /* generated */
+extern NCURSES_EXPORT(int) getstr (char *);                            /* generated */
+extern NCURSES_EXPORT(WINDOW *) getwin (FILE *);                       /* implemented */
+extern NCURSES_EXPORT(int) halfdelay (int);                            /* implemented */
+extern NCURSES_EXPORT(bool) has_colors (void);                         /* implemented */
+extern NCURSES_EXPORT(bool) has_ic (void);                             /* implemented */
+extern NCURSES_EXPORT(bool) has_il (void);                             /* implemented */
+extern NCURSES_EXPORT(int) hline (chtype, int);                                /* generated */
+extern NCURSES_EXPORT(void) idcok (WINDOW *, bool);                    /* implemented */
+extern NCURSES_EXPORT(int) idlok (WINDOW *, bool);                     /* implemented */
+extern NCURSES_EXPORT(void) immedok (WINDOW *, bool);                  /* implemented */
+extern NCURSES_EXPORT(chtype) inch (void);                             /* generated */
+extern NCURSES_EXPORT(int) inchnstr (chtype *, int);                   /* generated */
+extern NCURSES_EXPORT(int) inchstr (chtype *);                         /* generated */
+extern NCURSES_EXPORT(WINDOW *) initscr (void);                                /* implemented */
+extern NCURSES_EXPORT(int) init_color (short,short,short,short);       /* implemented */
+extern NCURSES_EXPORT(int) init_pair (short,short,short);              /* implemented */
+extern NCURSES_EXPORT(int) innstr (char *, int);                       /* generated */
+extern NCURSES_EXPORT(int) insch (chtype);                             /* generated */
+extern NCURSES_EXPORT(int) insdelln (int);                             /* generated */
+extern NCURSES_EXPORT(int) insertln (void);                            /* generated */
+extern NCURSES_EXPORT(int) insnstr (const char *, int);                        /* generated */
+extern NCURSES_EXPORT(int) insstr (const char *);                      /* generated */
+extern NCURSES_EXPORT(int) instr (char *);                             /* generated */
+extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool);                  /* implemented */
+extern NCURSES_EXPORT(bool) isendwin (void);                           /* implemented */
+extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int);             /* implemented */
+extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *);                  /* implemented */
+extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int);             /* implemented */
+extern NCURSES_EXPORT(int) keypad (WINDOW *,bool);                     /* implemented */
+extern NCURSES_EXPORT(char) killchar (void);                           /* implemented */
+extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool);                    /* implemented */
+extern NCURSES_EXPORT(char *) longname (void);                         /* implemented */
+extern NCURSES_EXPORT(int) meta (WINDOW *,bool);                       /* implemented */
+extern NCURSES_EXPORT(int) move (int, int);                            /* generated */
+extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype);           /* generated */
+extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int);        /* generated */
+extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *);      /* generated */
+extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int);    /* generated */
+extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *);          /* generated */
+extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, short, const void *);       /* generated */
+extern NCURSES_EXPORT(int) mvcur (int,int,int,int);                    /* implemented */
+extern NCURSES_EXPORT(int) mvdelch (int, int);                         /* generated */
+extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int);              /* implemented */
+extern NCURSES_EXPORT(int) mvgetch (int, int);                         /* generated */
+extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int);          /* generated */
+extern NCURSES_EXPORT(int) mvgetstr (int, int, char *);                        /* generated */
+extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int);            /* generated */
+extern NCURSES_EXPORT(chtype) mvinch (int, int);                       /* generated */
+extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int);       /* generated */
+extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *);             /* generated */
+extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int);           /* generated */
+extern NCURSES_EXPORT(int) mvinsch (int, int, chtype);                 /* generated */
+extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int);    /* generated */
+extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *);          /* generated */
+extern NCURSES_EXPORT(int) mvinstr (int, int, char *);                 /* generated */
+extern NCURSES_EXPORT(int) mvprintw (int,int, NCURSES_CONST char *,...)        /* implemented */
                GCC_PRINTFLIKE(3,4);
                GCC_PRINTFLIKE(3,4);
-extern int mvscanw(int,int, NCURSES_CONST char *,...)  /* implemented */
+extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...) /* implemented */
                GCC_SCANFLIKE(3,4);
                GCC_SCANFLIKE(3,4);
-extern int mvvline(int, int, chtype, int);             /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvvline_set(int, int, const cchar_t *, int);        /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwaddch(WINDOW *, int, int, const chtype); /* generated */
-extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int);/* generated */
-extern int mvwaddchstr(WINDOW *, int, int, const chtype *);    /* generated */
-extern int mvwaddnstr(WINDOW *, int, int, const char *, int);  /* generated */
-extern int mvwaddstr(WINDOW *, int, int, const char *);        /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwaddnwstr(WINDOW *, int, int, const wchar_t *, int);/* missing */
-extern int mvwaddwstr(WINDOW *, int, int, const wchar_t *);    /* missing */
-extern int mvwadd_wch(WINDOW *, int, int, const cchar_t *);    /* missing */
-extern int mvwadd_wchnstr(WINDOW *, int, int, const cchar_t *, int); /* missing */
-extern int mvwadd_wchstr(WINDOW *, int, int, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *);/* generated */
-extern int mvwdelch(WINDOW *, int, int);               /* generated */
-extern int mvwgetch(WINDOW *, int, int);               /* generated */
-extern int mvwgetnstr(WINDOW *, int, int, char *, int);        /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwgetn_wstr(WINDOW *, int, int, wint_t *, int);/* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwgetstr(WINDOW *, int, int, char *);      /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwget_wch(WINDOW *, int, int, wint_t *);   /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwget_wstr(WINDOW *, int, int, wint_t *);  /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwhline(WINDOW *, int, int, chtype, int);  /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwhline_set(WINDOW *, int, int, const cchar_t *, int);/* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwin(WINDOW *,int,int);                    /* implemented */
-extern chtype mvwinch(WINDOW *, int, int);                     /* generated */
-extern int mvwinchnstr(WINDOW *, int, int, chtype *, int);     /* generated */
-extern int mvwinchstr(WINDOW *, int, int, chtype *);           /* generated */
-extern int mvwinnstr(WINDOW *, int, int, char *, int);         /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwinnwstr(WINDOW *, int, int, wchar_t *, int);     /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwinsch(WINDOW *, int, int, chtype);               /* generated */
-extern int mvwinsnstr(WINDOW *, int, int, const char *, int);  /* generated */
-extern int mvwinsstr(WINDOW *, int, int, const char *);                /* generated */
-extern int mvwinstr(WINDOW *, int, int, char *);               /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwins_nwstr(WINDOW *, int,int, const wchar_t *,int); /* missing */
-extern int mvwins_wch(WINDOW *, int, int, const cchar_t *);    /* missing */
-extern int mvwins_wstr(WINDOW *, int, int, const wchar_t *);   /* missing */
-extern int mvwinwstr(WINDOW *, int, int, wchar_t *);           /* missing */
-extern int mvwin_wch(WINDOW *, int, int, NCURSES_CONST cchar_t *);     /* missing */
-extern int mvwin_wchnstr(WINDOW *, int,int, NCURSES_CONST cchar_t *,int); /* missing */
-extern int mvwin_wchstr(WINDOW *, int, int, NCURSES_CONST cchar_t *);  /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int mvwprintw(WINDOW*,int,int, NCURSES_CONST char *,...)        /* implemented */
+extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int);            /* generated */
+extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype);        /* generated */
+extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */
+extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *);   /* generated */
+extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */
+extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *);       /* generated */
+extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *);/* generated */
+extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int);              /* generated */
+extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int);              /* generated */
+extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int);       /* generated */
+extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *);     /* generated */
+extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */
+extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int);                   /* implemented */
+extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int);                    /* generated */
+extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int);    /* generated */
+extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *);          /* generated */
+extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int);                /* generated */
+extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype);              /* generated */
+extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */
+extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);               /* generated */
+extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *);              /* generated */
+extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, NCURSES_CONST char *,...)       /* implemented */
                GCC_PRINTFLIKE(4,5);
                GCC_PRINTFLIKE(4,5);
-extern int mvwscanw(WINDOW *,int,int, NCURSES_CONST char *,...)        /* implemented */
+extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...)       /* implemented */
                GCC_SCANFLIKE(4,5);
                GCC_SCANFLIKE(4,5);
-extern int mvwvline(WINDOW *,int, int, chtype, int);   /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int mvwvline_set(WINDOW *, int,int, const cchar_t *,int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int napms(int);                                 /* implemented */
-extern WINDOW *newpad(int,int);                                /* implemented */
-extern SCREEN *newterm(NCURSES_CONST char *,FILE *,FILE *);    /* implemented */
-extern WINDOW *newwin(int,int,int,int);                        /* implemented */
-extern int nl(void);                                   /* implemented */
-extern int nocbreak(void);                             /* implemented */
-extern int nodelay(WINDOW *,bool);                     /* implemented */
-extern int noecho(void);                               /* implemented */
-extern int nonl(void);                                 /* implemented */
-extern void noqiflush(void);                           /* implemented */
-extern int noraw(void);                                        /* implemented */
-extern int notimeout(WINDOW *,bool);                   /* implemented */
-extern int overlay(const WINDOW*,WINDOW *);            /* implemented */
-extern int overwrite(const WINDOW*,WINDOW *);          /* implemented */
-extern int pair_content(short,short*,short*);          /* implemented */
-extern int PAIR_NUMBER(int);                           /* generated */
-extern int pechochar(WINDOW *, const chtype);          /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int pecho_wchar(WINDOW *, const cchar_t *);     /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int pnoutrefresh(WINDOW*,int,int,int,int,int,int);/* implemented */
-extern int prefresh(WINDOW *,int,int,int,int,int,int); /* implemented */
-extern int printw(NCURSES_CONST char *,...)            /* implemented */
+extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int);  /* generated */
+extern NCURSES_EXPORT(int) napms (int);                                        /* implemented */
+extern NCURSES_EXPORT(WINDOW *) newpad (int,int);                              /* implemented */
+extern NCURSES_EXPORT(SCREEN *) newterm (NCURSES_CONST char *,FILE *,FILE *);  /* implemented */
+extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);                      /* implemented */
+extern NCURSES_EXPORT(int) nl (void);                                  /* implemented */
+extern NCURSES_EXPORT(int) nocbreak (void);                            /* implemented */
+extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool);                    /* implemented */
+extern NCURSES_EXPORT(int) noecho (void);                              /* implemented */
+extern NCURSES_EXPORT(int) nonl (void);                                        /* implemented */
+extern NCURSES_EXPORT(void) noqiflush (void);                          /* implemented */
+extern NCURSES_EXPORT(int) noraw (void);                               /* implemented */
+extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool);                  /* implemented */
+extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *);           /* implemented */
+extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *);         /* implemented */
+extern NCURSES_EXPORT(int) pair_content (short,short*,short*);         /* implemented */
+extern NCURSES_EXPORT(int) PAIR_NUMBER (int);                          /* generated */
+extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype);         /* implemented */
+extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */
+extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int);        /* implemented */
+extern NCURSES_EXPORT(int) printw (NCURSES_CONST char *,...)           /* implemented */
                GCC_PRINTFLIKE(1,2);
                GCC_PRINTFLIKE(1,2);
-extern int putp(const char *);                         /* implemented */
-extern int putwin(WINDOW *, FILE *);                   /* implemented */
-extern void qiflush(void);                             /* implemented */
-extern int raw(void);                                  /* implemented */
-extern int redrawwin(WINDOW *);                                /* generated */
-extern int refresh(void);                              /* generated */
-extern int resetty(void);                              /* implemented */
-extern int reset_prog_mode(void);                      /* implemented */
-extern int reset_shell_mode(void);                     /* implemented */
-extern int ripoffline(int, int (*init)(WINDOW *, int));        /* implemented */
-extern int savetty(void);                              /* implemented */
-extern int scanw(NCURSES_CONST char *,...)             /* implemented */
+extern NCURSES_EXPORT(int) putp (const char *);                                /* implemented */
+extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *);                  /* implemented */
+extern NCURSES_EXPORT(void) qiflush (void);                            /* implemented */
+extern NCURSES_EXPORT(int) raw (void);                                 /* implemented */
+extern NCURSES_EXPORT(int) redrawwin (WINDOW *);                       /* generated */
+extern NCURSES_EXPORT(int) refresh (void);                             /* generated */
+extern NCURSES_EXPORT(int) resetty (void);                             /* implemented */
+extern NCURSES_EXPORT(int) reset_prog_mode (void);                     /* implemented */
+extern NCURSES_EXPORT(int) reset_shell_mode (void);                    /* implemented */
+extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int));   /* implemented */
+extern NCURSES_EXPORT(int) savetty (void);                             /* implemented */
+extern NCURSES_EXPORT(int) scanw (NCURSES_CONST char *,...)            /* implemented */
                GCC_SCANFLIKE(1,2);
                GCC_SCANFLIKE(1,2);
-extern int scr_dump(const char *);                     /* implemented */
-extern int scr_init(const char *);                     /* implemented */
-extern int scrl(int);                                  /* generated */
-extern int scroll(WINDOW *);                           /* generated */
-extern int scrollok(WINDOW *,bool);                    /* implemented */
-extern int scr_restore(const char *);                  /* implemented */
-extern int scr_set(const char *);                      /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int setcchar(cchar_t *, const wchar_t *, const attr_t, short, const void *);    /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int setscrreg(int,int);                         /* generated */
-extern SCREEN *set_term(SCREEN *);                     /* implemented */
-extern int slk_attroff(const chtype);                  /* implemented */
-extern int slk_attr_off(const attr_t, void *);         /* generated:WIDEC */
-extern int slk_attron(const chtype);                   /* implemented */
-extern int slk_attr_on(attr_t,void*);                  /* generated:WIDEC */
-extern int slk_attrset(const chtype);                  /* implemented */
-extern attr_t slk_attr(void);                          /* implemented */
-extern int slk_attr_set(const attr_t,short,void*);     /* implemented */
-extern int slk_clear(void);                            /* implemented */
-extern int slk_color(short);                           /* implemented */
-extern int slk_init(int);                              /* implemented */
-extern char *slk_label(int);                           /* implemented */
-extern int slk_noutrefresh(void);                      /* implemented */
-extern int slk_refresh(void);                          /* implemented */
-extern int slk_restore(void);                          /* implemented */
-extern int slk_set(int,const char *,int);              /* implemented */
-extern int slk_touch(void);                            /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int slk_wset(int, const wchar_t *, int);                /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int standout(void);                             /* generated */
-extern int standend(void);                             /* generated */
-extern int start_color(void);                          /* implemented */
-extern WINDOW *subpad(WINDOW *, int, int, int, int);   /* implemented */
-extern WINDOW *subwin(WINDOW *,int,int,int,int);       /* implemented */
-extern int syncok(WINDOW *, bool);                     /* implemented */
-extern chtype termattrs(void);                         /* implemented */
-extern attr_t term_attrs(void);                                /* missing */
-extern char *termname(void);                           /* implemented */
-extern int tigetflag(NCURSES_CONST char *);            /* implemented */
-extern int tigetnum(NCURSES_CONST char *);             /* implemented */
-extern char *tigetstr(NCURSES_CONST char *);           /* implemented */
-extern void timeout(int);                              /* generated */
-extern int touchline(WINDOW *, int, int);              /* generated */
-extern int touchwin(WINDOW *);                         /* generated */
-extern char *tparm(NCURSES_CONST char *, ...);         /* implemented */
-extern int typeahead(int);                             /* implemented */
-extern int ungetch(int);                               /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int unget_wch(const wchar_t);                   /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int untouchwin(WINDOW *);                       /* generated */
-extern void use_env(bool);                             /* implemented */
-extern int vidattr(chtype);                            /* implemented */
-extern int vid_attr(attr_t, short, void *);            /* generated:WIDEC */
-extern int vidputs(chtype, int (*)(int));              /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int vid_puts(attr_t, short, void *, int (*)(int)); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int vline(chtype, int);                         /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int vline_set(const cchar_t *, int);            /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int vwprintw(WINDOW *, NCURSES_CONST char *,va_list);   /* implemented */
-extern int vw_printw(WINDOW *, NCURSES_CONST char *,va_list);  /* generated */
-extern int vwscanw(WINDOW *, NCURSES_CONST char *,va_list);    /* implemented */
-extern int vw_scanw(WINDOW *, NCURSES_CONST char *,va_list);   /* generated */
-extern int waddch(WINDOW *, const chtype);             /* implemented */
-extern int waddchnstr(WINDOW *,const chtype *const,int); /* implemented */
-extern int waddchstr(WINDOW *,const chtype *);         /* generated */
-extern int waddnstr(WINDOW *,const char *const,int);   /* implemented */
-extern int waddstr(WINDOW *,const char *);             /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int waddwstr(WINDOW *,const wchar_t *);         /* missing */
-extern int waddnwstr(WINDOW *,const wchar_t *,int);    /* missing */
-extern int wadd_wch(WINDOW *,const cchar_t *);         /* missing */
-extern int wadd_wchnstr(WINDOW *,const cchar_t *,int); /* missing */
-extern int wadd_wchstr(WINDOW *,const cchar_t *);      /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wattron(WINDOW *, int);                     /* generated */
-extern int wattroff(WINDOW *, int);                    /* generated */
-extern int wattrset(WINDOW *, int);                    /* generated */
-extern int wattr_get(WINDOW *, attr_t *, short *, void *);     /* generated */
-extern int wattr_on(WINDOW *, NCURSES_CONST attr_t, void *);   /* implemented */
-extern int wattr_off(WINDOW *, NCURSES_CONST attr_t, void *);  /* implemented */
-extern int wattr_set(WINDOW *, attr_t, short, void *);         /* generated */
-extern int wbkgd(WINDOW *,const chtype);               /* implemented */
-extern void wbkgdset(WINDOW *,chtype);                 /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern void wbkgrndset(WINDOW *,const cchar_t *);      /* missing */
-extern int wbkgrnd(WINDOW *,const cchar_t *);          /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wborder(WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);  /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wborder_set(WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);      /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wchgat(WINDOW *, int, attr_t, short, const void *);/* implemented */
-extern int wclear(WINDOW *);                           /* implemented */
-extern int wclrtobot(WINDOW *);                                /* implemented */
-extern int wclrtoeol(WINDOW *);                                /* implemented */
-extern int wcolor_set(WINDOW*,short,void*);            /* implemented */
-extern void wcursyncup(WINDOW *);                      /* implemented */
-extern int wdelch(WINDOW *);                           /* implemented */
-extern int wdeleteln(WINDOW *);                                /* generated */
-extern int wechochar(WINDOW *, const chtype);          /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wecho_wchar(WINDOW *, const cchar_t *);     /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int werase(WINDOW *);                           /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wgetbkgrnd(WINDOW *, cchar_t *);            /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wgetch(WINDOW *);                           /* implemented */
-extern int wgetnstr(WINDOW *,char *,int);              /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wgetn_wstr(WINDOW *,wint_t *, int);         /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wgetstr(WINDOW *, char *);                  /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wget_wch(WINDOW *, wint_t *);               /* missing */
-extern int wget_wstr(WINDOW *, wint_t *);              /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int whline(WINDOW *, chtype, int);              /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int whline_set(WINDOW *, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern chtype winch(WINDOW *);                         /* implemented */
-extern int winchnstr(WINDOW *, chtype *, int);         /* implemented */
-extern int winchstr(WINDOW *, chtype *);               /* generated */
-extern int winnstr(WINDOW *, char *, int);             /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int winnwstr(WINDOW *, wchar_t *, int);         /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int winsch(WINDOW *, chtype);                   /* implemented */
-extern int winsdelln(WINDOW *,int);                    /* implemented */
-extern int winsertln(WINDOW *);                                /* generated */
-extern int winsnstr(WINDOW *, const char *,int);       /* implemented */
-extern int winsstr(WINDOW *, const char *);            /* generated */
-extern int winstr(WINDOW *, char *);                   /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wins_nwstr(WINDOW *, const wchar_t *, int); /* missing */
-extern int wins_wch(WINDOW *, const cchar_t *);                /* missing */
-extern int wins_wstr(WINDOW *, const wchar_t *);       /* missing */
-extern int winwstr(WINDOW *, wchar_t *);               /* missing */
-extern int win_wch(WINDOW *, NCURSES_CONST cchar_t *); /* missing */
-extern int win_wchnstr(WINDOW *, NCURSES_CONST cchar_t *, int);        /* missing */
-extern int win_wchstr(WINDOW *, NCURSES_CONST cchar_t *);      /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wmove(WINDOW *,int,int);                    /* implemented */
-extern int wnoutrefresh(WINDOW *);                     /* implemented */
-extern int wprintw(WINDOW *, NCURSES_CONST char *,...) /* implemented */
+extern NCURSES_EXPORT(int) scr_dump (const char *);                    /* implemented */
+extern NCURSES_EXPORT(int) scr_init (const char *);                    /* implemented */
+extern NCURSES_EXPORT(int) scrl (int);                                 /* generated */
+extern NCURSES_EXPORT(int) scroll (WINDOW *);                          /* generated */
+extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool);                   /* implemented */
+extern NCURSES_EXPORT(int) scr_restore (const char *);                 /* implemented */
+extern NCURSES_EXPORT(int) scr_set (const char *);                     /* implemented */
+extern NCURSES_EXPORT(int) setscrreg (int,int);                                /* generated */
+extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *);                   /* implemented */
+extern NCURSES_EXPORT(int) slk_attroff (const chtype);                 /* implemented */
+extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *);                /* generated:WIDEC */
+extern NCURSES_EXPORT(int) slk_attron (const chtype);                  /* implemented */
+extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*);                 /* generated:WIDEC */
+extern NCURSES_EXPORT(int) slk_attrset (const chtype);                 /* implemented */
+extern NCURSES_EXPORT(attr_t) slk_attr (void);                         /* implemented */
+extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,short,void*);    /* implemented */
+extern NCURSES_EXPORT(int) slk_clear (void);                           /* implemented */
+extern NCURSES_EXPORT(int) slk_color (short);                          /* implemented */
+extern NCURSES_EXPORT(int) slk_init (int);                             /* implemented */
+extern NCURSES_EXPORT(char *) slk_label (int);                         /* implemented */
+extern NCURSES_EXPORT(int) slk_noutrefresh (void);                     /* implemented */
+extern NCURSES_EXPORT(int) slk_refresh (void);                         /* implemented */
+extern NCURSES_EXPORT(int) slk_restore (void);                         /* implemented */
+extern NCURSES_EXPORT(int) slk_set (int,const char *,int);             /* implemented */
+extern NCURSES_EXPORT(int) slk_touch (void);                           /* implemented */
+extern NCURSES_EXPORT(int) standout (void);                            /* generated */
+extern NCURSES_EXPORT(int) standend (void);                            /* generated */
+extern NCURSES_EXPORT(int) start_color (void);                         /* implemented */
+extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */
+extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int);     /* implemented */
+extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);                    /* implemented */
+extern NCURSES_EXPORT(chtype) termattrs (void);                                /* implemented */
+extern NCURSES_EXPORT(char *) termname (void);                         /* implemented */
+extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);           /* implemented */
+extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);            /* implemented */
+extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);         /* implemented */
+extern NCURSES_EXPORT(void) timeout (int);                             /* generated */
+extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int);             /* generated */
+extern NCURSES_EXPORT(int) touchwin (WINDOW *);                                /* generated */
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);       /* implemented */
+extern NCURSES_EXPORT(int) typeahead (int);                            /* implemented */
+extern NCURSES_EXPORT(int) ungetch (int);                              /* implemented */
+extern NCURSES_EXPORT(int) untouchwin (WINDOW *);                      /* generated */
+extern NCURSES_EXPORT(void) use_env (bool);                            /* implemented */
+extern NCURSES_EXPORT(int) vidattr (chtype);                           /* implemented */
+extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int));             /* implemented */
+extern NCURSES_EXPORT(int) vline (chtype, int);                                /* generated */
+extern NCURSES_EXPORT(int) vwprintw (WINDOW *, NCURSES_CONST char *,va_list);  /* implemented */
+extern NCURSES_EXPORT(int) vw_printw (WINDOW *, NCURSES_CONST char *,va_list); /* generated */
+extern NCURSES_EXPORT(int) vwscanw (WINDOW *, NCURSES_CONST char *,va_list);   /* implemented */
+extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, NCURSES_CONST char *,va_list);  /* generated */
+extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype);            /* implemented */
+extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int);   /* implemented */
+extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *);                /* generated */
+extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int);       /* implemented */
+extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *);            /* generated */
+extern NCURSES_EXPORT(int) wattron (WINDOW *, int);                    /* generated */
+extern NCURSES_EXPORT(int) wattroff (WINDOW *, int);                   /* generated */
+extern NCURSES_EXPORT(int) wattrset (WINDOW *, int);                   /* generated */
+extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *);    /* generated */
+extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *);                /* implemented */
+extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *);       /* implemented */
+extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *);        /* generated */
+extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype);                   /* implemented */
+extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype);                        /* implemented */
+extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */
+extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, short, const void *);/* implemented */
+extern NCURSES_EXPORT(int) wclear (WINDOW *);                          /* implemented */
+extern NCURSES_EXPORT(int) wclrtobot (WINDOW *);                       /* implemented */
+extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *);                       /* implemented */
+extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,short,void*);           /* implemented */
+extern NCURSES_EXPORT(void) wcursyncup (WINDOW *);                     /* implemented */
+extern NCURSES_EXPORT(int) wdelch (WINDOW *);                          /* implemented */
+extern NCURSES_EXPORT(int) wdeleteln (WINDOW *);                       /* generated */
+extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype);         /* implemented */
+extern NCURSES_EXPORT(int) werase (WINDOW *);                          /* implemented */
+extern NCURSES_EXPORT(int) wgetch (WINDOW *);                          /* implemented */
+extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);             /* implemented */
+extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *);                 /* generated */
+extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int);             /* implemented */
+extern NCURSES_EXPORT(chtype) winch (WINDOW *);                                /* implemented */
+extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int);                /* implemented */
+extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *);              /* generated */
+extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);            /* implemented */
+extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype);                  /* implemented */
+extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int);                   /* implemented */
+extern NCURSES_EXPORT(int) winsertln (WINDOW *);                       /* generated */
+extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int);      /* implemented */
+extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *);           /* generated */
+extern NCURSES_EXPORT(int) winstr (WINDOW *, char *);                  /* generated */
+extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int);                   /* implemented */
+extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *);                    /* implemented */
+extern NCURSES_EXPORT(int) wprintw (WINDOW *, NCURSES_CONST char *,...)        /* implemented */
                GCC_PRINTFLIKE(2,3);
                GCC_PRINTFLIKE(2,3);
-extern int wredrawln(WINDOW *,int,int);                        /* implemented */
-extern int wrefresh(WINDOW *);                         /* implemented */
-extern int wscanw(WINDOW *, NCURSES_CONST char *,...)  /* implemented */
+extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int);               /* implemented */
+extern NCURSES_EXPORT(int) wrefresh (WINDOW *);                                /* implemented */
+extern NCURSES_EXPORT(int) wscanw (WINDOW *, NCURSES_CONST char *,...) /* implemented */
                GCC_SCANFLIKE(2,3);
                GCC_SCANFLIKE(2,3);
-extern int wscrl(WINDOW *,int);                                /* implemented */
-extern int wsetscrreg(WINDOW *,int,int);               /* implemented */
-extern int wstandout(WINDOW *);                                /* generated */
-extern int wstandend(WINDOW *);                                /* generated */
-extern void wsyncdown(WINDOW *);                       /* implemented */
-extern void wsyncup(WINDOW *);                         /* implemented */
-extern void wtimeout(WINDOW *,int);                    /* implemented */
-extern int wtouchln(WINDOW *,int,int,int);             /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern wchar_t *wunctrl(cchar_t *);                    /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern int wvline(WINDOW *,chtype,int);                        /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern int wvline_set(WINDOW *, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
+extern NCURSES_EXPORT(int) wscrl (WINDOW *,int);                       /* implemented */
+extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int);              /* implemented */
+extern NCURSES_EXPORT(int) wstandout (WINDOW *);                       /* generated */
+extern NCURSES_EXPORT(int) wstandend (WINDOW *);                       /* generated */
+extern NCURSES_EXPORT(void) wsyncdown (WINDOW *);                      /* implemented */
+extern NCURSES_EXPORT(void) wsyncup (WINDOW *);                                /* implemented */
+extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int);                   /* implemented */
+extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int);            /* implemented */
+extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);               /* implemented */
 
 
-extern bool mouse_trafo(int*, int*, bool);              /* generated */
+/*
+ * vid_attr() was implemented originally based on the draft of XSI curses.
+ */
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define vid_attr(a,pair,opts) vidattr(a)
+#endif
 
 /* attributes */
 
 
 /* attributes */
 
-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + @cf_cv_widec_shift@))
+#define NCURSES_ATTR_SHIFT       8
+#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
 
 #define A_NORMAL       0L
 #define A_ATTRIBUTES   NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
 
 #define A_NORMAL       0L
 #define A_ATTRIBUTES   NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
@@ -873,11 +805,6 @@ extern bool mouse_trafo(int*, int*, bool);              /* generated */
 #define A_BOLD         NCURSES_BITS(@cf_cv_1UL@,13)
 #define A_ALTCHARSET   NCURSES_BITS(@cf_cv_1UL@,14)
 #define A_INVIS                NCURSES_BITS(@cf_cv_1UL@,15)
 #define A_BOLD         NCURSES_BITS(@cf_cv_1UL@,13)
 #define A_ALTCHARSET   NCURSES_BITS(@cf_cv_1UL@,14)
 #define A_INVIS                NCURSES_BITS(@cf_cv_1UL@,15)
-
-/* Tradeoff on 32-bit machines ('protect' vs widec).  The others (e.g., left
- * highlight are not implemented in any terminal descriptions, anyway.
- */
-#if ((16 + @cf_cv_widec_shift@) < @cf_cv_shift_limit@)
 #define A_PROTECT      NCURSES_BITS(@cf_cv_1UL@,16)
 #define A_HORIZONTAL   NCURSES_BITS(@cf_cv_1UL@,17)
 #define A_LEFT         NCURSES_BITS(@cf_cv_1UL@,18)
 #define A_PROTECT      NCURSES_BITS(@cf_cv_1UL@,16)
 #define A_HORIZONTAL   NCURSES_BITS(@cf_cv_1UL@,17)
 #define A_LEFT         NCURSES_BITS(@cf_cv_1UL@,18)
@@ -885,18 +812,9 @@ extern bool mouse_trafo(int*, int*, bool);              /* generated */
 #define A_RIGHT                NCURSES_BITS(@cf_cv_1UL@,20)
 #define A_TOP          NCURSES_BITS(@cf_cv_1UL@,21)
 #define A_VERTICAL     NCURSES_BITS(@cf_cv_1UL@,22)
 #define A_RIGHT                NCURSES_BITS(@cf_cv_1UL@,20)
 #define A_TOP          NCURSES_BITS(@cf_cv_1UL@,21)
 #define A_VERTICAL     NCURSES_BITS(@cf_cv_1UL@,22)
-#else
-#define A_PROTECT      0L
-#define A_HORIZONTAL   0L
-#define A_LEFT         0L
-#define A_LOW          0L
-#define A_RIGHT                0L
-#define A_TOP          0L
-#define A_VERTICAL     0L
-#endif
 
 #define COLOR_PAIR(n)  NCURSES_BITS(n, 0)
 
 #define COLOR_PAIR(n)  NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) (((a) & A_COLOR) >> @cf_cv_widec_shift@)
+#define PAIR_NUMBER(a) ((int)(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT))
 
 /*
  * pseudo functions
 
 /*
  * pseudo functions
@@ -939,9 +857,9 @@ extern bool mouse_trafo(int*, int*, bool);              /* generated */
 #define wstandend(win)         (wattrset(win,A_NORMAL))
 #define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
 
 #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, at, (void *)0)
-#define wattroff(win,at)       wattr_off(win, at, (void *)0)
-#define wattrset(win,at)       ((win)->_attrs = (at))
+#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 wattrset(win,at)       ((win)->_attrs = (at))
 
 #define scroll(win)            wscrl(win,1)
 
 
 #define scroll(win)            wscrl(win,1)
 
@@ -966,172 +884,108 @@ extern bool mouse_trafo(int*, int*, bool);              /* generated */
  * pseudo functions for standard screen
  */
 
  * pseudo functions for standard screen
  */
 
-#define addch(ch)                      waddch(stdscr,ch)
+#define addch(ch)              waddch(stdscr,ch)
 #define addchnstr(str,n)       waddchnstr(stdscr,str,n)
 #define addchstr(str)          waddchstr(stdscr,str)
 #define addnstr(str,n)         waddnstr(stdscr,str,n)
 #define addchnstr(str,n)       waddchnstr(stdscr,str,n)
 #define addchstr(str)          waddchstr(stdscr,str)
 #define addnstr(str,n)         waddnstr(stdscr,str,n)
-#define addstr(str)                    waddnstr(stdscr,str,-1)
-#define attroff(at)                    wattroff(stdscr,at)
-#define attron(at)                     wattron(stdscr,at)
-#define attrset(at)                    wattrset(stdscr,at)
+#define addstr(str)            waddnstr(stdscr,str,-1)
+#define attroff(at)            wattroff(stdscr,at)
+#define attron(at)             wattron(stdscr,at)
+#define attrset(at)            wattrset(stdscr,at)
+#define attr_get(ap,cp,o)      wattr_get(stdscr,ap,cp,o)
+#define attr_off(a,o)          wattr_off(stdscr,a,o)
+#define attr_on(a,o)           wattr_on(stdscr,a,o)
+#define attr_set(a,c,o)                wattr_set(stdscr,a,c,o)
 #define bkgd(ch)               wbkgd(stdscr,ch)
 #define bkgdset(ch)            wbkgdset(stdscr,ch)
 #define bkgd(ch)               wbkgd(stdscr,ch)
 #define bkgdset(ch)            wbkgdset(stdscr,ch)
-#define clear()                        wclear(stdscr)
-#define clrtobot()                     wclrtobot(stdscr)
-#define clrtoeol()                     wclrtoeol(stdscr)
+#define chgat(n,a,c,o)         wchgat(stdscr,n,a,c,o)
+#define clear()                        wclear(stdscr)
+#define clrtobot()             wclrtobot(stdscr)
+#define clrtoeol()             wclrtoeol(stdscr)
 #define color_set(c,o)         wcolor_set(stdscr,c,o)
 #define color_set(c,o)         wcolor_set(stdscr,c,o)
-#define delch()                        wdelch(stdscr)
-#define deleteln()                     winsdelln(stdscr,-1)
+#define delch()                        wdelch(stdscr)
+#define deleteln()             winsdelln(stdscr,-1)
 #define echochar(c)            wechochar(stdscr,c)
 #define echochar(c)            wechochar(stdscr,c)
-#define erase()                        werase(stdscr)
-#define getch()                        wgetch(stdscr)
-#define getstr(str)                    wgetstr(stdscr,str)
-#define inch()                 winch(stdscr)
+#define erase()                        werase(stdscr)
+#define getch()                        wgetch(stdscr)
+#define getstr(str)            wgetstr(stdscr,str)
+#define inch()                 winch(stdscr)
 #define inchnstr(s,n)          winchnstr(stdscr,s,n)
 #define inchstr(s)             winchstr(stdscr,s)
 #define innstr(s,n)            winnstr(stdscr,s,n)
 #define inchnstr(s,n)          winchnstr(stdscr,s,n)
 #define inchstr(s)             winchstr(stdscr,s)
 #define innstr(s,n)            winnstr(stdscr,s,n)
-#define insch(c)                       winsch(stdscr,c)
+#define insch(c)               winsch(stdscr,c)
 #define insdelln(n)            winsdelln(stdscr,n)
 #define insdelln(n)            winsdelln(stdscr,n)
-#define insertln()                     winsdelln(stdscr,1)
+#define insertln()             winsdelln(stdscr,1)
 #define insnstr(s,n)           winsnstr(stdscr,s,n)
 #define insstr(s)              winsstr(stdscr,s)
 #define instr(s)               winstr(stdscr,s)
 #define insnstr(s,n)           winsnstr(stdscr,s,n)
 #define insstr(s)              winsstr(stdscr,s)
 #define instr(s)               winstr(stdscr,s)
-#define move(y,x)              wmove(stdscr,y,x)
-#define refresh()                      wrefresh(stdscr)
+#define move(y,x)              wmove(stdscr,y,x)
+#define refresh()              wrefresh(stdscr)
 #define scrl(n)                        wscrl(stdscr,n)
 #define scrl(n)                        wscrl(stdscr,n)
-#define setscrreg(t,b)                 wsetscrreg(stdscr,t,b)
-#define standend()                     wstandend(stdscr)
-#define standout()                     wstandout(stdscr)
+#define setscrreg(t,b)         wsetscrreg(stdscr,t,b)
+#define standend()             wstandend(stdscr)
+#define standout()             wstandout(stdscr)
 #define timeout(delay)         wtimeout(stdscr,delay)
 #define timeout(delay)         wtimeout(stdscr,delay)
-#define wdeleteln(win)         winsdelln(win,-1)
-#define winsertln(win)         winsdelln(win,1)
+#define wdeleteln(win)         winsdelln(win,-1)
+#define winsertln(win)         winsdelln(win,1)
 
 /*
  * mv functions
  */
 
 
 /*
  * mv functions
  */
 
-#define mvwaddch(win,y,x,ch)           (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
+#define mvwaddch(win,y,x,ch)           (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
 #define mvwaddchnstr(win,y,x,str,n)    (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
 #define mvwaddchnstr(win,y,x,str,n)    (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
-#define mvwaddchstr(win,y,x,str)       (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
+#define mvwaddchstr(win,y,x,str)       (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
 #define mvwaddnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
 #define mvwaddnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
-#define mvwaddstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
-#define mvwdelch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wdelch(win))
-#define mvwgetch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wgetch(win))
-#define mvwgetnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
-#define mvwgetstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
-#define mvwhline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
-#define mvwinch(win,y,x)               (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
+#define mvwaddstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
+#define mvwdelch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wdelch(win))
+#define mvwchgat(win,y,x,n,a,c,o)      (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
+#define mvwgetch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wgetch(win))
+#define mvwgetnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
+#define mvwgetstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
+#define mvwhline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
+#define mvwinch(win,y,x)               (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
 #define mvwinchnstr(win,y,x,s,n)       (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
 #define mvwinchstr(win,y,x,s)          (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
 #define mvwinnstr(win,y,x,s,n)         (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
 #define mvwinchnstr(win,y,x,s,n)       (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
 #define mvwinchstr(win,y,x,s)          (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
 #define mvwinnstr(win,y,x,s,n)         (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
-#define mvwinsch(win,y,x,c)            (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
+#define mvwinsch(win,y,x,c)            (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
 #define mvwinsnstr(win,y,x,s,n)                (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
 #define mvwinsstr(win,y,x,s)           (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
 #define mvwinstr(win,y,x,s)            (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
 #define mvwinsnstr(win,y,x,s,n)                (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
 #define mvwinsstr(win,y,x,s)           (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
 #define mvwinstr(win,y,x,s)            (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
+#define mvwvline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
 
 
-#define mvaddch(y,x,ch)                mvwaddch(stdscr,y,x,ch)
+#define mvaddch(y,x,ch)                        mvwaddch(stdscr,y,x,ch)
 #define mvaddchnstr(y,x,str,n)         mvwaddchnstr(stdscr,y,x,str,n)
 #define mvaddchstr(y,x,str)            mvwaddchstr(stdscr,y,x,str)
 #define mvaddnstr(y,x,str,n)           mvwaddnstr(stdscr,y,x,str,n)
 #define mvaddchnstr(y,x,str,n)         mvwaddchnstr(stdscr,y,x,str,n)
 #define mvaddchstr(y,x,str)            mvwaddchstr(stdscr,y,x,str)
 #define mvaddnstr(y,x,str,n)           mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str)              mvwaddstr(stdscr,y,x,str)
-#define mvdelch(y,x)                   mvwdelch(stdscr,y,x)
-#define mvgetch(y,x)                   mvwgetch(stdscr,y,x)
+#define mvaddstr(y,x,str)              mvwaddstr(stdscr,y,x,str)
+#define mvchgat(y,x,n,a,c,o)           mvwchgat(stdscr,y,x,n,a,c,o)
+#define mvdelch(y,x)                   mvwdelch(stdscr,y,x)
+#define mvgetch(y,x)                   mvwgetch(stdscr,y,x)
 #define mvgetnstr(y,x,str,n)           mvwgetnstr(stdscr,y,x,str,n)
 #define mvgetnstr(y,x,str,n)           mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str)              mvwgetstr(stdscr,y,x,str)
+#define mvgetstr(y,x,str)              mvwgetstr(stdscr,y,x,str)
 #define mvhline(y,x,c,n)               mvwhline(stdscr,y,x,c,n)
 #define mvhline(y,x,c,n)               mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x)                    mvwinch(stdscr,y,x)
+#define mvinch(y,x)                    mvwinch(stdscr,y,x)
 #define mvinchnstr(y,x,s,n)            mvwinchnstr(stdscr,y,x,s,n)
 #define mvinchstr(y,x,s)               mvwinchstr(stdscr,y,x,s)
 #define mvinnstr(y,x,s,n)              mvwinnstr(stdscr,y,x,s,n)
 #define mvinchnstr(y,x,s,n)            mvwinchnstr(stdscr,y,x,s,n)
 #define mvinchstr(y,x,s)               mvwinchstr(stdscr,y,x,s)
 #define mvinnstr(y,x,s,n)              mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c)                 mvwinsch(stdscr,y,x,c)
+#define mvinsch(y,x,c)                 mvwinsch(stdscr,y,x,c)
 #define mvinsnstr(y,x,s,n)             mvwinsnstr(stdscr,y,x,s,n)
 #define mvinsstr(y,x,s)                        mvwinsstr(stdscr,y,x,s)
 #define mvinstr(y,x,s)                 mvwinstr(stdscr,y,x,s)
 #define mvvline(y,x,c,n)               mvwvline(stdscr,y,x,c,n)
 
 /*
 #define mvinsnstr(y,x,s,n)             mvwinsnstr(stdscr,y,x,s,n)
 #define mvinsstr(y,x,s)                        mvwinsstr(stdscr,y,x,s)
 #define mvinstr(y,x,s)                 mvwinstr(stdscr,y,x,s)
 #define mvvline(y,x,c,n)               mvwvline(stdscr,y,x,c,n)
 
 /*
- * XSI curses macros for XPG4 conformance.
- * The underlying functions needed to make these work are:
- * waddnwstr(), waddchnwstr(), wadd_wch(), wborder_set(), wchgat(),
- * wecho_wchar(), wgetn_wstr(), wget_wch(), whline_set(), vhline_set(),
- * winnwstr(), wins_nwstr(), wins_wch(), win_wch(), win_wchnstr().
- * Except for wchgat(), these are not yet implemented.  They will be someday.
+ * Some wide-character functions do not depend on the extensions.
  */
  */
-#define add_wch(c)                     wadd_wch(stdscr,c)
-#define addnwstr(wstr,n)               waddnwstr(stdscr,wstr,n)
-#define addwstr(wstr,n)                        waddnwstr(stdscr,wstr,-1)
-#define attr_get(a,pair,opts)          wattr_get(stdscr,a,pair,opts)
-#define attr_off(a,opts)               wattr_off(stdscr,a,opts)
-#define attr_on(a,opts)                        wattr_on(stdscr,a,opts)
-#define attr_set(a,pair,opts)          wattr_set(stdscr,a,pair,opts)
-#define box_set(w,v,h)                 wborder_set(w,v,v,h,h,0,0,0,0)
-#define chgat(n,a,c,o)                 wchgat(stdscr,n,a,c,o)
-#define echo_wchar(c)                  wecho_wchar(stdscr,c)
-#define getbkgd(win)                   ((win)->_bkgd)
-#define get_wch(c)                     wget_wch(stdscr,c)
-#define get_wstr(t)                    wgetn_wstr(stdscr,t,-1)
-#define getn_wstr(t,n)                 wgetn_wstr(stdscr,t,n)
-#define hline_set(c,n)                 whline_set(stdscr,c,n)
-#define in_wch(c)                      win_wch(stdscr,c)
-#define in_wchnstr(c,n)                        win_wchnstr(stdscr,c,n)
-#define in_wchstr(c)                   win_wchnstr(stdscr,c,-1)
-#define innwstr(c,n)                   winnwstr(stdscr,c,n)
-#define ins_nwstr(t,n)                 wins_nwstr(stdscr,t,n)
-#define ins_wch(c)                     wins_wch(stdscr,c)
-#define ins_wstr(t)                    wins_nwstr(stdscr,t,-1)
-#define inwstr(c)                      winnwstr(stdscr,c,-1)
-
-#define mvadd_wch(y,x,c)               mvwadd_wch(stdscr,y,x,c)
-#define mvaddnwstr(y,x,wstr,n)         mvwaddnwstr(stdscr,y,x,wstr,n)
-#define mvaddwstr(y,x,wstr,n)          mvwaddnwstr(stdscr,y,x,wstr,-1)
-#define mvchgat(y,x,n,a,c,o)           mvwchgat(stdscr,y,x,n,a,c,o)
-#define mvget_wch(y,x,c)               mvwget_wch(stdscr,y,x,c)
-#define mvget_wstr(y,x,t)              mvwgetn_wstr(stdscr,y,x,t,-1)
-#define mvgetn_wstr(y,x,t,n)           mvwgetn_wstr(stdscr,y,x,t,n)
-#define mvhline_set(y,x,c,n)           mvwhline_set(stdscr,y,x,c,n)
-#define mvin_wch(y,x,c)                        mvwin_wch(stdscr,y,x,c)
-#define mvin_wchnstr(y,x,c,n)          mvwin_wchnstr(stdscr,y,x,c,n)
-#define mvin_wchstr(y,x,c)             mvwin_wchnstr(stdscr,y,x,c,-1)
-#define mvinnwstr(y,x,c,n)             mvwinnwstr(stdscr,y,x,c,n)
-#define mvins_nwstr(y,x,t,n)           mvwins_nwstr(stdscr,y,x,t,n)
-#define mvins_wch(y,x,c)               mvwins_wch(stdscr,y,x,c)
-#define mvins_wstr(y,x,t)              mvwins_nwstr(stdscr,y,x,t,-1)
-#define mvinwstr(y,x,c)                        mvwinnwstr(stdscr,y,x,c,-1)
-#define mvvline_set(y,x,c,n)           mvwvline_set(stdscr,y,x,c,n)
-
-#define mvwadd_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wadd_wch(stdscr,c))
-#define mvwaddnwstr(win,y,x,wstr,n)    (wmove(win,y,x) == ERR ? ERR : waddnwstr(stdscr,wstr,n))
-#define mvwaddwstr(win,y,x,wstr,n)     (wmove(win,y,x) == ERR ? ERR : waddnwstr(stdscr,wstr,-1))
-#define mvwchgat(win,y,x,n,a,c,o)      (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
-#define mvwget_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
-#define mvwget_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,-1))
-#define mvwgetn_wstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
-#define mvwhline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
-#define mvwin_wch(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
-#define mvwin_wchnstr(win,y,x,c,n)     (wmove(win,y,x) == ERR ? ERR : win_wchnstr(stdscr,c,n))
-#define mvwin_wchstr(win,y,x,c)                (wmove(win,y,x) == ERR ? ERR : win_wchnstr(stdscr,c,-1))
-#define mvwinnwstr(win,y,x,c,n)                (wmove(win,y,x) == ERR ? ERR : winnwstr(stdscr,c,n))
-#define mvwins_nwstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wins_nwstr(stdscr,t,n))
-#define mvwins_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wins_wch(stdscr,c))
-#define mvwins_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wins_nwstr(stdscr,t,-1))
-#define mvwinwstr(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : winnwstr(stdscr,c,-1))
-#define mvwvline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+#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))
 
 
 #define slk_attr_off(a,v)              ((v) ? ERR : slk_attroff(a))
 #define slk_attr_on(a,v)               ((v) ? ERR : slk_attron(a))
 
-#define vid_attr(a,pair,opts)          vidattr(a)
-#define vline_set(c,n)                 wvline_set(stdscr,c,n)
-#define waddwstr(win,wstr,n)           waddnwstr(win,wstr,-1)
 #define wattr_get(win,a,p,opts)                ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
                                         (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
                                         OK)
 #define wattr_get(win,a,p,opts)                ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
                                         (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
                                         OK)
-#define wget_wstr(w,t)                 wgetn_wstr(w,t,-1)
-#define win_wchstr(w,c)                        win_wchnstr(w,c,-1)
-#define wins_wstr(w,t)                 wins_nwstr(w,t,-1)
-#define winwstr(w,c)                   winnwstr(w,c,-1)
-
 
 /*
  * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
 
 /*
  * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
@@ -1142,229 +996,28 @@ extern bool mouse_trafo(int*, int*, bool);              /* generated */
 #define vw_printw              vwprintw
 #define vw_scanw               vwscanw
 
 #define vw_printw              vwprintw
 #define vw_scanw               vwscanw
 
+/*
+ * Export fallback function for use in C++ binding.
+ */
+#if !@HAVE_VSSCANF@
+#define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
+NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
+#endif
+
 /*
  * Pseudo-character tokens outside ASCII range.  The curses wgetch() function
  * will return any given one of these only if the corresponding k- capability
  * is defined in your terminal's terminfo entry.
 /*
  * Pseudo-character tokens outside ASCII range.  The curses wgetch() function
  * will return any given one of these only if the corresponding k- capability
  * is defined in your terminal's terminfo entry.
+ *
+ * Some keys (KEY_A1, etc) are arranged like this:
+ *     a1     up    a3
+ *     left   b2    right
+ *     c1     down  c3
+ *
+ * A few key codes do not depend upon the terminfo entry.
  */
 #define KEY_CODE_YES   0400            /* A wchar_t contains a key code */
 #define KEY_MIN                0401            /* Minimum curses key */
  */
 #define KEY_CODE_YES   0400            /* A wchar_t contains a key code */
 #define KEY_MIN                0401            /* Minimum curses key */
-#define KEY_BREAK       0401            /* Break key (unreliable) */
-#define KEY_DOWN        0402            /* Down-arrow */
-#define KEY_UP          0403           /* Up-arrow */
-#define KEY_LEFT        0404           /* Left-arrow */
-#define KEY_RIGHT       0405            /* Right-arrow */
-#define KEY_HOME        0406            /* Home key (upward+left arrow) */
-#define KEY_BACKSPACE   0407            /* Backspace (unreliable) */
-#define KEY_F0          0410            /* Function keys.  Space for 64 */
-#define KEY_F(n)        (KEY_F0+(n))    /* Value of function key n */
-#define KEY_DL          0510            /* Delete line */
-#define KEY_IL          0511            /* Insert line */
-#define KEY_DC          0512            /* Delete character */
-#define KEY_IC          0513            /* Insert char or enter insert mode */
-#define KEY_EIC         0514            /* Exit insert char mode */
-#define KEY_CLEAR       0515            /* Clear screen */
-#define KEY_EOS         0516            /* Clear to end of screen */
-#define KEY_EOL         0517            /* Clear to end of line */
-#define KEY_SF          0520            /* Scroll 1 line forward */
-#define KEY_SR          0521            /* Scroll 1 line backward (reverse) */
-#define KEY_NPAGE       0522            /* Next page */
-#define KEY_PPAGE       0523            /* Previous page */
-#define KEY_STAB        0524            /* Set tab */
-#define KEY_CTAB        0525            /* Clear tab */
-#define KEY_CATAB       0526            /* Clear all tabs */
-#define KEY_ENTER       0527            /* Enter or send (unreliable) */
-#define KEY_SRESET      0530            /* Soft (partial) reset (unreliable) */
-#define KEY_RESET       0531            /* Reset or hard reset (unreliable) */
-#define KEY_PRINT       0532            /* Print */
-#define KEY_LL          0533            /* Home down or bottom (lower left) */
-
-/* The keypad is arranged like this: */
-/* a1    up    a3   */
-/* left   b2  right  */
-/* c1   down   c3   */
-
-#define KEY_A1         0534            /* Upper left of keypad */
-#define KEY_A3         0535            /* Upper right of keypad */
-#define KEY_B2         0536            /* Center of keypad */
-#define KEY_C1         0537            /* Lower left of keypad */
-#define KEY_C3         0540            /* Lower right of keypad */
-#define KEY_BTAB       0541            /* Back tab */
-#define KEY_BEG                0542            /* Beg (beginning) */
-#define KEY_CANCEL     0543            /* Cancel */
-#define KEY_CLOSE      0544            /* Close */
-#define KEY_COMMAND    0545            /* Cmd (command) */
-#define KEY_COPY       0546            /* Copy */
-#define KEY_CREATE     0547            /* Create */
-#define KEY_END                0550            /* End */
-#define KEY_EXIT       0551            /* Exit */
-#define KEY_FIND       0552            /* Find */
-#define KEY_HELP       0553            /* Help */
-#define KEY_MARK       0554            /* Mark */
-#define KEY_MESSAGE    0555            /* Message */
-#define KEY_MOVE       0556            /* Move */
-#define KEY_NEXT       0557            /* Next */
-#define KEY_OPEN       0560            /* Open */
-#define KEY_OPTIONS    0561            /* Options */
-#define KEY_PREVIOUS   0562            /* Prev (previous) */
-#define KEY_REDO       0563            /* Redo */
-#define KEY_REFERENCE  0564            /* Ref (reference) */
-#define KEY_REFRESH    0565            /* Refresh */
-#define KEY_REPLACE    0566            /* Replace */
-#define KEY_RESTART    0567            /* Restart */
-#define KEY_RESUME     0570            /* Resume */
-#define KEY_SAVE       0571            /* Save */
-#define KEY_SBEG       0572            /* Shifted Beg (beginning) */
-#define KEY_SCANCEL    0573            /* Shifted Cancel */
-#define KEY_SCOMMAND   0574            /* Shifted Command */
-#define KEY_SCOPY      0575            /* Shifted Copy */
-#define KEY_SCREATE    0576            /* Shifted Create */
-#define KEY_SDC                0577            /* Shifted Delete char */
-#define KEY_SDL                0600            /* Shifted Delete line */
-#define KEY_SELECT     0601            /* Select */
-#define KEY_SEND       0602            /* Shifted End */
-#define KEY_SEOL       0603            /* Shifted Clear line */
-#define KEY_SEXIT      0604            /* Shifted Dxit */
-#define KEY_SFIND      0605            /* Shifted Find */
-#define KEY_SHELP      0606            /* Shifted Help */
-#define KEY_SHOME      0607            /* Shifted Home */
-#define KEY_SIC                0610            /* Shifted Input */
-#define KEY_SLEFT      0611            /* Shifted Left arrow */
-#define KEY_SMESSAGE   0612            /* Shifted Message */
-#define KEY_SMOVE      0613            /* Shifted Move */
-#define KEY_SNEXT      0614            /* Shifted Next */
-#define KEY_SOPTIONS   0615            /* Shifted Options */
-#define KEY_SPREVIOUS  0616            /* Shifted Prev */
-#define KEY_SPRINT     0617            /* Shifted Print */
-#define KEY_SREDO      0620            /* Shifted Redo */
-#define KEY_SREPLACE   0621            /* Shifted Replace */
-#define KEY_SRIGHT     0622            /* Shifted Right arrow */
-#define KEY_SRSUME     0623            /* Shifted Resume */
-#define KEY_SSAVE      0624            /* Shifted Save */
-#define KEY_SSUSPEND   0625            /* Shifted Suspend */
-#define KEY_SUNDO      0626            /* Shifted Undo */
-#define KEY_SUSPEND    0627            /* Suspend */
-#define KEY_UNDO       0630            /* Undo */
-#define KEY_MOUSE      0631            /* Mouse event has occurred */
-#define KEY_RESIZE     0632            /* Terminal resize event */
-#define KEY_MAX                0777            /* Maximum key value */
-
-/* mouse interface */
-#define NCURSES_MOUSE_VERSION  1
-
-/* 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
-
-/* macros to extract single event-bits from masks */
-#define        BUTTON_RELEASE(e, x)            ((e) & (001 << (6 * ((x) - 1))))
-#define        BUTTON_PRESS(e, x)              ((e) & (002 << (6 * ((x) - 1))))
-#define        BUTTON_CLICK(e, x)              ((e) & (004 << (6 * ((x) - 1))))
-#define        BUTTON_DOUBLE_CLICK(e, x)       ((e) & (010 << (6 * ((x) - 1))))
-#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 */
-    int x, y, z;       /* event coordinates (character-cell) */
-    mmask_t bstate;    /* button state bits */
-}
-MEVENT;
-
-extern int getmouse(MEVENT *);
-extern int ungetmouse(MEVENT *);
-extern mmask_t mousemask(mmask_t, mmask_t *);
-extern bool wenclose(const WINDOW *, int, int);
-extern int mouseinterval(int);
-extern bool wmouse_trafo(const WINDOW* win,int* y, int* x, bool to_screen);
-
-#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
-
-/* other non-XSI functions */
-
-extern int mcprint(char *, int);       /* direct data to printer */
-extern int has_key(int);               /* do we have given key? */
-
-/* Debugging : use with libncurses_g.a */
-
-extern void _tracef(const char *, ...) GCC_PRINTFLIKE(1,2);
-extern void _tracedump(const char *, WINDOW *);
-extern char *_traceattr(attr_t);
-extern char *_traceattr2(int, chtype);
-extern char *_nc_tracebits(void);
-extern char *_tracechar(const unsigned char);
-extern char *_tracechtype(chtype);
-extern char *_tracechtype2(int, chtype);
-extern char *_tracemouse(const MEVENT *);
-extern void trace(const unsigned int);
-
-/* trace masks */
-#define TRACE_DISABLE  0x0000  /* turn off tracing */
-#define TRACE_TIMES    0x0001  /* trace user and system times of updates */
-#define TRACE_TPUTS    0x0002  /* trace tputs calls */
-#define TRACE_UPDATE   0x0004  /* trace update actions, old & new screens */
-#define TRACE_MOVE     0x0008  /* trace cursor moves and scrolls */
-#define TRACE_CHARPUT  0x0010  /* trace all character outputs */
-#define TRACE_ORDINARY 0x001F  /* trace all update actions */
-#define TRACE_CALLS    0x0020  /* trace all curses calls */
-#define TRACE_VIRTPUT  0x0040  /* trace virtual character puts */
-#define TRACE_IEVENT   0x0080  /* trace low-level input processing */
-#define TRACE_BITS     0x0100  /* trace state of TTY control bits */
-#define TRACE_ICALLS   0x0200  /* trace internal/nested calls */
-#define TRACE_CCALLS   0x0400  /* trace per-character calls */
-#define TRACE_DATABASE 0x0800  /* trace read/write of terminfo/termcap data */
-#define TRACE_ATTRS    0x1000  /* trace attribute updates */
-#define TRACE_MAXIMUM  0xffff  /* maximum trace level */
-
-#if defined(TRACE) || defined(NCURSES_TEST)
-extern int _nc_optimize_enable;                /* enable optimizations */
-extern const char *_nc_visbuf(const char *);
-#define OPTIMIZE_MVCUR         0x01    /* cursor movement optimization */
-#define OPTIMIZE_HASHMAP       0x02    /* diff hashing to detect scrolls */
-#define OPTIMIZE_SCROLL                0x04    /* scroll optimization */
-#define OPTIMIZE_ALL           0xff    /* enable all optimizations (dflt) */
-#endif
-
-#ifdef __cplusplus
-
-/* these names conflict with STL */
-#undef box
-#undef clear
-#undef erase
-#undef move
-#undef refresh
-
-}
-#endif
-
-#endif /* __NCURSES_H */
+#define KEY_BREAK      0401            /* Break key (unreliable) */
+#define KEY_SRESET     0530            /* Soft (partial) reset (unreliable) */
+#define KEY_RESET      0531            /* Reset or hard reset (unreliable) */
diff --git a/include/curses.tail b/include/curses.tail
new file mode 100644 (file)
index 0000000..b3991cd
--- /dev/null
@@ -0,0 +1,140 @@
+/* $Id: curses.tail,v 1.7 2002/10/12 15:46:02 tom Exp $ */
+
+/* mouse interface */
+#define NCURSES_MOUSE_VERSION  1
+
+/* 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
+
+/* macros to extract single event-bits from masks */
+#define        BUTTON_RELEASE(e, x)            ((e) & (001 << (6 * ((x) - 1))))
+#define        BUTTON_PRESS(e, x)              ((e) & (002 << (6 * ((x) - 1))))
+#define        BUTTON_CLICK(e, x)              ((e) & (004 << (6 * ((x) - 1))))
+#define        BUTTON_DOUBLE_CLICK(e, x)       ((e) & (010 << (6 * ((x) - 1))))
+#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 */
+    int x, y, z;       /* event coordinates (character-cell) */
+    mmask_t bstate;    /* button state bits */
+}
+MEVENT;
+
+extern NCURSES_EXPORT(int) getmouse (MEVENT *);
+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) mouse_trafo (int*, int*, bool);              /* generated */
+
+#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
+
+/* other non-XSI functions */
+
+extern NCURSES_EXPORT(int) mcprint (char *, int);      /* direct data to printer */
+extern NCURSES_EXPORT(int) has_key (int);              /* do we have given key? */
+
+/* Debugging : use with libncurses_g.a */
+
+extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *);
+extern NCURSES_EXPORT(char *) _traceattr (attr_t);
+extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
+extern NCURSES_EXPORT(char *) _nc_tracebits (void);
+extern NCURSES_EXPORT(char *) _tracechar (int);
+extern NCURSES_EXPORT(char *) _tracechtype (chtype);
+extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
+#ifdef _XOPEN_SOURCE_EXTENDED
+#define _tracech_t             _tracecchar_t
+extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
+#define _tracech_t2            _tracecchar_t2
+extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
+#else
+#define _tracech_t             _tracechtype
+#define _tracech_t2            _tracechtype2
+#endif
+extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *);
+extern NCURSES_EXPORT(void) trace (const unsigned int);
+
+/* trace masks */
+#define TRACE_DISABLE  0x0000  /* turn off tracing */
+#define TRACE_TIMES    0x0001  /* trace user and system times of updates */
+#define TRACE_TPUTS    0x0002  /* trace tputs calls */
+#define TRACE_UPDATE   0x0004  /* trace update actions, old & new screens */
+#define TRACE_MOVE     0x0008  /* trace cursor moves and scrolls */
+#define TRACE_CHARPUT  0x0010  /* trace all character outputs */
+#define TRACE_ORDINARY 0x001F  /* trace all update actions */
+#define TRACE_CALLS    0x0020  /* trace all curses calls */
+#define TRACE_VIRTPUT  0x0040  /* trace virtual character puts */
+#define TRACE_IEVENT   0x0080  /* trace low-level input processing */
+#define TRACE_BITS     0x0100  /* trace state of TTY control bits */
+#define TRACE_ICALLS   0x0200  /* trace internal/nested calls */
+#define TRACE_CCALLS   0x0400  /* trace per-character calls */
+#define TRACE_DATABASE 0x0800  /* trace read/write of terminfo/termcap data */
+#define TRACE_ATTRS    0x1000  /* trace attribute updates */
+
+#define TRACE_SHIFT    13      /* number of bits in the trace masks */
+#define TRACE_MAXIMUM  ((1 << TRACE_SHIFT) - 1) /* maximum trace level */
+
+#if defined(TRACE) || defined(NCURSES_TEST)
+extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;            /* enable optimizations */
+#ifdef _XOPEN_SOURCE_EXTENDED
+extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+#endif
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+#define OPTIMIZE_MVCUR         0x01    /* cursor movement optimization */
+#define OPTIMIZE_HASHMAP       0x02    /* diff hashing to detect scrolls */
+#define OPTIMIZE_SCROLL                0x04    /* scroll optimization */
+#define OPTIMIZE_ALL           0xff    /* enable all optimizations (dflt) */
+#endif
+
+#ifndef NCURSES_WGETCH_EVENTS
+#undef KEY_EVENT
+#endif
+
+#ifdef __cplusplus
+
+/* these names conflict with STL */
+#undef box
+#undef clear
+#undef erase
+#undef move
+#undef refresh
+
+}
+#endif
+
+#endif /* __NCURSES_H */
diff --git a/include/curses.wide b/include/curses.wide
new file mode 100644 (file)
index 0000000..ac03151
--- /dev/null
@@ -0,0 +1,237 @@
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+
+/* $Id: curses.wide,v 1.25 2002/08/31 17:48:53 tom Exp $ */
+
+extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+#define WACS_BSSB      (&_nc_wacs['l'])
+#define WACS_SSBB      (&_nc_wacs['m'])
+#define WACS_BBSS      (&_nc_wacs['k'])
+#define WACS_SBBS      (&_nc_wacs['j'])
+#define WACS_SBSS      (&_nc_wacs['u'])
+#define WACS_SSSB      (&_nc_wacs['t'])
+#define WACS_SSBS      (&_nc_wacs['v'])
+#define WACS_BSSS      (&_nc_wacs['w'])
+#define WACS_BSBS      (&_nc_wacs['q'])
+#define WACS_SBSB      (&_nc_wacs['x'])
+#define WACS_SSSS      (&_nc_wacs['n'])
+
+#define WACS_ULCORNER  WACS_BSSB
+#define WACS_LLCORNER  WACS_SSBB
+#define WACS_URCORNER  WACS_BBSS
+#define WACS_LRCORNER  WACS_SBBS
+#define WACS_RTEE      WACS_SBSS
+#define WACS_LTEE      WACS_SSSB
+#define WACS_BTEE      WACS_SSBS
+#define WACS_TTEE      WACS_BSSS
+#define WACS_HLINE     WACS_BSBS
+#define WACS_VLINE     WACS_SBSB
+#define WACS_PLUS      WACS_SSSS
+
+#define WACS_S1                (&_nc_wacs['o']) /* scan line 1 */
+#define WACS_S9        (&_nc_wacs['s']) /* scan line 9 */
+#define WACS_DIAMOND   (&_nc_wacs['`']) /* diamond */
+#define WACS_CKBOARD   (&_nc_wacs['a']) /* checker board */
+#define WACS_DEGREE    (&_nc_wacs['f']) /* degree symbol */
+#define WACS_PLMINUS   (&_nc_wacs['g']) /* plus/minus */
+#define WACS_BULLET    (&_nc_wacs['~']) /* bullet */
+
+       /* Teletype 5410v1 symbols */
+#define WACS_LARROW    (&_nc_wacs[',']) /* arrow left */
+#define WACS_RARROW    (&_nc_wacs['+']) /* arrow right */
+#define WACS_DARROW    (&_nc_wacs['.']) /* arrow down */
+#define WACS_UARROW    (&_nc_wacs['-']) /* arrow up */
+#define WACS_BOARD     (&_nc_wacs['h']) /* board of squares */
+#define WACS_LANTERN   (&_nc_wacs['i']) /* lantern symbol */
+#define WACS_BLOCK     (&_nc_wacs['0']) /* solid square block */
+
+       /* ncurses extensions */
+#define WACS_S3                (&_nc_wacs['p']) /* scan line 3 */
+#define WACS_S7                (&_nc_wacs['r']) /* scan line 7 */
+#define WACS_LEQUAL    (&_nc_wacs['y']) /* less/equal */
+#define WACS_GEQUAL    (&_nc_wacs['z']) /* greater/equal */
+#define WACS_PI                (&_nc_wacs['{']) /* Pi */
+#define WACS_NEQUAL    (&_nc_wacs['|']) /* not equal */
+#define WACS_STERLING  (&_nc_wacs['}']) /* UK pound sign */
+
+/*
+ * Function prototypes for wide-character operations.
+ *
+ * "generated" comments should include ":WIDEC" to make the corresponding
+ * functions ifdef'd in lib_gen.c
+ *
+ * "implemented" comments do not need this marker.
+ */
+
+extern NCURSES_EXPORT(int) add_wch (const cchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);            /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addwstr (const wchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);                   /* generated:WIDEC */
+extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) erasewchar (wchar_t*);                      /* implemented */
+extern NCURSES_EXPORT(int) get_wch (wint_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) get_wstr (wint_t *);                                /* generated:WIDEC */
+extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);                      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*);       /* implemented */
+extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wch (cchar_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);                        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);                      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);                   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);                 /* generated:WIDEC */
+extern NCURSES_EXPORT(int) inwstr (wchar_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);         /* implemented */
+extern NCURSES_EXPORT(int) killwchar (wchar_t *);                      /* implemented */
+extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int);        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);            /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);    /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);          /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);     /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *);        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);    /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);          /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);    /* missing */
+extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *);   /* implemented */
+extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);       /* missing */
+extern NCURSES_EXPORT(attr_t) term_attrs (void);                       /* implemented */
+extern NCURSES_EXPORT(int) unget_wch (const wchar_t);                  /* implemented */
+extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *);           /* implemented */
+extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */
+extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);                /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);        /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);     /* generated:WIDEC */
+extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);   /* implemented */
+extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);                /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);         /* implemented */
+extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);     /* implemented */
+extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);     /* implemented */
+extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);    /* implemented */
+extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);              /* implemented */
+extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);           /* implemented */
+extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int);                /* implemented */
+extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int);        /* implemented */
+extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);              /* implemented */
+extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);     /* implemented */
+extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);                /* implemented */
+extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int);        /* implemented */
+extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);       /* implemented */
+extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);              /* implemented */
+extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);                   /* implemented */
+extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);        /* implemented */
+
+/*
+ * XSI curses macros for XPG4 conformance.
+ */
+#define add_wch(c)                     wadd_wch(stdscr,c)
+#define add_wchnstr(str,n)             wadd_wchnstr(stdscr,str,n)
+#define add_wchstr(str)                        wadd_wchstr(stdscr,str)
+#define addnwstr(wstr,n)               waddnwstr(stdscr,wstr,n)
+#define addwstr(wstr)                  waddwstr(stdscr,wstr)
+#define bkgrnd(c)                      wbkgrnd(stdscr,c)
+#define bkgrndset(c)                   wbkgrndset(stdscr,c)
+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
+#define box_set(w,v,h)                 wborder_set(w,v,v,h,h,0,0,0,0)
+#define echo_wchar(c)                  wecho_wchar(stdscr,c)
+#define get_wch(c)                     wget_wch(stdscr,c)
+#define get_wstr(t)                    wget_wstr(stdscr,t)
+#define getbkgrnd(wch)                 wgetbkgrnd(stdscr,wch)
+#define getn_wstr(t,n)                 wgetn_wstr(stdscr,t,n)
+#define hline_set(c,n)                 whline_set(stdscr,c,n)
+#define in_wch(c)                      win_wch(stdscr,c)
+#define in_wchnstr(c,n)                        win_wchnstr(stdscr,c,n)
+#define in_wchstr(c)                   win_wchstr(stdscr,c)
+#define innwstr(c,n)                   winnwstr(stdscr,c,n)
+#define ins_nwstr(t,n)                 wins_nwstr(stdscr,t,n)
+#define ins_wch(c)                     wins_wch(stdscr,c)
+#define ins_wstr(t)                    wins_wstr(stdscr,t)
+#define inwstr(c)                      winwstr(stdscr,c)
+#define 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)
+#define wins_wstr(w,t)                 wins_nwstr(w,t,-1)
+
+#define mvadd_wch(y,x,c)               mvwadd_wch(stdscr,y,x,c)
+#define mvadd_wchnstr(y,x,s,n)         mvwadd_wchnstr(stdscr,y,x,s,n)
+#define mvadd_wchstr(y,x,s)            mvwadd_wchstr(stdscr,y,x,s)
+#define mvaddnwstr(y,x,wstr,n)         mvwaddnwstr(stdscr,y,x,wstr,n)
+#define mvaddwstr(y,x,wstr)            mvwaddwstr(stdscr,y,x,wstr)
+#define mvget_wch(y,x,c)               mvwget_wch(stdscr,y,x,c)
+#define mvget_wstr(y,x,t)              mvwget_wstr(stdscr,y,x,t)
+#define mvgetn_wstr(y,x,t,n)           mvwgetn_wstr(stdscr,y,x,t,n)
+#define mvhline_set(y,x,c,n)           mvwhline_set(stdscr,y,x,c,n)
+#define mvin_wch(y,x,c)                        mvwin_wch(stdscr,y,x,c)
+#define mvin_wchnstr(y,x,c,n)          mvwin_wchnstr(stdscr,y,x,c,n)
+#define mvin_wchstr(y,x,c)             mvwin_wchstr(stdscr,y,x,c)
+#define mvinnwstr(y,x,c,n)             mvwinnwstr(stdscr,y,x,c,n)
+#define mvins_nwstr(y,x,t,n)           mvwins_nwstr(stdscr,y,x,t,n)
+#define mvins_wch(y,x,c)               mvwins_wch(stdscr,y,x,c)
+#define mvins_wstr(y,x,t)              mvwins_wstr(stdscr,y,x,t)
+#define mvinwstr(y,x,c)                        mvwinwstr(stdscr,y,x,c)
+#define mvvline_set(y,x,c,n)           mvwvline_set(stdscr,y,x,c,n)
+
+#define mvwadd_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
+#define mvwadd_wchnstr(win,y,x,s,n)    (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
+#define mvwadd_wchstr(win,y,x,s)       (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
+#define mvwaddnwstr(win,y,x,wstr,n)    (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
+#define mvwaddwstr(win,y,x,wstr)       (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
+#define mvwget_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
+#define mvwget_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
+#define mvwgetn_wstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
+#define mvwhline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
+#define mvwin_wch(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
+#define mvwin_wchnstr(win,y,x,c,n)     (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
+#define mvwin_wchstr(win,y,x,c)                (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
+#define mvwinnwstr(win,y,x,c,n)                (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
+#define mvwins_nwstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
+#define mvwins_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
+#define mvwins_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
+#define mvwinwstr(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
+#define mvwvline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+
+#endif /* _XOPEN_SOURCE_EXTENDED */
index ef9694cb83ee8762cf8a52b5db674da2c1a694ed..8d64fee18013b37137f1c2b157790d064286b206 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #!/bin/sh
-# $Id: edit_cfg.sh,v 1.10 2000/09/09 20:29:58 tom Exp $
+# $Id: edit_cfg.sh,v 1.12 2001/12/23 00:52:40 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -48,18 +48,20 @@ do
        mv $2 $BAK
        if ( grep "[    ]$name[         ]" $1 2>&1 >$TMP )
        then
        mv $2 $BAK
        if ( grep "[    ]$name[         ]" $1 2>&1 >$TMP )
        then
-               sed -e 's@#define '$name'.*$@'"`cat $TMP`@" $BAK >$2
-       elif test "$name" = "NCURSES_CONST" ; then
-               sed -e 's/define '$name'.*$/define '$name' \/\*nothing\*\//' $BAK >$2
+               value=1
        else
        else
-               sed -e 's/define '$name'.*$/define '$name' 0/' $BAK >$2
+               value=0
        fi
        fi
+       echo '** edit: '$name $value
+       sed \
+               -e "s@#define ${name}.*\$@#define $name $value@" \
+               -e "s@#if $name\$@#if $value /* $name */@" \
+               -e "s@#if !$name\$@#if $value /* !$name */@" \
+               $BAK >$2
        if (cmp -s $2 $BAK)
        then
        if (cmp -s $2 $BAK)
        then
-               echo '** same: '$name
                mv $BAK $2
        else
                mv $BAK $2
        else
-               echo '** edit: '$name
                rm -f $BAK
        fi
 done
                rm -f $BAK
        fi
 done
index 2a185c21627d953f3aca5ff340ba55affd286614..da3738db1e2428fdc85857278f6f07e43d523a47 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -32,3 +32,4 @@ term.h
 curses.h
 unctrl.h
 termcap.h
 curses.h
 unctrl.h
 termcap.h
+$(srcdir)/ncurses_dll.h
index 5ac5a78d3bd6d82476ea6864da73362be47ce029..8bf6dcc73d5d79e0fafe612e2a67dbc40907abfa 100644 (file)
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997                   *
  ****************************************************************************/
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997                   *
  ****************************************************************************/
-/* $Id: nc_alloc.h,v 1.8 2000/04/08 23:42:57 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.11 2002/07/20 13:16:40 tom Exp $ */
 
 #ifndef NC_ALLOC_included
 #define NC_ALLOC_included 1
 
 
 #ifndef NC_ALLOC_included
 #define NC_ALLOC_included 1
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #if HAVE_LIBDMALLOC
 #include <dmalloc.h>    /* Gray Watson's library */
 #else
 #if HAVE_LIBDMALLOC
 #include <dmalloc.h>    /* Gray Watson's library */
 #else
@@ -66,18 +70,22 @@ extern void _nc_leaks_dump_entry(void);
 #endif
 
 #ifndef ExitProgram
 #endif
 
 #ifndef ExitProgram
-#define ExitProgram(code) return code
+#define ExitProgram(code) exit(code)
 #endif
 
 /* doalloc.c */
 #endif
 
 /* doalloc.c */
-extern void *_nc_doalloc(void *, size_t);
+extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
 #if !HAVE_STRDUP
 #define strdup _nc_strdup
 #if !HAVE_STRDUP
 #define strdup _nc_strdup
-extern char *_nc_strdup(const char *);
+extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
 #endif
 
 #define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
 #define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
 #define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
 
 #endif
 
 #define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
 #define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
 #define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* NC_ALLOC_included */
 #endif /* NC_ALLOC_included */
index dbb20fa184d1b7c698f967195e502b56e0fd3b71..bb1f6745ac0cad4ffe58eb0e2213666700956d95 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
 
 
 /*
 
 
 /*
- * $Id: nc_panel.h,v 1.2 1998/02/11 12:13:45 tom Exp $
+ * $Id: nc_panel.h,v 1.3 2000/12/10 02:04:35 tom Exp $
  *
  *     nc_panel.h
  *
  *
  *     nc_panel.h
  *
@@ -57,7 +57,7 @@ struct panelhook {
 };
 
 /* Retrieve the panelhook of the current screen */
 };
 
 /* Retrieve the panelhook of the current screen */
-extern struct panelhook* _nc_panelhook(void);
+extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void);
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }
index 4d40dab8848b1e1f76f2e5614082a87f35f7ea38..14391bad91be070d9342fb1cc7f5cc7c57fb911b 100644 (file)
@@ -30,7 +30,7 @@
  *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
  ****************************************************************************/
 /*
  *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
  ****************************************************************************/
 /*
- * $Id: ncurses_cfg.hin,v 1.3 2000/09/02 17:13:32 tom Exp $
+ * $Id: ncurses_cfg.hin,v 1.4 2002/09/07 16:55:14 tom Exp $
  *
  * This is a template-file used to generate the "ncurses_cfg.h" file.
  *
  *
  * This is a template-file used to generate the "ncurses_cfg.h" file.
  *
@@ -39,8 +39,8 @@
  * 971222) to autoconf 2.12 or 2.13 to do this.
  *
  * See:
  * 971222) to autoconf 2.12 or 2.13 to do this.
  *
  * See:
- *     http://dickey.his.com/autoconf/
- *     ftp://dickey.his.com/autoconf/
+ *     http://invisible-island.net/autoconf/
+ *     ftp://invisible-island.net/autoconf/
  */
 #ifndef NC_CONFIG_H
 #define NC_CONFIG_H
  */
 #ifndef NC_CONFIG_H
 #define NC_CONFIG_H
index e4a391f1fd6768f11b166ba0c43eb62a2960b6b1..a4b49c00ed6861c831bd9d423ddc117014f151ca 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.4 2000/10/08 01:04:00 tom Exp $
+# $Id: ncurses_defs,v 1.15 2002/08/24 23:13:43 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 2000 Free Software Foundation, Inc.                          #
+# Copyright (c) 2000-2001,2002 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -36,6 +36,9 @@ BSD_TPUTS
 CC_HAS_INLINE_FUNCS
 CC_HAS_PROTOS
 CPP_HAS_PARAM_INIT
 CC_HAS_INLINE_FUNCS
 CC_HAS_PROTOS
 CPP_HAS_PARAM_INIT
+CPP_HAS_VSCAN_FUNC
+CURSES_ACS_ARRAY       acs_map
+CURSES_WACS_ARRAY      _nc_wacs
 DECL_ERRNO
 ETIP_NEEDS_MATH_H
 GCC_NORETURN   /* nothing */
 DECL_ERRNO
 ETIP_NEEDS_MATH_H
 GCC_NORETURN   /* nothing */
@@ -50,6 +53,7 @@ HAVE_FORM_H
 HAVE_GETCWD
 HAVE_GETEGID
 HAVE_GETEUID
 HAVE_GETCWD
 HAVE_GETEGID
 HAVE_GETEUID
+HAVE_GETNSTR
 HAVE_GETOPT_H
 HAVE_GETTIMEOFDAY
 HAVE_GETTTYNAM
 HAVE_GETOPT_H
 HAVE_GETTIMEOFDAY
 HAVE_GETTTYNAM
@@ -76,6 +80,7 @@ HAVE_NC_ALLOC_H
 HAVE_PANEL_H
 HAVE_POLL
 HAVE_POLL_H
 HAVE_PANEL_H
 HAVE_POLL
 HAVE_POLL_H
+HAVE_PURIFY
 HAVE_REGEXPR_H_FUNCS
 HAVE_REGEXP_H_FUNCS
 HAVE_REGEX_H_FUNCS
 HAVE_REGEXPR_H_FUNCS
 HAVE_REGEXP_H_FUNCS
 HAVE_REGEX_H_FUNCS
@@ -108,6 +113,7 @@ HAVE_TERMIO_H
 HAVE_TIMES
 HAVE_TTYENT_H
 HAVE_TYPEINFO
 HAVE_TIMES
 HAVE_TTYENT_H
 HAVE_TYPEINFO
+HAVE_TYPE_ATTR_T
 HAVE_TYPE_SIGACTION
 HAVE_UNISTD_H
 HAVE_UNLINK
 HAVE_TYPE_SIGACTION
 HAVE_UNISTD_H
 HAVE_UNLINK
@@ -117,11 +123,13 @@ HAVE_VSNPRINTF
 HAVE_VSSCANF
 HAVE_WORKING_POLL
 HAVE_WRESIZE
 HAVE_VSSCANF
 HAVE_WORKING_POLL
 HAVE_WRESIZE
+HAVE__DOSCAN
 MIXEDCASE_FILENAMES
 NCURSES_EXPANDED
 NCURSES_EXT_FUNCS
 NCURSES_NOMACROS
 NCURSES_NO_PADDING
 MIXEDCASE_FILENAMES
 NCURSES_EXPANDED
 NCURSES_EXT_FUNCS
 NCURSES_NOMACROS
 NCURSES_NO_PADDING
+NCURSES_PATHSEP        ':'
 NDEBUG
 NEED_PTEM_H
 NO_LEAKS
 NDEBUG
 NEED_PTEM_H
 NO_LEAKS
@@ -132,6 +140,8 @@ SVR4_ACTION
 SVR4_TERMIO
 SYSTEM_NAME    "unknown"
 TERMINFO       "none"
 SVR4_TERMIO
 SYSTEM_NAME    "unknown"
 TERMINFO       "none"
+TERMPATH       "none"
+TIME_WITH_SYS_TIME
 TYPEOF_CHTYPE
 USE_COLORFGBG
 USE_DATABASE
 TYPEOF_CHTYPE
 USE_COLORFGBG
 USE_DATABASE
@@ -146,6 +156,10 @@ USE_RCS_IDS
 USE_SAFE_SPRINTF
 USE_SCROLL_HINTS
 USE_SIGWINCH
 USE_SAFE_SPRINTF
 USE_SCROLL_HINTS
 USE_SIGWINCH
+USE_STDIO_VSCAN
+USE_STRSTREAM_VSCAN
+USE_STRSTREAM_VSCAN_CAST
 USE_SYMLINKS
 USE_SYMLINKS
+USE_TERMCAP
 USE_WIDEC_SUPPORT
 USE_XMC_SUPPORT
 USE_WIDEC_SUPPORT
 USE_XMC_SUPPORT
diff --git a/include/ncurses_dll.h b/include/ncurses_dll.h
new file mode 100644 (file)
index 0000000..c961c3e
--- /dev/null
@@ -0,0 +1,48 @@
+/* $Id: ncurses_dll.h,v 1.2 2001/12/09 01:36:34 tom Exp $ */
+
+#ifndef NCURSES_DLL_H_incl
+#define NCURSES_DLL_H_incl 1
+
+#undef NCURSES_DLL     /* cygwin dll not implemented */
+#define NCURSES_STATIC /* cygwin dll not implemented */
+
+#if defined(__CYGWIN__)
+#  if defined(NCURSES_DLL)
+#    if defined(NCURSES_STATIC)
+#      undef NCURSES_STATIC
+#    endif
+#  endif
+#  undef NCURSES_IMPEXP
+#  undef NCURSES_API
+#  undef NCURSES_EXPORT(type)
+#  undef NCURSES_EXPORT_VAR(type)
+#  if defined(NCURSES_DLL)
+/* building a DLL */
+#    define NCURSES_IMPEXP __declspec(dllexport)
+#  elif defined(NCURSES_STATIC)
+/* building or linking to a static library */
+#    define NCURSES_IMPEXP /* nothing */
+#  else
+/* linking to the DLL */
+#    define NCURSES_IMPEXP __declspec(dllimport)
+#  endif
+#  define NCURSES_API __cdecl
+#  define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+#  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+#endif
+
+/* Take care of non-cygwin platforms */
+#if !defined(NCURSES_IMPEXP)
+#  define NCURSES_IMPEXP /* nothing */
+#endif
+#if !defined(NCURSES_API)
+#  define NCURSES_API /* nothing */
+#endif
+#if !defined(NCURSES_EXPORT)
+#  define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+#endif
+#if !defined(NCURSES_EXPORT_VAR)
+#  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+#endif
+
+#endif /* NCURSES_DLL_H_incl */
index 7d9f77b4befc321d73728169f66f8928279b2469..a066be9948d1037eb787d4e4d89091918c597a81 100644 (file)
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-/* $Id: term_entry.h,v 1.29 2000/03/19 02:04:15 tom Exp $ */
+/* $Id: term_entry.h,v 1.32 2001/03/24 21:53:10 tom Exp $ */
 
 /*
  *     term_entry.h -- interface to entry-manipulation code
  */
 
 
 /*
  *     term_entry.h -- interface to entry-manipulation code
  */
 
-#ifndef _TERM_ENTRY_H
-#define _TERM_ENTRY_H
+#ifndef NCURSES_TERM_ENTRY_H_incl
+#define NCURSES_TERM_ENTRY_H_incl 1
 
 #ifdef __cplusplus
 extern "C" {
 
 #ifdef __cplusplus
 extern "C" {
@@ -90,7 +90,8 @@ ENTRY;
 #define ExtNumname(tp,i,names)  EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
 #define ExtStrname(tp,i,names)  EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
 
 #define ExtNumname(tp,i,names)  EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
 #define ExtStrname(tp,i,names)  EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
 
-extern ENTRY   *_nc_head, *_nc_tail;
+extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
+extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
 #define for_entry_list(qp)     for (qp = _nc_head; qp; qp = qp->next)
 
 #define MAX_LINE       132
 #define for_entry_list(qp)     for (qp = _nc_head; qp; qp = qp->next)
 
 #define MAX_LINE       132
@@ -116,46 +117,46 @@ extern ENTRY      *_nc_head, *_nc_tail;
                }
 
 /* alloc_entry.c: elementary allocation code */
                }
 
 /* alloc_entry.c: elementary allocation code */
-extern ENTRY *_nc_copy_entry(ENTRY *oldp);
-extern char *_nc_save_str(const char *const);
-extern void _nc_init_entry(TERMTYPE *const);
-extern void _nc_merge_entry(TERMTYPE *const, TERMTYPE *const);
-extern void _nc_wrap_entry(ENTRY *const);
+extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp);
+extern NCURSES_EXPORT(char *) _nc_save_str (const char *const);
+extern NCURSES_EXPORT(void) _nc_init_entry (TERMTYPE *const);
+extern NCURSES_EXPORT(void) _nc_merge_entry (TERMTYPE *const, TERMTYPE *const);
+extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool);
 
 /* alloc_ttype.c: elementary allocation code */
 
 /* alloc_ttype.c: elementary allocation code */
-extern void _nc_align_termtype(TERMTYPE *, TERMTYPE *);
-extern void _nc_copy_termtype(TERMTYPE *, TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *);
 
 /* free_ttype.c: elementary allocation code */
 
 /* free_ttype.c: elementary allocation code */
-extern void _nc_free_termtype(TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
 
 /* lib_acs.c */
 
 /* lib_acs.c */
-extern void _nc_init_acs(void);        /* corresponds to traditional 'init_acs()' */
+extern NCURSES_EXPORT(void) _nc_init_acs (void);       /* corresponds to traditional 'init_acs()' */
 
 /* parse_entry.c: entry-parsing code */
 #if NCURSES_XNAMES
 
 /* parse_entry.c: entry-parsing code */
 #if NCURSES_XNAMES
-extern bool _nc_user_definable;
-extern bool _nc_disable_period;
+extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
+extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
 #endif
 #endif
-extern int _nc_parse_entry(ENTRY *, int, bool);
-extern int _nc_capcmp(const char *, const char *);
+extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool);
+extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
 
 /* write_entry.c: writing an entry to the file system */
 
 /* write_entry.c: writing an entry to the file system */
-extern void _nc_set_writedir(char *);
-extern void _nc_write_entry(TERMTYPE *const);
+extern NCURSES_EXPORT(void) _nc_set_writedir (char *);
+extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const);
 
 /* comp_parse.c: entry list handling */
 
 /* comp_parse.c: entry list handling */
-extern void _nc_read_entry_source(FILE*, char*, int, bool, bool (*)(ENTRY*));
-extern bool _nc_entry_match(char *, char *);
-extern int _nc_resolve_uses(bool);
-extern void _nc_free_entries(ENTRY *);
-extern void (*_nc_check_termtype)(TERMTYPE *);
+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(void) _nc_free_entries (ENTRY *);
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *);
 
 /* trace_xnames.c */
 
 /* trace_xnames.c */
-extern void _nc_trace_xnames(TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _TERM_ENTRY_H */
+#endif /* NCURSES_TERM_ENTRY_H_incl */
index 21c62398e0bd5f841b6a87f2408bff9f25a2be74..6adc3122206495fc0a7a1bacac9a5d3bd942015c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-/* $Id: termcap.h.in,v 1.12 2000/10/08 01:06:37 tom Exp $ */
+/* $Id: termcap.h.in,v 1.16 2001/03/24 21:53:27 tom Exp $ */
 
 
-#ifndef _NCU_TERMCAP_H
-#define _NCU_TERMCAP_H 1
+#ifndef NCURSES_TERMCAP_H_incl
+#define NCURSES_TERMCAP_H_incl 1
 
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
 
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
+#include <ncurses_dll.h>
+
 #ifdef __cplusplus
 extern "C"
 {
 #ifdef __cplusplus
 extern "C"
 {
@@ -49,22 +51,25 @@ extern "C"
 #undef  NCURSES_CONST 
 #define NCURSES_CONST @NCURSES_CONST@ 
 
 #undef  NCURSES_CONST 
 #define NCURSES_CONST @NCURSES_CONST@ 
 
-extern char PC;
-extern char *UP;
-extern char *BC;
-extern short ospeed; 
+#undef  NCURSES_OSPEED 
+#define NCURSES_OSPEED @NCURSES_OSPEED@ 
+
+extern NCURSES_EXPORT_VAR(char) PC;
+extern NCURSES_EXPORT_VAR(char *) UP;
+extern NCURSES_EXPORT_VAR(char *) BC;
+extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; 
 
 
-#if !defined(_NCU_TERM_H)
-extern char *tgetstr(NCURSES_CONST char *, char **);
-extern char *tgoto(const char *, int, int);
-extern int tgetent(char *, const char *);
-extern int tgetflag(NCURSES_CONST char *);
-extern int tgetnum(NCURSES_CONST char *);
-extern int tputs(const char *, int, int (*)(int));
+#if !defined(NCURSES_TERM_H_incl)
+extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
+extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);
+extern NCURSES_EXPORT(int) tgetent (char *, const char *);
+extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);
+extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);
+extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));
 #endif
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _NCU_TERMCAP_H */
+#endif /* NCURSES_TERMCAP_H_incl */
index bba0c0ffbff40e44c7a5b00f44cb5eadd5a4ed5e..806d43fd1fcdda04f2d7f2aca5b29cd599598c41 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
- * $Id: tic.h,v 1.35 2000/09/09 19:47:16 tom Exp $
+ * $Id: tic.h,v 1.42 2002/10/12 15:46:15 tom Exp $
  *     tic.h - Global variables and structures for the terminfo
  *                     compiler.
  */
  *     tic.h - Global variables and structures for the terminfo
  *                     compiler.
  */
@@ -104,7 +104,7 @@ extern "C" {
  */
 
 #define MAX_DEBUG_LEVEL 15
  */
 
 #define MAX_DEBUG_LEVEL 15
-#define DEBUG_LEVEL(n) ((n) << 12)     /* see TRACE_MAXIMUM */
+#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT)
 
 #define set_trace_level(n) \
        _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
 
 #define set_trace_level(n) \
        _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
@@ -116,9 +116,10 @@ extern "C" {
 #define DEBUG(n, a)    /*nothing*/
 #endif
 
 #define DEBUG(n, a)    /*nothing*/
 #endif
 
-extern unsigned _nc_tracing;
-extern void _nc_tracef(char *, ...) GCC_PRINTFLIKE(1,2);
-extern const char *_nc_visbuf(const char *);
+extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
+extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
 
 /*
  * These are the types of tokens returned by the scanner.  The first
 
 /*
  * These are the types of tokens returned by the scanner.  The first
@@ -149,7 +150,7 @@ struct token
        char    *tk_valstring;  /* value of capability (if a string) */
 };
 
        char    *tk_valstring;  /* value of capability (if a string) */
 };
 
-extern struct token    _nc_curr_token;
+extern NCURSES_EXPORT_VAR(struct token)        _nc_curr_token;
 
        /*
         * List of keynames with their corresponding code.
 
        /*
         * List of keynames with their corresponding code.
@@ -159,7 +160,7 @@ struct kn {
        int code;
 };
 
        int code;
 };
 
-extern const struct kn _nc_key_names[];
+extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
 
        /*
         * Offsets to string capabilities, with the corresponding functionkey
 
        /*
         * Offsets to string capabilities, with the corresponding functionkey
@@ -173,11 +174,11 @@ struct tinfo_fkeys {
 #if    BROKEN_LINKER
 
 #define        _nc_tinfo_fkeys _nc_tinfo_fkeysf()
 #if    BROKEN_LINKER
 
 #define        _nc_tinfo_fkeys _nc_tinfo_fkeysf()
-extern struct tinfo_fkeys *_nc_tinfo_fkeysf(void);
+extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
 
 #else
 
 
 #else
 
-extern struct tinfo_fkeys _nc_tinfo_fkeys[];
+extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
 
 #endif
 
 
 #endif
 
@@ -202,28 +203,30 @@ struct alias
        const char      *source;
 };
 
        const char      *source;
 };
 
-extern const struct name_table_entry * const _nc_info_hash_table[];
-extern const struct name_table_entry * const _nc_cap_hash_table[];
+extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
 
 
-extern const struct alias _nc_capalias_table[];
-extern const struct alias _nc_infoalias_table[];
+extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
+extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
 
 
-extern const struct name_table_entry   *_nc_get_table(bool);
-extern const struct name_table_entry   * const *_nc_get_hash_table(bool);
+extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
+extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
+
+extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
+extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
 
 #define NOTFOUND       ((struct name_table_entry *) 0)
 
 /* out-of-band values for representing absent capabilities */
 
 #define NOTFOUND       ((struct name_table_entry *) 0)
 
 /* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN         -1
-#define ABSENT_NUMERIC         -1
+#define ABSENT_BOOLEAN         (-1)            /* 255 */
+#define ABSENT_NUMERIC         (-1)
 #define ABSENT_STRING          (char *)0
 
 /* out-of-band values for representing cancels */
 #define ABSENT_STRING          (char *)0
 
 /* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN      (char)(-2)
-#define CANCELLED_NUMERIC      -2
-#define CANCELLED_STRING       (char *)-1
+#define CANCELLED_BOOLEAN      (char)(-2)      /* 254 */
+#define CANCELLED_NUMERIC      (-2)
+#define CANCELLED_STRING       (char *)(-1)
 
 
-#define VALID_BOOLEAN(s) ((s) >= 0)
+#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_NUMERIC(s) ((s) >= 0)
 #define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
 
@@ -238,59 +241,60 @@ extern const struct name_table_entry      * const *_nc_get_hash_table(bool);
 #endif
 
 /* access.c */
 #endif
 
 /* access.c */
-extern char *_nc_basename(char *);
+extern NCURSES_EXPORT(char *) _nc_basename (char *);
+extern NCURSES_EXPORT(char *) _nc_rootname (char *);
 
 /* comp_hash.c: name lookup */
 
 /* comp_hash.c: name lookup */
-struct name_table_entry        const *_nc_find_entry(const char *,
-                                   const struct name_table_entry *const *);
-struct name_table_entry const *_nc_find_type_entry(const char *,
-                                        int,
-                                        const struct name_table_entry *);
+extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
+       (const char *, const struct name_table_entry *const *);
+extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry
+       (const char *, int, const struct name_table_entry *);
 
 /* comp_scan.c: lexical analysis */
 
 /* comp_scan.c: lexical analysis */
-extern int  _nc_get_token(void);
-extern void _nc_push_token(int);
-extern void _nc_reset_input(FILE *, char *);
-extern void _nc_panic_mode(char);
-extern int _nc_curr_line;
-extern int _nc_curr_col;
-extern long _nc_curr_file_pos;
-extern long _nc_comment_start, _nc_comment_end;
-extern int _nc_syntax;
-extern long _nc_start_line;
+extern NCURSES_EXPORT(int)  _nc_get_token (bool);
+extern NCURSES_EXPORT(void) _nc_panic_mode (char);
+extern NCURSES_EXPORT(void) _nc_push_token (int);
+extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
+extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
+extern NCURSES_EXPORT_VAR(int) _nc_syntax;
+extern NCURSES_EXPORT_VAR(long) _nc_comment_end;
+extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
+extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
+extern NCURSES_EXPORT_VAR(long) _nc_start_line;
 #define SYN_TERMINFO   0
 #define SYN_TERMCAP    1
 
 /* comp_error.c: warning & abort messages */
 #define SYN_TERMINFO   0
 #define SYN_TERMCAP    1
 
 /* comp_error.c: warning & abort messages */
-extern void _nc_set_source(const char *const name);
-extern void _nc_get_type(char *name);
-extern void _nc_set_type(const char *const name);
-extern void _nc_syserr_abort(const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void _nc_err_abort(const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void _nc_warning(const char *const,...) GCC_PRINTFLIKE(1,2);
-extern bool _nc_suppress_warnings;
+extern NCURSES_EXPORT(void) _nc_set_source (const char *const name);
+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_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;
 
 /* comp_expand.c: expand string into readable form */
 
 /* comp_expand.c: expand string into readable form */
-extern char *_nc_tic_expand(const char *, bool, int);
+extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
 
 /* comp_scan.c: decode string from readable form */
 
 /* comp_scan.c: decode string from readable form */
-extern char _nc_trans_string(char *, char *);
+extern NCURSES_EXPORT(char) _nc_trans_string (char *, char *);
 
 /* captoinfo.c: capability conversion */
 
 /* captoinfo.c: capability conversion */
-extern char *_nc_captoinfo(const char *, const char *, int const);
-extern char *_nc_infotocap(const char *, const char *, int const);
+extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const);
+extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const);
 
 /* lib_tputs.c */
 
 /* lib_tputs.c */
-extern int _nc_nulls_sent;             /* Add one for every null sent */
+extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent;         /* Add one for every null sent */
 
 /* comp_main.c: compiler main */
 
 /* comp_main.c: compiler main */
-extern const char *_nc_progname;
+extern const char * _nc_progname;
 
 /* read_entry.c */
 
 /* read_entry.c */
-extern const char *_nc_tic_dir(const char *);
+extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
 
 /* write_entry.c */
 
 /* write_entry.c */
-extern int _nc_tic_written(void);
+extern NCURSES_EXPORT(int) _nc_tic_written (void);
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }
index cc10079f11c7f6e678a1630fe2cd95d04a0d6b1c..70d74b7714b1a45b1130b2afb0076772436a5cad 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * as ^?. Printable characters are displayed as is.
  */
 
  * as ^?. Printable characters are displayed as is.
  */
 
-/* $Id: unctrl.h.in,v 1.8 1998/02/11 12:13:45 tom Exp $ */
+/* $Id: unctrl.h.in,v 1.10 2001/03/24 21:53:25 tom Exp $ */
 
 
-#ifndef _UNCTRL_H
-#define _UNCTRL_H      1
+#ifndef NCURSES_UNCTRL_H_incl
+#define NCURSES_UNCTRL_H_incl  1
 
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
@@ -54,10 +54,10 @@ extern "C" {
 #include <curses.h>
 
 #undef unctrl
 #include <curses.h>
 
 #undef unctrl
-extern NCURSES_CONST char *unctrl(chtype);
+NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype);
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _UNCTRL_H */
+#endif /* NCURSES_UNCTRL_H_incl */
index d4e25c51e89f339a43e66baa6484c383c9aca8f9..8160ca93748c179ed1cbafa5127fd7be253b95ed 100755 (executable)
@@ -1,6 +1,10 @@
 #!/bin/sh
 #!/bin/sh
+# $Id: MKterminfo.sh,v 1.10 2002/06/29 20:04:28 tom Exp $
+#
+# MKterminfo.sh -- generate terminfo.5 from Caps tabular data
+#
 #***************************************************************************
 #***************************************************************************
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 #                                                                          *
 # Permission is hereby granted, free of charge, to any person obtaining a  *
 # copy of this software and associated documentation files (the            *
 #                                                                          *
 # Permission is hereby granted, free of charge, to any person obtaining a  *
 # copy of this software and associated documentation files (the            *
 # authorization.                                                           *
 #***************************************************************************
 #
 # authorization.                                                           *
 #***************************************************************************
 #
-# $Id: MKterminfo.sh,v 1.6 2000/01/25 11:31:57 tom Exp $
-#
-# MKterminfo.sh -- generate terminfo.5 from Caps tabular data
-#
 # This script takes terminfo.head and terminfo.tail and splices in between
 # them a table derived from the Caps data file.  Besides avoiding having
 # the docs fall out of sync with the table, this also lets us set up tbl
 # This script takes terminfo.head and terminfo.tail and splices in between
 # them a table derived from the Caps data file.  Besides avoiding having
 # the docs fall out of sync with the table, this also lets us set up tbl
 # had better be no \ 5s in the table source text.
 #
 # keep the order independent of locale:
 # had better be no \ 5s in the table source text.
 #
 # keep the order independent of locale:
-LANGUAGE=C
-LC_ALL=C
-export LANGUAGE
-export LC_ALL
+if test "${LANGUAGE+set}"    = set; then LANGUAGE=C;    export LANGUAGE;    fi
+if test "${LANG+set}"        = set; then LANG=C;        export LANG;        fi
+if test "${LC_ALL+set}"      = set; then LC_ALL=C;      export LC_ALL;      fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+if test "${LC_COLLATE+set}"  = set; then LC_COLLATE=C;  export LC_COLLATE;  fi
+
 #
 head=$1
 caps=$2
 #
 head=$1
 caps=$2
@@ -68,8 +71,9 @@ sed -n <$caps "\
 /%%-STOP-HERE-%%/q
 /^#%/s///p
 /^#/d
 /%%-STOP-HERE-%%/q
 /^#%/s///p
 /^#/d
+s/[    ]\+/    /g
 s/$/\ 5T}/
 s/$/\ 5T}/
-s/     [Y\-][B\-][C\-][G\-][E\-]\**    /       T{\ 5/
+s/     [A-Z0-9_()\-]\+ [0-9\-]\+       [Y\-][B\-][C\-][G\-][EK\-]\**   /       T{\ 5/
 s/     bool    /       /p
 s/     num     /       /p
 s/     str     /       /p
 s/     bool    /       /p
 s/     num     /       /p
 s/     str     /       /p
@@ -80,6 +84,7 @@ rm -f $temp
 saved=no
 while true
 do
 saved=no
 while true
 do
+       data=
        read data
        test -z "$data" && break
        case "$data" in #(vi
        read data
        test -z "$data" && break
        case "$data" in #(vi
index 0d7648acd7ae0352475404f9a8cf3ee42412bb15..56dbe0933e96e194d89e7e617b81f4991cdd2362 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.28 2000/08/19 19:15:44 tom Exp $
+# $Id: Makefile.in,v 1.33 2002/01/19 22:49:44 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.           #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -47,10 +47,11 @@ INSTALL             = @INSTALL@
 INSTALL_DATA   = @INSTALL_DATA@
 
 all \
 INSTALL_DATA   = @INSTALL_DATA@
 
 all \
-sources:       terminfo.5
+sources :      terminfo.5
+depend :
 
 $(DESTDIR)$(mandir) :
 
 $(DESTDIR)$(mandir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
 
 
 EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
 
@@ -61,15 +62,18 @@ uninstall uninstall.man :
        -sh ./edit_man.sh removing $(EDITARGS)
 
 # We compose terminfo.5 from the real sources...
        -sh ./edit_man.sh removing $(EDITARGS)
 
 # We compose terminfo.5 from the real sources...
-CAPLIST=$(srcdir)/../include/Caps
+CAPLIST=$(srcdir)/../include/@TERMINFO_CAPS@
 terminfo.5: $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail Makefile $(srcdir)/MKterminfo.sh
        sh $(srcdir)/MKterminfo.sh $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail >terminfo.5
 
 mostlyclean :
 terminfo.5: $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail Makefile $(srcdir)/MKterminfo.sh
        sh $(srcdir)/MKterminfo.sh $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail >terminfo.5
 
 mostlyclean :
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean: mostlyclean
        rm -f terminfo.5
 
 
 clean: mostlyclean
        rm -f terminfo.5
 
+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.*
 distclean realclean: clean
        rm -f Makefile edit_man.*
diff --git a/man/curs_add_wch.3x b/man/curs_add_wch.3x
new file mode 100644 (file)
index 0000000..fae59ae
--- /dev/null
@@ -0,0 +1,134 @@
+.\"***************************************************************************
+.\" Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_add_wch.3x,v 1.4 2002/02/16 22:28:43 tom Exp $
+.TH curs_add_wch 3X ""
+.SH NAME
+\fBadd_wch\fP,
+\fBwadd_wch\fP,
+\fBmvadd_wch\fP,
+\fBmvwadd_wch\fP,
+\fBecho_wchar\fP,
+\fBwecho_wchar\fP - add a complex character and rendition to a \fBcurses\fR window, then advance the cursor
+.SH SYNOPSIS
+.PP
+\fB#include <curses.h>\fP
+.sp
+.B "int add_wch( const cchar_t *\fIwch\fB );"
+.br
+.B "int wadd_wch( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
+.br
+.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
+.br
+.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
+.br
+.B "int echo_wchar( const cchar_t *\fIwch\fB );"
+.br
+.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
+.br
+.SH DESCRIPTION
+.PP
+The
+\fBadd_wch\fP,
+\fBwadd_wch\fP,
+\fBmvadd_wch\fP, and
+\fBmvwadd_wch\fP
+functions put the complex character \fIwch\fP into the given
+window at its current position,
+which is then advanced.
+These functions perform
+wrapping and special-character processing as follows:
+.TP 5
+-
+If \fIwch\fP refers to a spacing character,
+then any previous character at that location is removed.
+A new character specified by \fIwch\fP is
+placed at that location with rendition specified by \fIwch\fP.
+The cursor then advances to
+the next spacing character on the screen.
+.TP 5
+-
+If \fIwch\fP refers to a non-spacing character,
+all previous characters at that location are preserved.
+The non-spacing characters of \fIwch\fP
+are added to the spacing complex character,
+and the rendition specified by \fIwch\fP is ignored.
+.TP 5
+-
+If the character part of \fIwch\fP is
+a tab, newline, backspace or other control character,
+the window is updated and the cursor moves as if \fBaddch\fR(3X) were called.
+.PP
+The \fBecho_wchar\fP
+function is functionally equivalent to a call to
+\fBadd_wch\fP
+followed by a call to
+\fBrefresh\fP.
+Similarly, the
+\fBwecho_wchar\fP
+is functionally equivalent to a call to
+\fBwadd_wch\fP
+followed by a call to
+\fBwrefresh\fP.
+The knowledge
+that only a single character is being output is taken into consideration and,
+for non-control characters, a considerable performance gain might be seen
+by using the *\fBecho\fP* functions instead of their equivalents.
+.SH RETURN VALUES
+.PP
+All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+.SH NOTES
+.PP
+Note that
+\fBadd_wch\fP,
+\fBmvadd_wch\fP,
+\fBmvwadd_wch\fP, and
+\fBecho_wchar\fP
+may be macros.
+.SH PORTABILITY
+.PP
+All these functions are described in the XSI Curses standard, Issue 4.
+The defaults specified for forms-drawing characters apply in the POSIX locale.
+.PP
+XSI documents constants beginning with \fBWACS_\fP which are used for
+line-drawing.
+Those are not currently implemented in \fBncurses\fP.
+.SH SEE ALSO
+.PP
+\fBcurses\fR(3X),
+\fBcurs_attr_get\fR(3X),
+\fBcurs_clear\fR(3X),
+\fBcurs_outopts\fR(3X),
+\fBcurs_refresh\fR(3X),
+\fBputwc\fR(3)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/curs_add_wchstr.3x b/man/curs_add_wchstr.3x
new file mode 100644 (file)
index 0000000..17d3446
--- /dev/null
@@ -0,0 +1,98 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_add_wchstr.3x,v 1.1 2002/02/23 22:15:55 tom Exp $
+.TH curs_add_wchstr 3X ""
+.SH NAME
+.PP
+\fBadd_wchstr\fR,
+\fBadd_wchnstr\fR,
+\fBwadd_wchstr\fR,
+\fBwadd_wchnstr\fR,
+\fBmvadd_wchstr\fR,
+\fBmvadd_wchnstr\fR,
+\fBmvwadd_wchstr\fR,
+\fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window
+.SH SYNOPSIS
+.B #include <curses.h>
+
+.nf
+\fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint wadd_wchstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint wadd_wchnstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvadd_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint mvadd_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwadd_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.fi
+.SH DESCRIPTION
+These routines copy the array of complex characters \fIwchstr\fR
+into the window image structure at and after the current cursor position.
+The four routines with \fIn\fR as the last
+argument copy at most \fIn\fR elements, but no more than will fit on the line.
+If \fBn\fR=\fB-1\fR then the whole array is copied,
+to the maximum number of characters that will fit on the line.
+.PP
+The window cursor is \fInot\fR advanced.
+These routines work faster than \fBwaddnstr\fR.
+On the other hand, they do not perform checking
+(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.
+.PP
+These routines end successfully
+on encountering a null \fIcchar_t\fR, or
+when they have filled the current line.
+If a complex character cannot completely fit at the end of the current line,
+the remaining columns are filled with the background character and rendition.
+.SH NOTES
+All functions except \fBwadd_wchnstr\fR may be macros.
+.SH RETURN VALUES
+All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+.SH PORTABILITY
+All these entry points are described in the XSI Curses standard, Issue 4.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_addchstr\fR(3X)
+\fBcurs_addwstr\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index 63e05269d0b7b323895dd413ee07c7825001ef53..3feb9e782bce6111343fe4ab2abc0fab3770e4be 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addch.3x,v 1.17 2000/07/01 19:53:01 tom Exp $
+.\" $Id: curs_addch.3x,v 1.20 2002/08/10 22:12:36 tom Exp $
 .TH curs_addch 3X ""
 .SH NAME
 \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
 .TH curs_addch 3X ""
 .SH NAME
 \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
-\fBint addch(chtype ch);\fR
+\fBint addch(const chtype ch);\fR
 .br
 .br
-\fBint waddch(WINDOW *win, chtype ch);\fR
+\fBint waddch(WINDOW *win, const chtype ch);\fR
 .br
 .br
-\fBint mvaddch(int y, int x, chtype ch);\fR
+\fBint mvaddch(int y, int x, const chtype ch);\fR
 .br
 .br
-\fBint mvwaddch(WINDOW *win, int y, int x, chtype ch);\fR
+\fBint mvwaddch(WINDOW *win, int y, int x, const chtype ch);\fR
 .br
 .br
-\fBint echochar(chtype ch);\fR
+\fBint echochar(const chtype ch);\fR
 .br
 .br
-\fBint wechochar(WINDOW *win, chtype ch);\fR
+\fBint wechochar(WINDOW *win, const chtype ch);\fR
 .br
 .SH DESCRIPTION
 The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
 .br
 .SH DESCRIPTION
 The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
@@ -56,11 +56,15 @@ If the advance is at the right margin, the cursor automatically wraps to the
 beginning of the next line.  At the bottom of the current scrolling region, if
 \fBscrollok\fR is enabled, the scrolling region is scrolled up one line.
 
 beginning of the next line.  At the bottom of the current scrolling region, if
 \fBscrollok\fR is enabled, the scrolling region is scrolled up one line.
 
-If \fIch\fR is a tab, newline, or backspace, the cursor is moved appropriately
-within the window.  Backspace moves the cursor one character left; at the left
-edge of a window it does nothing.  Newline does a \fBclrtoeol\fR, then moves
-the cursor to the window left margin on the next line, scrolling the window if
-on the last line).  Tabs are considered to be at every eighth column.
+If \fIch\fR is a tab, newline, or backspace,
+the cursor is moved appropriately within the window.
+Backspace moves the cursor one character left; at the left
+edge of a window it does nothing.
+Newline does a \fBclrtoeol\fR,
+then moves the cursor to the window left margin on the next line,
+scrolling the window if on the last line).
+Tabs are considered to be at every eighth column.
+The tab interval may be altered by setting the \fBTABSIZE\fR variable.
 
 If \fIch\fR is any control character other than tab, newline, or backspace, it
 is drawn in \fB^\fR\fIX\fR notation.  Calling \fBwinch\fR after adding a
 
 If \fIch\fR is any control character other than tab, newline, or backspace, it
 is drawn in \fB^\fR\fIX\fR notation.  Calling \fBwinch\fR after adding a
@@ -137,7 +141,7 @@ Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and
 .SH PORTABILITY
 All these functions are described in the XSI Curses standard, Issue 4.
 The defaults specified for forms-drawing characters apply in the POSIX locale.
 .SH PORTABILITY
 All these functions are described in the XSI Curses standard, Issue 4.
 The defaults specified for forms-drawing characters apply in the POSIX locale.
-
+.LP
 Some ACS symbols
 (ACS_S3,
 ACS_S7,
 Some ACS symbols
 (ACS_S3,
 ACS_S7,
@@ -151,6 +155,9 @@ any publicly released System V.  However, many publicly available terminfos
 include \fBacsc\fR strings in which their key characters (pryz{|}) are
 embedded, and a second-hand list of their character descriptions has come
 to light.  The ACS-prefixed names for them were invented for \fBncurses\fR(3X).
 include \fBacsc\fR strings in which their key characters (pryz{|}) are
 embedded, and a second-hand list of their character descriptions has come
 to light.  The ACS-prefixed names for them were invented for \fBncurses\fR(3X).
+.LP
+The \fBTABSIZE\fR variable is implemented in some versions of curses,
+but is not part of X/Open curses.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_clear\fR(3X),
 \fBcurs_inch\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X),
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_clear\fR(3X),
 \fBcurs_inch\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X),
index 6b74452d3c8888319407436fa9847e28bb258819..a845acbca7e9dd884d8874920af03a18fd9e49f1 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addstr.3x,v 1.9 2000/07/01 19:54:05 tom Exp $
+.\" $Id: curs_addstr.3x,v 1.10 2002/03/09 23:09:29 tom Exp $
 .TH curs_addstr 3X ""
 .SH NAME
 \fBaddstr\fR,
 .TH curs_addstr 3X ""
 .SH NAME
 \fBaddstr\fR,
 \fBmvwaddstr\fR,
 \fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor
 .SH SYNOPSIS
 \fBmvwaddstr\fR,
 \fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor
 .SH SYNOPSIS
+.nf
 \fB#include <curses.h>\fR
 
 \fB#include <curses.h>\fR
 
-\fBint addstr(const char *str);\fR
+\fBint addstr(const char *\fR\fIstr\fR\fB);\fR
 .br
 .br
-\fBint addnstr(const char *str, int n);\fR
+\fBint addnstr(const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
 .br
 .br
-\fBint waddstr(WINDOW *win, const char *str);\fR
+\fBint waddstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB);\fR
 .br
 .br
-\fBint waddnstr(WINDOW *win, const char *str, int n);\fR
+\fBint waddnstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
 .br
 .br
-\fBint mvaddstr(int y, int x, const char *str);\fR
+\fBint mvaddstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
 .br
 .br
-\fBint mvaddnstr(int y, int x, const char *str, int n);\fR
+\fBint mvaddnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
 .br
 .br
-\fBint mvwaddstr(WINDOW *win, int y, int x, const char *str);\fR
+\fBint mvwaddstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
 .br
 .br
-\fBint mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
+\fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR
+.fi
 .SH DESCRIPTION
 These routines write the characters of the (null-terminated) character string
 .SH DESCRIPTION
 These routines write the characters of the (null-terminated) character string
-\fIstr\fR on the given window.  It is similar to calling \fBwaddch\fR once for
-each character in the string.  The four routines with \fIn\fR as the last
-argument write at most \fIn\fR characters.  If \fIn\fR is -1, then the
-entire string will be added.
+\fIstr\fR on the given window.
+It is similar to calling \fBwaddch\fR once for each character in the string.
+The four routines with \fIn\fR as the last argument
+write at most \fIn\fR characters.
+If \fIn\fR is -1, then the entire string will be added,
+up to the maximum number of characters that will fit on the line,
+or until a terminating null is reached.
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
 (the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
 (the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
diff --git a/man/curs_addwstr.3x b/man/curs_addwstr.3x
new file mode 100644 (file)
index 0000000..4ce7c23
--- /dev/null
@@ -0,0 +1,91 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_addwstr.3x,v 1.2 2002/03/09 23:16:59 tom Exp $
+.TH curs_addwstr 3X ""
+.SH NAME
+\fBaddwstr\fR,
+\fBaddnwstr\fR,
+\fBwaddwstr\fR,
+\fBwaddnwstr\fR,
+\fBmvaddwstr\fR,
+\fBmvaddnwstr\fR,
+\fBmvwaddwstr\fR,
+\fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h>\fR
+
+\fBint addwstr(const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint addnwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint waddwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint waddnwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvaddwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint mvaddnwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwaddwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\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
+\fIwstr\fR on the given window.
+It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
+then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
+.PP
+The \fImv\fR routines perform cursor movement once, before writing any
+characters.
+Thereafter, the cursor is advanced as a side-effect of writing to the window.
+.PP
+The four routines with \fIn\fR as the last argument
+write at most \fIn\fR \fBwchar_t\fR characters.
+If \fIn\fR is -1, then the entire string will be added,
+up to the maximum number of characters that will fit on the line,
+or until a terminating null is reached.
+.SH RETURN VALUES
+All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+.SH NOTES
+Note that all of these routines except \fBwaddnwstr\fR may be macros.
+.SH PORTABILITY
+All these entry points are described in the XSI Curses standard, Issue 4.
+.SH SEE ALSO
+.PP
+Functions:
+\fBcurses\fR(3X),
+\fBcurs_add_wch\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index e884fa888bb0f3586d3b4ee984d8ad3a786b71f7..3457ff2b26188cb6e6836c1e6ee6467de1a3ac27 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_attr.3x,v 1.22 2000/07/08 11:59:58 tom Exp $
+.\" $Id: curs_attr.3x,v 1.26 2002/09/21 19:50:06 tom Exp $
 .TH curs_attr 3X ""
 .SH NAME
 \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
 .TH curs_attr 3X ""
 .SH NAME
 \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
@@ -105,7 +105,7 @@ 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 on the screen.
 and insert/delete line/character operations.  To the extent possible, they are
 displayed as appropriate modifications to the graphic rendition of characters
 put on the screen.
-
+.PP
 The routine \fBattrset\fR sets the current attributes of the given window to
 \fIattrs\fR.  The routine \fBattroff\fR turns off the named attributes without
 turning any other attributes on or off.  The routine \fBattron\fR turns on the
 The routine \fBattrset\fR sets the current attributes of the given window to
 \fIattrs\fR.  The routine \fBattroff\fR turns off the named attributes without
 turning any other attributes on or off.  The routine \fBattron\fR turns on the
@@ -113,19 +113,24 @@ named attributes without affecting any others.  The routine \fBstandout\fR is
 the same as \fBattron(A_STANDOUT)\fR.  The routine \fBstandend\fR is the same
 as \fBattrset(A_NORMAL)\fR or \fBattrset(0)\fR, that is, it turns off all
 attributes.
 the same as \fBattron(A_STANDOUT)\fR.  The routine \fBstandend\fR is the same
 as \fBattrset(A_NORMAL)\fR or \fBattrset(0)\fR, that is, it turns off all
 attributes.
-
+.PP
+The \fBattrset\fR and related routines do not affect the attributes used
+when erasing portions of the window.
+See \fBcurs_bkgd\fR(3X) for functions which modify the attributes used for
+erasing and clearing.
+.PP
 The routine \fBcolor_set\fR sets the current color of the given window to the
 foreground/background combination described by the color_pair_number. The
 parameter opts is reserved for future use, applications must supply a null
 pointer.
 The routine \fBcolor_set\fR sets the current color of the given window to the
 foreground/background combination described by the color_pair_number. The
 parameter opts is reserved for future use, applications must supply a null
 pointer.
-
+.PP
 The routine \fBwattr_get\fR returns the current attribute and color pair for
 the given window; \fBattr_get\fR returns the current attribute and color pair
 for \fBstdscr\fR.
 The remaining \fBattr_\fR* functions operate exactly like the corresponding
 \fBattr\fR* functions, except that they take arguments of type \fBattr_t\fR
 rather than \fBint\fR.
 The routine \fBwattr_get\fR returns the current attribute and color pair for
 the given window; \fBattr_get\fR returns the current attribute and color pair
 for \fBstdscr\fR.
 The remaining \fBattr_\fR* functions operate exactly like the corresponding
 \fBattr\fR* functions, except that they take arguments of type \fBattr_t\fR
 rather than \fBint\fR.
-
+.PP
 The routine \fBchgat\fR changes the attributes of a given number of characters
 starting at the current cursor location of \fBstdscr\fR.  It does not update
 the cursor and does not perform wrapping.  A character count of -1 or greater
 The routine \fBchgat\fR changes the attributes of a given number of characters
 starting at the current cursor location of \fBstdscr\fR.  It does not update
 the cursor and does not perform wrapping.  A character count of -1 or greater
@@ -135,6 +140,10 @@ window; the \fBmvwchgat\fR function does a cursor move before acting.  In these
 functions, the color argument is a color-pair index (as in the first argument
 of \fIinit_pair\fR, see \fBcurs_color\fR(3X)).  The \fBopts\fR argument is not
 presently used, but is reserved for the future (leave it \fBNULL\fR).
 functions, the color argument is a color-pair index (as in the first argument
 of \fIinit_pair\fR, see \fBcurs_color\fR(3X)).  The \fBopts\fR argument is not
 presently used, but is reserved for the future (leave it \fBNULL\fR).
+Note that changing the attributes does not imply
+that a subsequent \fBrefresh\fR will update the screen to match,
+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
 .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
@@ -159,15 +168,14 @@ l l .
 
 The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
 
 
 The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
 
-.DS C
+.br
 \fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated
                    with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute.
 \fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated
                    with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute.
-.DE
+.br
 
 The return values of many of these routines are not meaningful (they are
 implemented as macro-expanded assignments and simply return their argument).
 The SVr4 manual page claims (falsely) that these routines always return \fB1\fR.
 
 The return values of many of these routines are not meaningful (they are
 implemented as macro-expanded assignments and simply return their argument).
 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.
 .SH NOTES
 Note that \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
 \fBattrset\fR, \fBwattrset\fR, \fBstandend\fR and \fBstandout\fR may be macros.
@@ -176,14 +184,14 @@ All 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.
 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.
-
+.PP
 The XSI Curses standard states that whether the traditional functions
 \fBattron\fR/\fBattroff\fR/\fBattrset\fR can manipulate attributes other than
 \fBA_BLINK\fR, \fBA_BOLD\fR, \fBA_DIM\fR, \fBA_REVERSE\fR, \fBA_STANDOUT\fR, or
 \fBA_UNDERLINE\fR is "unspecified".  Under this implementation as well as
 SVr4 curses, these functions correctly manipulate all other highlights
 (specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR).
 The XSI Curses standard states that whether the traditional functions
 \fBattron\fR/\fBattroff\fR/\fBattrset\fR can manipulate attributes other than
 \fBA_BLINK\fR, \fBA_BOLD\fR, \fBA_DIM\fR, \fBA_REVERSE\fR, \fBA_STANDOUT\fR, or
 \fBA_UNDERLINE\fR is "unspecified".  Under this implementation as well as
 SVr4 curses, these functions correctly manipulate all other highlights
 (specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR).
-
+.PP
 XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR,
 \fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
 \fBwattr_get\fR, \fBwattr_set\fR.  These are intended to work with
 XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR,
 \fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
 \fBwattr_get\fR, \fBwattr_set\fR.  These are intended to work with
@@ -205,13 +213,16 @@ l l .
 The XSI curses standard specifies that each pair of corresponding \fBA_\fR
 and \fBWA_\fR-using functions operates on the same current-highlight
 information.
 The XSI curses standard specifies that each pair of corresponding \fBA_\fR
 and \fBWA_\fR-using functions operates on the same current-highlight
 information.
-
+.PP
 The XSI standard extended conformance level adds new highlights
 \fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR,
 \fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each) which this
 curses does not yet support.
 .SH SEE ALSO
 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.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_addstr\fR(3X),
+\fBcurses\fR(3X),
+\fBcurs_addch\fR(3X),
+\fBcurs_addstr\fR(3X),
+\fBcurs_bkgd\fR(3X),
 \fBcurs_printw\fR(3X)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 \fBcurs_printw\fR(3X)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index efd4f82763971d1d1e684db380497f9bed96ba18..f5c620db55cf065cf052257305a0e48b0626427a 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_bkgd.3x,v 1.14 2000/07/01 17:39:31 tom Exp $
+.\" $Id: curs_bkgd.3x,v 1.18 2002/09/21 19:46:26 tom Exp $
 .TH curs_bkgd 3X ""
 .SH NAME
 \fBbkgdset\fR, \fBwbkgdset\fR,
 \fBbkgd\fR, \fBwbkgd\fR,
 \fBgetbkgd\fR - \fBcurses\fR window background manipulation routines
 .TH curs_bkgd 3X ""
 .SH NAME
 \fBbkgdset\fR, \fBwbkgdset\fR,
 \fBbkgd\fR, \fBwbkgd\fR,
 \fBgetbkgd\fR - \fBcurses\fR window background manipulation routines
-..
+
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
-\fBvoid bkgdset(const chtype ch);\fR
+\fBvoid bkgdset(chtype ch);\fR
 .br
 .br
-\fBvoid wbkgdset(WINDOW *win, const chtype ch);\fR
+\fBvoid wbkgdset(WINDOW *win, chtype ch);\fR
 .br
 .br
-\fBint bkgd(const chtype ch);\fR
+\fBint bkgd(chtype ch);\fR
 .br
 .br
-\fBint wbkgd(WINDOW *win, const chtype ch);\fR
+\fBint wbkgd(WINDOW *win, chtype ch);\fR
 .br
 \fBchtype getbkgd(WINDOW *win);\fR
 .br
 .br
 \fBchtype getbkgd(WINDOW *win);\fR
 .br
-..
 .SH DESCRIPTION
 The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
 background of the named window.
 .SH DESCRIPTION
 The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
 background of the named window.
@@ -59,8 +58,8 @@ the blank characters.  The background becomes a property of the
 character and moves with the character through any scrolling and
 insert/delete line/character operations.
 
 character and moves with the character through any scrolling and
 insert/delete line/character operations.
 
-To the extent possible on a
-particular terminal, the attribute part of the background is displayed
+To the extent possible on a particular terminal,
+the attribute part of the background is displayed
 as the graphic rendition of the character put on the screen.
 
 The \fBbkgd\fR and \fBwbkgd\fR functions
 as the graphic rendition of the character put on the screen.
 
 The \fBbkgd\fR and \fBwbkgd\fR functions
@@ -77,23 +76,21 @@ appears, it is changed to the new background character.
 
 The \fBgetbkgd\fR function returns the given window's current background
 character/attribute pair.
 
 The \fBgetbkgd\fR function returns the given window's current background
 character/attribute pair.
-..
 .SH RETURN VALUE
 The routines \fBbkgd\fR and \fBwbkgd\fR 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.
 .SH RETURN VALUE
 The routines \fBbkgd\fR and \fBwbkgd\fR 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.
-..
 .SH NOTES
 Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
 .SH NOTES
 Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
-..
 .SH PORTABILITY
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.  The draft
-does not include \fBconst\fR qualifiers on the arguments.  The standard
-specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR, on failure. but
-gives no failure conditions.
-..
+These functions are described in the XSI Curses standard, Issue 4.
+It specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR on failure.
+but gives no failure conditions.
 .SH SEE ALSO
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_outopts\fR(3X)
+\fBcurses\fR(3X),
+\fBcurs_addch\fR(3X),
+\fBcurs_attr\fR(3X),
+\fBcurs_outopts\fR(3X)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff --git a/man/curs_bkgrnd.3x b/man/curs_bkgrnd.3x
new file mode 100644 (file)
index 0000000..3be0dce
--- /dev/null
@@ -0,0 +1,107 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp $
+.TH curs_bkgrnd 3X ""
+.SH NAME
+.PP
+\fBbkgrnd\fR,
+\fBwbkgrnd\fR,
+\fBbkgrndset\fR,
+\fBwbkgrndset\fR,
+\fBgetbkgrnd\fR,
+\fBwgetbkgrnd\fR \- \fBcurses\fR window complex background manipulation routines
+.SH SYNOPSIS
+.PP
+.B #include <curses.h>
+
+\fBint bkgrnd(\fR\fB const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint wbkgrnd(\fR\fB WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBvoid bkgrndset(const cchar_t *\fR\fIwch\fR \fB);\fR
+.br
+\fBvoid wbkgrndset(WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint getbkgrnd(cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint wgetbkgrnd(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+.SH DESCRIPTION
+The \fBbkgrndset\fR and \fBwbkgrndset\fR routines manipulate the
+background of the named window.
+The window background is a \fBcchar_t\fR consisting of
+any combination of attributes (i.e., rendition) and a complex character.
+The attribute part of the background is combined (OR'ed) with all non-blank
+characters that are written into the window with \fBwaddch\fR.  Both
+the character and attribute parts of the background are combined with
+the blank characters.
+The background becomes a property of the
+character and moves with the character through any scrolling and
+insert/delete line/character operations.
+
+To the extent possible on a
+particular terminal, the attribute part of the background is displayed
+as the graphic rendition of the character put on the screen.
+
+The \fBbkgrnd\fR and \fBwbkgrnd\fR functions
+set the background property of the current or specified window
+and then apply this setting to every character position in that window:
+
+.RS
+The rendition of every character on the screen is changed to
+the new background rendition.
+
+Wherever the former background character
+appears, it is changed to the new background character.
+.RE
+
+The \fBgetbkgrnd\fR function returns the given window's current background
+character/attribute pair via the \fBwch\fR pointer.
+
+.SH NOTES
+Note that
+\fBbkgrnd\fR,
+\fBbkgrndset\fR, and
+\fBgetbkgrnd\fR
+may be macros.
+.SH RETURN VALUES
+The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value.
+.PP
+Upon successful completion, the other functions return \fBOK\fR.
+Otherwise, they return \fBERR\fR.
+A null window pointer is treated as an error.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_bkgd\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index 2bd9626404cd3cbd58bdf83a7b342b94efa4f7c3..c087fad73bcd97cfb64b03b014de2fde81c95a92 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_border.3x,v 1.14 2000/07/01 19:54:58 tom Exp $
+.\" $Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp $
 .TH curs_border 3X ""
 .SH NAME
 \fBborder\fR, \fBwborder\fR, \fBbox\fR,
 .TH curs_border 3X ""
 .SH NAME
 \fBborder\fR, \fBwborder\fR, \fBbox\fR,
 \fBint mvwvline(WINDOW *, int y, int x, chtype ch, int n);\fR
 .br
 .SH DESCRIPTION
 \fBint mvwvline(WINDOW *, int y, int x, chtype ch, int n);\fR
 .br
 .SH DESCRIPTION
-The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines draw a box around the
-edges of a window.  The argument \fIls\fR is a character and attributes used
-for the left side of the border, \fIrs\fR - right side, \fIts\fR - top side,
-\fIbs\fR - bottom side, \fItl\fR - top left-hand corner, \fItr\fR - top
-right-hand corner, \fIbl\fR - bottom left-hand corner, and \fIbr\fR - bottom
-right-hand corner.  If any of these arguments is zero, then the following
-default values (defined in \fBcurses.h\fR) are used instead: \fBACS_VLINE\fR,
-\fBACS_VLINE\fR, \fBACS_HLINE\fR, \fBACS_HLINE\fR, \fB\fBACS_ULCORNER\fR,
-\fBACS_URCORNER\fR, \fBACS_LLCORNER\fR, \fBACS_LRCORNER\fR.
+The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines
+draw a box around the edges of a window.
+Other than the window, each argument is a character with attributes:
+.RS
+\fIls\fR - left side,
+.br
+\fIrs\fR - right side,
+.br
+\fIts\fR - top side,
+.br
+\fIbs\fR - bottom side,
+.br
+\fItl\fR - top left-hand corner,
+.br
+\fItr\fR - top right-hand corner,
+.br
+\fIbl\fR - bottom left-hand corner, and
+.br
+\fIbr\fR - bottom right-hand corner.
+.RE
+If any of these arguments is zero, then the corresponding
+default values (defined in \fBcurses.h\fR) are used instead:
+.RS
+\fBACS_VLINE\fR,
+.br
+\fBACS_VLINE\fR,
+.br
+\fBACS_HLINE\fR,
+.br
+\fBACS_HLINE\fR,
+.br
+\fBACS_ULCORNER\fR,
+.br
+\fBACS_URCORNER\fR,
+.br
+\fBACS_LLCORNER\fR,
+.br
+\fBACS_LRCORNER\fR.
+.RE
 
 \fBbox(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIhorch\fR\fB)\fR is a shorthand
 for the following call: \fBwborder(\fR\fIwin\fR\fB,\fR \fIverch\fR\fB,\fR
 
 \fBbox(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIhorch\fR\fB)\fR is a shorthand
 for the following call: \fBwborder(\fR\fIwin\fR\fB,\fR \fIverch\fR\fB,\fR
@@ -95,11 +125,9 @@ is also true of SVr4 curses, though the fact is not documented).
 
 Note that \fBborder\fR and \fBbox\fR may be macros.
 .SH PORTABILITY
 
 Note that \fBborder\fR and \fBbox\fR may be macros.
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.  Additional
-functions \fBmvhline\fR, \fBmvvline\fR, \fBmvwhline\fR, and \fBmvwvline\fR are
-described there which this implementation does not yet support.  The standard
-specifies that they return \fBERR\fR on failure, but specifies no error
-conditions.
+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.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
 .\"#
diff --git a/man/curs_border_set.3x b/man/curs_border_set.3x
new file mode 100644 (file)
index 0000000..ba7a197
--- /dev/null
@@ -0,0 +1,202 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_border_set.3x,v 1.3 2002/04/20 16:49:13 tom Exp $
+.TH curs_border_set 3X ""
+.SH NAME
+.PP
+\fBborder_set\fR,
+\fBwborder_set\fR,
+\fBbox_set\fR,
+\fBhline_set\fR,
+\fBwhline_set\fR,
+\fBmvhline_set\fR,
+\fBmvwhline_set\fR,
+\fBvline_set\fR,
+\fBwvline_set\fR,
+\fBmvvline_set\fR,
+\fBmvwvline_set\fR \- create \fBcurses\fR borders or lines using complex characters and renditions
+.SH SYNOPSIS
+.PP
+\fB#include <curses.h>\fR
+.sp
+\fBint border_set(\fR
+   \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR,
+   \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR,
+   \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR,
+   \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR
+\fB);\fR
+.br
+\fBint wborder_set(\fR
+   \fBWINDOW *win\fR,
+   \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR,
+   \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR,
+   \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR,
+   \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR\fB);\fR
+.br
+\fBint box_set(\fR
+   \fBWINDOW *win\fR,
+   \fBconst cchar_t *\fR\fIverch\fR,
+   \fBconst cchar_t *\fR\fIhorch\fR\fB);\fR
+.br
+\fBint hline_set(\fR
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint whline_set(\fR
+   \fBWINDOW *\fR\fIwin\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint mvhline_set(\fR
+   \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwhline_set(\fR
+   \fBWINDOW *\fR\fIwin\fR,
+   \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint vline_set(\fR
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint wvline_set(\fR
+   \fBWINDOW *\fR\fIwin\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint mvvline_set(\fR
+   \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwvline_set(\fR
+   \fBWINDOW *\fR\fIwin\fR,
+   \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
+   \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
+.br
+.SH DESCRIPTION
+.PP
+The
+\fBborder_set\fR
+and
+\fBwborder_set\fR
+functions draw a border around the edges of the current or specified window.
+These functions do not change the cursor position, and do not wrap.
+.PP
+Other than the window, each argument is a complex character with attributes:
+.RS
+\fIls\fR - left side,
+.br
+\fIrs\fR - right side,
+.br
+\fIts\fR - top side,
+.br
+\fIbs\fR - bottom side,
+.br
+\fItl\fR - top left-hand corner,
+.br
+\fItr\fR - top right-hand corner,
+.br
+\fIbl\fR - bottom left-hand corner, and
+.br
+\fIbr\fR - bottom right-hand corner.
+.RE
+.PP
+If any of these arguments is zero, then the corresponding
+default values (defined in \fBcurses.h\fR) are used instead:
+.RS
+\fBWACS_VLINE\fR,
+.br
+\fBWACS_VLINE\fR,
+.br
+\fBWACS_HLINE\fR,
+.br
+\fBWACS_HLINE\fR,
+.br
+\fBWACS_ULCORNER\fR,
+.br
+\fBWACS_URCORNER\fR,
+.br
+\fBWACS_LLCORNER\fR, and
+.br
+\fBWACS_LRCORNER\fR.
+.RE
+.PP
+\fBbox_set(\fR\fIwin\fR, \fIverch\fR\fB, \fR\fIhorch\fR\fB);\fR
+is a shorthand for the following call:
+.PP
+\fBwborder_set(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIverch\fR\fB,\fR
+    \fIhorch\fR\fB, \fR\fIhorch\fR\fB, NULL, NULL, NULL, NULL);\fR
+.PP
+The
+\fB*line_set\fR
+functions use
+\fIwch\fR
+to draw a line starting at the current cursor position in the window.
+The line is at most \fIn\fR characters long or as many as fit into the window.
+The current cursor position is not changed.
+.PP
+The
+\fBhline_set\fR,
+\fBmvhline_set\fR,
+\fBmvwhline_set\fR, and
+\fBwhline_set\fR
+functions draw a line proceeding toward the last column of the same line.
+.PP
+The
+\fBvline_set\fR,
+\fBmvvline_set\fR,
+\fBmvwvline_set\fR, and
+\fBwvline_set\fR
+functions draw a line proceeding toward the last line of the window.
+.br
+.SH NOTES
+.PP
+Note that
+\fBborder_set\fR,
+\fBhline_set\fR,
+\fBmvhline_set\fR,
+\fBmvvline_set\fR,
+\fBmvwhline_set\fR,
+\fBmvwvline_set\fR, and
+\fBvline_set\fR
+may be macros.
+.br
+.SH RETURN VALUES
+.PP
+Upon successful completion, these functions return
+\fBOK\fR.
+Otherwise, they return
+\fBERR\fR.
+.SH SEE ALSO
+\fBncurses\fR(3X),
+\fBcurs_border\fR(3X),
+\fBcurs_outopts\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index ccf8cf82cfb720c2be57babcf7a9eee4b41f2249..18926d92e6c16d97eae443d846d0d5f15b7df537 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_color.3x,v 1.16 2000/07/15 22:57:03 tom Exp $
+.\" $Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp $
 .TH curs_color 3X ""
 .SH NAME
 \fBstart_color\fR,
 .TH curs_color 3X ""
 .SH NAME
 \fBstart_color\fR,
@@ -100,8 +100,8 @@ third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired
 to white on black and cannot be changed).
 .PP
 If the color-pair was previously
 to white on black and cannot be changed).
 .PP
 If the color-pair was previously
-initialized, the screen is refreshed and all occurrences of that color-pair is
-changed to the new definition.
+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 \fBassume_default_colors\fR routine, or to specify the use of
 
 As an extension, ncurses allows you to set color pair 0 via
 the \fBassume_default_colors\fR routine, or to specify the use of
@@ -202,7 +202,7 @@ but only if that routine has been first invoked.
 The assumption that \fBCOLOR_BLACK\fR is the default
 background color for all terminals can be modified using the
 \fBassume_default_colors\fP extension,
 The assumption that \fBCOLOR_BLACK\fR is the default
 background color for all terminals can be modified using the
 \fBassume_default_colors\fP extension,
-..
+
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_initscr\fR(3X),
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_initscr\fR(3X),
index 8e48384af2eb53047b8027707f9b05289dbf80b9..8b39402d1968f9cf6b3abcfb2c2de6b284d068d6 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_deleteln.3x,v 1.6 2000/07/01 19:56:12 tom Exp $
+.\" $Id: curs_deleteln.3x,v 1.7 2000/11/11 20:43:20 Bernhard.Rosenkraenzer Exp $
 .TH curs_deleteln 3X ""
 .SH NAME
 \fBdeleteln\fR,
 .TH curs_deleteln 3X ""
 .SH NAME
 \fBdeleteln\fR,
@@ -61,7 +61,7 @@ bottom lines are lost.  For negative \fIn\fR, delete \fIn\fR lines (starting
 with the one under the cursor), and move the remaining lines up.  The bottom
 \fIn\fR lines are cleared.  The current cursor position remains the same.
 
 with the one under the cursor), and move the remaining lines up.  The bottom
 \fIn\fR lines are cleared.  The current cursor position remains the same.
 
-The \fBinsertln\fR and \fBinsertln\fR routines, insert a blank line above the
+The \fBinsertln\fR and \fBwinsertln\fR routines, insert a blank line above the
 current line and the bottom line is lost.
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
 current line and the bottom line is lost.
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
index 632fc38273d08ee59c4ae4e27731d21b1f0c7917..dc05b39d1dc75e2096603e6dfc30686e4f81e43c 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1999
 .\"
-.\" $Id: curs_extend.3x,v 1.6 2000/07/15 22:57:20 tom Exp $
+.\" $Id: curs_extend.3x,v 1.9 2002/02/16 22:39:04 tom Exp $
 .TH curs_extend 3X ""
 .SH NAME
 .TH curs_extend 3X ""
 .SH NAME
-\fBcurs_extend\fR:
 \fBcurses_version\fP,
 \fBuse_extended_names\fP \- miscellaneous curses extensions
 \fBcurses_version\fP,
 \fBuse_extended_names\fP \- miscellaneous curses extensions
-..
+
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBconst char * curses_version(void);\fP
 .br
 \fBint use_extended_names(bool enable);\fP
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBconst char * curses_version(void);\fP
 .br
 \fBint use_extended_names(bool enable);\fP
-..
 .SH DESCRIPTION
 These functions are extensions to the curses library
 which do not fit easily into other categories.
 .SH DESCRIPTION
 These functions are extensions to the curses library
 which do not fit easily into other categories.
@@ -62,12 +60,10 @@ is made by using the \fB-x\fP option of \fItic\fP to compile
 extended terminal definitions.
 However you can disable this feature
 to ensure compatiblity with other implementations of curses
 extended terminal definitions.
 However you can disable this feature
 to ensure compatiblity with other implementations of curses
-..
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
-..
 .SH SEE ALSO
 \fBcurs_getch\fR(3X),
 \fBcurs_mouse\fR(3X),
 .SH SEE ALSO
 \fBcurs_getch\fR(3X),
 \fBcurs_mouse\fR(3X),
@@ -78,7 +74,6 @@ any code depending on them be conditioned using NCURSES_VERSION.
 \fBkeyok\fR(3X),
 \fBresizeterm\fR(3X),
 \fBwresize\fR(3X).
 \fBkeyok\fR(3X),
 \fBresizeterm\fR(3X),
 \fBwresize\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey.
 .\"#
 .SH AUTHOR
 Thomas Dickey.
 .\"#
diff --git a/man/curs_get_wch.3x b/man/curs_get_wch.3x
new file mode 100644 (file)
index 0000000..26ff2d4
--- /dev/null
@@ -0,0 +1,161 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_get_wch.3x,v 1.3 2002/05/18 21:48:53 tom Exp $
+.TH curs_get_wch 3X ""
+.SH NAME
+\fBget_wch\fR,
+\fBwget_wch\fR,
+\fBmvget_wch\fR,
+\fBmvwget_wch\fR,
+\fBunget_wch\fR \- get (or push back) a wide character from curses terminal keyboard
+.SH SYNOPSIS
+\fB#include <curses.h>\fR
+.sp
+\fBint get_wch(win_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, win_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR
+.SH DESCRIPTION
+The
+\fBget_wch\fR,
+\fBwget_wch\fR,
+\fBmvget_wch\fR, and
+\fBmvwget_wch\fR
+functions read a character
+from the terminal associated with the current or specified window.
+In no-delay mode,
+if no input is waiting, the value \fBERR\fR is returned.
+In delay mode,
+the program waits until the system passes text through to the program.
+Depending on the setting of \fBcbreak\fR,
+this is after one character (cbreak mode),
+or after the first newline (nocbreak mode).
+In half-delay mode,
+the program waits until the user types a character or the specified
+timeout interval has elapsed.
+
+Unless \fBnoecho\fR has been set,
+these routines echo the character into the designated window.
+
+If the window is not a pad and has been moved or modified since the
+last call to \fBwrefresh\fR,
+\fBwrefresh\fR will be called before another character is read.
+
+If \fBkeypad\fR is enabled,
+these functions respond to
+the pressing of a function key by setting the object pointed to by
+\fIwch\fR
+to the corresponding
+\fBKEY_\fR
+value defined
+in
+\fB<curses.h>\fR
+and returning
+\fBKEY_CODE_YES\fR.
+If a character (such as escape) that could be the
+beginning of a function key is received, curses sets a timer.
+If the remainder
+of the sequence does arrive within the designated time, curses passes through
+the character; otherwise, curses returns the function key value.
+For this
+reason, many terminals experience a delay between the time a user presses
+the escape key and the time the escape is returned to the program.
+.PP
+The
+\fBunget_wch\fR
+function pushes the wide character
+\fIwch\fR
+back onto the head of the input queue, so the wide character
+is returned by the next call to
+\fBget_wch\fR.
+The pushback of
+one character is guaranteed.
+If the program calls
+\fBunget_wch\fR
+too many times without an intervening call to
+\fBget_wch\fR,
+the operation may fail.
+.SH NOTES
+The header file
+\fB<curses.h>\fR
+automatically
+includes the header file
+\fB<stdio.h>\fR.
+.PP
+Applications should not define the escape key by itself as a single-character
+function.
+.PP
+When using
+\fBget_wch\fR,
+\fBwget_wch\fR,
+\fBmvget_wch\fR, or
+\fBmvwget_wch\fR, applications should
+not use
+\fBnocbreak\fR
+mode and
+\fBecho\fR
+mode
+at the same time.
+Depending on the state of the tty driver when each character
+is typed, the program may produce undesirable results.
+.PP
+All functions except \fBwget_wch\fR and \fBunget_wch\fR 
+may be macros.
+.SH RETURN VALUES
+When
+\fBget_wch\fR,
+\fBwget_wch\fR,
+\fBmvget_wch\fR, and
+\fBmvwget_wch\fR
+functions successfully
+report the pressing of a function key, they return
+\fBKEY_CODE_YES\fR.
+When they successfully report a wide character, they return
+\fBOK\fR.
+Otherwise, they return
+\fBERR\fR.
+.PP
+Upon successful completion,
+\fBunget_wch\fR
+returns
+\fBOK\fR.
+Otherwise, the function returns
+\fBERR\fR.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_getch\fR(3X),
+\fBcurs_ins_wch\fR(3X),
+\fBcurs_inopts\fR(3X),
+\fBcurs_move\fR(3X),
+\fBcurs_refresh\fR(3X)
diff --git a/man/curs_get_wstr.3x b/man/curs_get_wstr.3x
new file mode 100644 (file)
index 0000000..f8fa51d
--- /dev/null
@@ -0,0 +1,164 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_get_wstr.3x,v 1.2 2002/05/18 21:48:15 tom Exp $
+.TH curs_get_wstr 3X ""
+.SH NAME
+\fBget_wstr\fR,
+\fBgetn_wstr\fR,
+\fBwget_wstr\fR,
+\fBwgetn_wstr\fR,
+\fBmvget_wstr\fR,
+\fBmvgetn_wstr\fR,
+\fBmvwget_wstr\fR,
+\fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h>\fR
+
+\fBint get_wstr(wint_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint getn_wstr(wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint wget_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint wgetn_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvget_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint mvgetn_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwget_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint mvwgetn_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.fi
+.SH DESCRIPTION
+The effect of
+\fBget_wstr\fR
+is as though a series of calls
+to
+\fBget_wch\fR
+were made, until a newline, other end-of-line, or end-of-file condition is processed.
+An end-of-file condition is represented by \fBWEOF\fR, as defined in \fB<wchar.h>\fR.
+The newline and end-of-line conditions are represented by the \fB\\n\fR \fBwchar_t\fR value.
+In all instances, the end of the string is terminated by a null \fBwchar_t\fR.
+The routine places resulting values in the area pointed to by \fIwstr\fR.
+
+The user's erase and kill characters are interpreted.  If keypad
+mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR
+are both considered equivalent to the user's kill character.
+
+Characters input are echoed only if \fBecho\fR is currently on.  In that case,
+backspace is echoed as deletion of the previous character (typically a left
+motion).
+
+The effect of
+\fBwget_wstr\fR
+is as though a series of
+calls to
+\fBwget_wch\fR
+were made.
+
+The effect of
+\fBmvget_wstr\fR
+is as though a call to
+\fBmove\fR
+and then a series of calls to
+\fBget_wch\fR
+were
+made.
+
+The effect of
+\fBmvwget_wstr\fR
+is as though a call to
+\fBwmove\fR
+and then a series of calls to
+\fBwget_wch\fR
+were made.
+
+The
+\fBgetn_wstr\fR,
+\fBmvgetn_wstr\fR,
+\fBmvwgetn_wstr\fR, and
+\fBwgetn_wstr\fR
+functions are identical
+to the
+\fBget_wstr\fR,
+\fBmvget_wstr\fR,
+\fBmvwget_wstr\fR, and
+\fBwget_wstr\fR
+functions, respectively,
+except that the
+\fB*n_*\fR
+versions read at most
+\fIn\fR
+characters, letting the application prevent overflow of the
+input buffer.
+.SH NOTES
+Using
+\fBget_wstr\fR,
+\fBmvget_wstr\fR,
+\fBmvwget_wstr\fR, or
+\fBwget_wstr\fR
+to read a line that
+overflows the array pointed to by
+\fBwstr\fR
+causes undefined
+results.
+The use of
+\fBgetn_wstr\fR,
+\fBmvgetn_wstr\fR,
+\fBmvwgetn_wstr\fR, or
+\fBwgetn_wstr\fR, respectively, is recommended.
+
+These functions cannot return \fBKEY_\fR values because there
+is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value.
+
+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.
+.SH PORTABILITY
+These functions are described in The Single Unix Specification, Version 2.
+No error conditions are defined.
+This implementation returns ERR if the window pointer is null,
+or if the lower-level \fBwget_wch\fR 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 \fBWEOF\fR followed by a null \fBwchar_t\fR.
+.SH SEE ALSO
+Functions:
+\fBcurses\fR(3X),
+\fBcurs_get_wch\fR(3X),
+\fBcurs_getstr\fR(3X).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/curs_getcchar.3x b/man/curs_getcchar.3x
new file mode 100644 (file)
index 0000000..2dfa10b
--- /dev/null
@@ -0,0 +1,144 @@
+.\"***************************************************************************
+.\" Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_getcchar.3x,v 1.6 2002/03/24 01:08:55 tom Exp $
+.TH curs_getcchar 3X ""
+.SH NAME
+\fBgetcchar\fP,
+\fBsetcchar\fP \- Get a wide character string and rendition from a \fBcchar_t\fP or set a \fBcchar_t\fP from a wide-character string
+.SH SYNOPSIS
+\fB#include <curses.h>\fP
+.sp
+\fBint getcchar(\fP
+.br
+.B "        const cchar_t *\fIwcval\fP,"
+.br
+.B "        wchar_t *\fIwch\fP,"
+.br
+.B "        attr_t *\fIattrs\fP,"
+.br
+.B "        short *\fIcolor_pair\fP,"
+.br
+.B "        void *\fIopts\fP );"
+.sp
+.B "int setcchar("
+.br
+.B "        cchar_t *\fIwcval\fP,"
+.br
+.B "        const wchar_t *\fIwch\fP,"
+.br
+.B "        const attr_t \fIattrs\fP,"
+.br
+.B "        short \fIcolor_pair\fP,"
+.br
+.B "        void *\fIopts\fP );"
+.SH DESCRIPTION
+.PP
+The \fBgetcchar\fP function gets a wide-character string
+and rendition from a \fBcchar_t\fP argument.
+When \fIwch\fP is not a null pointer,
+the \fBgetcchar\fP function does the following:
+.TP 5
+-
+Extracts information from a \fBcchar_t\fP value \fIwcval\fP
+.TP 5
+-
+Stores the character attributes in the location pointed to by \fIattrs\fP
+.TP 5
+-
+Stores the color-pair in the location pointed to by \fIcolor_pair\fP
+.TP 5
+-
+Stores the wide-character string,
+characters referenced by \fIwcval\fP, into the array pointed to by \fIwch\fP.
+.PP
+When
+\fIwch\fP
+is a null pointer, the
+\fBgetcchar\fP
+function does the following:
+.TP 5
+-
+Obtains the number of wide characters pointed to by \fIwcval\fP
+.TP 5
+-
+Does not change the data referenced by
+\fIattrs\fP
+or
+\fIcolor_pair\fP
+.PP
+The \fBsetcchar\fP function initializes the location pointed to by \fIwcval\fP
+by using:
+.TP 5
+-
+The character attributes in
+\fIattrs\fP
+.TP 5
+-
+The color pair in
+\fIcolor_pair\fP
+.TP 5
+-
+The wide-character string pointed to by \fIwch\fP.
+The string must be L'\\0' terminated,
+contain at most one character with strictly positive width,
+which must be the first,
+and contain no characters of negative width. 
+.SH NOTES
+.PP
+The \fIopts\fP argument is reserved for future use.
+Currently, an application must provide a null pointer as \fIopts\fP.
+.PP
+The \fIwcval\fP argument may be a value generated by a call to
+\fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
+If \fIwcval\fP is constructed by any other means, the effect is unspecified.
+.SH RETURN VALUES
+.PP
+When \fIwch\fP is a null pointer,
+\fBgetcchar\fP returns the number of wide characters referenced by
+\fIwcval\fP, including the null terminator.
+.PP
+When \fIwch\fP is not a null pointer,
+\fBgetcchar\fP returns \fBOK\fP upon successful completion,
+and \fBERR\fP otherwise.
+.PP
+Upon successful completion, \fBsetcchar\fP returns \fBOK\fP.
+Otherwise, it returns \fBERR\fP.
+.SH SEE ALSO
+.PP
+Functions:
+\fBcurses\fR(3X),
+\fBwcwidth\fR(3X),
+\fBcurs_attr_get\fR(3X),
+\fBcan_change_color\fR(3X).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index b2b20ef4da15db42efc6cd2f86d8d7152bfb7eb7..73e1a29679b1f4c9814ca3f37993495fd4057254 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getch.3x,v 1.17 2000/07/01 16:45:36 tom Exp $
+.\" $Id: curs_getch.3x,v 1.21 2002/03/17 14:36:21 tom Exp $
 .TH curs_getch 3X ""
 .SH NAME
 \fBgetch\fR,
 .TH curs_getch 3X ""
 .SH NAME
 \fBgetch\fR,
 .br
 .SH DESCRIPTION
 The \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR and \fBmvwgetch\fR, routines read
 .br
 .SH DESCRIPTION
 The \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR and \fBmvwgetch\fR, routines read
-a character from the window.  In no-delay mode, if no input is waiting, the
-value \fBERR\fR is returned.  In delay mode, the program waits until the system
-passes text through to the program.  Depending on the setting of \fBcbreak\fR,
-this is after one character (cbreak mode), or after the first newline (nocbreak
-mode).  In half-delay mode, the program waits until a character is typed or the
+a character from the window.
+In no-delay mode, if no input is waiting, the value \fBERR\fR is returned.
+In delay mode, the program waits until the system
+passes text through to the program.
+Depending on the setting of \fBcbreak\fR,
+this is after one character (cbreak mode),
+or after the first newline (nocbreak mode).
+In half-delay mode,
+the program waits until a character is typed or the
 specified timeout has been reached.
 
 specified timeout has been reached.
 
-Unless \fBnoecho\fR has been set, then the character will also be echoed into the
+Unless \fBnoecho\fR has been set,
+then the character will also be echoed into the
 designated window according to the following rules:
 If the character is the current erase character, left arrow, or backspace,
 the cursor is moved one space to the left and that screen position is erased
 designated window according to the following rules:
 If the character is the current erase character, left arrow, or backspace,
 the cursor is moved one space to the left and that screen position is erased
@@ -74,26 +79,30 @@ call to \fBwrefresh\fR, \fBwrefresh\fR will be called before another character
 is read.
 
 If \fBkeypad\fR is \fBTRUE\fR, and a function key is pressed, the token for
 is read.
 
 If \fBkeypad\fR is \fBTRUE\fR, and a function key is pressed, the token for
-that function key is returned instead of the raw characters.  Possible function
+that function key is returned instead of the raw characters.
+Possible function
 keys are defined in \fB<curses.h>\fR as macros with values outside the range
 of 8-bit characters whose names begin with \fBKEY_.\fR Thus, a variable
 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
 keys are defined in \fB<curses.h>\fR as macros with values outside the range
 of 8-bit characters whose names begin with \fBKEY_.\fR Thus, a variable
 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), \fBcurses\fR 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
+(which, on modern terminals, means an escape character),
+\fBcurses\fR 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.
 
 The \fBungetch\fR routine places \fIch\fR back onto the input queue to be
 a user presses the escape key and the escape is returned to the program.
 
 The \fBungetch\fR routine places \fIch\fR back onto the input queue to be
-returned by the next call to \fBwgetch\fR.  Note that there is, in effect,
-just one input queue for all windows.
+returned by the next call to \fBwgetch\fR.
+There is just one input queue for all windows.
 
 .SS Function Keys
 The following function keys, defined in \fB<curses.h>\fR, might be returned by
 
 .SS Function Keys
 The following function keys, defined in \fB<curses.h>\fR, might be returned by
-\fBgetch\fR if \fBkeypad\fR has been enabled.  Note that not all of these are
+\fBgetch\fR if \fBkeypad\fR has been enabled.
+Note that not all of these are
 necessarily supported on any particular terminal.
 .sp
 .TS
 necessarily supported on any particular terminal.
 .sp
 .TS
@@ -211,8 +220,8 @@ c c c .
 .TE
 .sp
 The \fBhas_key\fR routine takes a key value from the above list, and
 .TE
 .sp
 The \fBhas_key\fR routine takes a key value from the above list, and
-returns TRUE or FALSE according as the current terminal type recognizes
-a key with that value.
+returns TRUE or FALSE according to whether
+the current terminal type recognizes a key with that value.
 
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and an integer value
 
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and an integer value
@@ -223,32 +232,49 @@ 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.
 
 discouraged, as it will cause a delay of up to one second while the
 keypad code looks for a following function-key sequence.
 
+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.
+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
+when you press control/M.
+
 When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
 \fBmvwgetch\fR, nocbreak mode (\fBnocbreak\fR) and echo mode
 When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
 \fBmvwgetch\fR, nocbreak mode (\fBnocbreak\fR) and echo mode
-(\fBecho\fR) should not be used at the same time.  Depending on the
+(\fBecho\fR) 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.
 
 Note that \fBgetch\fR, \fBmvgetch\fR, and \fBmvwgetch\fR may be macros.
 
 Historically, the set of keypad macros was largely defined by the extremely
 state of the tty driver when each character is typed, the program may
 produce undesirable results.
 
 Note that \fBgetch\fR, \fBmvgetch\fR, and \fBmvwgetch\fR may be macros.
 
 Historically, the set of keypad macros was largely defined by the extremely
-function-key-rich keyboard of the AT&T 7300, aka 3B1, aka Safari 4.  Modern
-personal computers usually have only a small subset of these.  IBM PC-style
+function-key-rich keyboard of the AT&T 7300, aka 3B1, aka Safari 4.
+Modern
+personal computers usually have only a small subset of these.
+IBM PC-style
 consoles typically support little more than \fBKEY_UP\fR, \fBKEY_DOWN\fR,
 \fBKEY_LEFT\fR, \fBKEY_RIGHT\fR, \fBKEY_HOME\fR, \fBKEY_END\fR,
 consoles typically support little more than \fBKEY_UP\fR, \fBKEY_DOWN\fR,
 \fBKEY_LEFT\fR, \fBKEY_RIGHT\fR, \fBKEY_HOME\fR, \fBKEY_END\fR,
-\fBKEY_NPAGE\fR, \fBKEY_PPAGE\fR, and function keys 1 through 12.  The Ins key
+\fBKEY_NPAGE\fR, \fBKEY_PPAGE\fR, and function keys 1 through 12.
+The Ins key
 is usually mapped to \fBKEY_IC\fR.
 .SH PORTABILITY
 is usually mapped to \fBKEY_IC\fR.
 .SH PORTABILITY
-The *get* functions are described in the XSI Curses standard, Issue 4.  They
-read single-byte characters only.  The standard specifies that they return
+The *get* functions are described in the XSI Curses standard, Issue 4.
+They
+read single-byte characters only.
+The standard specifies that they return
 \fBERR\fR on failure, but specifies no error conditions.
 
 The echo behavior of these functions on input of \fBKEY_\fR or backspace
 \fBERR\fR on failure, but specifies no error conditions.
 
 The echo behavior of these functions on input of \fBKEY_\fR or backspace
-characters was not specified in the SVr4 documentation.  This description is
+characters was not specified in the SVr4 documentation.
+This description is
 adopted from the XSI Curses standard.
 
 The behavior of \fBgetch\fR and friends in the presence of handled signals is
 adopted from the XSI Curses standard.
 
 The behavior of \fBgetch\fR and friends in the presence of handled signals is
-unspecified in the SVr4 and XSI Curses documentation.  Under historical curses
+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 \fBread\fR(2) call in
 progress or not, and also (in some implementations) depending on whether an
 implementations, it varied depending on whether the operating system's
 implementation of handled signal receipt interrupts a \fBread\fR(2) call in
 progress or not, and also (in some implementations) depending on whether an
@@ -257,10 +283,12 @@ input timeout or non-blocking mode hsd been set.
 Programmers concerned about portability should be prepared for either of two
 cases: (a) signal receipt does not interrupt \fBgetch\fR; (b) signal receipt
 interrupts \fBgetch\fR and causes it to return ERR with \fBerrno\fR set to
 Programmers concerned about portability should be prepared for either of two
 cases: (a) signal receipt does not interrupt \fBgetch\fR; (b) signal receipt
 interrupts \fBgetch\fR and causes it to return ERR with \fBerrno\fR set to
-\fBEINTR\fR.  Under the \fBncurses\fR implementation, handled signals never
+\fBEINTR\fR.
+Under the \fBncurses\fR implementation, handled signals never
 interrupt \fBgetch\fR.
 
 interrupt \fBgetch\fR.
 
-The \fBhas_key\fR function is unique to \fBncurses\fR.  We recommend that
+The \fBhas_key\fR function is unique to \fBncurses\fR.
+We recommend that
 any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
 .SH SEE ALSO
 \fBcurses\fR(3X),
index 42c22931877c5ec5e59bd4c5dab397f0cf0d5e67..1a32a0be1aeb82fe36f4b8f6c07e5912f4bf7a32 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getstr.3x,v 1.9 2000/07/01 17:39:31 tom Exp $
+.\" $Id: curs_getstr.3x,v 1.11 2002/04/13 22:14:30 tom Exp $
 .TH curs_getstr 3X ""
 .SH NAME
 \fBgetstr\fR,
 .TH curs_getstr 3X ""
 .SH NAME
 \fBgetstr\fR,
@@ -82,11 +82,11 @@ completion.
 .SH NOTES
 Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros.
 .SH PORTABILITY
 .SH NOTES
 Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros.
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.  They read
-single-byte characters only.  The standard specifies that they return \fBERR\fR
-on failure, but the single error condition \fBEOVERFLOW\fR associated with
-extended-level conformance is not yet returned (the XSI curses support for
-multi-byte characters is not yet present).
+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 \fBwgetch\fR call returns an ERR.
 
 SVr3 and early SVr4 curses implementations did not reject function keys;
 the SVr4.0 documentation claimed that "special keys" (such as function
 
 SVr3 and early SVr4 curses implementations did not reject function keys;
 the SVr4.0 documentation claimed that "special keys" (such as function
index 820bf99c5327890f69a945a94dc47f9e098346a0..87df1622f54f929384ad25048c4860e6bcde4c24 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getyx.3x,v 1.6 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_getyx.3x,v 1.8 2002/09/21 19:00:38 tom Exp $
 .TH curs_getyx 3X ""
 .SH NAME
 .TH curs_getyx 3X ""
 .SH NAME
-\fBgetyx\fR, \fBgetparyx\fR, \fBgetbegyx\fR,
+.IX getbegx
+.IX getbegy
+.IX getcurx
+.IX getcury
+.IX getmaxx
+.IX getmaxy
+.IX getparx
+.IX getpary
+\fBgetyx\fR,
+\fBgetparyx\fR,
+\fBgetbegyx\fR,
 \fBgetmaxyx\fR - get \fBcurses\fR cursor and window coordinates
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 \fBgetmaxyx\fR - get \fBcurses\fR cursor and window coordinates
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
@@ -48,20 +58,35 @@ the two integer variables \fIy\fR and \fIx\fR.
 
 If \fIwin\fR is a subwindow, the \fBgetparyx\fR macro places the beginning
 coordinates of the subwindow relative to the parent window into two integer
 
 If \fIwin\fR is a subwindow, the \fBgetparyx\fR macro places the beginning
 coordinates of the subwindow relative to the parent window into two integer
-variables \fIy\fR and \fIx\fR.  Otherwise, \fB-1\fR is placed into \fIy\fR and
-\fIx\fR.
+variables \fIy\fR and \fIx\fR.
+Otherwise, \fB-1\fR is placed into \fIy\fR and \fIx\fR.
 
 Like \fBgetyx\fR, the \fBgetbegyx\fR and \fBgetmaxyx\fR macros store
 the current beginning coordinates and size of the specified window.
 .SH RETURN VALUE
 The return values of these macros are undefined (\fIi\fR.\fIe\fR.,
 
 Like \fBgetyx\fR, the \fBgetbegyx\fR and \fBgetmaxyx\fR macros store
 the current beginning coordinates and size of the specified window.
 .SH RETURN VALUE
 The return values of these macros are undefined (\fIi\fR.\fIe\fR.,
-they should not be used as the right-hand side of assignment
-statements).
+they should not be used as the right-hand side of assignment statements).
 .SH NOTES
 .SH NOTES
-All of these interfaces are macros and that "\fB&\fR" is not
-necessary before the variables \fIy\fR and \fIx\fR.
+All of these interfaces are macros.
+A "\fB&\fR" is not necessary before the variables \fIy\fR and \fIx\fR.
 .SH PORTABILITY
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+The
+\fBgetyx\fR,
+\fBgetparyx\fR,
+\fBgetbegyx\fR and
+\fBgetmaxyx\fR
+functions are described in the XSI Curses standard, Issue 4.
+.PP
+This implementation also provides
+\fBgetbegx\fR,
+\fBgetbegy\fR,
+\fBgetcurx\fR,
+\fBgetcury\fR,
+\fBgetmaxx\fR,
+\fBgetmaxy\fR,
+\fBgetparx\fR and
+\fBgetpary\fR
+for compatibility with older versions of curses.
 .SH SEE ALSO
 \fBcurses\fR(3X)
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X)
 .\"#
diff --git a/man/curs_in_wch.3x b/man/curs_in_wch.3x
new file mode 100644 (file)
index 0000000..668595c
--- /dev/null
@@ -0,0 +1,68 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_in_wch.3x,v 1.1 2002/03/10 15:08:57 tom Exp $
+.TH curs_in_wch 3X ""
+.SH NAME
+\fBin_wch\fR,
+\fBmvin_wch\fR,
+\fBmvwin_wch\fR,
+\fBwin_wch\fR - extract a complex character and rendition from a window
+.SH SYNOPSIS
+\fB#include <curses.h>\fR
+
+\fBint in_wch(cchar_t *\fR\fIwcval\fR\fB);\fR
+.br
+\fBint mvin_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
+.br
+\fBint mvwin_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
+.br
+\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
+.SH DESCRIPTION
+These functions extract the complex character and rendition from
+the current position in the named window into the \fBcchar_t\fR object
+referenced by wcval.
+.SH RETURN VALUE
+No errors are defined in the XSI Curses standard.
+This implementation checks for null pointers, returns ERR in that case.
+Also, the \fImv\fR routines check for error moving the cursor, returning ERR
+in that case.
+Otherwise they return OK
+.SH NOTES
+Note that all of these routines may be macros.
+.SH PORTABILITY
+These functions are described in the XSI Curses standard, Issue 4.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_inch\fR(3X).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/curs_in_wchstr.3x b/man/curs_in_wchstr.3x
new file mode 100644 (file)
index 0000000..0012789
--- /dev/null
@@ -0,0 +1,117 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp $
+.TH curs_in_wchstr 3X ""
+.SH NAME
+\fBin_wchstr\fR,
+\fBin_wchnstr\fR,
+\fBwin_wchstr\fR,
+\fBwin_wchnstr\fR,
+\fBmvin_wchstr\fR,
+\fBmvin_wchnstr\fR,
+\fBmvwin_wchstr\fR,
+\fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h>\fR
+
+\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
+.br
+\fBint win_wchstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint win_wchnstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvin_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint mvin_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwin_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
+.br
+\fBint mvwin_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR, int \fIn\fR\fB);\fR
+.fi
+.SH DESCRIPTION
+These functions return an array of complex characters in \fIwchstr\fR,
+starting at the current cursor position in the named window.
+Attributes (rendition) are stored with the characters.
+.PP
+The
+\fBin_wchnstr\fR,
+\fBmvin_wchnstr\fR,
+\fBmvwin_wchnstr\fR
+and
+\fBwin_wchnstr\fR
+fill the array
+with at most
+\fIn\fR
+\fBcchar_t\fR
+elements.
+.br
+.SH NOTES
+Note that all routines except
+\fBwin_wchnstr\fR
+may be
+macros.
+.PP
+Reading a line that overflows the array pointed to by
+\fIwchstr\fR
+with
+\fBin_wchstr\fR,
+\fBmvin_wchstr\fR,
+\fBmvwin_wchstr\fR
+or
+\fBwin_wchstr\fR
+causes undefined results. Therefore, the use of
+\fBin_wchnstr\fR,
+\fBmvin_wchnstr\fR,
+\fBmvwin_wchnstr\fR, or
+\fBwin_wchnstr\fR
+is recommended.
+.SH RETURN VALUES
+Upon successful completion, these functions return
+\fBOK\fR.
+Otherwise, they return
+\fBERR\fR.
+.SH PORTABILITY
+The XSI Curses defines no error conditions.
+This implementation checks for null pointers,
+returning ERR in that case.
+.SH SEE ALSO
+Functions:
+\fBcurses\fR(3X),
+\fBcurs_in_wch\fR(3X)
+\fBcurs_instr\fR(3X),
+\fBcurs_inwstr\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index daa5e1e822de3ef840eaf5653b06108d2cce313d..ea41729ed7dfabc34bb6d0f16b9f5ba5b8863990 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_initscr.3x,v 1.10 2000/07/08 12:47:39 tom Exp $
+.\" $Id: curs_initscr.3x,v 1.11 2002/07/20 14:51:04 tom Exp $
 .TH curs_initscr 3X ""
 .SH NAME
 \fBinitscr\fR,
 .TH curs_initscr 3X ""
 .SH NAME
 \fBinitscr\fR,
@@ -44,7 +44,7 @@
 .br
 \fBbool isendwin(void);\fR
 .br
 .br
 \fBbool isendwin(void);\fR
 .br
-\fBSCREEN *newterm(const char *type, FILE *outfd, FILE *infd);\fR
+\fBSCREEN *newterm(char *type, FILE *outfd, FILE *infd);\fR
 .br
 \fBSCREEN *set_term(SCREEN *new);\fR
 .br
 .br
 \fBSCREEN *set_term(SCREEN *new);\fR
 .br
index 1fc6a820a603d007b82c3ead854439cf794f8f8d..c129ae194ca35db032a5434e39b38ffa5f211c72 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inopts.3x,v 1.8 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_inopts.3x,v 1.9 2002/08/10 22:29:49 tom Exp $
 .TH curs_inopts 3X ""
 .SH NAME
 \fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
 .TH curs_inopts 3X ""
 .SH NAME
 \fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
@@ -128,7 +128,7 @@ To force 8 bits to be returned, invoke \fBmeta\fR(\fIwin\fR,
 \fBTRUE\fR); this is equivalent, under POSIX, to setting the CS8 flag
 on the terminal.  To force 7 bits to be returned, invoke
 \fBmeta\fR(\fIwin\fR, \fBFALSE\fR); this is equivalent, under POSIX,
 \fBTRUE\fR); this is equivalent, under POSIX, to setting the CS8 flag
 on the terminal.  To force 7 bits to be returned, invoke
 \fBmeta\fR(\fIwin\fR, \fBFALSE\fR); this is equivalent, under POSIX,
-to setting the CS8 flag on the terminal.  The window argument,
+to setting the CS7 flag on the terminal.  The window argument,
 \fIwin\fR, is always ignored.  If the terminfo capabilities \fBsmm\fR
 (meta_on) and \fBrmm\fR (meta_off) are defined for the terminal,
 \fBsmm\fR is sent to the terminal when \fBmeta\fR(\fIwin\fR,
 \fIwin\fR, is always ignored.  If the terminfo capabilities \fBsmm\fR
 (meta_on) and \fBrmm\fR (meta_off) are defined for the terminal,
 \fBsmm\fR is sent to the terminal when \fBmeta\fR(\fIwin\fR,
diff --git a/man/curs_ins_wch.3x b/man/curs_ins_wch.3x
new file mode 100644 (file)
index 0000000..23cf099
--- /dev/null
@@ -0,0 +1,65 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_ins_wch.3x,v 1.2 2002/03/10 23:43:27 tom Exp $
+.TH curs_ins_wch 3X ""
+.SH NAME
+\fBins_wch\fR,
+\fBmvins_wch\fR,
+\fBmvwins_wch\fR,
+\fBwins_wch\fR \- insert a complex character and rendition into a window
+.SH SYNOPSIS
+#include <curses.h>
+
+\fBint ins_wch(const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint wins_wch(WINDOW *\fR\fIwin, const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint mvins_wch(int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR
+.br
+\fBint mvwins_wch(WINDOW *\fR\fIwin, int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR
+.SH DESCRIPTION
+These routines, insert the complex character \fIwch\fR with rendition
+before the character under the cursor.
+All characters to the right of the cursor are moved one space to the right,
+with the possibility of the rightmost character on the line being lost.
+The insertion operation does not change the cursor position.
+.SH RETURN VALUE
+If successful, these functions return OK.
+If not, they return ERR.
+.SH ERRORS
+No errors are defined.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_insch\fR(3X).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/curs_ins_wstr.3x b/man/curs_ins_wstr.3x
new file mode 100644 (file)
index 0000000..197f30f
--- /dev/null
@@ -0,0 +1,104 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp $
+.TH curs_ins_wstr 3X ""
+.SH NAME
+\fBins_wstr\fR,
+\fBins_nwstr\fR,
+\fBwins_wstr\fR,
+\fBwins_nwstr\fR,
+\fBmvins_wstr\fR,
+\fBmvins_nwstr\fR,
+\fBmvwins_wstr\fR,
+\fBmvwins_nwstr\fR \- insert a wide-character string into a curses window
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h>\fR
+
+\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
+.br
+\fBint wins_wstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint wins_nwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvins_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint mvins_nwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwins_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
+.br
+\fBint mvwins_nwstr(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 insert a \fBwchar_t\fR 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.
+No wrapping is performed.
+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 \fBwchar_t\fR characters.
+If \fIn\fR is less than 1, the entire string is inserted.
+
+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.
+Tabs are considered to be at every eighth column.
+If a character in \fIwstr\fR is another control character,
+it is drawn in the \fB^\fR\fIX\fR notation.
+Calling \fBwin_wch\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.
+.SH NOTES
+Note that all but wins_nwstr may be macros.
+
+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
+a control character.
+.SH RETURN VALUES
+Upon successful completion, these functions return OK.
+Otherwise, they return ERR.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_insstr\fR(3X),
+\fBcurs_in_wch\fR(3X),
+\fBcurs_ins_wch\fR(3X).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index af84cb91380585a85224693fd7bf380634450d56..ed1e13eaecb0fb3de3282dc7fda0b1f2cbc0e654 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_insstr.3x,v 1.11 2000/07/01 19:57:49 tom Exp $
+.\" $Id: curs_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp $
 .TH curs_insstr 3X ""
 .SH NAME
 \fBinsstr\fR,
 .TH curs_insstr 3X ""
 .SH NAME
 \fBinsstr\fR,
@@ -83,7 +83,7 @@ Note that all but \fBwinsnstr\fR may be macros.
 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
 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 multi-byte
+are not yet detected (this implementation does not yet support XPG4 multibyte
 characters).
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_clear\fR(3X), \fBcurs_inch\fR(3X).
 characters).
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_clear\fR(3X), \fBcurs_inch\fR(3X).
index 283ae19a1c4c6aca5f07bcc7007215b9f49516c5..9a09ab278c477f814ff0b9d780c282474594e963 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_instr.3x,v 1.9 2000/07/01 20:05:03 tom Exp $
+.\" $Id: curs_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp $
 .TH curs_instr 3X ""
 .SH NAME
 \fBinstr\fR,
 .TH curs_instr 3X ""
 .SH NAME
 \fBinstr\fR,
@@ -71,7 +71,7 @@ Note that all routines except \fBwinnstr\fR may be macros.
 The XSI Curses
 error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with
 extended-level conformance are not yet detected (this implementation does not
 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 multi-byte characters).
+yet support XPG4 multibyte characters).
 SVr4 does not
 document whether a length limit includes or excludes the trailing NUL.
 .PP
 SVr4 does not
 document whether a length limit includes or excludes the trailing NUL.
 .PP
diff --git a/man/curs_inwstr.3x b/man/curs_inwstr.3x
new file mode 100644 (file)
index 0000000..b345ce6
--- /dev/null
@@ -0,0 +1,95 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp $
+.TH curs_inwstr 3 ""
+.SH NAME
+.PP
+\fBinwstr\fR,
+\fBinnwstr\fR,
+\fBwinwstr\fR,
+\fBwinnwstr\fR,
+\fBmvinwstr\fR,
+\fBmvinnwstr\fR,
+\fBmvwinwstr\fR,
+\fBmvwinnwstr\fR \- get a string of \fBwchar_t\fR characters from a curses window
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h> \fR
+
+\fBint inwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint innwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint winwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint winnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvinwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint mvinnwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwinwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint mvwinnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.fi
+.SH DESCRIPTION
+These routines return a string of \fBwchar_t\fR characters in \fIwstr\fR,
+extracted starting at the current cursor position in the named window.
+Attributes are stripped from the characters.
+The four functions with \fIn\fR as the last argument return a leading substring at most
+\fIn\fR bytes long (exclusive of the trailing NUL).
+Transfer stops at the end of the current line, or when \fIn\fR bytes have
+been stored at the location referenced by \fIwstr\fR.
+.PP
+If the size \fIn\fR is not large enough to store a complete character,
+an error is generated.
+.SH NOTES
+Note that all routines except
+\fBwinnwstr\fR
+may be macros.
+.SH RETURN VALUES
+All routines return
+\fBERR\fR
+upon failure. Upon
+successful completion, the *\fBinwstr\fR
+routines return
+\fBOK\fR, and the *\fBinnwstr\fR
+routines return the
+number of characters read into the string.
+.SH SEE ALSO
+Functions:
+\fBcurses\fR(3X),
+\fBcurs_instr\fR(3X),
+\fBcurs_in_wchstr\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
index ada1a1d10ebc23a31287b9f6e476f1fe4f7f1dd9..caeb5bba0cd882f433acfe203148d226995d4446 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_kernel.3x,v 1.12 2000/02/27 01:37:46 tom Exp $
+.\" $Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp $
 .TH curs_kernel 3X ""
 .SH NAME
 \fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
 .TH curs_kernel 3X ""
 .SH NAME
 \fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
@@ -138,7 +138,7 @@ on the correctness of the return value anywhere else.
 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
 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
-visible or very visible.
+invisible or very visible.
 There is no way for ncurses to determine the initial cursor state to
 restore that.
 .SH PORTABILITY
 There is no way for ncurses to determine the initial cursor state to
 restore that.
 .SH PORTABILITY
index 316598a5594c9c8ced7ce5112853f12c387bfaad..c1e3e37f0cc0e03a89ba774aaf7c5951110e88e6 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: curs_mouse.3x,v 1.15 2000/07/08 12:50:08 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.20 2002/07/20 14:52:14 tom Exp $
 .TH curs_mouse 3X ""
 .SH NAME
 \fBgetmouse\fR, \fBungetmouse\fR,
 .TH curs_mouse 3X ""
 .SH NAME
 \fBgetmouse\fR, \fBungetmouse\fR,
@@ -55,7 +55,7 @@ MEVENT;\fR
 .br
 \fBmmask_t mousemask(mmask_t newmask, mmask_t *oldmask);\fR
 .br
 .br
 \fBmmask_t mousemask(mmask_t newmask, mmask_t *oldmask);\fR
 .br
-\fBbool wenclose(WINDOW *win, int y, int x);\fR
+\fBbool wenclose(const WINDOW *win, int y, int x);\fR
 .br
 \fBbool mouse_trafo(int* pY, int* pX, bool to_screen);\fR
 .br
 .br
 \fBbool mouse_trafo(int* pY, int* pX, bool to_screen);\fR
 .br
@@ -67,19 +67,23 @@ MEVENT;\fR
 .br
 .SH DESCRIPTION
 These functions provide an interface to mouse events from
 .br
 .SH DESCRIPTION
 These functions provide an interface to mouse events from
-\fBncurses\fR(3X).  Mouse events are represented by \fBKEY_MOUSE\fR
+\fBncurses\fR(3X).
+Mouse events are represented by \fBKEY_MOUSE\fR
 pseudo-key values in the \fBwgetch\fR input stream.
 
 pseudo-key values in the \fBwgetch\fR input stream.
 
-To make mouse events visible, use the \fBmousemask\fR function.  This will set
-the mouse events to be reported.  By default, no mouse events are reported.
+To make mouse events visible, use the \fBmousemask\fR function.
+This will set
+the mouse events to be reported.
+By default, no mouse events are reported.
 The function will return a mask to indicate which of the specified mouse events
 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,
+can be reported; on complete failure it returns 0.
+If oldmask is non-NULL,
 this function fills the indicated location with the previous value of the given
 window's mouse event mask.
 
 As a side effect, setting a zero mousemask may turn off the mouse pointer;
 this function fills the indicated location with the previous value of the given
 window's mouse event mask.
 
 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.
+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:
 
@@ -119,20 +123,24 @@ Once a class of mouse events have been made visible in a window,
 calling the \fBwgetch\fR function on that window may return
 \fBKEY_MOUSE\fR as an indicator that a mouse event has been queued.
 To read the event data and pop the event off the queue, call
 calling the \fBwgetch\fR function on that window may return
 \fBKEY_MOUSE\fR as an indicator that a mouse event has been queued.
 To read the event data and pop the event off the queue, call
-\fBgetmouse\fR.  This function will return \fBOK\fR if a mouse event
+\fBgetmouse\fR.
+This function will return \fBOK\fR if a mouse event
 is actually visible in the given window, \fBERR\fR otherwise.
 When \fBgetmouse\fR returns \fBOK\fR, the data deposited as y and
 x in the event structure coordinates will be screen-relative character-cell
 is actually visible in the given window, \fBERR\fR otherwise.
 When \fBgetmouse\fR returns \fBOK\fR, the data deposited as y and
 x in the event structure coordinates will be screen-relative character-cell
-coordinates.  The returned state mask will have exactly one bit set to
+coordinates.
+The returned state mask will have exactly one bit set to
 indicate the event type.
 
 indicate the event type.
 
-The \fBungetmouse\fR function behaves analogously to \fBungetch\fR.  It pushes
+The \fBungetmouse\fR function behaves analogously to \fBungetch\fR.
+It pushes
 a \fBKEY_MOUSE\fR event onto the input queue, and associates with that event
 the given state data and screen-relative character-cell coordinates.
 
 The \fBwenclose\fR function tests whether a given pair of screen-relative
 character-cell coordinates is enclosed by a given window, returning TRUE
 a \fBKEY_MOUSE\fR event onto the input queue, and associates with that event
 the given state data and screen-relative character-cell coordinates.
 
 The \fBwenclose\fR function tests whether a given pair of screen-relative
 character-cell coordinates is enclosed by a given window, returning TRUE
-if it is and FALSE otherwise.  It is useful for determining what subset of
+if it is and FALSE otherwise.
+It is useful for determining what subset of
 the screen windows enclose the location of a mouse event.
 
 The \fBwmouse_trafo\fR function transforms a given pair of coordinates from
 the screen windows enclose the location of a mouse event.
 
 The \fBwmouse_trafo\fR function transforms a given pair of coordinates from
@@ -140,24 +148,33 @@ stdscr-relative coordinates to screen-relative 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_...
 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 the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers 
+functions).
+If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers 
 \fBpY, pX\fR must reference the coordinates of a location inside the window 
 \fBpY, pX\fR must reference the coordinates of a location inside the window 
-\fBwin\fR. They are converted to screen-relative coordinates and returned
-through the pointers. If the conversion was successful, the function
-returns \fBTRUE\fR. If one of the parameters was NULL or the location is
-not inside the window, \fBFALSE\fR is returned. If \fBto_screen\fR is
+\fBwin\fR.
+They are converted to screen-relative coordinates and returned
+through the pointers.
+If the conversion was successful, the function returns \fBTRUE\fR.
+If one of the parameters was NULL or the location is
+not inside the window, \fBFALSE\fR is returned.
+If \fBto_screen\fR is
 \fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative
 \fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative
-coordinates. They are converted to stdscr-relative coordinates if the
-window \fBwin\fR encloses this point. In this case the function returns
-\fBTRUE\fR. If one of the parameters is NULL or the point is not inside the
-window, \fBFALSE\fR is returned. Please notice, that the referenced coordinates
+coordinates.
+They are converted to stdscr-relative coordinates if the
+window \fBwin\fR encloses this point.
+In this case the function returns \fBTRUE\fR.
+If one of the parameters is NULL or the point is not inside the
+window, \fBFALSE\fR is returned.
+Please notice, that the referenced coordinates
 are only replaced by the converted coordinates if the transformation was
 successful.
  
 The \fBmouseinterval\fR function sets the maximum time (in thousands of a
 are only replaced by the converted coordinates if the transformation was
 successful.
  
 The \fBmouseinterval\fR function sets the maximum time (in thousands of a
-second) that can elapse between press and release events 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.
+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.
+This function returns the previous interval value.
+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
 
 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
@@ -167,8 +184,10 @@ termination.
 .SH RETURN VALUE
 \fBgetmouse\fR, \fBungetmouse\fR and \fBmouseinterval\fR
 return the integer \fBERR\fR upon failure or \fBOK\fR
 .SH RETURN VALUE
 \fBgetmouse\fR, \fBungetmouse\fR and \fBmouseinterval\fR
 return the integer \fBERR\fR upon failure or \fBOK\fR
-upon successful completion. \fBmousemask\fR returns the
-mask of reportable events. \fBwenclose\fR and \fBwmouse_trafo\fR
+upon successful completion.
+\fBmousemask\fR returns the
+mask of reportable events.
+\fBwenclose\fR and \fBwmouse_trafo\fR
 are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
 on their test result.
 .SH PORTABILITY
 are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
 on their test result.
 .SH PORTABILITY
@@ -190,12 +209,14 @@ running on your machine, mouse events will not be visible to
 \fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
 return \fB0\fR).
 
 \fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
 return \fB0\fR).
 
-The z member in the event structure is not presently used.  It is intended
+The z member in the event structure is not presently used.
+It is intended
 for use with touch screens (which may be pressure-sensitive) or with
 3D-mice/trackballs/power gloves.
 .SH BUGS
 Mouse events under xterm will not in fact be ignored during cooked mode,
 for use with touch screens (which may be pressure-sensitive) or with
 3D-mice/trackballs/power gloves.
 .SH BUGS
 Mouse events under xterm will not in fact be ignored during cooked mode,
-if they have been enabled by \fBwmousemask\fR.  Instead, the xterm mouse
+if they have been enabled by \fBwmousemask\fR.
+Instead, the xterm mouse
 report sequence will appear in the string read.
 
 Mouse events under xterm will not be detected correctly in a window with
 report sequence will appear in the string read.
 
 Mouse events under xterm will not be detected correctly in a window with
@@ -205,7 +226,8 @@ of the response from xterm for mouse clicks).
 
 Because there are no standard terminal responses that would serve to identify
 terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
 
 Because there are no standard terminal responses that would serve to identify
 terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
-if your $DISPLAY environment variable is set, and \fBkmous\fR is defined in
+if your $TERM environment variable contains "xterm",
+or \fBkmous\fR is defined in
 the terminal description, then the terminal may send mouse events.
 .SH SEE ALSO
 \fBcurses\fR(3X).
 the terminal description, then the terminal may send mouse events.
 .SH SEE ALSO
 \fBcurses\fR(3X).
index 25c47feb482b1455c2e6fbe93ae8e701d7af5cb0..2fff160c2f14b14c46a4b47766679ea28432e8b4 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_move.3x,v 1.6 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp $
 .TH curs_move 3X ""
 .SH NAME
 \fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
 .TH curs_move 3X ""
 .SH NAME
 \fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
@@ -52,7 +52,7 @@ Note that \fBmove\fR may be a macro.
 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
 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 multi-byte characters.
+does not yet support the extended-level XSI multibyte characters.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
index 4c5bf1f456a8efd614c4e855404cd16f31ac1eeb..f9db6f26def5d791128f0cd3f155794bc9a36494 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_outopts.3x,v 1.14 2000/02/27 01:41:58 tom Exp $
+.\" $Id: curs_outopts.3x,v 1.17 2001/10/14 00:50:30 tom Exp $
 .TH curs_outopts 3X ""
 .SH NAME
 .TH curs_outopts 3X ""
 .SH NAME
-\fBclearok\fR, \fBidlok\fR, \fBidcok immedok\fR,
+\fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR,
 \fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
 \fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
 .SH SYNOPSIS
 \fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
 \fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
 .SH SYNOPSIS
 .br
 .SH DESCRIPTION
 These routines set options that change the style of output within
 .br
 .SH DESCRIPTION
 These routines set options that change the style of output within
-\fBcurses\fR.  All options are initially \fBFALSE\fR, unless otherwise stated.
+\fBcurses\fR.
+All options are initially \fBFALSE\fR, unless otherwise stated.
 It is not necessary to turn these options off before calling \fBendwin\fR.
 
 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
 It is not necessary to turn these options off before calling \fBendwin\fR.
 
 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.  This is useful when the contents of the
-screen are uncertain, or in some cases for a more pleasing visual effect.  If
+redraw the entire screen from scratch.
+This is useful when the contents of the
+screen are uncertain, or in some cases for a more pleasing visual effect.
+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.
 
 If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR
 considers using the hardware insert/delete line feature of terminals so
 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.
 
 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.  Calling \fBidlok\fR with \fBFALSE\fR as second argument disables use
-of line insertion and deletion.  This option should be enabled only if the
-application needs insert/delete line, for example, for a screen editor.  It is
+equipped.
+Calling \fBidlok\fR with \fBFALSE\fR as second argument disables use
+of line insertion and deletion.
+This option should be enabled only if the
+application needs insert/delete line, for example, for a screen editor.
+It is
 disabled by default because insert/delete line tends to be visually annoying
 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
+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.
 
 If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
 no longer considers using the hardware insert/delete character feature of
 cannot be used, \fBcurses\fR redraws the changed portions of all lines.
 
 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.
+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.
 
 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,
 Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
 of character insertion and deletion.
 
 If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
 in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
-\fIetc\fR., automatically cause a call to \fBwrefresh\fR.  However, it may
+\fIetc\fR., 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.
 
 Normally, the hardware cursor is left at the location of the window cursor
 degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
 It is disabled by default.
 
 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.  If
-possible, the cursor is made invisible when this option is enabled.
+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.
 
 The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
 
 The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
-programmer to set a software scrolling region in a window.  \fItop\fR and
+programmer to set a software scrolling region in a window.
+\fItop\fR and
 \fIbot\fR are the line numbers of the top and bottom margin of the scrolling
 \fIbot\fR 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
+region.
+(Line 0 is the top line of the window.)  If this option and
 \fBscrollok\fR 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
 \fBscrollok\fR 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
+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
 has nothing to do with the use of a physical scrolling region capability in the
-terminal, like that in the VT100.  If \fBidlok\fR is enabled and the terminal
+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.)
 
 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
 has either a scrolling region or insert/delete line capability, they will
 probably be used by the output routines.)
 
 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
-line.  If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom
-line.  If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
-(Note that in order to get the physical scrolling effect on the terminal, it is
+line.
+If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom
+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).
 
 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
 call \fBaddch('\\n')\fR does the equivalent of return and line feed on the
 also necessary to call \fBidlok\fR).
 
 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
 call \fBaddch('\\n')\fR does the equivalent of return and line feed on the
-virtual screen).  Initially, these translations do occur.  If you disable them
+virtual screen).
+Initially, these translations do occur.
+If you disable them
 using \fBnonl\fR, \fBcurses\fR will be able to make better use of the line-feed
 using \fBnonl\fR, \fBcurses\fR will be able to make better use of the line-feed
-capability, resulting in faster cursor motion.  Also, \fBcurses\fR will then be
+capability, resulting in faster cursor motion.
+Also, \fBcurses\fR will then be
 able to detect the return key.
 .SH RETURN VALUE
 The functions \fBsetscrreg\fR and \fBwsetscrreg\fR return \fBOK\fR upon success
 able to detect the return key.
 .SH RETURN VALUE
 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
+and \fBERR\fR upon failure.
+All other routines that return an integer always
 return \fBOK\fR.
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4.
 return \fBOK\fR.
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4.
@@ -133,19 +154,22 @@ These functions are described in the XSI Curses standard, Issue 4.
 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
 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
+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.
 
 Some historic curses implementations had, as an undocumented feature, the
 ability to do the equivalent of \fBclearok(..., 1)\fR by saying
 raw input wants a clean (ideally 8-bit clean) connection that the operating
 system does not mess with.
 
 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
+\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
+This will not work under
 ncurses.
 
 Earlier System V curses implementations specified that with \fBscrollok\fR 
 enabled, any window modification triggering a scroll also forced a physical
 ncurses.
 
 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 in order to perform better vertical-motion optimization at \fBwrefresh\fR
+refresh.
+XSI Curses does not require this, and \fBncurses\fR avoids doing
+it to perform better vertical-motion optimization at \fBwrefresh\fR
 time.
 
 The XSI Curses standard does not mention that the cursor should be
 time.
 
 The XSI Curses standard does not mention that the cursor should be
index 9c0b82c9af211012c4605d7a6cc546577b2f4cfd..3d817d41c67b10c052f080aa4a07c8c4f0fdcc21 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_overlay.3x,v 1.9 2000/07/01 20:05:31 tom Exp $
+.\" $Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp $
 .TH curs_overlay 3X ""
 .SH NAME
 \fBoverlay\fR,
 .TH curs_overlay 3X ""
 .SH NAME
 \fBoverlay\fR,
@@ -39,7 +39,7 @@
 .br
 \fBint overwrite(const WINDOW *srcwin, WINDOW *dstwin);\fR
 .br
 .br
 \fBint overwrite(const WINDOW *srcwin, WINDOW *dstwin);\fR
 .br
-\fBint copywin(WINDOW *srcwin, WINDOW *dstwin, int sminrow,\fR
+\fBint copywin(const WINDOW *srcwin, WINDOW *dstwin, int sminrow,\fR
       \fBint smincol, int dminrow, int dmincol, int dmaxrow,\fR
       \fBint dmaxcol, int overlay);\fR
 .SH DESCRIPTION
       \fBint smincol, int dminrow, int dmincol, int dmaxrow,\fR
       \fBint dmaxcol, int overlay);\fR
 .SH DESCRIPTION
@@ -65,7 +65,7 @@ Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions (adding the const
 qualifiers).  It further specifies their behavior in the presence of characters
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions (adding the const
 qualifiers).  It further specifies their behavior in the presence of characters
-with multi-byte renditions (not yet supported in this implementation).
+with multibyte renditions (not yet supported in this implementation).
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
index 7b781988fddbb905f3b75522b9e2ac97440a21b8..dd4b6e3cba45ecb54d47ca93b5e1930a874dfbe3 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: curs_print.3x,v 1.3 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_print.3x,v 1.5 2002/02/16 22:39:04 tom Exp $
 .TH curs_print 3X ""
 .SH NAME
 \fBmcprint\fR - ship binary data to printer
 .TH curs_print 3X ""
 .SH NAME
 \fBmcprint\fR - ship binary data to printer
index 8ba9d1748649158974d850285d4819d7f6054f92..3b9c35825234547eefe33fe9db9de1ff5b53b70d 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_printw.3x,v 1.11 2000/07/01 20:11:32 tom Exp $
+.\" $Id: curs_printw.3x,v 1.12 2002/07/20 15:01:43 tom Exp $
 .TH curs_printw 3X ""
 .SH NAME
 \fBprintw\fR,
 .TH curs_printw 3X ""
 .SH NAME
 \fBprintw\fR,
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
-\fBint printw(char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint printw(char *fmt...);\fR
 .br
 .br
-\fBint wprintw(WINDOW *win, char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint wprintw(WINDOW *win, char *fmt...);\fR
 .br
 .br
-\fBint mvprintw(int y, int x, char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint mvprintw(int y, int x, char *fmt...);\fR
 .br
 .br
-\fBint mvwprintw(WINDOW *win, int y, int x,\fR
-      \fBchar *fmt\fR [\fB, arg]\fR ...);
-
-\fB#include <varargs.h>\fR
+\fBint mvwprintw(WINDOW *win, int y, int x, char *fmt, ...);\fR
 .br
 .br
-\fBint vwprintw(WINDOW *win, char *fmt, varglist);\fR
+\fBint vwprintw(WINDOW *win, char *fmt, va_list varglist);\fR
 .br
 .br
-\fBint vw_printw(WINDOW *win, char *fmt, varglist);\fR
+\fBint vw_printw(WINDOW *win, char *fmt, va_list varglist);\fR
 .br
 .SH DESCRIPTION
 The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
 .br
 .SH DESCRIPTION
 The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
@@ -58,10 +55,11 @@ routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)].  In
 effect, the string that would be output by \fBprintf\fR is output
 instead as though \fBwaddstr\fR were used on the given window.
 
 effect, the string that would be output by \fBprintf\fR is output
 instead as though \fBwaddstr\fR were used on the given window.
 
-The \fBvwprintw\fR routine is analogous to \fBvprintf\fR [see
-\fBprintf\fR(3S)] and performs a \fBwprintw\fR using a variable
-argument list.  The third argument is a \fBva_list\fR, a pointer to a
-list of arguments, as defined in \fB<varargs.h>\fR.
+The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
+to \fBvprintf\fR [see \fBprintf\fR(3S)]
+and perform a \fBwprintw\fR using a variable argument list.
+The third argument is a \fBva_list\fR, a pointer to a
+list of arguments, as defined in \fB<stdarg.h>\fR.
 .SH RETURN VALUE
 Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
 (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
 .SH RETURN VALUE
 Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
 (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
@@ -70,6 +68,12 @@ completion.
 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
 \fBvw_printw\fR using the \fB<stdarg.h>\fR interface.
 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
 \fBvw_printw\fR using the \fB<stdarg.h>\fR interface.
+The Single Unix Specification, Version 2 states that
+\fBvw_printw\fR  is preferred to \fBvwprintw\fR since the latter requires
+including \fB<varargs.h>\fR, which
+cannot be used in the same file as \fB<stdarg.h>\fR.
+This implementation uses \fB<stdarg.h>\fR for both, because that header
+is included in \fB<curses.h\fR>.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
 .\"#
index 9b4cb1df1c985fb32fd7a2cd3142e43a7758c3ab..210b326a618af24ff3fa9b2d713ec4adb04c5348 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_refresh.3x,v 1.8 2000/07/01 20:06:14 tom Exp $
+.\" $Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp $
 .TH curs_refresh 3X ""
 .SH NAME
 .TH curs_refresh 3X ""
 .SH NAME
-\fBrefresh\fR,
-\fBwrefresh\fR,
-\fBwnoutrefresh\fR,
 \fBdoupdate\fR,
 \fBredrawwin\fR,
 \fBdoupdate\fR,
 \fBredrawwin\fR,
-\fBwredrawln\fR - refresh \fBcurses\fR windows and lines
+\fBrefresh\fR,
+\fBwnoutrefresh\fR,
+\fBwredrawln\fR,
+\fBwrefresh\fR - refresh \fBcurses\fR windows and lines
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH DESCRIPTION
 The \fBrefresh\fR and \fBwrefresh\fR routines (or \fBwnoutrefresh\fR and
 \fBdoupdate\fR) must be called to get actual output to the terminal, as other
 .SH DESCRIPTION
 The \fBrefresh\fR and \fBwrefresh\fR routines (or \fBwnoutrefresh\fR and
 \fBdoupdate\fR) must be called to get actual output to the terminal, as other
-routines merely manipulate data structures.  The routine \fBwrefresh\fR copies
+routines merely manipulate data structures.
+The routine \fBwrefresh\fR copies
 the named window to the physical terminal screen, taking into account what is
 the named window to the physical terminal screen, taking into account what is
-already there in order to do optimizations.  The \fBrefresh\fR routine is the
-same, using \fBstdscr\fR as the default window.  Unless \fBleaveok\fR has been
+already there to do optimizations.
+The \fBrefresh\fR routine is the
+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.
 
 The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
 enabled, the physical cursor of the terminal is left at the location of the
 cursor for that window.
 
 The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
-more efficiency than \fBwrefresh\fR alone.  In addition to all the window
+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.
 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.
@@ -69,21 +73,26 @@ virtual screen, describing what the programmer wants to have on the screen.
 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
 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
-update.  If the programmer wishes to output several windows at once, a series
+update.
+If the programmer wishes to output several windows at once, a series
 of calls to \fBwrefresh\fR results in alternating calls to \fBwnoutrefresh\fR
 of calls to \fBwrefresh\fR results in alternating calls to \fBwnoutrefresh\fR
-and \fBdoupdate\fR, causing several bursts of output to the screen.  By first
+and \fBdoupdate\fR, causing several bursts of output to the screen.
+By first
 calling \fBwnoutrefresh\fR for each window, it is then possible to call
 \fBdoupdate\fR once, resulting in only one burst of output, with fewer total
 calling \fBwnoutrefresh\fR for each window, it is then possible to call
 \fBdoupdate\fR once, resulting in only one burst of output, with fewer total
-characters transmitted and less CPU time used.  If the \fIwin\fR argument to
+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.
 
 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
 \fBwrefresh\fR is the global variable \fBcurscr\fR, 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 \fItouched\fR (changed) lines in the window
-are copied to the virtual screen.  This affects programs that use overlapping
+are copied to the virtual screen.
+This affects programs that use overlapping
 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
 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 \fBPORTABILITY\fR below for a warning about
+changed.
+(But see the section on \fBPORTABILITY\fR below for a warning about
 exploiting this behavior.)
 
 The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
 exploiting this behavior.)
 
 The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
@@ -101,9 +110,11 @@ The XSI Curses standard, Issue 4 describes these functions.
 
 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
 
 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).  It might be unwise to rely on
+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
 either behavior in programs that might have to be linked with other curses
-implementations.  Instead, you can do an explicit \fBtouchwin()\fR before the
+implementations.
+Instead, you can do an explicit \fBtouchwin()\fR before the
 \fBwnoutrefresh()\fR call to guarantee an entire-contents copy anywhere.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
 \fBwnoutrefresh()\fR call to guarantee an entire-contents copy anywhere.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
index b7f3795d810104d92ee73e8bab0cc24a7c5d74fa..8b67801f7ddca1aad7ae1bb679833ef254238a72 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scanw.3x,v 1.11 2000/07/15 21:48:17 tom Exp $
+.\" $Id: curs_scanw.3x,v 1.12 2002/07/20 15:48:09 tom Exp $
 .TH curs_scanw 3X ""
 .SH NAME
 \fBscanw\fR,
 .TH curs_scanw 3X ""
 .SH NAME
 \fBscanw\fR,
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
-\fBint scanw(char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint scanw(char *fmt...);\fR
 .br
 .br
-\fBint wscanw(WINDOW *win, char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint wscanw(WINDOW *win, char *fmt...);\fR
 .br
 .br
-\fBint mvscanw(int y, int x, char *fmt\fR [\fB, arg\fR] \fB...);\fR
+\fBint mvscanw(int y, int x, char *fmt...);\fR
 .br
 .br
-\fBint mvwscanw(WINDOW *win, int y, int x,\fR
-      \fBchar *fmt\fR [\fB, arg]\fR \fB...);\fR
+\fBint mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);\fR
 .br
 \fBint vw_scanw(WINDOW *win, char *fmt, va_list varglist);\fR
 .br
 .br
 \fBint vw_scanw(WINDOW *win, char *fmt, va_list varglist);\fR
 .br
@@ -56,10 +55,10 @@ The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
 for \fBsscanf\fR(3).  Fields which do not map to a variable in the \fIfmt\fR
 field are lost.
 
 for \fBsscanf\fR(3).  Fields which do not map to a variable in the \fIfmt\fR
 field are lost.
 
-The \fBvwscanw\fR routine is similar to \fBvwprintw\fR in that it performs a
-\fBwscanw\fR using a variable argument list.  The third argument is a
-\fIva\fR_\fIlist\fR, a pointer to a list of arguments, as defined in
-\fB<varargs.h>\fR.
+The \fBvwscanw\fR and \fBvw_scanw\fR routines are analogous to \fBvscanf\fR.
+They perform a \fBwscanw\fR using a variable argument list.
+The third argument is a \fIva_list\fR,
+a pointer to a list of arguments, as defined in \fB<stdarg.h>\fR.
 .SH RETURN VALUE
 \fBvwscanw\fR returns \fBERR\fR on failure and an integer equal to the
 number of fields scanned on success.
 .SH RETURN VALUE
 \fBvwscanw\fR returns \fBERR\fR on failure and an integer equal to the
 number of fields scanned on success.
@@ -71,6 +70,23 @@ which were mapped in the call.
 The XSI Curses standard, Issue 4 describes these functions.  The function
 \fBvwscanw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
 \fBvw_scanw\fR using the \fB<stdarg.h>\fR interface.
 The XSI Curses standard, Issue 4 describes these functions.  The function
 \fBvwscanw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
 \fBvw_scanw\fR using the \fB<stdarg.h>\fR interface.
+The Single Unix Specification, Version 2 states that
+\fBvw_scanw\fR  is preferred to \fBvwscanw\fR since the latter requires
+including \fB<varargs.h>\fR, which
+cannot be used in the same file as \fB<stdarg.h>\fR.
+This implementation uses \fB<stdarg.h>\fR for both, because that header
+is included in \fB<curses.h\fR>.
+.LP
+Both XSI and The Single Unix Specification, Version 2 state that these
+functions return ERR or OK.
+Since the underlying \fBscanf\fR can return the number of items scanned,
+and the SVr4 code was documented to use this feature,
+this is probably an editing error which was introduced in XSI,
+rather than being done intentionally.
+Portable applications should only test if the return value is ERR,
+since the OK value (zero) is likely to be misleading.
+One possible way to get useful results would be to use a "%n" conversion
+at the end of the format string to ensure that something was processed.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
 .\"#
index 863b587d0bc751941c8d869c087958a5777932d4..f957ac96db7c2fe8a013113ec5dab96fd98ebc7a 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scroll.3x,v 1.8 2000/07/01 17:54:23 tom Exp $
+.\" $Id: curs_scroll.3x,v 1.9 2001/10/14 00:51:56 tom Exp $
 .TH curs_scroll 3X ""
 .SH NAME
 \fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
 .TH curs_scroll 3X ""
 .SH NAME
 \fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
 \fBint wscrl(WINDOW *win, int n);\fR
 .br
 .SH DESCRIPTION
 \fBint wscrl(WINDOW *win, int n);\fR
 .br
 .SH DESCRIPTION
-The \fBscroll\fR routine scrolls the window up one line.  This involves moving
-the lines in the window data structure.  As an optimization, if the scrolling
+The \fBscroll\fR routine scrolls the window up one line.
+This involves moving
+the lines in the window data structure.
+As an optimization, if the scrolling
 region of the window is the entire screen, the physical screen may be scrolled
 at the same time.
 
 For positive \fIn\fR, the \fBscrl\fR and \fBwscrl\fR routines scroll the
 window up \fIn\fR lines (line \fIi\fR+\fIn\fR becomes \fIi\fR); otherwise
 region of the window is the entire screen, the physical screen may be scrolled
 at the same time.
 
 For positive \fIn\fR, the \fBscrl\fR and \fBwscrl\fR routines scroll the
 window up \fIn\fR lines (line \fIi\fR+\fIn\fR becomes \fIi\fR); otherwise
-scroll the window down \fIn\fR lines.  This involves moving the lines in the
-window character image structure.  The current cursor position is not changed.
+scroll the window down \fIn\fR lines.
+This involves moving the lines in the
+window character image structure.
+The current cursor position is not changed.
 
 For these functions to work, scrolling must be enabled via \fBscrollok\fR.
 .SH RETURN VALUE
 
 For these functions to work, scrolling must be enabled via \fBscrollok\fR.
 .SH RETURN VALUE
@@ -59,8 +63,9 @@ Note that \fBscrl\fR and \fBscroll\fR may be macros.
 
 The SVr4 documentation says that the optimization of physically scrolling 
 immediately if the scroll region is the entire screen "is" performed, not
 
 The SVr4 documentation says that the optimization of physically scrolling 
 immediately if the scroll region is the entire screen "is" performed, not
-"may be" performed.  This implementation deliberately does not guarantee
-that this will occur, in order to leave open the possibility of smarter
+"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. 
 
 Neither the SVr4 nor the XSI documentation specify whether the current
 optimization of multiple scroll actions on the next update. 
 
 Neither the SVr4 nor the XSI documentation specify whether the current
index c52a70556f0184d436fb74579414024400a78f8d..8f1ae8a0d9bfebd9f7464001534c45065cc81fd2 100644 (file)
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_slk.3x,v 1.10 2000/07/01 17:52:44 tom Exp $
+.\" $Id: curs_slk.3x,v 1.11 2001/03/03 21:05:41 Todd.C.Miller Exp $
 .TH curs_slk 3X ""
 .SH NAME
 \fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
 .TH curs_slk 3X ""
 .SH NAME
 \fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
@@ -34,7 +34,7 @@
 \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_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_attr\fR, \fBslk_color\fR - \fBcurses\fR soft label routines
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
index 3938bc0f0326ed236cbdb513259216c701358b97..d285b8663345c97c0333662e18fcdbaab5d36c80 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termattrs.3x,v 1.6 2000/07/08 12:53:34 tom Exp $
+.\" $Id: curs_termattrs.3x,v 1.8 2002/05/11 21:32:26 tom Exp $
 .TH curs_termattrs 3X ""
 .SH NAME
 .TH curs_termattrs 3X ""
 .SH NAME
-\fBbaudrate\fR, \fBerasechar\fR, \fBhas_ic\fR,
-\fBhas_il\fR, \fBkillchar\fR, \fBlongname\fR, \fBtermattrs\fR,
+\fBbaudrate\fR,
+\fBerasechar\fR,
+\fBerasewchar\fR,
+\fBhas_ic\fR,
+\fBhas_il\fR,
+\fBkillchar\fR,
+\fBkillwchar\fR,
+\fBlongname\fR,
+\fBterm_attrs\fR,
+\fBtermattrs\fR,
 \fBtermname\fR - \fBcurses\fR environment query routines
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 \fBtermname\fR - \fBcurses\fR environment query routines
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .br
 \fBchar erasechar(void);\fR
 .br
 .br
 \fBchar erasechar(void);\fR
 .br
+\fBint erasewchar(wchar_t *\fR\fIch\fR\fB);\fR
+.br
 \fBbool has_ic(void);\fR
 .br
 \fBbool has_il(void);\fR
 .br
 \fBchar killchar(void);\fR
 .br
 \fBbool has_ic(void);\fR
 .br
 \fBbool has_il(void);\fR
 .br
 \fBchar killchar(void);\fR
 .br
+\fBint killwchar(wchar_t *\fR\fIch\fR\fB);\fR
+.br
 \fBchar *longname(void);\fR
 .br
 \fBchar *longname(void);\fR
 .br
-\fBattr_t termattrs(void);\fR
+\fBattr_t term_attrs(void);\fR
+.br
+\fBchtype termattrs(void);\fR
 .br
 \fBchar *termname(void);\fR
 .br
 .br
 \fBchar *termname(void);\fR
 .br
@@ -58,6 +72,11 @@ integer.
 
 The \fBerasechar\fR routine returns the user's current erase character.
 
 
 The \fBerasechar\fR routine returns the user's current erase character.
 
+The \fBerasewchar\fR routine stores the current erase character
+in the location referenced by \fIch\fR.
+If no erase character has been defined, the routine fails
+and the location referenced by \fIch\fR is not changed.
+
 The \fBhas_ic\fR routine is true if the terminal has insert- and delete-
 character capabilities.
 
 The \fBhas_ic\fR routine is true if the terminal has insert- and delete-
 character capabilities.
 
@@ -68,6 +87,11 @@ scrolling using \fBscrollok\fR.
 
 The \fBkillchar\fR routine returns the user's current line kill character.
 
 
 The \fBkillchar\fR routine returns the user's current line kill character.
 
+The \fBkillwchar\fR routine stores the current line-kill character
+in the location referenced by \fIch\fR.
+If no line-kill character has been defined,
+the routine fails and the location referenced by \fIch\fR is not changed.
+
 The \fBlongname\fR routine returns a pointer to a static area
 containing a verbose description of the current terminal.  The maximum
 length of a verbose description is 128 characters.  It is defined only
 The \fBlongname\fR routine returns a pointer to a static area
 containing a verbose description of the current terminal.  The maximum
 length of a verbose description is 128 characters.  It is defined only
@@ -79,9 +103,11 @@ terminals.
 
 If a given terminal doesn't support a video attribute that an
 application program is trying to use, \fBcurses\fR may substitute a
 
 If a given terminal doesn't support a video attribute that an
 application program is trying to use, \fBcurses\fR may substitute a
-different video attribute for it.  The \fBtermattrs\fR function
-returns a logical \fBOR\fR of all video attributes supported by the
-terminal.  This information is useful when a \fBcurses\fR program
+different video attribute for it.
+The \fBtermattrs\fR and \fBterm_attrs\fR functions
+return a logical \fBOR\fR of all video attributes supported by the
+terminal using \fIA_\fR and \fIWA_\fR constants respectively.
+This information is useful when a \fBcurses\fR program
 needs complete control over the appearance of the screen.
 
 The \fBtermname\fR routine returns the value of the environmental
 needs complete control over the appearance of the screen.
 
 The \fBtermname\fR routine returns the value of the environmental
index 01395bfe1d3deedd6eaad4705fe9f887256c5493..828bb9ad3cfdf53c35da3ec2fad5458383afca93 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termcap.3x,v 1.13 2000/07/01 20:10:57 tom Exp $
+.\" $Id: curs_termcap.3x,v 1.16 2002/02/16 19:26:41 tom Exp $
 .TH curs_termcap 3X ""
 .ds n 5
 .SH NAME
 .TH curs_termcap 3X ""
 .ds n 5
 .SH NAME
 .br
 \fB#include <term.h>\fR
 .br
 .br
 \fB#include <term.h>\fR
 .br
-\fBint tgetent(const char *bp, char *name);\fR
+\fBextern char PC;\fR
+\fBextern char * UP;\fR
+\fBextern char * BC;\fR
+\fBextern @NCURSES_OSPEED@ ospeed;\fR
 .br
 .br
-\fBint tgetflag(const char *id);\fR
+\fBint tgetent(char *bp, const char *name);\fR
 .br
 .br
-\fBint tgetnum(const char *id);\fR
+\fBint tgetflag(char *id);\fR
 .br
 .br
-\fBchar *tgetstr(const char *id, char **area);\fR
+\fBint tgetnum(char *id);\fR
+.br
+\fBchar *tgetstr(char *id, char **area);\fR
 .br
 \fBchar *tgoto(const char *cap, int col, int row);\fR
 .br
 .br
 \fBchar *tgoto(const char *cap, int col, int row);\fR
 .br
@@ -78,12 +83,32 @@ The return value will also be copied to the buffer pointed to by \fIarea\fR,
 and the \fIarea\fR value will be updated to point past the null ending
 this value.
 
 and the \fIarea\fR value will be updated to point past the null ending
 this value.
 
+Only the first two characters of the \fBid\fR parameter of
+\fBtgetflag\fR,
+\fBtgetnum\fR and
+\fBtgetstr\fR are compared in lookups.
+
 The \fBtgoto\fR routine instantiates the parameters into the given capability.
 The output from this routine is to be passed to \fBtputs\fR.
 
 The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
 page.  It can retrieve capabilities by either termcap or terminfo name.
 
 The \fBtgoto\fR routine instantiates the parameters into the given capability.
 The output from this routine is to be passed to \fBtputs\fR.
 
 The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
 page.  It can retrieve capabilities by either termcap or terminfo name.
 
+The variables
+\fBPC\fR,
+\fBUP\fR and
+\fBBC\fR
+are set by \fBtgetent\fR to the terminfo entry's data for
+\fBpad_char\fR,
+\fBcursor_up\fR and
+\fBbackspace_if_not_bs\fR,
+respectively.
+\fBUP\fR is not used by ncurses.
+\fBPC\fR is used in the \fBtdelay_output\fR function.
+\fBBC\fR is used in the \fBtgoto\fR emulation.
+The variable \fBospeed\fR is set by ncurses in a system-specific coding
+to reflect the terminal speed.
+
 .SH RETURN VALUE
 Except where explicitly noted,
 routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
 .SH RETURN VALUE
 Except where explicitly noted,
 routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
@@ -96,7 +121,11 @@ If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
 be aware that it will be returned in terminfo notation, not the older and
 not-quite-compatible termcap notation.  This won't cause problems if all
 you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
 be aware that it will be returned in terminfo notation, not the older and
 not-quite-compatible termcap notation.  This won't cause problems if all
 you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
-terminfo-style.
+terminfo-style strings as terminfo.
+(The \fBtgoto\fR function, if configured to support termcap, will check
+if the string is indeed terminfo-style by looking for "%p" parameters or
+"$<..>" delays, and invoke a termcap-style parser if the string does not
+appear to be terminfo).
 
 Because terminfo conventions for representing padding in string capabilities
 differ from termcap's, \fBtputs("50");\fR will put out a literal "50" rather
 
 Because terminfo conventions for representing padding in string capabilities
 differ from termcap's, \fBtputs("50");\fR will put out a literal "50" rather
@@ -108,6 +137,17 @@ are marked TO BE WITHDRAWN and may be removed in future versions.
 Neither the XSI Curses standard nor the SVr4 man pages documented the return
 values of \fBtgetent\fR correctly, though all three were in fact returned ever
 since SVr1.
 Neither the XSI Curses standard nor the SVr4 man pages documented the return
 values of \fBtgetent\fR correctly, though all three were in fact returned ever
 since SVr1.
+In particular, an omission in the XSI Curses documentation has been
+misinterpreted to mean that \fBtgetent\fR returns \fBOK\fR or \fBERR\fR.
+Because the purpose of these functions is to provide compatibility with
+the \fItermcap\fR library, that is a defect in XCurses, Issue 4, Version 2
+rather than in ncurses.
+
+External variables are provided for support of certain termcap applications.
+However, termcap applications' use of those variables is poorly documented,
+e.g., not distinguishing between input and output.
+In particular, some applications are reported to declare and/or
+modify \fBospeed\fR.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
 .\"#
index bb5c8ca6cfa3fe746e6e0c2c7d1266017cbfcff1..ee0ef0c00c309bcaca82edc4a1533da73f26a2b1 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_terminfo.3x,v 1.13 2000/07/01 20:07:34 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.16 2002/07/20 16:05:19 tom Exp $
 .TH curs_terminfo 3X ""
 .ds n 5
 .SH NAME
 .TH curs_terminfo 3X ""
 .ds n 5
 .SH NAME
-\fBsetupterm\fR,
-\fBsetterm\fR,
-\fBset_curterm\fR,
 \fBdel_curterm\fR,
 \fBdel_curterm\fR,
+\fBmvcur\fR,
+\fBputp\fR,
 \fBrestartterm\fR,
 \fBrestartterm\fR,
+\fBset_curterm\fR,
+\fBsetterm\fR,
+\fBsetupterm\fR,
+\fBtigetflag\fR,
+\fBtigetnum\fR,
+\fBtigetstr\fR,
 \fBtparm\fR,
 \fBtputs\fR,
 \fBtparm\fR,
 \fBtputs\fR,
-\fBputp\fR,
-\fBvidputs\fR,
+\fBvid_attr\fR,
+\fBvid_puts\fR,
 \fBvidattr\fR,
 \fBvidattr\fR,
-\fBmvcur\fR,
-\fBtigetflag\fR,
-\fBtigetnum\fR,
-\fBtigetstr\fR - \fBcurses\fR interfaces to terminfo database
+\fBvidputs\fR - \fBcurses\fR interfaces to terminfo database
 .SH SYNOPSIS
 .SH SYNOPSIS
+.nf
 \fB#include <curses.h>\fR
 .br
 \fB#include <term.h>\fR
 
 \fB#include <curses.h>\fR
 .br
 \fB#include <term.h>\fR
 
-\fBint setupterm(const char *term, int fildes, int *errret);\fR
+\fBint setupterm(char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
+.br
+\fBint setterm(char *\fR\fIterm\fR\fB);\fR
 .br
 .br
-\fBint setterm(const char *term);\fR
+\fBTERMINAL *set_curterm(TERMINAL *\fR\fInterm\fR\fB);\fR
 .br
 .br
-\fBTERMINAL *set_curterm(TERMINAL *nterm);\fR
+\fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
 .br
 .br
-\fBint del_curterm(TERMINAL *oterm);\fR
+\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
 .br
 .br
-\fBint restartterm(const char *term, int fildes, int *errret);\fR
+\fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR
 .br
 .br
-\fBchar *tparm(const char *str, ...);\fR
+\fBint tputs(const char *\fR\fIstr\fR\fB, int \fR\fIaffcnt\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
 .br
 .br
-\fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR
+\fBint putp(const char *\fR\fIstr\fR\fB);\fR
 .br
 .br
-\fBint putp(const char *str);\fR
+\fBint vidputs(chtype \fR\fIattrs\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
 .br
 .br
-\fBint vidputs(chtype attrs, int (*putc)(char));\fR
+\fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR
 .br
 .br
-\fBint vidattr(chtype attrs);\fR
+\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR
 .br
 .br
-\fBint mvcur(int oldrow, int oldcol, int newrow, int newcol);\fR
+\fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR
 .br
 .br
-\fBint tigetflag(const char *capname);\fR
+\fBint mvcur(int \fR\fIoldrow\fR\fB, int \fR\fIoldcol\fR\fB, int \fR\fInewrow\fR, int \fR\fInewcol\fR\fB);\fR
 .br
 .br
-\fBint tigetnum(const char *capname);\fR
+\fBint tigetflag(char *\fR\fIcapname\fR\fB);\fR
 .br
 .br
-\fBchar *tigetstr(const char *capname);\fR
+\fBint tigetnum(char *\fR\fIcapname\fR\fB);\fR
 .br
 .br
+\fBchar *tigetstr(char *\fR\fIcapname\fR\fB);\fR
+.br
+.fi
 .SH DESCRIPTION
 These low-level routines must be called by programs that have to deal
 directly with the \fBterminfo\fR database to handle certain terminal
 .SH DESCRIPTION
 These low-level routines must be called by programs that have to deal
 directly with the \fBterminfo\fR database to handle certain terminal
@@ -196,6 +204,17 @@ the \fBputchar\fR-like routine \fIputc\fR.
 The \fBvidattr\fR routine is like the \fBvidputs\fR routine, except
 that it outputs through \fBputchar\fR.
 
 The \fBvidattr\fR routine is like the \fBvidputs\fR routine, except
 that it outputs through \fBputchar\fR.
 
+The \fBvid_attr\fR and \fBvid_puts\fR routines correspond to vidattr and vidputs,
+respectively.
+They use a set of arguments for representing the video attributes plus color,
+i.e.,
+one of type attr_t for the attributes and one of short for
+the color_pair number.
+The \fBvid_attr\fR and \fBvid_puts\fR routines
+are designed to use the attribute constants with the \fIWA_\fR prefix.
+The opts argument is reserved for future use.
+Currently, applications must provide a null pointer for that argument.
+
 The \fBmvcur\fR routine provides low-level cursor motion.  It takes
 effect immediately (rather than at the next refresh).
 
 The \fBmvcur\fR routine provides low-level cursor motion.  It takes
 effect immediately (rather than at the next refresh).
 
@@ -253,6 +272,9 @@ In System V Release 4, the third argument of \fBtputs\fR has the type
 
 The XSI Curses standard prototypes \fBtparm\fR with a fixed number of parameters,
 rather than a variable argument list.
 
 The XSI Curses standard prototypes \fBtparm\fR with a fixed number of parameters,
 rather than a variable argument list.
+This implementation uses a variable argument list.
+Portable applications should provide 9 parameters after the format;
+zeroes are fine for this purpose.
 
 XSI notes that after calling \fBmvcur\fR, the curses state may not match the
 actual terminal state, and that an application should touch and refresh
 
 XSI notes that after calling \fBmvcur\fR, the curses state may not match the
 actual terminal state, and that an application should touch and refresh
index a9dc57c7c7b3c44ebe00360af9e255f5cdbb93f3..4af258da3b09128deb63303a917c8038ba245375 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 2000 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2000,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_trace.3x,v 1.3 2000/07/29 16:34:24 tom Exp $
+.\" $Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp $
 .TH curs_trace 3X ""
 .SH NAME
 \fB_tracef\fR,
 .TH curs_trace 3X ""
 .SH NAME
 \fB_tracef\fR,
@@ -131,7 +131,6 @@ maximum trace level, enables all of the separate trace features.
 Some tracing features are enabled whenever the \fBtrace\fR parameter
 is nonzero.  Some features overlap.
 The specific names are used as a guideline.
 Some tracing features are enabled whenever the \fBtrace\fR parameter
 is nonzero.  Some features overlap.
 The specific names are used as a guideline.
-..
 .SH RETURN VALUE
 Routines which return a value are designed to be used as parameters
 to the \fB_tracef\fR routine.
 .SH RETURN VALUE
 Routines which return a value are designed to be used as parameters
 to the \fB_tracef\fR routine.
index 8f85cf4ef66c12aa588ede55b18fff975603014a..90f00d072dda91cd4d457506a132635fbae3c967 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.6 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_util.3x,v 1.9 2002/09/01 19:44:37 tom Exp $
 .TH curs_util 3X ""
 .SH NAME
 .TH curs_util 3X ""
 .SH NAME
-\fBunctrl\fR, \fBkeyname\fR, \fBfilter\fR,
-\fBuse_env\fR, \fBputwin\fR, \fBgetwin\fR, \fBdelay_output\fR,
-\fBflushinp\fR - miscellaneous \fBcurses\fR utility routines
+\fBdelay_output\fR,
+\fBfilter\fR,
+\fBflushinp\fR,
+\fBgetwin\fR,
+\fBkey_name\fR,
+\fBkeyname\fR,
+\fBputwin\fR,
+\fBunctrl\fR,
+\fBuse_env\fR,
+\fBwunctrl\fR - miscellaneous \fBcurses\fR utility routines
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 \fBchar *unctrl(chtype c);\fR
 .br
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 \fBchar *unctrl(chtype c);\fR
 .br
+\fBchar *wunctrl(wchar_t w);\fR
+.br
 \fBchar *keyname(int c);\fR
 .br
 \fBchar *keyname(int c);\fR
 .br
+\fBchar *key_name(wchar_t w);\fR
+.br
 \fBvoid filter(void);\fR
 .br
 \fBvoid filter(void);\fR
 .br
-\fBvoid use_env(char bool);\fR
+\fBvoid use_env(bool f);\fR
 .br
 \fBint putwin(WINDOW *win, FILE *filep);\fR
 .br
 .br
 \fBint putwin(WINDOW *win, FILE *filep);\fR
 .br
 \fBint flushinp(void);\fR
 .br
 .SH DESCRIPTION
 \fBint flushinp(void);\fR
 .br
 .SH DESCRIPTION
-The \fBunctrl\fR macro expands to a character string which is a printable
-representation of the character \fIc\fR.  Control characters are displayed in
-the \fB^\fR\fIX\fR notation.  Printing characters are displayed as is.
+The \fBunctrl\fR routine returns a character string which is a printable
+representation of the character \fIc\fR, ignoring attributes.
+Control characters are displayed in the \fB^\fR\fIX\fR notation.
+Printing characters are displayed as is.
+The corresponding \fBwunctrl\fR returns a printable representation of
+a wide-character.
 
 
-The \fBkeyname\fR routine returns a character string corresponding to
-the key \fIc\fR.
+The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR.
+Control characters are displayed in the \fB^\fR\fIX\fR notation.
+Values above 128 are either meta characters, shown in the \fBM-\fR\fIX\fR notation,
+or the names of function keys, or null.
+The corresponding \fBkey_name\fR returns a character string corresponding
+to the wide-character value \fIw\fR.
+The two functions do not return the same set of strings;
+the latter returns null where the former would display a meta character.
 
 The \fBfilter\fR routine, if used, must be called before \fBinitscr\fR or
 \fBnewterm\fR are called.  The effect is that, during those calls, \fBLINES\fR
 
 The \fBfilter\fR routine, if used, must be called before \fBinitscr\fR or
 \fBnewterm\fR are called.  The effect is that, during those calls, \fBLINES\fR
@@ -98,12 +118,12 @@ upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
 Routines that return pointers return \fBNULL\fR on error.
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions.
 Routines that return pointers return \fBNULL\fR on error.
 .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
+unsuccessful, but does not define any error conditions.
 
 The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
 terms.  The description here is adapted from the XSI Curses standard (which
 erroneously fails to describe the disabling of \fBcuu\fR).
 
 The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
 terms.  The description here is adapted from the XSI Curses standard (which
 erroneously fails to describe the disabling of \fBcuu\fR).
-.SH NOTES
-Note that \fBunctrl\fR is a macro, which is defined in <\fBunctrl.h\fR>.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_scr_dump\fR(3X).
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_scr_dump\fR(3X).
 .\"#
index 9d6d97c9e803e3a806758e256be38f20f30afa95..4ebb90124a8a3b977662f2cce7751d74bc10c7f6 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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,2000
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1997,1999,2000
 .\"
-.\" $Id: default_colors.3x,v 1.13 2000/07/15 22:06:50 tom Exp $
+.\" $Id: default_colors.3x,v 1.16 2002/02/16 22:39:52 tom Exp $
 .TH default_colors 3X ""
 .SH NAME
 .TH default_colors 3X ""
 .SH NAME
-\fBdefault_colors\fR:
 \fBuse_default_colors\fR,
 \fBassume_default_colors\fR \- use terminal's default colors
 \fBuse_default_colors\fR,
 \fBassume_default_colors\fR \- use terminal's default colors
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint use_default_colors(void);\fP
 .br
 \fBint assume_default_colors(int fg, int bg);\fP
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint use_default_colors(void);\fP
 .br
 \fBint assume_default_colors(int fg, int bg);\fP
-..
 .SH DESCRIPTION
 The
 .I use_default_colors()
 .SH DESCRIPTION
 The
 .I use_default_colors()
@@ -100,28 +97,23 @@ or
 .I assume_default_colors()
 ncurses will paint a white foreground (text) with black background
 for color pair 0.
 .I assume_default_colors()
 ncurses will paint a white foreground (text) with black background
 for color pair 0.
-..
 .SH RETURN VALUE
 These functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
 They will fail if either the terminal does not support
 the \fIorig_pair\fP or \fIorig_colors\fP capability.
 If the \fIinitialize_pair\fP capability is found, this causes an
 error as well.
 .SH RETURN VALUE
 These functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
 They will fail if either the terminal does not support
 the \fIorig_pair\fP or \fIorig_colors\fP capability.
 If the \fIinitialize_pair\fP capability is found, this causes an
 error as well.
-..
 .SH NOTES
 Associated with this extension, the \fBinit_pair\fR(3X) function accepts
 negative arguments to specify default foreground or background
 colors.
 .SH NOTES
 Associated with this extension, the \fBinit_pair\fR(3X) function accepts
 negative arguments to specify default foreground or background
 colors.
-..
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
-..
 .SH SEE ALSO
 \fBcurs_color\fR(3X),
 \fBded\fP(1).
 .SH SEE ALSO
 \fBcurs_color\fR(3X),
 \fBded\fP(1).
-..
 .SH AUTHOR
 Thomas Dickey (from an analysis of the requirements for color xterm
 for XFree86 3.1.2C, February 1996).
 .SH AUTHOR
 Thomas Dickey (from an analysis of the requirements for color xterm
 for XFree86 3.1.2C, February 1996).
index 047d78f8b82a129cdbc2c891b638224c94609acd..1019c42fd770def5bcaff3425df63aef74fb598b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1997
 .\"
-.\" $Id: define_key.3x,v 1.6 1999/02/19 11:43:17 tom Exp $
+.\" $Id: define_key.3x,v 1.8 2002/02/16 22:39:52 tom Exp $
 .TH define_key 3X ""
 .SH NAME
 \fBdefine_key\fP \- define a keycode
 .TH define_key 3X ""
 .SH NAME
 \fBdefine_key\fP \- define a keycode
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint define_key(char *definition, int keycode);\fP
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint define_key(char *definition, int keycode);\fP
-..
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to define keycodes with their corresponding control
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to define keycodes with their corresponding control
@@ -48,18 +46,14 @@ If the given string is null, any existing definition for the keycode is
 removed.
 Similarly, if the given keycode is negative or zero, any existing string
 for the given definition is removed.
 removed.
 Similarly, if the given keycode is negative or zero, any existing string
 for the given definition is removed.
-..
 .SH RETURN VALUE
 The keycode must be greater than zero, else ERR is returned.
 .SH RETURN VALUE
 The keycode must be greater than zero, else ERR is returned.
-..
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
-..
 .SH SEE ALSO
 \fBkeyok\fR(3X).
 .SH SEE ALSO
 \fBkeyok\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey.
 .\"#
 .SH AUTHOR
 Thomas Dickey.
 .\"#
index 51c1e8c15d5afb58b18522e9c82df2890a2baa66..811b9ff747398e6eb92d5b4f3a8e6125ed336310 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form.3x,v 1.13 1999/07/10 21:53:03 tom Exp $
+.\" $Id: form.3x,v 1.15 2002/01/19 22:48:05 tom Exp $
 .TH form 3X ""
 .SH NAME
 \fBform\fR - curses extension for programming forms
 .TH form 3X ""
 .SH NAME
 \fBform\fR - curses extension for programming forms
@@ -177,7 +177,7 @@ No fields are connected to the form.
 \fBE_REQUEST_DENIED\fR
 The form driver could not process the request.
 .SH SEE ALSO
 \fBE_REQUEST_DENIED\fR
 The form driver could not process the request.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header files
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header files
index 408aecd9ea42c10af3dc9c4075ce2902e1fc77c2..2354089101965740b3779976aa9f4970a60f56e5 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: form_driver.3x,v 1.7 1999/07/10 23:13:18 tom Exp $
+.\" $Id: form_driver.3x,v 1.9 2002/02/16 22:39:52 tom Exp $
 .TH form_driver 3X ""
 .SH NAME
 \fBform_driver\fR - command-processing loop of the form system
 .TH form_driver 3X ""
 .SH NAME
 \fBform_driver\fR - command-processing loop of the form system
index 7f6293dcef734864a86a45ddd44e166dfeeeddfc..ac7a3b53eeceb1eb6b7961cd9faa054af2dc5282 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_attributes.3x,v 1.5 1998/11/29 01:06:02 Rick.Ohnemus Exp $
+.\" $Id: form_field_attributes.3x,v 1.7 2002/01/19 22:48:14 tom Exp $
 .TH form_field_attributes 3X ""
 .SH NAME
 \fBform_field_attributes\fR - color and attribute control for form fields
 .TH form_field_attributes 3X ""
 .SH NAME
 \fBform_field_attributes\fR - color and attribute control for form fields
@@ -44,7 +44,7 @@ chtype field_back(const FIELD *field);
 .br
 int set_field_pad(FIELD *field, int pad);
 .br
 .br
 int set_field_pad(FIELD *field, int pad);
 .br
-chtype field_pad(const FIELD *field);
+int field_pad(const FIELD *field);
 .br
 .SH DESCRIPTION
 The function \fBset_field_fore\fR sets the foreground attribute of
 .br
 .SH DESCRIPTION
 The function \fBset_field_fore\fR sets the foreground attribute of
@@ -72,7 +72,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
index 202d4e7e0da5db2bc16328b19ba30a7de0d84ad8..814c5d9d58f4693af9300a80691b60327fa92d6b 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_buffer.3x,v 1.8 1999/06/16 00:37:09 juergen Exp $
+.\" $Id: form_field_buffer.3x,v 1.9 2002/01/19 22:48:23 tom Exp $
 .TH form_field_buffer 3X ""
 .SH NAME
 \fBform_field_buffer\fR - field buffer control
 .TH form_field_buffer 3X ""
 .SH NAME
 \fBform_field_buffer\fR - field buffer control
@@ -80,7 +80,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
index 6165dd76479efe925806c1d76f37a06cdcf4d6d1..56b81ac7daa0a1066d65687616393a7d5a16d98f 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_info.3x,v 1.6 2000/04/15 22:21:31 tom Exp $
+.\" $Id: form_field_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp $
 .TH form_field_info 3X ""
 .SH NAME
 \fBform_field_info\fR - retrieve field characteristics
 .TH form_field_info 3X ""
 .SH NAME
 \fBform_field_info\fR - retrieve field characteristics
@@ -37,7 +37,7 @@
 int field_info(const FIELD *field, int *rows, int *cols,
               int *frow, int *fcol, int *nrow, int *nbuf);
 .br
 int field_info(const FIELD *field, int *rows, int *cols,
               int *frow, int *fcol, int *nrow, int *nbuf);
 .br
-int dynamic_field_info(const FIELD *field, int *rows, int *cols, *max);
+int dynamic_field_info(const FIELD *field, int *rows, int *cols, int *max);
 .br
 .SH DESCRIPTION
 The function \fBfield_info\fR returns the sizes and other attributes passed in
 .br
 .SH DESCRIPTION
 The function \fBfield_info\fR returns the sizes and other attributes passed in
@@ -61,7 +61,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
index dcb46768d96c46a324c77980690670f0d2fca1a3..9468d8b77512f8aadfada65602d191eb390e79a9 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_just.3x,v 1.5 1998/11/29 01:06:32 Rick.Ohnemus Exp $
+.\" $Id: form_field_just.3x,v 1.6 2002/01/19 22:48:41 tom Exp $
 .TH form_field_just 3X ""
 .SH NAME
 \fBform_field_just\fR - retrieve field characteristics
 .TH form_field_just 3X ""
 .SH NAME
 \fBform_field_just\fR - retrieve field characteristics
@@ -59,7 +59,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
index b798b5bb3e95bc8d83548bb46d616c9cdde07ee1..969152057d6d9cb4abc93d3abe2c00092ebd4d60 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: form_field_new.3x,v 1.9 1998/11/29 01:06:44 Rick.Ohnemus Exp $
+.\" $Id: form_field_new.3x,v 1.11 2002/02/16 22:39:52 tom Exp $
 .TH form_field_new 3X ""
 .SH NAME
 \fBform_field_new\fR - create and destroy form fields
 .TH form_field_new 3X ""
 .SH NAME
 \fBform_field_new\fR - create and destroy form fields
index c3f90ba5cb4e987615198881b7c919e488ccc107..cc3d508d2d3232bd3857028ff0bc37979f3fb519 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: form_field_validation.3x,v 1.10 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: form_field_validation.3x,v 1.12 2002/02/16 22:39:52 tom Exp $
 .TH form_field_validation 3X ""
 .SH NAME
 \fBform_field_validation\fR - data type validation for fields 
 .TH form_field_validation 3X ""
 .SH NAME
 \fBform_field_validation\fR - data type validation for fields 
index d93ba281a1c89128916f828100526d5def3c04a6..69a8e2082466018892ce9294264178f17ef77003 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_fieldtype.3x,v 1.8 2000/07/15 22:02:03 tom Exp $
+.\" $Id: form_fieldtype.3x,v 1.9 2001/08/04 20:36:25 William.Setzer Exp $
 .TH form_fieldtype 3X ""
 .SH NAME
 \fBform_fieldtype\fR - define validation-field types
 .TH form_fieldtype 3X ""
 .SH NAME
 \fBform_fieldtype\fR - define validation-field types
@@ -47,7 +47,7 @@ int set_fieldtype_arg(
     void  (* const free_arg)(void *));
 .br
 int set_fieldtype_choice(
     void  (* const free_arg)(void *));
 .br
 int set_fieldtype_choice(
-    FIELDTYPE *fieldtype
+    FIELDTYPE *fieldtype,
     bool (* const next_choice)(FIELD *, const void *),
     bool (* const prev_choice)(FIELD *, const void *));
 .br
     bool (* const next_choice)(FIELD *, const void *),
     bool (* const prev_choice)(FIELD *, const void *));
 .br
index b93b48c18c88c7151036bfffc484ce642ed662a8..432f624f5298595747dad31e9ee9622bf0dc5ae6 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_new_page.3x,v 1.5 1998/11/29 01:07:45 Rick.Ohnemus Exp $
+.\" $Id: form_new_page.3x,v 1.6 2002/01/19 22:48:51 tom Exp $
 .TH form_new_page 3X ""
 .SH NAME
 \fBform_new_page\fR - form pagination functions
 .TH form_new_page 3X ""
 .SH NAME
 \fBform_new_page\fR - form pagination functions
@@ -58,7 +58,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_CONNECTED\fR
 The given field is already connected to a form.
 .SH SEE ALSO
 \fBE_CONNECTED\fR
 The given field is already connected to a form.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "form_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
index 1276cca5183780583daee35e904f432940c22b17..9ecdfa3ea4eb33df1b38df439143c5b505e8bbc3 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.27 2000/08/19 18:51:05 tom Exp $
+.\" $Id: infocmp.1m,v 1.30 2002/10/05 21:22:21 tom Exp $
 .TH infocmp 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
 \fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
 .SH SYNOPSIS
 .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-dceEGgnpqrILCuV1\fR] [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR]
+\fBinfocmp\fR [\fB-\
+1\
+C\
+E\
+F\
+G\
+I\
+L\
+T\
+V\
+c\
+d\
+e\
+g\
+i\
+l\
+n\
+p\
+q\
+r\
+t\
+u\
+\fR]
+.br
+      [\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]
 .br
 .br
       [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
 .br
@@ -46,12 +70,10 @@ terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
 binary file (\fBterm\fR) in a variety of formats.  In all cases, the boolean
 fields will be printed first, followed by the numeric fields, followed by the
 string fields.
 binary file (\fBterm\fR) in a variety of formats.  In all cases, the boolean
 fields will be printed first, followed by the numeric fields, followed by the
 string fields.
-..
 .SS Default Options
 If no options are specified and zero or one \fItermnames\fR are specified, the
 \fB-I\fR option will be assumed.  If more than one \fItermname\fR is specified,
 the \fB-d\fR option will be assumed.
 .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]
 \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
 .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
@@ -72,7 +94,6 @@ 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.
 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
 each terminal named.
 .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.
@@ -166,7 +187,6 @@ 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.
 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]
 The location of the compiled \fBterminfo\fR database is taken from the
 environment variable \fBTERMINFO\fR .  If the variable is not defined, or the
 .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
@@ -178,81 +198,17 @@ 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.
 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 [-s d|i|l|c] [-1FTVefip] [-Rsubset] [-v \fIn\fR] [-w \fIwidth\fR]
-The \fB-s\fR option sorts the fields within each type according to the argument
-below:
-..
-.TP 5
-\fBd\fR
-leave fields in the order that they are stored in the \fIterminfo\fR database.
-.TP 5
-\fBi\fR
-sort by \fIterminfo\fR name.
-.TP 5
-\fBl\fR
-sort by the long C variable name.
-.TP 5
-\fBc\fR
-sort by the \fItermcap\fR name.
-
-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
-sorting to be done by the \fBtermcap\fR name or the long C variable
-name, respectively.
+.SS Other Options
 .TP 5
 \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 5
 \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 5
-\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.
-The report printed to standard output lists entries with no matches in
-the other file, and entries with more than one match.  For entries
-with exactly one match it includes a difference report.  Normally,
-to reduce the volume of the report, use references are
-not resolved before looking for differences, but resolution can be forced
-by also specifying \fB-r\fR.
-.TP
-\fB-G\fR
-Display constant literals in decimal form
-rather than their character equivalents.
 .TP
 \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
 .TP
 \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-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
-Restrict output to a given subset.  This option is for use with archaic
-versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
-the full set of SVR4/XSI Curses terminfo; and variants such as AIX
-that have their own extensions incompatible with SVr4/XSI.  Available terminfo
-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 5
-\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 5
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.TP 5
-\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-E\fR
 Dump the capabilities of the given terminal as tables, needed in
 the C initializer for a
 \fB-E\fR
 Dump the capabilities of the given terminal as tables, needed in
 the C initializer for a
@@ -265,11 +221,32 @@ and the name of the corresponding terminal entry.
 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.
 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
+.TP 5
+\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
+compare terminfo files.  This assumes that two following arguments are
+filenames.  The files are searched for pairwise matches between
+entries, with two entries considered to match if any of their names do.
+The report printed to standard output lists entries with no matches in
+the other file, and entries with more than one match.  For entries
+with exactly one match it includes a difference report.  Normally,
+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.
+.TP 5
 \fB-f\fR
 Display complex terminfo strings which contain if/then/else/endif expressions
 indented for readability.
 \fB-f\fR
 Display complex terminfo strings which contain if/then/else/endif expressions
 indented for readability.
-.TP
+.TP 5
+\fB-G\fR
+Display constant literals in decimal form
+rather than their character equivalents.
+.TP 5
 \fB-g\fR
 Display constant character literals in quoted form
 rather than their decimal equivalents.
 \fB-g\fR
 Display constant character literals in quoted form
 rather than their decimal equivalents.
@@ -325,21 +302,73 @@ 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
 
 An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
 .TP 5
+\bB-l\fR
+Set output format to terminfo.
+.TP 5
 \fB-p\fR
 Ignore padding specifications when comparing strings.
 .TP 5
 \fB-p\fR
 Ignore padding specifications when comparing strings.
 .TP 5
+\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
+Restrict output to a given subset.  This option is for use with archaic
+versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
+the full set of SVR4/XSI Curses terminfo; and variants such as AIX
+that have their own extensions incompatible with SVr4/XSI.  Available terminfo
+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
+below:
+.br
+.RS 5
+.TP 5
+\fBd\fR
+leave fields in the order that they are stored in the \fIterminfo\fR database.
+.TP 5
+\fBi\fR
+sort by \fIterminfo\fR name.
+.TP 5
+\fBl\fR
+sort by the long C variable name.
+.TP 5
+\fBc\fR
+sort by the \fItermcap\fR name.
+.RE
+.IP
+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
+sorting to be done by the \fBtermcap\fR name or the long C variable
+name, respectively.
+.TP 5
+\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
+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
+reports the version of ncurses which was used in this program, and exits.
+.TP 5
 \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
 changes the output to \fIwidth\fR characters.
 \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
 changes the output to \fIwidth\fR characters.
-..
 .SH FILES
 .TP 20
 \*d
 Compiled terminal description database.
 .SH FILES
 .TP 20
 \*d
 Compiled terminal description database.
-..
 .SH EXTENSIONS
 The
 \fB-E\fR,
 .SH EXTENSIONS
 The
 \fB-E\fR,
@@ -353,8 +382,10 @@ The
 \fB-f\fR,
 \fB-g\fR,
 \fB-i\fR,
 \fB-f\fR,
 \fB-g\fR,
 \fB-i\fR,
-\fB-p\fR, and
-\fB-q\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.
 options are not supported in SVr4 curses.
 
 The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
@@ -369,6 +400,7 @@ The -F option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
 .SH AUTHOR
 Eric S. Raymond <esr@snark.thyrsus.com>
 and
 .SH AUTHOR
 Eric S. Raymond <esr@snark.thyrsus.com>
 and
+.br
 Thomas E. Dickey <dickey@herndon4.his.com>
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 Thomas E. Dickey <dickey@herndon4.his.com>
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index e6bf5e4e731a45f62245ddc971991b7684bfad01..79c480cfd3867490e14d83b8c14922e186b76513 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1999 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1999,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1999
 .\"
-.\" $Id: keybound.3x,v 1.1 1999/02/19 11:59:24 tom Exp $
+.\" $Id: keybound.3x,v 1.3 2002/02/16 22:30:36 tom Exp $
 .TH keyok 3X ""
 .SH NAME
 \fBkeybound\fP \- return definition of keycode
 .TH keyok 3X ""
 .SH NAME
 \fBkeybound\fP \- return definition of keycode
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
-\fBint keybound(int keycode, int count);\fP
-..
+\fBchar * keybound(int keycode, int count);\fP
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to determine the string which is defined
 in the terminfo for specific keycodes.
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to determine the string which is defined
 in the terminfo for specific keycodes.
-..
 .SH RETURN VALUE
 The keycode must be greater than zero, else NULL is returned.
 If it does not correspond to a defined key, then NULL is returned.
 Otherwise, the function returns a string, which must be freed by the caller.
 .SH RETURN VALUE
 The keycode must be greater than zero, else NULL is returned.
 If it does not correspond to a defined key, then NULL is returned.
 Otherwise, the function returns a string, which must be freed by the caller.
-..
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
-..
 .SH SEE ALSO
 \fBdefine_key\fR(3X),
 \fBkeyok\fR(3X).
 .SH SEE ALSO
 \fBdefine_key\fR(3X),
 \fBkeyok\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey.
 .\"#
 .SH AUTHOR
 Thomas Dickey.
 .\"#
index 21befe83ca4bbbf46c73edfd8b96852be1ae7e91..e3f2287abb13ff8b920f4d02aa3c44e88a168699 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1997
 .\"
-.\" $Id: keyok.3x,v 1.5 1998/03/14 23:43:07 tom Exp $
+.\" $Id: keyok.3x,v 1.7 2002/02/16 22:40:59 tom Exp $
 .TH keyok 3X ""
 .SH NAME
 \fBkeyok\fP \- enable or disable a keycode
 .TH keyok 3X ""
 .SH NAME
 \fBkeyok\fP \- enable or disable a keycode
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint keyok(int keycode, bool enable);\fP
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
 \fBint keyok(int keycode, bool enable);\fP
-..
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to disable specific keycodes, rather than
 use the \fIkeypad\fP function to disable all keycodes.
 Keys that have been disabled can be reenabled.
 .SH DESCRIPTION
 This is an extension to the curses library.
 It permits an application to disable specific keycodes, rather than
 use the \fIkeypad\fP function to disable all keycodes.
 Keys that have been disabled can be reenabled.
-..
 .SH RETURN VALUE
 The keycode must be greater than zero, else ERR is returned.
 If it does not correspond to a defined key, then ERR is returned.
 If the \fIenable\fP parameter is true, then the key must have been disabled,
 and vice versa.
 Otherwise, the function returns OK.
 .SH RETURN VALUE
 The keycode must be greater than zero, else ERR is returned.
 If it does not correspond to a defined key, then ERR is returned.
 If the \fIenable\fP parameter is true, then the key must have been disabled,
 and vice versa.
 Otherwise, the function returns OK.
-..
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
-..
 .SH SEE ALSO
 \fBdefine_key\fR(3X).
 .SH SEE ALSO
 \fBdefine_key\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey.
 .\"#
 .SH AUTHOR
 Thomas Dickey.
 .\"#
index b824861003c03ce51b5a0246dd2ec8950aba9419..7aaf1de286106e5b0240c67a0e69f1d19758cc9e 100644 (file)
@@ -1,30 +1,44 @@
-# $Id: man_db.renames,v 0.20 2000/07/15 22:58:35 tom Exp $
+# $Id: man_db.renames,v 0.31 2002/04/13 21:49:08 tom Exp $
 # Manual-page renamings for the man_db program
 #
 # Manual-page renamings for the man_db program
 #
+# Files:
 captoinfo.1m                   captoinfo.1
 clear.1                                clear.1
 captoinfo.1m                   captoinfo.1
 clear.1                                clear.1
+curs_add_wch.3x                        add_wch.3ncurses
+curs_add_wchstr.3x             add_wchstr.3ncurses
 curs_addch.3x                  addch.3ncurses
 curs_addchstr.3x               addchstr.3ncurses
 curs_addstr.3x                 addstr.3ncurses
 curs_addch.3x                  addch.3ncurses
 curs_addchstr.3x               addchstr.3ncurses
 curs_addstr.3x                 addstr.3ncurses
+curs_addwstr.3x                        addwstr.3ncurses
 curs_attr.3x                   attr.3ncurses
 curs_beep.3x                   beep.3ncurses
 curs_bkgd.3x                   bkgd.3ncurses
 curs_attr.3x                   attr.3ncurses
 curs_beep.3x                   beep.3ncurses
 curs_bkgd.3x                   bkgd.3ncurses
+curs_bkgrnd.3x                 bkgrnd.3ncurses
 curs_border.3x                 border.3ncurses
 curs_border.3x                 border.3ncurses
+curs_border_set.3x             border_set.3ncurses
 curs_clear.3x                  clear.3ncurses
 curs_color.3x                  color.3ncurses
 curs_delch.3x                  delch.3ncurses
 curs_deleteln.3x               deleteln.3ncurses
 curs_extend.3x                 extensions.3ncurses
 curs_clear.3x                  clear.3ncurses
 curs_color.3x                  color.3ncurses
 curs_delch.3x                  delch.3ncurses
 curs_deleteln.3x               deleteln.3ncurses
 curs_extend.3x                 extensions.3ncurses
+curs_get_wch.3x                        get_wch.3ncurses
+curs_get_wstr.3x               get_wstr.3ncurses
+curs_getcchar.3x               getcchar.3ncurses
 curs_getch.3x                  getch.3ncurses
 curs_getstr.3x                 getstr.3ncurses
 curs_getyx.3x                  getyx.3ncurses
 curs_getch.3x                  getch.3ncurses
 curs_getstr.3x                 getstr.3ncurses
 curs_getyx.3x                  getyx.3ncurses
+curs_in_wch.3x                 in_wch.3ncurses
+curs_in_wchstr.3x              in_wchstr.3ncurses
 curs_inch.3x                   inch.3ncurses
 curs_inchstr.3x                        inchstr.3ncurses
 curs_initscr.3x                        initscr.3ncurses
 curs_inopts.3x                 inopts.3ncurses
 curs_inch.3x                   inch.3ncurses
 curs_inchstr.3x                        inchstr.3ncurses
 curs_initscr.3x                        initscr.3ncurses
 curs_inopts.3x                 inopts.3ncurses
+curs_ins_wch.3x                        ins_wch.3ncurses
+curs_ins_wstr.3x               ins_wstr.3ncurses
 curs_insch.3x                  insch.3ncurses
 curs_insstr.3x                 insstr.3ncurses
 curs_instr.3x                  instr.3ncurses
 curs_insch.3x                  insch.3ncurses
 curs_insstr.3x                 insstr.3ncurses
 curs_instr.3x                  instr.3ncurses
+curs_inwstr.3x                 inwstr.3ncurses
 curs_kernel.3x                 kernel.3ncurses
 curs_mouse.3x                  mouse.3ncurses
 curs_move.3x                   move.3ncurses
 curs_kernel.3x                 kernel.3ncurses
 curs_mouse.3x                  mouse.3ncurses
 curs_move.3x                   move.3ncurses
@@ -115,3 +129,10 @@ tput.1                             tput.1
 tset.1                         tset.1
 vprintf.3s                     vprintf.3
 wresize.3x                     wresize.3ncurses
 tset.1                         tset.1
 vprintf.3s                     vprintf.3
 wresize.3x                     wresize.3ncurses
+#
+# Other cross-references:
+addch.3x                       addch.3ncurses
+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
index e175148aab9a4e648e9d9be02e30a44f0e3522ba..5babc5db73a599f06f896817c6477018bf570126 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: manlinks.sed,v 1.9 2000/09/30 23:32:24 tom Exp $
+# $Id: manlinks.sed,v 1.10 2002/09/21 19:02:03 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 2000 Free Software Foundation, Inc.                          #
+# Copyright (c) 2000,2002 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -33,6 +33,7 @@
 /\.\\"/d
 /^\.br/d
 /^\.sp/d
 /\.\\"/d
 /^\.br/d
 /^\.sp/d
+s/^\.IX//
 s/\\f.//g
 s/[:,]/ /g
 s/^[   ][      ]*//
 s/\\f.//g
 s/[:,]/ /g
 s/^[   ][      ]*//
index 8279844a39e25e8dffca48338861700aba9edd7c..e81913c43cb96a7449f92878dea0856af6f242db 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu.3x,v 1.14 2000/07/15 22:55:59 tom Exp $
+.\" $Id: menu.3x,v 1.15 2002/01/19 22:48:58 tom Exp $
 .TH menu 3X ""
 .SH NAME
 \fBmenu\fR - curses extension for programming menus
 .TH menu 3X ""
 .SH NAME
 \fBmenu\fR - curses extension for programming menus
@@ -167,7 +167,7 @@ No items are connected to the menu.
 \fBE_REQUEST_DENIED\fR
 The menu driver could not process the request.
 .SH SEE ALSO
 \fBE_REQUEST_DENIED\fR
 The menu driver could not process the request.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "menu_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<menu.h>\fR automatically includes the header files
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<menu.h>\fR automatically includes the header files
index 82412609c9ab12b6a015206455c34e8ecfcb7662..99a2ac2bc1012e3657232fca9977659a4d706d5a 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_attributes.3x,v 1.6 1998/11/29 01:09:20 Rick.Ohnemus Exp $
+.\" $Id: menu_attributes.3x,v 1.7 2002/01/19 22:49:06 tom Exp $
 .TH menu_attributes 3X ""
 .SH NAME
 \fBmenu_attributes\fR - color and attribute control for menus
 .TH menu_attributes 3X ""
 .SH NAME
 \fBmenu_attributes\fR - color and attribute control for menus
@@ -81,7 +81,7 @@ System error occurred (see \fBerrno\fR).
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
 \fBE_BAD_ARGUMENT\fR
 Routine detected an incorrect or out-of-range argument.
 .SH SEE ALSO
-\fBcurses\fR(3X) and 3X pages whose names begin "menu_" for detailed
+\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<menu.h>\fR automatically includes the header file
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<menu.h>\fR automatically includes the header file
index cffd08d850eee01f435739d74f17c76652ebda10..0e6f9e02f38fef70f417f2094efce5872d6a3291 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: menu_driver.3x,v 1.8 1999/01/09 22:55:18 tom Exp $
+.\" $Id: menu_driver.3x,v 1.10 2002/02/16 22:40:59 tom Exp $
 .TH menu_driver 3X ""
 .SH NAME
 \fBmenu_driver\fR - command-processing loop of the menu system
 .TH menu_driver 3X ""
 .SH NAME
 \fBmenu_driver\fR - command-processing loop of the menu system
index 57c77a390ede3989404e728d77e7e8ed9aeae814..7dde28face88b021be0c846667d354144e07c600 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_format.3x,v 1.7 1998/11/29 01:09:39 Rick.Ohnemus Exp $
+.\" $Id: menu_format.3x,v 1.8 2001/08/04 20:36:19 William.Setzer Exp $
 .TH menu_format 3X ""
 .SH NAME
 \fBmenu_format\fR - set and get menu sizes
 .TH menu_format 3X ""
 .SH NAME
 \fBmenu_format\fR - set and get menu sizes
@@ -36,7 +36,7 @@
 .br
 int set_menu_format(MENU *menu, int rows, int cols);
 .br
 .br
 int set_menu_format(MENU *menu, int rows, int cols);
 .br
-int menu_format(const MENU *menu, int *rows, int *cols);
+void menu_format(const MENU *menu, int *rows, int *cols);
 .br
 .SH DESCRIPTION
 The function \fBset_menu_format\fR sets the maximum display size of the given
 .br
 .SH DESCRIPTION
 The function \fBset_menu_format\fR sets the maximum display size of the given
index 693ebe35729a25f3b0ecfd57e323ae2198f69fa2..990a9dc52bac6b2e7fabe7246849e286633fcab0 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: menu_pattern.3x,v 1.5 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: menu_pattern.3x,v 1.7 2002/02/16 22:40:59 tom Exp $
 .TH menu_pattern 3X ""
 .SH NAME
 \fBmenu_pattern\fR - get and set a menu's pattern buffer
 .TH menu_pattern 3X ""
 .SH NAME
 \fBmenu_pattern\fR - get and set a menu's pattern buffer
index 0480b3c02d4b063f46893eb69a5745f1d93eff82..183162193204e02dc515812192568fdc3230d099 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_spacing.3x,v 1.5 1998/11/29 01:10:51 Rick.Ohnemus Exp $
+.\" $Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp $
 .TH menu_spacing 3X ""
 .SH NAME
 \fBmenu_spacing\fR - Control spacing between menu items.
 .TH menu_spacing 3X ""
 .SH NAME
 \fBmenu_spacing\fR - Control spacing between menu items.
 \fB#include <menu.h>\fR
 .br
 int set_menu_spacing(MENU *menu,
 \fB#include <menu.h>\fR
 .br
 int set_menu_spacing(MENU *menu,
-                     int spc_description
+                     int spc_description,
                      int spc_rows,
                      int spc_columns);
 .br
 int menu_spacing(const MENU *menu,
                      int spc_rows,
                      int spc_columns);
 .br
 int menu_spacing(const MENU *menu,
-                 int* spc_description
+                 int* spc_description,
                  int* spc_rows,
                  int* spc_columns);
 .br
                  int* spc_rows,
                  int* spc_columns);
 .br
index 680fda8869c325d336529431f2cdbe80000c6e87..5817d8d277b6b919517e83ff0d4ae70fb300775e 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.'" $Id: mitem_value.3x,v 1.4 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: mitem_value.3x,v 1.6 2002/02/16 22:40:59 tom Exp $
 .TH mitem_value 3X ""
 .SH NAME
 \fBmitem_value\fR - set and get menu item values
 .TH mitem_value 3X ""
 .SH NAME
 \fBmitem_value\fR - set and get menu item values
index 3b36fa9a6df1671780602016aefda64749c40240..f5abde440c69b47ea799b9b786169258c319f88c 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998,1999,2001,2002 Free Software Foundation, Inc.         *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.44 2000/10/08 01:39:26 tom Exp $
+.\" $Id: ncurses.3x,v 1.63 2002/08/10 21:56:07 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ds n 5
 .hy 0
 .TH ncurses 3X ""
 .ds n 5
@@ -209,11 +209,16 @@ _tracechtype2/\fBcurs_trace\fR(3X)*
 _tracedump/\fBcurs_trace\fR(3X)*
 _tracef/\fBcurs_trace\fR(3X)*
 _tracemouse/\fBcurs_trace\fR(3X)*
 _tracedump/\fBcurs_trace\fR(3X)*
 _tracef/\fBcurs_trace\fR(3X)*
 _tracemouse/\fBcurs_trace\fR(3X)*
+add_wch/\fBcurs_add_wch\fR(3X)
+add_wchnstr/\fBcurs_add_wchstr\fR(3X)
+add_wchstr/\fBcurs_add_wchstr\fR(3X)
 addch/\fBcurs_addch\fR(3X)
 addchnstr/\fBcurs_addchstr\fR(3X)
 addchstr/\fBcurs_addchstr\fR(3X)
 addnstr/\fBcurs_addstr\fR(3X)
 addch/\fBcurs_addch\fR(3X)
 addchnstr/\fBcurs_addchstr\fR(3X)
 addchstr/\fBcurs_addchstr\fR(3X)
 addnstr/\fBcurs_addstr\fR(3X)
+addnwstr/\fBcurs_addwstr\fR(3X)
 addstr/\fBcurs_addstr\fR(3X)
 addstr/\fBcurs_addstr\fR(3X)
+addwstr/\fBcurs_addwstr\fR(3X)
 assume_default_colors/\fBdefault_colors\fR(3X)*
 attr_get/\fBcurs_attr\fR(3X)
 attr_off/\fBcurs_attr\fR(3X)
 assume_default_colors/\fBdefault_colors\fR(3X)*
 attr_get/\fBcurs_attr\fR(3X)
 attr_off/\fBcurs_attr\fR(3X)
@@ -226,8 +231,12 @@ baudrate/\fBcurs_termattrs\fR(3X)
 beep/\fBcurs_beep\fR(3X)
 bkgd/\fBcurs_bkgd\fR(3X)
 bkgdset/\fBcurs_bkgd\fR(3X)
 beep/\fBcurs_beep\fR(3X)
 bkgd/\fBcurs_bkgd\fR(3X)
 bkgdset/\fBcurs_bkgd\fR(3X)
+bkgrnd/\fBcurs_bkgrnd\fR(3X)
+bkgrndset/\fBcurs_bkgrnd\fR(3X)
 border/\fBcurs_border\fR(3X)
 border/\fBcurs_border\fR(3X)
+border_set/\fBcurs_border_set\fR(3X)
 box/\fBcurs_border\fR(3X)
 box/\fBcurs_border\fR(3X)
+box_set/\fBcurs_border_set\fR(3X)
 can_change_color/\fBcurs_color\fR(3X)
 cbreak/\fBcurs_inopts\fR(3X)
 chgat/\fBcurs_attr\fR(3X)
 can_change_color/\fBcurs_color\fR(3X)
 cbreak/\fBcurs_inopts\fR(3X)
 chgat/\fBcurs_attr\fR(3X)
@@ -253,18 +262,25 @@ derwin/\fBcurs_window\fR(3X)
 doupdate/\fBcurs_refresh\fR(3X)
 dupwin/\fBcurs_window\fR(3X)
 echo/\fBcurs_inopts\fR(3X)
 doupdate/\fBcurs_refresh\fR(3X)
 dupwin/\fBcurs_window\fR(3X)
 echo/\fBcurs_inopts\fR(3X)
+echo_wchar/\fBcurs_add_wch\fR(3X)
 echochar/\fBcurs_addch\fR(3X)
 endwin/\fBcurs_initscr\fR(3X)
 erase/\fBcurs_clear\fR(3X)
 erasechar/\fBcurs_termattrs\fR(3X)
 echochar/\fBcurs_addch\fR(3X)
 endwin/\fBcurs_initscr\fR(3X)
 erase/\fBcurs_clear\fR(3X)
 erasechar/\fBcurs_termattrs\fR(3X)
+erasewchar/\fBcurs_termattrs\fR(3X)
 filter/\fBcurs_util\fR(3X)
 flash/\fBcurs_beep\fR(3X)
 flushinp/\fBcurs_util\fR(3X)
 filter/\fBcurs_util\fR(3X)
 flash/\fBcurs_beep\fR(3X)
 flushinp/\fBcurs_util\fR(3X)
+get_wch/\fBcurs_get_wch\fR(3X)
+get_wstr/\fBcurs_get_wstr\fR(3X)
 getbegyx/\fBcurs_getyx\fR(3X)
 getbkgd/\fBcurs_bkgd\fR(3X)
 getbegyx/\fBcurs_getyx\fR(3X)
 getbkgd/\fBcurs_bkgd\fR(3X)
+getbkgrnd/\fBcurs_bkgrnd\fR(3X)
+getcchar/\fBcurs_getcchar\fR(3X)
 getch/\fBcurs_getch\fR(3X)
 getmaxyx/\fBcurs_getyx\fR(3X)
 getmouse/\fBcurs_mouse\fR(3X)*
 getch/\fBcurs_getch\fR(3X)
 getmaxyx/\fBcurs_getyx\fR(3X)
 getmouse/\fBcurs_mouse\fR(3X)*
+getn_wstr/\fBcurs_get_wstr\fR(3X)
 getnstr/\fBcurs_getstr\fR(3X)
 getparyx/\fBcurs_getyx\fR(3X)
 getstr/\fBcurs_getstr\fR(3X)
 getnstr/\fBcurs_getstr\fR(3X)
 getparyx/\fBcurs_getyx\fR(3X)
 getstr/\fBcurs_getstr\fR(3X)
@@ -277,9 +293,13 @@ has_ic/\fBcurs_termattrs\fR(3X)
 has_il/\fBcurs_termattrs\fR(3X)
 has_key/\fBcurs_getch\fR(3X)*
 hline/\fBcurs_border\fR(3X)
 has_il/\fBcurs_termattrs\fR(3X)
 has_key/\fBcurs_getch\fR(3X)*
 hline/\fBcurs_border\fR(3X)
+hline_set/\fBcurs_border_set\fR(3X)
 idcok/\fBcurs_outopts\fR(3X)
 idlok/\fBcurs_outopts\fR(3X)
 immedok/\fBcurs_outopts\fR(3X)
 idcok/\fBcurs_outopts\fR(3X)
 idlok/\fBcurs_outopts\fR(3X)
 immedok/\fBcurs_outopts\fR(3X)
+in_wch/\fBcurs_in_wch\fR(3X)
+in_wchnstr/\fBcurs_in_wchstr\fR(3X)
+in_wchstr/\fBcurs_in_wchstr\fR(3X)
 inch/\fBcurs_inch\fR(3X)
 inchnstr/\fBcurs_inchstr\fR(3X)
 inchstr/\fBcurs_inchstr\fR(3X)
 inch/\fBcurs_inch\fR(3X)
 inchnstr/\fBcurs_inchstr\fR(3X)
 inchstr/\fBcurs_inchstr\fR(3X)
@@ -287,6 +307,10 @@ init_color/\fBcurs_color\fR(3X)
 init_pair/\fBcurs_color\fR(3X)
 initscr/\fBcurs_initscr\fR(3X)
 innstr/\fBcurs_instr\fR(3X)
 init_pair/\fBcurs_color\fR(3X)
 initscr/\fBcurs_initscr\fR(3X)
 innstr/\fBcurs_instr\fR(3X)
+innwstr/\fBcurs_inwstr\fR(3X)
+ins_nwstr/\fBcurs_ins_wstr\fR(3X)
+ins_wch/\fBcurs_ins_wch\fR(3X)
+ins_wstr/\fBcurs_ins_wstr\fR(3X)
 insch/\fBcurs_insch\fR(3X)
 insdelln/\fBcurs_deleteln\fR(3X)
 insertln/\fBcurs_deleteln\fR(3X)
 insch/\fBcurs_insch\fR(3X)
 insdelln/\fBcurs_deleteln\fR(3X)
 insertln/\fBcurs_deleteln\fR(3X)
@@ -294,14 +318,17 @@ insnstr/\fBcurs_insstr\fR(3X)
 insstr/\fBcurs_insstr\fR(3X)
 instr/\fBcurs_instr\fR(3X)
 intrflush/\fBcurs_inopts\fR(3X)
 insstr/\fBcurs_insstr\fR(3X)
 instr/\fBcurs_instr\fR(3X)
 intrflush/\fBcurs_inopts\fR(3X)
+inwstr/\fBcurs_inwstr\fR(3X)
 is_linetouched/\fBcurs_touch\fR(3X)
 is_wintouched/\fBcurs_touch\fR(3X)
 isendwin/\fBcurs_initscr\fR(3X)
 is_linetouched/\fBcurs_touch\fR(3X)
 is_wintouched/\fBcurs_touch\fR(3X)
 isendwin/\fBcurs_initscr\fR(3X)
+key_name/\fBcurs_util\fR(3X)
 keybound/\fBkeybound\fR(3X)*
 keyname/\fBcurs_util\fR(3X)
 keyok/\fBkeyok\fR(3X)*
 keypad/\fBcurs_inopts\fR(3X)
 killchar/\fBcurs_termattrs\fR(3X)
 keybound/\fBkeybound\fR(3X)*
 keyname/\fBcurs_util\fR(3X)
 keyok/\fBkeyok\fR(3X)*
 keypad/\fBcurs_inopts\fR(3X)
 killchar/\fBcurs_termattrs\fR(3X)
+killwchar/\fBcurs_termattrs\fR(3X)
 leaveok/\fBcurs_outopts\fR(3X)
 longname/\fBcurs_termattrs\fR(3X)
 mcprint/\fBcurs_print\fR(3X)*
 leaveok/\fBcurs_outopts\fR(3X)
 longname/\fBcurs_termattrs\fR(3X)
 mcprint/\fBcurs_print\fR(3X)*
@@ -310,53 +337,89 @@ mouse_trafo/\fBcurs_mouse\fR(3X)*
 mouseinterval/\fBcurs_mouse\fR(3X)*
 mousemask/\fBcurs_mouse\fR(3X)*
 move/\fBcurs_move\fR(3X)
 mouseinterval/\fBcurs_mouse\fR(3X)*
 mousemask/\fBcurs_mouse\fR(3X)*
 move/\fBcurs_move\fR(3X)
+mvadd_wch/\fBcurs_add_wch\fR(3X)
+mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
+mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
 mvaddch/\fBcurs_addch\fR(3X)
 mvaddchnstr/\fBcurs_addchstr\fR(3X)
 mvaddchstr/\fBcurs_addchstr\fR(3X)
 mvaddnstr/\fBcurs_addstr\fR(3X)
 mvaddch/\fBcurs_addch\fR(3X)
 mvaddchnstr/\fBcurs_addchstr\fR(3X)
 mvaddchstr/\fBcurs_addchstr\fR(3X)
 mvaddnstr/\fBcurs_addstr\fR(3X)
+mvaddnwstr/\fBcurs_addwstr\fR(3X)
 mvaddstr/\fBcurs_addstr\fR(3X)
 mvaddstr/\fBcurs_addstr\fR(3X)
+mvaddwstr/\fBcurs_addwstr\fR(3X)
 mvchgat/\fBcurs_attr\fR(3X)
 mvcur/\fBcurs_terminfo\fR(3X)
 mvdelch/\fBcurs_delch\fR(3X)
 mvderwin/\fBcurs_window\fR(3X)
 mvchgat/\fBcurs_attr\fR(3X)
 mvcur/\fBcurs_terminfo\fR(3X)
 mvdelch/\fBcurs_delch\fR(3X)
 mvderwin/\fBcurs_window\fR(3X)
+mvget_wch/\fBcurs_get_wch\fR(3X)
+mvget_wstr/\fBcurs_get_wstr\fR(3X)
 mvgetch/\fBcurs_getch\fR(3X)
 mvgetch/\fBcurs_getch\fR(3X)
+mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
 mvgetnstr/\fBcurs_getstr\fR(3X)
 mvgetstr/\fBcurs_getstr\fR(3X)
 mvhline/\fBcurs_border\fR(3X)
 mvgetnstr/\fBcurs_getstr\fR(3X)
 mvgetstr/\fBcurs_getstr\fR(3X)
 mvhline/\fBcurs_border\fR(3X)
+mvhline_set/\fBcurs_border_set\fR(3X)
+mvin_wch/\fBcurs_in_wch\fR(3X)
+mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
+mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
 mvinch/\fBcurs_inch\fR(3X)
 mvinchnstr/\fBcurs_inchstr\fR(3X)
 mvinchstr/\fBcurs_inchstr\fR(3X)
 mvinnstr/\fBcurs_instr\fR(3X)
 mvinch/\fBcurs_inch\fR(3X)
 mvinchnstr/\fBcurs_inchstr\fR(3X)
 mvinchstr/\fBcurs_inchstr\fR(3X)
 mvinnstr/\fBcurs_instr\fR(3X)
+mvinnwstr/\fBcurs_inwstr\fR(3X)
+mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
+mvins_wch/\fBcurs_ins_wch\fR(3X)
+mvins_wstr/\fBcurs_ins_wstr\fR(3X)
 mvinsch/\fBcurs_insch\fR(3X)
 mvinsnstr/\fBcurs_insstr\fR(3X)
 mvinsstr/\fBcurs_insstr\fR(3X)
 mvinstr/\fBcurs_instr\fR(3X)
 mvinsch/\fBcurs_insch\fR(3X)
 mvinsnstr/\fBcurs_insstr\fR(3X)
 mvinsstr/\fBcurs_insstr\fR(3X)
 mvinstr/\fBcurs_instr\fR(3X)
+mvinwstr/\fBcurs_inwstr\fR(3X)
 mvprintw/\fBcurs_printw\fR(3X)
 mvscanw/\fBcurs_scanw\fR(3X)
 mvvline/\fBcurs_border\fR(3X)
 mvprintw/\fBcurs_printw\fR(3X)
 mvscanw/\fBcurs_scanw\fR(3X)
 mvvline/\fBcurs_border\fR(3X)
+mvvline_set/\fBcurs_border_set\fR(3X)
+mvwadd_wch/\fBcurs_add_wch\fR(3X)
+mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
+mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
 mvwaddch/\fBcurs_addch\fR(3X)
 mvwaddchnstr/\fBcurs_addchstr\fR(3X)
 mvwaddchstr/\fBcurs_addchstr\fR(3X)
 mvwaddnstr/\fBcurs_addstr\fR(3X)
 mvwaddch/\fBcurs_addch\fR(3X)
 mvwaddchnstr/\fBcurs_addchstr\fR(3X)
 mvwaddchstr/\fBcurs_addchstr\fR(3X)
 mvwaddnstr/\fBcurs_addstr\fR(3X)
+mvwaddnwstr/\fBcurs_addwstr\fR(3X)
 mvwaddstr/\fBcurs_addstr\fR(3X)
 mvwaddstr/\fBcurs_addstr\fR(3X)
+mvwaddwstr/\fBcurs_addwstr\fR(3X)
 mvwchgat/\fBcurs_attr\fR(3X)
 mvwdelch/\fBcurs_delch\fR(3X)
 mvwchgat/\fBcurs_attr\fR(3X)
 mvwdelch/\fBcurs_delch\fR(3X)
+mvwget_wch/\fBcurs_get_wch\fR(3X)
+mvwget_wstr/\fBcurs_get_wstr\fR(3X)
 mvwgetch/\fBcurs_getch\fR(3X)
 mvwgetch/\fBcurs_getch\fR(3X)
+mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
 mvwgetnstr/\fBcurs_getstr\fR(3X)
 mvwgetstr/\fBcurs_getstr\fR(3X)
 mvwhline/\fBcurs_border\fR(3X)
 mvwgetnstr/\fBcurs_getstr\fR(3X)
 mvwgetstr/\fBcurs_getstr\fR(3X)
 mvwhline/\fBcurs_border\fR(3X)
+mvwhline_set/\fBcurs_border_set\fR(3X)
 mvwin/\fBcurs_window\fR(3X)
 mvwin/\fBcurs_window\fR(3X)
+mvwin_wch/\fBcurs_in_wch\fR(3X)
+mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
+mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
 mvwinch/\fBcurs_inch\fR(3X)
 mvwinchnstr/\fBcurs_inchstr\fR(3X)
 mvwinchstr/\fBcurs_inchstr\fR(3X)
 mvwinnstr/\fBcurs_instr\fR(3X)
 mvwinch/\fBcurs_inch\fR(3X)
 mvwinchnstr/\fBcurs_inchstr\fR(3X)
 mvwinchstr/\fBcurs_inchstr\fR(3X)
 mvwinnstr/\fBcurs_instr\fR(3X)
+mvwinnwstr/\fBcurs_inwstr\fR(3X)
+mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
+mvwins_wch/\fBcurs_ins_wch\fR(3X)
+mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
 mvwinsch/\fBcurs_insch\fR(3X)
 mvwinsnstr/\fBcurs_insstr\fR(3X)
 mvwinsstr/\fBcurs_insstr\fR(3X)
 mvwinstr/\fBcurs_instr\fR(3X)
 mvwinsch/\fBcurs_insch\fR(3X)
 mvwinsnstr/\fBcurs_insstr\fR(3X)
 mvwinsstr/\fBcurs_insstr\fR(3X)
 mvwinstr/\fBcurs_instr\fR(3X)
+mvwinwstr/\fBcurs_inwstr\fR(3X)
 mvwprintw/\fBcurs_printw\fR(3X)
 mvwscanw/\fBcurs_scanw\fR(3X)
 mvwvline/\fBcurs_border\fR(3X)
 mvwprintw/\fBcurs_printw\fR(3X)
 mvwscanw/\fBcurs_scanw\fR(3X)
 mvwvline/\fBcurs_border\fR(3X)
+mvwvline_set/\fBcurs_border_set\fR(3X)
 napms/\fBcurs_kernel\fR(3X)
 newpad/\fBcurs_pad\fR(3X)
 newterm/\fBcurs_initscr\fR(3X)
 napms/\fBcurs_kernel\fR(3X)
 newpad/\fBcurs_pad\fR(3X)
 newterm/\fBcurs_initscr\fR(3X)
@@ -399,6 +462,7 @@ scroll/\fBcurs_scroll\fR(3X)
 scrollok/\fBcurs_outopts\fR(3X)
 set_curterm/\fBcurs_terminfo\fR(3X)
 set_term/\fBcurs_initscr\fR(3X)
 scrollok/\fBcurs_outopts\fR(3X)
 set_curterm/\fBcurs_terminfo\fR(3X)
 set_term/\fBcurs_initscr\fR(3X)
+setcchar/\fBcurs_getcchar\fR(3X)
 setscrreg/\fBcurs_outopts\fR(3X)
 setsyx/\fBcurs_kernel\fR(3X)
 setterm/\fBcurs_terminfo\fR(3X)
 setscrreg/\fBcurs_outopts\fR(3X)
 setsyx/\fBcurs_kernel\fR(3X)
 setterm/\fBcurs_terminfo\fR(3X)
@@ -425,6 +489,7 @@ start_color/\fBcurs_color\fR(3X)
 subpad/\fBcurs_pad\fR(3X)
 subwin/\fBcurs_window\fR(3X)
 syncok/\fBcurs_window\fR(3X)
 subpad/\fBcurs_pad\fR(3X)
 subwin/\fBcurs_window\fR(3X)
 syncok/\fBcurs_window\fR(3X)
+term_attrs/\fBcurs_termattrs\fR(3X)
 termattrs/\fBcurs_termattrs\fR(3X)
 termname/\fBcurs_termattrs\fR(3X)
 tgetent/\fBcurs_termcap\fR(3X)
 termattrs/\fBcurs_termattrs\fR(3X)
 termname/\fBcurs_termattrs\fR(3X)
 tgetent/\fBcurs_termcap\fR(3X)
@@ -444,24 +509,33 @@ tputs/\fBcurs_terminfo\fR(3X)
 trace/\fBcurs_trace\fR(3X)*
 typeahead/\fBcurs_inopts\fR(3X)
 unctrl/\fBcurs_util\fR(3X)
 trace/\fBcurs_trace\fR(3X)*
 typeahead/\fBcurs_inopts\fR(3X)
 unctrl/\fBcurs_util\fR(3X)
+unget_wch/\fBcurs_get_wch\fR(3X)
 ungetch/\fBcurs_getch\fR(3X)
 ungetmouse/\fBcurs_mouse\fR(3X)*
 untouchwin/\fBcurs_touch\fR(3X)
 use_default_colors/\fBdefault_colors\fR(3X)*
 use_env/\fBcurs_util\fR(3X)
 use_extended_names/\fBcurs_extend\fR(3X)*
 ungetch/\fBcurs_getch\fR(3X)
 ungetmouse/\fBcurs_mouse\fR(3X)*
 untouchwin/\fBcurs_touch\fR(3X)
 use_default_colors/\fBdefault_colors\fR(3X)*
 use_env/\fBcurs_util\fR(3X)
 use_extended_names/\fBcurs_extend\fR(3X)*
+vid_attr/\fBcurs_terminfo\fR(3X)
+vid_puts/\fBcurs_terminfo\fR(3X)
 vidattr/\fBcurs_terminfo\fR(3X)
 vidputs/\fBcurs_terminfo\fR(3X)
 vline/\fBcurs_border\fR(3X)
 vidattr/\fBcurs_terminfo\fR(3X)
 vidputs/\fBcurs_terminfo\fR(3X)
 vline/\fBcurs_border\fR(3X)
+vline_set/\fBcurs_border_set\fR(3X)
 vw_printw/\fBcurs_printw\fR(3X)
 vw_scanw/\fBcurs_scanw\fR(3X)
 vwprintw/\fBcurs_printw\fR(3X)
 vwscanw/\fBcurs_scanw\fR(3X)
 vw_printw/\fBcurs_printw\fR(3X)
 vw_scanw/\fBcurs_scanw\fR(3X)
 vwprintw/\fBcurs_printw\fR(3X)
 vwscanw/\fBcurs_scanw\fR(3X)
+wadd_wch/\fBcurs_add_wch\fR(3X)
+wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
+wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
 waddch/\fBcurs_addch\fR(3X)
 waddchnstr/\fBcurs_addchstr\fR(3X)
 waddchstr/\fBcurs_addchstr\fR(3X)
 waddnstr/\fBcurs_addstr\fR(3X)
 waddch/\fBcurs_addch\fR(3X)
 waddchnstr/\fBcurs_addchstr\fR(3X)
 waddchstr/\fBcurs_addchstr\fR(3X)
 waddnstr/\fBcurs_addstr\fR(3X)
+waddnwstr/\fBcurs_addwstr\fR(3X)
 waddstr/\fBcurs_addstr\fR(3X)
 waddstr/\fBcurs_addstr\fR(3X)
+waddwstr/\fBcurs_addwstr\fR(3X)
 wattr_get/\fBcurs_attr\fR(3X)
 wattr_off/\fBcurs_attr\fR(3X)
 wattr_on/\fBcurs_attr\fR(3X)
 wattr_get/\fBcurs_attr\fR(3X)
 wattr_off/\fBcurs_attr\fR(3X)
 wattr_on/\fBcurs_attr\fR(3X)
@@ -471,7 +545,10 @@ wattron/\fBcurs_attr\fR(3X)
 wattrset/\fBcurs_attr\fR(3X)
 wbkgd/\fBcurs_bkgd\fR(3X)
 wbkgdset/\fBcurs_bkgd\fR(3X)
 wattrset/\fBcurs_attr\fR(3X)
 wbkgd/\fBcurs_bkgd\fR(3X)
 wbkgdset/\fBcurs_bkgd\fR(3X)
+wbkgrnd/\fBcurs_bkgrnd\fR(3X)
+wbkgrndset/\fBcurs_bkgrnd\fR(3X)
 wborder/\fBcurs_border\fR(3X)
 wborder/\fBcurs_border\fR(3X)
+wborder_set/\fBcurs_border_set\fR(3X)
 wchgat/\fBcurs_attr\fR(3X)
 wclear/\fBcurs_clear\fR(3X)
 wclrtobot/\fBcurs_clear\fR(3X)
 wchgat/\fBcurs_attr\fR(3X)
 wclear/\fBcurs_clear\fR(3X)
 wclrtobot/\fBcurs_clear\fR(3X)
@@ -480,23 +557,37 @@ wcolor_set/\fBcurs_attr\fR(3X)
 wcursyncup/\fBcurs_window\fR(3X)
 wdelch/\fBcurs_delch\fR(3X)
 wdeleteln/\fBcurs_deleteln\fR(3X)
 wcursyncup/\fBcurs_window\fR(3X)
 wdelch/\fBcurs_delch\fR(3X)
 wdeleteln/\fBcurs_deleteln\fR(3X)
+wecho_wchar/\fBcurs_add_wch\fR(3X)
 wechochar/\fBcurs_addch\fR(3X)
 wenclose/\fBcurs_mouse\fR(3X)*
 werase/\fBcurs_clear\fR(3X)
 wechochar/\fBcurs_addch\fR(3X)
 wenclose/\fBcurs_mouse\fR(3X)*
 werase/\fBcurs_clear\fR(3X)
+wget_wch/\fBcurs_get_wch\fR(3X)
+wget_wstr/\fBcurs_get_wstr\fR(3X)
+wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
 wgetch/\fBcurs_getch\fR(3X)
 wgetch/\fBcurs_getch\fR(3X)
+wgetn_wstr/\fBcurs_get_wstr\fR(3X)
 wgetnstr/\fBcurs_getstr\fR(3X)
 wgetstr/\fBcurs_getstr\fR(3X)
 whline/\fBcurs_border\fR(3X)
 wgetnstr/\fBcurs_getstr\fR(3X)
 wgetstr/\fBcurs_getstr\fR(3X)
 whline/\fBcurs_border\fR(3X)
+whline_set/\fBcurs_border_set\fR(3X)
+win_wch/\fBcurs_in_wch\fR(3X)
+win_wchnstr/\fBcurs_in_wchstr\fR(3X)
+win_wchstr/\fBcurs_in_wchstr\fR(3X)
 winch/\fBcurs_inch\fR(3X)
 winchnstr/\fBcurs_inchstr\fR(3X)
 winchstr/\fBcurs_inchstr\fR(3X)
 winnstr/\fBcurs_instr\fR(3X)
 winch/\fBcurs_inch\fR(3X)
 winchnstr/\fBcurs_inchstr\fR(3X)
 winchstr/\fBcurs_inchstr\fR(3X)
 winnstr/\fBcurs_instr\fR(3X)
+winnwstr/\fBcurs_inwstr\fR(3X)
+wins_nwstr/\fBcurs_ins_wstr\fR(3X)
+wins_wch/\fBcurs_ins_wch\fR(3X)
+wins_wstr/\fBcurs_ins_wstr\fR(3X)
 winsch/\fBcurs_insch\fR(3X)
 winsdelln/\fBcurs_deleteln\fR(3X)
 winsertln/\fBcurs_deleteln\fR(3X)
 winsnstr/\fBcurs_insstr\fR(3X)
 winsstr/\fBcurs_insstr\fR(3X)
 winstr/\fBcurs_instr\fR(3X)
 winsch/\fBcurs_insch\fR(3X)
 winsdelln/\fBcurs_deleteln\fR(3X)
 winsertln/\fBcurs_deleteln\fR(3X)
 winsnstr/\fBcurs_insstr\fR(3X)
 winsstr/\fBcurs_insstr\fR(3X)
 winstr/\fBcurs_instr\fR(3X)
+winwstr/\fBcurs_inwstr\fR(3X)
 wmouse_trafo/\fBcurs_mouse\fR(3X)*
 wmove/\fBcurs_move\fR(3X)
 wnoutrefresh/\fBcurs_refresh\fR(3X)
 wmouse_trafo/\fBcurs_mouse\fR(3X)*
 wmove/\fBcurs_move\fR(3X)
 wnoutrefresh/\fBcurs_refresh\fR(3X)
@@ -513,7 +604,9 @@ wsyncdown/\fBcurs_window\fR(3X)
 wsyncup/\fBcurs_window\fR(3X)
 wtimeout/\fBcurs_inopts\fR(3X)
 wtouchln/\fBcurs_touch\fR(3X)
 wsyncup/\fBcurs_window\fR(3X)
 wtimeout/\fBcurs_inopts\fR(3X)
 wtouchln/\fBcurs_touch\fR(3X)
+wunctrl/\fBcurs_util\fR(3X)
 wvline/\fBcurs_border\fR(3X)
 wvline/\fBcurs_border\fR(3X)
+wvline_set/\fBcurs_border_set\fR(3X)
 .TE
 .SH RETURN VALUE
 Routines that return an integer return \fBERR\fR upon failure and an
 .TE
 .SH RETURN VALUE
 Routines that return an integer return \fBERR\fR upon failure and an
@@ -613,6 +706,17 @@ 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, \fBncurses\fR uses 132.
 .TP 5
 The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
 If it is not specified, \fBncurses\fR uses 132.
 .TP 5
+NCURSES_ASSUMED_COLORS
+Override the compiled-in assumption that the
+terminal's default colors are white-on-black
+(see \fBassume_default_colors\fR(3X)).
+You may set the foreground and background color values with this environment
+variable by proving a 2-element list: foreground,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 \fBmax_colors\fR value is allowed.
+.TP 5
 NCURSES_NO_PADDING
 Most of the terminal descriptions in the terminfo database are written
 for real "hardware" terminals.
 NCURSES_NO_PADDING
 Most of the terminal descriptions in the terminfo database are written
 for real "hardware" terminals.
@@ -699,14 +803,14 @@ ncurses library, e.g.,
 .TP 5
 TERMINFO_DIRS
 Specifies a list of directories to search for terminal descriptions.
 .TP 5
 TERMINFO_DIRS
 Specifies a list of directories to search for terminal descriptions.
-The list is separated by colons (i.e., ":").
+The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
 All of the terminal descriptions are in terminfo form, which makes
 a subdirectory named for the first letter of the terminal names therein.
 .TP 5
 TERMPATH
 If TERMCAP does not hold a file name then \fBncurses\fR checks
 the TERMPATH symbol.
 All of the terminal descriptions are in terminfo form, which makes
 a subdirectory named for the first letter of the terminal names therein.
 .TP 5
 TERMPATH
 If TERMCAP does not hold a file name then \fBncurses\fR checks
 the TERMPATH symbol.
-This is a list of filenames separated by colons (i.e., ":").
+This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
 If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
 .PP
 If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
 .PP
@@ -721,7 +825,7 @@ directory containing initialization files for the terminal capability database
 @TERMINFO@
 terminal capability database
 .SH SEE ALSO
 @TERMINFO@
 terminal capability database
 .SH SEE ALSO
-\fBterminfo\fR(\*n) and 3X pages whose names begin "curs_" for detailed routine
+\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)
 descriptions.
 .SH EXTENSIONS
 The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
@@ -752,7 +856,7 @@ 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 independently, providing better
 control over color contrasts.
 From the users' perspective, the application is able to draw colored
 text on a background whose color is set independently, providing better
 control over color contrasts.
-See the \fBuse_default_colors\fR(3X) manual page for details.
+See the \fBdefault_colors\fR(3X) manual page for details.
 
 The \fBncurses\fR library includes a function for directing application output
 to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
 
 The \fBncurses\fR library includes a function for directing application output
 to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
@@ -762,113 +866,8 @@ The \fBncurses\fR library is intended to be BASE-level conformant with the XSI
 Curses standard.  Certain portions of the EXTENDED XSI Curses functionality
 (including color support) are supported.  The following EXTENDED XSI Curses
 calls in support of wide (multibyte) characters are not yet implemented:
 Curses standard.  Certain portions of the EXTENDED XSI Curses functionality
 (including color support) are supported.  The following EXTENDED XSI Curses
 calls in support of wide (multibyte) characters are not yet implemented:
-\fBadd_wch\fP,
-\fBadd_wchnstr\fP,
-\fBadd_wchstr\fP,
-\fBaddnwstr\fP,
-\fBaddwstr\fP,
-\fBbkgrnd\fP,
-\fBbkgrndset\fP,
-\fBborder_set\fP,
-\fBbox_set\fP,
-\fBecho_wchar\fP,
-\fBerasewchar\fP,
-\fBget_wch\fP,
-\fBget_wstr\fP,
-\fBgetbkgrnd\fP,
-\fBgetcchar\fP,
-\fBgetn_wstr\fP,
-\fBgetwchtype\fP,
-\fBhline_set\fP,
-\fBin_wch\fP,
-\fBin_wchnstr\fP,
-\fBin_wchstr\fP,
-\fBinnwstr\fP,
-\fBins_nwstr\fP,
-\fBins_wch\fP,
-\fBins_wstr\fP,
-\fBinwchnstr\fP,
-\fBinwchstr\fP,
-\fBinwstr\fP,
-\fBkey_name\fP,
-\fBkillwchar\fP,
-\fBmvadd_wch\fP,
-\fBmvadd_wchnstr\fP,
-\fBmvadd_wchstr\fP,
-\fBmvaddnwstr\fP,
-\fBmvaddwstr\fP,
-\fBmvget_wch\fP,
-\fBmvget_wstr\fP,
-\fBmvgetn_wstr\fP,
-\fBmvhline_set\fP,
-\fBmvin_wch\fP,
-\fBmvinnwstr\fP,
-\fBmvins_nwstr\fP,
-\fBmvins_wch\fP,
-\fBmvins_wstr\fP,
-\fBmvinwchnstr\fP,
-\fBmvinwchstr\fP,
-\fBmvinwchstr\fP,
-\fBmvinwstr\fP,
-\fBmvvline_set\fP,
-\fBmvwadd_wch\fP,
-\fBmvwadd_wchnstr\fP,
-\fBmvwadd_wchstr\fP,
-\fBmvwaddnwstr\fP,
-\fBmvwaddwstr\fP,
-\fBmvwget_ch\fP,
-\fBmvwget_wch\fP,
-\fBmvwget_wstr\fP,
-\fBmvwgetn_wstr\fP,
-\fBmvwhline_set\fP,
-\fBmvwin_wch\fP,
-\fBmvwin_wchnstr\fP,
-\fBmvwin_wchstr\fP,
-\fBmvwinnwstr\fP,
-\fBmvwins_nwstr\fP,
-\fBmvwins_wch\fP,
-\fBmvwins_wstr\fP,
-\fBmvwinwchnstr\fP.
-\fBmvwinwstr\fP,
-\fBmvwvline_set\fP,
 \fBpecho_wchar\fP,
 \fBpecho_wchar\fP,
-\fBsetcchar\fP,
-\fBslk_wset\fP,
-\fBterm_attrs\fP,
-\fBunget_wch\fP,
-\fBvhline_set\fP,
-\fBvid_attr\fP,
-\fBvid_puts\fP,
-\fBvline_set\fP,
-\fBwadd_wch\fP,
-\fBwadd_wchnstr\fP,
-\fBwadd_wchstr\fP,
-\fBwaddnwstr\fP,
-\fBwaddwstr\fP,
-\fBwaddwstr\fP,
-\fBwbkgrnd\fP,
-\fBwbkgrndset\fP,
-\fBwbkgrndset\fP,
-\fBwborder_set\fP,
-\fBwecho_wchar\fP,
-\fBwecho_wchar\fP,
-\fBwget_wch\fP,
-\fBwget_wstr\fP,
-\fBwgetbkgrnd\fP,
-\fBwgetn_wstr\fP,
-\fBwhline_set\fP,
-\fBwin_wch\fP,
-\fBwin_wchnstr\fP,
-\fBwin_wchstr\fP,
-\fBwinnwstr\fP,
-\fBwins_nwstr\fP,
-\fBwins_wch\fP,
-\fBwins_wstr\fP,
-\fBwinwchnstr\fP,
-\fBwinwchstr\fP,
-\fBwinwstr\fP,
-\fBwunctrl\fP,
-\fBwvline_set\fP,
+\fBslk_wset\fP.
 .PP
 A small number of local differences (that is, individual differences between
 the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
 .PP
 A small number of local differences (that is, individual differences between
 the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
@@ -897,18 +896,6 @@ bits in the UNIX tty driver.  In this implementation, all padding is done by
 NUL sends.  This method is slightly more expensive, but narrows the interface
 to the UNIX kernel significantly and increases the package's portability
 correspondingly.
 NUL sends.  This method is slightly more expensive, but narrows the interface
 to the UNIX kernel significantly and increases the package's portability
 correspondingly.
-.PP
-In the XSI standard and SVr4 manual pages, many entry points have prototype
-arguments of the for \fBchar *const\fR (or \fBcchar_t *const\fR, or
-\fBwchar_t *const\fR, or \fBvoid *const\fR).  Depending on one's interpretation of the
-ANSI C standard (see section 3.5.4.1), these declarations are either (a)
-meaningless, or (b) meaningless and illegal.  The declaration
-\fBconst char *x\fR is a modifiable pointer to unmodifiable data, but
-\fBchar *const x\fR' is
-an unmodifiable pointer to modifiable data.  Given that C passes arguments by
-value, \fB<type> *const\fR as a formal type is at best dubious.  Some compilers
-choke on the prototypes.  Therefore, in this implementation, they have been
-changed to \fBconst <type> *\fR globally.
 .SH NOTES
 The header file \fB<curses.h>\fR automatically includes the header files
 \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
 .SH NOTES
 The header file \fB<curses.h>\fR automatically includes the header files
 \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
index 9c7cc8fd3873f011538371453d40bdb152600024..562c35328901cba75ca152f041bbd0e56170d52a 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+.\" Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2002
 .\"
 .\"
-.\" $Id: resizeterm.3x,v 1.7 1998/03/14 23:42:52 tom Exp $
+.\" $Id: resizeterm.3x,v 1.9 2002/02/16 22:32:24 tom Exp $
 .TH resizeterm 3X ""
 .SH NAME
 .TH resizeterm 3X ""
 .SH NAME
+\fBis_term_resized\fR,
+\fBresize_term\fR,
 \fBresizeterm\fR - change the curses terminal size
 \fBresizeterm\fR - change the curses terminal size
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
+\fBbool is_term_resized(int lines, int columns);\fR
+.br
+\fBint resize_term(int lines, int columns);\fR
+.br
 \fBint resizeterm(int lines, int columns);\fR
 \fBint resizeterm(int lines, int columns);\fR
-..
 .SH DESCRIPTION
 This is an extension to the curses library.
 It provides callers with a hook into the \fBncurses\fR data to resize windows,
 .SH DESCRIPTION
 This is an extension to the curses library.
 It provides callers with a hook into the \fBncurses\fR data to resize windows,
@@ -46,26 +50,29 @@ 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.
 
 to the specified dimensions, and adjusts other bookkeeping data used by
 the \fBncurses\fR library that record the window dimensions.
 
-When resizing the windows, the function blank-fills the areas that are
-extended. The calling application should fill in these areas with
-appropriate data.
-
-The function attempts to resize all windows.
+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,
+\fBresize_term\fR blank-fills the areas that are extended.
+The calling application should fill in these areas with appropriate data.
+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.
 However, due to the calling convention of pads,
 it is not possible to resize these
 without additional interaction with the application.
-..
+
+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.
 .SH RETURN VALUE
 .SH RETURN VALUE
-The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
-It will fail if either of the dimensions less than or equal to zero,
-or if an error occurs while (re)allocating memory for the windows. 
-..
+Except as notes, these function return
+the integer \fBERR\fR upon failure and \fBOK\fR on success.
+They will fail if either of the dimensions are less than or equal to zero,
+or if an error occurs while (re)allocating memory for the windows.
 .SH NOTES
 .SH NOTES
-While this function is intended to be used to support a signal handler
-(i.e., for SIGWINCH), care should be taken to avoid invoking it in a
+While these functions are intended to be used to support a signal handler
+(i.e., for SIGWINCH), care should be taken to avoid invoking them in a
 context where \fBmalloc\fR or \fBrealloc\fR may have been interrupted,
 since it uses those functions.
 context where \fBmalloc\fR or \fBrealloc\fR may have been interrupted,
 since it uses those functions.
-..
 .PP
 If ncurses is configured to supply its own SIGWINCH handler,
 the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which
 .PP
 If ncurses is configured to supply its own SIGWINCH handler,
 the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which
@@ -73,10 +80,8 @@ 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.
 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.
-..
 .SH SEE ALSO
 \fBwresize\fR(3X).
 .SH SEE ALSO
 \fBwresize\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
 .\"#
 .SH AUTHOR
 Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
 .\"#
index 63a2d35f8411230632a0b9dd3f979b1e9e4edce4..1dcb87dec670dc8029b471444e613f096e4873f2 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.5,v 1.10 2000/08/13 01:56:45 tom Exp $
+.\" $Id: term.5,v 1.14 2002/08/10 21:59:37 tom Exp $
 .TH TERM 5
 .ds n 5
 .ds d @TERMINFO@
 .TH TERM 5
 .ds n 5
 .ds d @TERMINFO@
@@ -38,7 +38,7 @@ term \- format of compiled term file.
 .PP
 Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
 In order to avoid a linear search of a huge \s-1UNIX\s+1 system directory, a
 .PP
 Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
 In order to avoid a linear search of a huge \s-1UNIX\s+1 system directory, a
-two-level scheme is used: \fB\*b/c/name\fP
+two-level scheme is used: \fB\*d/c/name\fP
 where
 .I name
 is the name of the terminal, and
 where
 .I name
 is the name of the terminal, and
@@ -164,7 +164,7 @@ adm3a|lsi adm3a,
         am, 
         cols#80, lines#24, 
         bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, 
         am, 
         cols#80, lines#24, 
         bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, 
-        cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, 
+        cuf1=^L, cup=\\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, 
         home=^^, ind=^J, 
 .sp
 .ft CW
         home=^^, ind=^J, 
 .sp
 .ft CW
@@ -198,7 +198,7 @@ Some limitations: total compiled entries cannot exceed 4096 bytes.
 The name field cannot exceed 128 bytes.
 .SH FILES
 \*d/*/*        compiled terminal capability data base
 The name field cannot exceed 128 bytes.
 .SH FILES
 \*d/*/*        compiled terminal capability data base
-.SH "SEE ALSO"
+.SH SEE ALSO
 \fBcurses\fR(3X), \fBterminfo\fR(\*n).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 \fBcurses\fR(3X), \fBterminfo\fR(\*n).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index 5a48c5a303d3ad846ff0930d93f71a12b6e6c85d..5d51e92e6ed43cf006b96fffe9e7eced9df58197 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.7,v 1.12 2000/08/13 01:56:42 tom Exp $
+.\" $Id: term.7,v 1.13 2002/04/20 16:50:47 tom Exp $
 .TH TERM 7
 .ds n 5
 .ds d @TERMINFO@
 .TH TERM 7
 .ds n 5
 .ds d @TERMINFO@
@@ -194,7 +194,7 @@ tty line initialization (AT&T-like UNIXes).
 .TP 5
 /etc/ttys
 tty line initialization (BSD-like UNIXes).
 .TP 5
 /etc/ttys
 tty line initialization (BSD-like UNIXes).
-.SH "SEE ALSO"
+.SH SEE ALSO
 \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index 36945ff2502b22ba9537e57dbab47c3cb58b7132..3869cca0babe066fd9fdc1c4524bae1c713f6638 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.head,v 1.9 2000/08/13 01:56:40 tom Exp $
+.\" $Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp $
 .TH TERMINFO 5 "" "" "File Formats"
 .ds n 5
 .ds d @TERMINFO@
 .TH TERMINFO 5 "" "" "File Formats"
 .ds n 5
 .ds d @TERMINFO@
@@ -49,7 +49,7 @@ specifying padding requirements and initialization sequences.
 Entries in
 .I terminfo
 consist of a sequence of `,' separated fields (embedded commas may be
 Entries in
 .I terminfo
 consist of a sequence of `,' separated fields (embedded commas may be
-escaped with a  backslash or notated as \e072).
+escaped with a backslash or notated as \e054).
 White space after the `,' separator is ignored.
 The first entry for each terminal gives the names which are known for the
 terminal, separated by `|' characters.
 White space after the `,' separator is ignored.
 The first entry for each terminal gives the names which are known for the
 terminal, separated by `|' characters.
index e39230f83863017d21e1fc3bc05263c6cd9363a7..bd585b1268e5140bf7d99f969c955cbfede3ae66 100644 (file)
@@ -1,4 +1,4 @@
-.\" $Id: terminfo.tail,v 1.33 2000/10/14 14:06:50 tom Exp $
+.\" $Id: terminfo.tail,v 1.35 2002/04/20 16:49:33 tom Exp $
 .\" Beginning of terminfo.tail file
 .ps +1
 .PP
 .\" Beginning of terminfo.tail file
 .ps +1
 .PP
@@ -49,7 +49,8 @@ terminal operations.
 .PP
 .SS Types of Capabilities
 .PP
 .PP
 .SS Types of Capabilities
 .PP
-All capabilities have names.  For instance, the fact that
+All capabilities have names.
+For instance, the fact that
 ANSI-standard terminals have
 .I "automatic margins"
 (i.e., an automatic return and line-feed
 ANSI-standard terminals have
 .I "automatic margins"
 (i.e., an automatic return and line-feed
@@ -66,7 +67,8 @@ sequence) are given by the two-character code, an `=', and then a string
 ending at the next following `,'.
 .PP
 A number of escape sequences are provided in the string valued capabilities
 ending at the next following `,'.
 .PP
 A number of escape sequences are provided in the string valued capabilities
-for easy encoding of characters there.  Both \fB\eE\fR and \fB\ee\fR
+for easy encoding of characters there.
+Both \fB\eE\fR and \fB\ee\fR
 map to an \s-1ESCAPE\s0 character,
 \fB^x\fR maps to a control-x for any appropriate x, and the sequences
 \fB\en \el \er \et \eb \ef \es\fR give
 map to an \s-1ESCAPE\s0 character,
 \fB^x\fR maps to a control-x for any appropriate x, and the sequences
 \fB\en \el \er \et \eb \ef \es\fR give
@@ -77,21 +79,26 @@ Other escapes include \fB\e^\fR for \fB^\fR,
 \fB\e:\fR for \fB:\fR,
 and \fB\e0\fR for null.
 (\fB\e0\fR will produce \e200, which does not terminate a string but behaves
 \fB\e:\fR for \fB:\fR,
 and \fB\e0\fR for null.
 (\fB\e0\fR will produce \e200, which does not terminate a string but behaves
-as a null character on most terminals, providing CS7 is specified.  See stty(1).)
+as a null character on most terminals, providing CS7 is specified.
+See stty(1).)
 Finally, characters may be given as three octal digits after a \fB\e\fR.
 .PP
 A delay in milliseconds may appear anywhere in a string capability, enclosed in
 $<..> brackets, as in \fBel\fP=\eEK$<5>, and padding characters are supplied by
 .I tputs
 Finally, characters may be given as three octal digits after a \fB\e\fR.
 .PP
 A delay in milliseconds may appear anywhere in a string capability, enclosed in
 $<..> brackets, as in \fBel\fP=\eEK$<5>, and padding characters are supplied by
 .I tputs
-to provide this delay.  The delay must be a number with at most one decimal
-place of precision; it may be followed by suffixes `*' or '/' or both.  A `*'
+to provide this delay.
+The delay must be a number with at most one decimal
+place of precision; it may be followed by suffixes `*' or '/' or both.
+A `*'
 indicates that the padding required is proportional to the number of lines
 affected by the operation, and the amount given is the per-affected-unit
 indicates that the padding required is proportional to the number of lines
 affected by the operation, and the amount given is the per-affected-unit
-padding required.  (In the case of insert character, the factor is still the
+padding required.
+(In the case of insert character, the factor is still the
 number of
 .IR lines
 affected.)  Normally, padding is advisory if the device has the \fBxon\fR
 number of
 .IR lines
 affected.)  Normally, padding is advisory if the device has the \fBxon\fR
-capability; it is used for cost computation but does not trigger delays.  A `/'
+capability; it is used for cost computation but does not trigger delays.
+A `/'
 suffix indicates that the padding is mandatory and forces a delay of the given
 number of milliseconds even on devices for which \fBxon\fR is present to
 indicate flow control.
 suffix indicates that the padding is mandatory and forces a delay of the given
 number of milliseconds even on devices for which \fBxon\fR is present to
 indicate flow control.
@@ -107,7 +114,8 @@ in the example above.
 .SS Fetching Compiled Descriptions
 .PP
 If the environment variable TERMINFO is set, it is interpreted as the pathname
 .SS Fetching Compiled Descriptions
 .PP
 If the environment variable TERMINFO is set, it is interpreted as the pathname
-of a directory containing the compiled description you are working on.  Only
+of a directory containing the compiled description you are working on.
+Only
 that directory is searched.
 .PP
 If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
 that directory is searched.
 .PP
 If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
@@ -116,7 +124,8 @@ for a compiled description.
 If it fails to find one there, and the environment variable TERMINFO_DIRS is
 set, it will interpret the contents of that variable as a list of colon-
 separated directories to be searched (an empty entry is interpreted as a
 If it fails to find one there, and the environment variable TERMINFO_DIRS is
 set, it will interpret the contents of that variable as a list of colon-
 separated directories to be searched (an empty entry is interpreted as a
-command to search \fI\*d\fR).  If no description is found in any of the
+command to search \fI\*d\fR).
+If no description is found in any of the
 TERMINFO_DIRS directories, the fetch fails.
 .PP
 If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
 TERMINFO_DIRS directories, the fetch fails.
 .PP
 If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
@@ -151,7 +160,8 @@ A similar test can be used for insert character.
 .SS Basic Capabilities
 .PP
 The number of columns on each line for the terminal is given by the
 .SS Basic Capabilities
 .PP
 The number of columns on each line for the terminal is given by the
-\fBcols\fR numeric capability.  If the terminal is a \s-1CRT\s0, then the
+\fBcols\fR numeric capability.
+If the terminal is a \s-1CRT\s0, then the
 number of lines on the screen is given by the \fBlines\fR capability.
 If the terminal wraps around to the beginning of the next line when
 it reaches the right margin, then it should have the \fBam\fR capability.
 number of lines on the screen is given by the \fBlines\fR capability.
 If the terminal wraps around to the beginning of the next line when
 it reaches the right margin, then it should have the \fBam\fR capability.
@@ -298,7 +308,8 @@ that can be indicated by
 .BR mrcup .
 .PP
 The parameter mechanism uses a stack and special \fB%\fP codes
 .BR mrcup .
 .PP
 The parameter mechanism uses a stack and special \fB%\fP codes
-to manipulate it.  Typically a sequence will push one of the
+to manipulate it.
+Typically a sequence will push one of the
 parameters onto the stack and then print it in some format.
 Often more complex operations are necessary.
 .PP
 parameters onto the stack and then print it in some format.
 Often more complex operations are necessary.
 .PP
@@ -338,11 +349,13 @@ The \fB%\fR encodings have the following meanings:
 .fi
 .PP
 Binary operations are in postfix form with the operands in the usual order.
 .fi
 .PP
 Binary operations are in postfix form with the operands in the usual order.
-That is, to get x-5 one would use "%gx%{5}%-".  %P and %g variables are
+That is, to get x-5 one would use "%gx%{5}%-".
+%P and %g variables are
 persistent across escape-string evaluations.
 .PP
 Consider the HP2645, which, to get to row 3 and column 12, needs
 persistent across escape-string evaluations.
 .PP
 Consider the HP2645, which, to get to row 3 and column 12, needs
-to be sent \eE&a12c03Y padded for 6 milliseconds.  Note that the order
+to be sent \eE&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 digits.
 Thus its \fBcup\fR capability is \*(lqcup=6\eE&%p2%2dc%p1%2dY\*(rq.
 of the rows and columns is inverted here, and that the row and column
 are printed as two digits.
 Thus its \fBcup\fR capability is \*(lqcup=6\eE&%p2%2dc%p1%2dY\*(rq.
@@ -439,7 +452,8 @@ is not available.)
 .PP
 If the terminal can open a new blank line before the line where the cursor
 is, this should be given as \fBil1\fR; this is done only from the first
 .PP
 If the terminal can open a new blank line before the line where the cursor
 is, this should be given as \fBil1\fR; this is done only from the first
-position of a line.  The cursor must then appear on the newly blank line.
+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 \fBdl1\fR; this is done only from the first position on
 the line to be deleted.
 If the terminal can delete the line which the cursor is on, then this
 should be given as \fBdl1\fR; this is done only from the first position on
 the line to be deleted.
@@ -485,12 +499,15 @@ on many terminals without a true insert/delete line,
 and is often faster even on terminals with those features.
 .PP
 The boolean \fBnon_dest_scroll_region\fR should be set if each scrolling
 and is often faster even on terminals with those features.
 .PP
 The boolean \fBnon_dest_scroll_region\fR should be set if each scrolling
-window is effectively a view port on a screen-sized canvas.  To test for
+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 something to the bottom line, move the cursor to the top of the region,
 this capability, create a scrolling region in the middle of the screen,
 write something to the bottom line, move the cursor to the top of the region,
-and do \fBri\fR followed by \fBdl1\fR or \fBind\fR.  If the data scrolled
+and do \fBri\fR followed by \fBdl1\fR or \fBind\fR.
+If the data scrolled
 off the bottom of the region by the \fBri\fR re-appears, then scrolling
 off the bottom of the region by the \fBri\fR re-appears, then scrolling
-is non-destructive.  System V and XSI Curses expect that \fBind\fR, \fBri\fR,
+is non-destructive.
+System V and XSI Curses expect that \fBind\fR, \fBri\fR,
 \fBindn\fR, and \fBrin\fR will simulate destructive scrolling; their
 documentation cautions you not to define \fBcsr\fR unless this is true.
 This \fBcurses\fR implementation is more liberal and will do explicit erases
 \fBindn\fR, and \fBrin\fR will simulate destructive scrolling; their
 documentation cautions you not to define \fBcsr\fR unless this is true.
 This \fBcurses\fR implementation is more liberal and will do explicit erases
@@ -505,7 +522,8 @@ and the starting and ending columns in memory, in that order.
 .PP
 If the terminal can retain display memory above, then the
 \fBda\fR capability should be given; if display memory can be retained
 .PP
 If the terminal can retain display memory above, then the
 \fBda\fR capability should be given; if display memory can be retained
-below, then \fBdb\fR should be given.  These indicate
+below, then \fBdb\fR should be given.
+These indicate
 that deleting a line or scrolling may bring non-blank lines up from below
 or that scrolling back with \fBri\fR may bring down non-blank lines.
 .PP
 that deleting a line or scrolling may bring non-blank lines up from below
 or that scrolling back with \fBri\fR may bring down non-blank lines.
 .PP
@@ -519,19 +537,23 @@ 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
 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
+either eliminated, or expanded to two untyped blanks.
+You can determine the
 kind of terminal you have by clearing the screen and then typing
 kind of terminal you have by clearing the screen and then typing
-text separated by cursor motions.  Type \*(lqabc\ \ \ \ def\*(rq using local
+text separated by cursor motions.
+Type \*(lqabc\ \ \ \ def\*(rq using local
 cursor motions (not spaces) between the \*(lqabc\*(rq and the \*(lqdef\*(rq.
 Then position the cursor before the \*(lqabc\*(rq and put the terminal in insert
 cursor motions (not spaces) between the \*(lqabc\*(rq and the \*(lqdef\*(rq.
 Then position the cursor before the \*(lqabc\*(rq and put the terminal in insert
-mode.  If typing characters causes the rest of the line to shift
+mode.
+If typing characters causes the rest of the line to shift
 rigidly and characters to fall off the end, then your terminal does
 rigidly and characters to fall off the end, then your terminal does
-not distinguish between blanks and untyped positions.  If the \*(lqabc\*(rq
+not distinguish between blanks and untyped positions.
+If the \*(lqabc\*(rq
 shifts over to the \*(lqdef\*(rq 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 \fBin\fR, which stands for
 \*(lqinsert null\*(rq.
 shifts over to the \*(lqdef\*(rq 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 \fBin\fR, which stands for
 \*(lqinsert null\*(rq.
-While these are two logically separate attributes (one line vs. multi-line
+While these are two logically separate attributes (one line versus multi-line
 insert mode, and special treatment of untyped spaces) we have seen no
 terminals whose insert mode cannot be described with the single attribute.
 .PP
 insert mode, and special treatment of untyped spaces) we have seen no
 terminals whose insert mode cannot be described with the single attribute.
 .PP
@@ -540,24 +562,30 @@ which send a simple sequence to open a blank position on the current line.
 Give as \fBsmir\fR the sequence to get into insert mode.
 Give as \fBrmir\fR the sequence to leave insert mode.
 Now give as \fBich1\fR any sequence needed to be sent just before sending
 Give as \fBsmir\fR the sequence to get into insert mode.
 Give as \fBrmir\fR the sequence to leave insert mode.
 Now give as \fBich1\fR any sequence needed to be sent just before sending
-the character to be inserted.  Most terminals with a true insert mode
+the character to be inserted.
+Most terminals with a true insert mode
 will not give \fBich1\fR; terminals which send a sequence to open a screen
 position should give it here.
 .PP
 If your terminal has both, insert mode is usually preferable to \fBich1\fR.
 Technically, you should not give both unless the terminal actually requires
 will not give \fBich1\fR; terminals which send a sequence to open a screen
 position should give it here.
 .PP
 If your terminal has both, insert mode is usually preferable to \fBich1\fR.
 Technically, you should not give both unless the terminal actually requires
-both to be used in combination.  Accordingly, some non-curses applications get
+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
 confused if both are present; the symptom is doubled characters in an update
-using insert.  This requirement is now rare; most \fBich\fR sequences do not
+using insert.
+This requirement is now rare; most \fBich\fR sequences do not
 require previous smir, and most smir insert modes do not require \fBich1\fR
 require previous smir, and most smir insert modes do not require \fBich1\fR
-before each character.  Therefore, the new \fBcurses\fR actually assumes this
+before each character.
+Therefore, the new \fBcurses\fR actually assumes this
 is the case and uses either \fBrmir\fR/\fBsmir\fR or \fBich\fR/\fBich1\fR as
 is the case and uses either \fBrmir\fR/\fBsmir\fR or \fBich\fR/\fBich1\fR as
-appropriate (but not both).  If you have to write an entry to be used under
+appropriate (but not both).
+If you have to write an entry to be used under
 new curses for a terminal old enough to need both, include the
 \fBrmir\fR/\fBsmir\fR sequences in \fBich1\fR.
 .PP
 If post insert padding is needed, give this as a number of milliseconds
 new curses for a terminal old enough to need both, include the
 \fBrmir\fR/\fBsmir\fR sequences in \fBich1\fR.
 .PP
 If post insert padding is needed, give this as a number of milliseconds
-in \fBip\fR (a string option).  Any other sequence which may need to be
+in \fBip\fR (a string option).
+Any other sequence which may need to be
 sent after an insert of a single character may also be given in \fBip\fR.
 If your terminal needs both to be placed into an `insert mode' and
 a special code to precede each inserted character, then both
 sent after an insert of a single character may also be given in \fBip\fR.
 If your terminal needs both to be placed into an `insert mode' and
 a special code to precede each inserted character, then both
@@ -579,9 +607,12 @@ in insert mode, give this as a number of milliseconds padding in \fBrmp\fP.
 .PP
 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
 .PP
 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
+the insertion position).
+If your terminal allows motion while in
 insert mode you can give the capability \fBmir\fR to speed up inserting
 insert mode you can give the capability \fBmir\fR to speed up inserting
-in this case.  Omitting \fBmir\fR will affect only speed.   Some terminals
+in this case.
+Omitting \fBmir\fR will affect only speed.
+Some terminals
 (notably Datamedia's) must not have \fBmir\fR because of the way their
 insert mode works.
 .PP
 (notably Datamedia's) must not have \fBmir\fR because of the way their
 insert mode works.
 .PP
@@ -772,7 +803,8 @@ then this should be indicated by giving \fBeo\fR.
 .SS Keypad and Function Keys
 .PP
 If the terminal has a keypad that transmits codes when the keys are pressed,
 .SS Keypad and Function Keys
 .PP
 If the terminal has a keypad that transmits codes when the keys are pressed,
-this information can be given. Note that it is not possible to handle
+this information can be given.
+Note that it is not possible to handle
 terminals where the keypad 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,
 terminals where the keypad 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,
@@ -977,21 +1009,24 @@ or
 .PP
 Many older and slower terminals don't support either XON/XOFF or DTR
 handshaking, including hard copy terminals and some very archaic CRTs
 .PP
 Many older and slower terminals don't support either XON/XOFF or DTR
 handshaking, including hard copy terminals and some very archaic CRTs
-(including, for example, DEC VT100s).  These may require padding characters
+(including, for example, DEC VT100s).
+These may require padding characters
 after certain cursor motions and screen changes.
 .PP
 If the terminal uses xon/xoff handshaking for flow control (that is,
 it automatically emits ^S back to the host when its input buffers are
 close to full), set
 .BR xon .
 after certain cursor motions and screen changes.
 .PP
 If the terminal uses xon/xoff handshaking for flow control (that is,
 it automatically emits ^S back to the host when its input buffers are
 close to full), set
 .BR xon .
-This capability suppresses the emission of padding.  You can also set it
+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.
 Padding information should still be included so that routines can
 make better decisions about relative costs, but actual pad characters will
 not be transmitted.
 .PP
 If \fBpb\fR (padding baud rate) is given, padding is suppressed at baud rates
 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 decisions about relative costs, but actual pad characters will
 not be transmitted.
 .PP
 If \fBpb\fR (padding baud rate) is given, padding is suppressed at baud rates
-below the value of \fBpb\fR.  If the entry has no padding baud rate, then
+below the value of \fBpb\fR.
+If the entry has no padding baud rate, then
 whether padding is emitted or not is completely controlled by \fBxon\fR.
 .PP
 If the terminal requires other than a null (zero) character as a pad,
 whether padding is emitted or not is completely controlled by \fBxon\fR.
 .PP
 If the terminal requires other than a null (zero) character as a pad,
@@ -1007,25 +1042,30 @@ software (and thus not counted in the terminal's \fBlines\fR 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
 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 indicated
+scrolling region set up on initialization.
+This situation is indicated
 by the \fBhs\fR capability.
 .PP
 Some terminals with status lines need special sequences to access the
 by the \fBhs\fR capability.
 .PP
 Some terminals with status lines need special sequences to access the
-status line.  These may be expressed as a string with single parameter
+status line.
+These may be expressed as a string with single parameter
 \fBtsl\fR which takes the cursor to a given zero-origin column on the
 \fBtsl\fR which takes the cursor to a given zero-origin column on the
-status line. The capability \fBfsl\fR must return to the main-screen
-cursor positions before the last \fBtsl\fR.  You may need to embed the
+status line.
+The capability \fBfsl\fR must return to the main-screen
+cursor positions before the last \fBtsl\fR.
+You may need to embed the
 string values of \fBsc\fR (save cursor) and \fBrc\fR (restore cursor)
 in \fBtsl\fR and \fBfsl\fR to accomplish this.
 .PP
 The status line is normally assumed to be the same width as the width
 string values of \fBsc\fR (save cursor) and \fBrc\fR (restore cursor)
 in \fBtsl\fR and \fBfsl\fR to accomplish this.
 .PP
 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
+of the terminal.
+If this is untrue, you can specify it with the numeric
 capability \fBwsl\fR.
 .PP
 A command to erase or blank the status line may be specified as \fBdsl\fR.
 .PP
 The boolean capability \fBeslok\fR specifies that escape sequences, tabs,
 capability \fBwsl\fR.
 .PP
 A command to erase or blank the status line may be specified as \fBdsl\fR.
 .PP
 The boolean capability \fBeslok\fR specifies that escape sequences, tabs,
-etc. work ordinarily in the status line.
+etc., work ordinarily in the status line.
 .PP
 The \fBncurses\fR implementation does not yet use any of these capabilities.
 They are documented here in case they ever become important.
 .PP
 The \fBncurses\fR implementation does not yet use any of these capabilities.
 They are documented here in case they ever become important.
@@ -1082,25 +1122,33 @@ 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 \fBsmacs\fR/\fBrmacs\fR switches) will be rendered
 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 \fBsmacs\fR/\fBrmacs\fR switches) will be rendered
-as the corresponding graphic.  Then read off the VT100/your terminal
+as the corresponding graphic.
+Then read off the VT100/your terminal
 character pairs right to left in sequence; these become the ACSC string.
 .PP
 .SS Color Handling
 .PP
 character pairs right to left in sequence; these become the ACSC string.
 .PP
 .SS Color Handling
 .PP
-Most color terminals are either `Tektronix-like' or `HP-like'.  Tektronix-like
+Most color terminals are either `Tektronix-like' or `HP-like'.
+Tektronix-like
 terminals have a predefined set of N colors (where N usually 8), and can set
 character-cell foreground and background characters independently, mixing them
 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 use must set each color
+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).
 pair up separately (foreground and background are not independently settable).
-Up to M color-pairs may be set up from 2*M different colors.  ANSI-compatible
+Up to M color-pairs may be set up from 2*M different colors.
+ANSI-compatible
 terminals are Tektronix-like.
 .PP
 terminals are Tektronix-like.
 .PP
-Some basic color capabilities are independent of the color method.  The numeric
+Some basic color capabilities are independent of the color method.
+The numeric
 capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors
 capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors
-and color-pairs that can be displayed simultaneously.  The \fBop\fR (original
+and color-pairs that can be displayed simultaneously.
+The \fBop\fR (original
 pair) string resets foreground and background colors to their default values
 pair) string resets foreground and background colors to their default values
-for the terminal.  The \fBoc\fR string resets all colors or color-pairs to
-their default values for the terminal.  Some terminals (including many PC
+for the terminal.
+The \fBoc\fR 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
 \fBbce\fR.
 terminal emulators) erase screen areas with the current background color rather
 than the power-up default background; these should have the boolean capability
 \fBbce\fR.
@@ -1108,19 +1156,24 @@ than the power-up default background; these should have the boolean capability
 To change the current foreground or background color on a Tektronix-type
 terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI
 background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background).
 To change the current foreground or background color on a Tektronix-type
 terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI
 background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background).
-These take one parameter, the color number.  The SVr4 documentation describes
+These take one parameter, the color number.
+The SVr4 documentation describes
 only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal
 supports ANSI escape sequences to set background and foreground, they should
 only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal
 supports ANSI escape sequences to set background and foreground, they should
-be coded as \fBsetaf\fR and \fBsetab\fR, respectively.  If the terminal
+be coded as \fBsetaf\fR and \fBsetab\fR, respectively.
+If the terminal
 supports other escape sequences to set background and foreground, they should
 supports other escape sequences to set background and foreground, they should
-be coded as \fBsetf\fR and \fBsetb\fR, respectively.  The \fIvidputs()\fR
+be coded as \fBsetf\fR and \fBsetb\fR, respectively.
+The \fIvidputs()\fR
 function and the refresh functions use \fBsetaf\fR and \fBsetab\fR if they are
 defined."
 .PP
 The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a
 function and the refresh functions use \fBsetaf\fR and \fBsetab\fR if they are
 defined."
 .PP
 The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a
-single numeric argument each.  Argument values 0-7 are portably defined as
+single numeric argument each.
+Argument values 0-7 are portably defined as
 follows (the middle column is the symbolic #define available in the header for
 follows (the middle column is the symbolic #define available in the header for
-the \fBcurses\fR or \fBncurses\fR libraries).  The terminal hardware is free to
+the \fBcurses\fR or \fBncurses\fR libraries).
+The terminal hardware is free to
 map these as it likes, but the RGB values indicate normal locations in color
 space.
 .PP
 map these as it likes, but the RGB values indicate normal locations in color
 space.
 .PP
@@ -1143,22 +1196,31 @@ On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set
 which color pair is current.
 .PP
 On a Tektronix-like terminal, the capability \fBccc\fR may be present to
 which color pair is current.
 .PP
 On a Tektronix-like terminal, the capability \fBccc\fR may be present to
-indicate that colors can be modified.  If so, the \fBinitc\fR capability will
+indicate that colors can be modified.
+If so, the \fBinitc\fR capability will
 take a color number (0 to \fBcolors\fR - 1)and three more parameters which
 take a color number (0 to \fBcolors\fR - 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 \fBhls\fR is present,
-they are instead as HLS (Hue, Lightness, Saturation) indices.  The ranges are
+describe the color.
+These three parameters default to being interpreted as RGB
+(Red, Green, Blue) values.
+If the boolean capability \fBhls\fR is present,
+they are instead as HLS (Hue, Lightness, Saturation) indices.
+The ranges are
 terminal-dependent.
 .PP
 On an HP-like terminal, \fBinitp\fR may give a capability for changing a
 terminal-dependent.
 .PP
 On an HP-like terminal, \fBinitp\fR may give a capability for changing a
-color-pair value.  It will take seven parameters; a color-pair number (0 to
+color-pair value.
+It will take seven parameters; a color-pair number (0 to
 \fBmax_pairs\fR - 1), and two triples describing first background and then
 \fBmax_pairs\fR - 1), and two triples describing first background and then
-foreground colors.  These parameters must be (Red, Green, Blue) or
+foreground colors.
+These parameters must be (Red, Green, Blue) or
 (Hue, Lightness, Saturation) depending on \fBhls\fR.
 .PP
 (Hue, Lightness, Saturation) depending on \fBhls\fR.
 .PP
-On some color terminals, colors collide with highlights.  You can register
-these collisions with the \fBncv\fR capability.  This is a bit-mask of
-attributes not to be used when colors are enabled.  The correspondence with the
+On some color terminals, colors collide with highlights.
+You can register
+these collisions with the \fBncv\fR capability.
+This is a bit-mask of
+attributes not to be used when colors are enabled.
+The correspondence with the
 attributes understood by \fBcurses\fR is as follows:
 .PP
 .TS
 attributes understood by \fBcurses\fR is as follows:
 .PP
 .TS
@@ -1178,7 +1240,8 @@ A_ALTCHARSET      8       256
 .TE
 .PP
 For example, on many IBM PC consoles, the underline attribute collides with the
 .TE
 .PP
 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
+foreground color blue and is not available in color mode.
+These should have
 an \fBncv\fR capability of 2.
 .PP
 SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes
 an \fBncv\fR capability of 2.
 .PP
 SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes
@@ -1313,7 +1376,8 @@ older versions, it was teleray_glitch.
 This glitch is also taken to mean that it is not possible to position
 the cursor on top of a ``magic cookie'',
 that to erase standout mode it is instead necessary to use
 This glitch is also taken to mean that it is not possible to position
 the cursor on top of a ``magic cookie'',
 that to erase standout mode it is instead necessary to use
-delete and insert line.  The ncurses implementation ignores this glitch.
+delete and insert line.
+The ncurses implementation ignores this glitch.
 .PP
 The Beehive Superbee, which is unable to correctly transmit the escape
 or control C characters, has
 .PP
 The Beehive Superbee, which is unable to correctly transmit the escape
 or control C characters, has
@@ -1329,15 +1393,18 @@ capabilities of the form \fBx\fR\fIx\fR.
 .SS Similar Terminals
 .PP
 If there are two very similar terminals, one (the variant) can be defined as
 .SS Similar Terminals
 .PP
 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
+being just like the other (the base) with certain exceptions.
+In the
 definition of the variant, the string capability \fBuse\fR can be given with
 definition of the variant, the string capability \fBuse\fR can be given with
-the name of the base terminal.  The capabilities given before
+the name of the base terminal.
+The capabilities given before
 .B use
 override those in the base type named by
 .BR use .
 If there are multiple \fBuse\fR capabilities, they are merged in reverse order.
 That is, the rightmost \fBuse\fR reference is processed first, then the one to
 .B use
 override those in the base type named by
 .BR use .
 If there are multiple \fBuse\fR capabilities, they are merged in reverse order.
 That is, the rightmost \fBuse\fR reference is processed first, then the one to
-its left, and so forth.  Capabilities given explicitly in the entry override
+its left, and so forth.
+Capabilities given explicitly in the entry override
 those brought in by \fBuse\fR references.
 .PP
 A capability can be canceled by placing \fBxx@\fR to the left of the
 those brought in by \fBuse\fR references.
 .PP
 A capability can be canceled by placing \fBxx@\fR to the left of the
@@ -1354,30 +1421,37 @@ user preferences.
 .SS Pitfalls of Long Entries
 .PP
 Long terminfo entries are unlikely to be a problem; to date, no entry has even
 .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.  Unfortunately, the termcap
+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.
 .PP
 The man pages for 4.3BSD and older versions of tgetent() instruct the user to
 translations are much more strictly limited (to 1K), 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 entry gets null-terminated by
+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 termcap entry
 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
+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()
 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
 being used does, and where in the termcap file the terminal type that tgetent()
 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
-entries to 1023 bytes.  Some application programs allocate more than
+entries to 1023 bytes.
+Some application programs allocate more than
 the recommended 1K for the termcap entry; others don't.
 .PP
 Each termcap entry has two important sizes associated with it: before
 the recommended 1K for the termcap entry; others don't.
 .PP
 Each termcap entry has two important sizes associated with it: before
-"tc" expansion, and after "tc" expansion.  "tc" is the capability that
+"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
 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"
+on its capabilities.
+If a termcap entry doesn't 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
 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
+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.
 Some termcap libraries strip off the final newline, too (GNU termcap does not).
 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 does not).
@@ -1401,10 +1475,13 @@ doesn't appear in the file at all (so that tgetent() has to search
 the whole termcap file).
 .PP
 Then tgetent() will overwrite memory, perhaps its stack, and probably core dump
 the whole termcap file).
 .PP
 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
+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
 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
+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.
 .PP
 termcap library truncates long entries, like OSF/1 3.0, it is immune to dying
 here but will return incorrect data for the terminal.
 .PP
@@ -1415,18 +1492,21 @@ terminal type it was looking for, not while searching.
 .PP
 In summary, a termcap entry that is longer than 1023 bytes can cause,
 on various combinations of termcap libraries and applications, a core
 .PP
 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
+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
 terminal types and users whose TERM variable does not have a termcap
 entry.
 .PP
 When in -C (translate to termcap) mode, the \fBncurses\fR implementation of
 \fBtic\fR(1) issues warning messages when the pre-tc length of a termcap
 "tc" expansion, it will have this effect even for users of some other
 terminal types and users whose TERM variable does not have a termcap
 entry.
 .PP
 When in -C (translate to termcap) mode, the \fBncurses\fR implementation of
 \fBtic\fR(1) issues warning messages when the pre-tc length of a termcap
-translation is too long.  The -c (check) option also checks resolved (after tc
+translation is too long.
+The -c (check) option also checks resolved (after tc
 expansion) lengths.
 .SS Binary Compatibility
 It is not wise to count on portability of binary terminfo entries between
 expansion) lengths.
 .SS Binary Compatibility
 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
+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 and XSI Curses extensions.
 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.
@@ -1438,24 +1518,29 @@ 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).
 The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
 an alternate-character-set mode (such modes may, among other things, map
 CR and NL to characters that don't trigger local motions).
 The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
-mode.  This raises the possibility that an XPG4
+mode.
+This raises the possibility that an XPG4
 implementation making the opposite interpretation may need terminfo
 entries made for \fBncurses\fR to have \fBmsgr\fR turned off.
 .PP
 The \fBncurses\fR library handles insert-character and insert-character modes
 implementation making the opposite interpretation may need terminfo
 entries made for \fBncurses\fR to have \fBmsgr\fR turned off.
 .PP
 The \fBncurses\fR library handles insert-character and insert-character modes
-in a slightly non-standard way in order to get better update efficiency.  See
+in a slightly non-standard way to get better update efficiency.
+See
 the \fBInsert/Delete Character\fR subsection above.
 .PP
 The parameter substitutions for \fBset_clock\fR and \fBdisplay_clock\fR are
 the \fBInsert/Delete Character\fR subsection above.
 .PP
 The parameter substitutions for \fBset_clock\fR and \fBdisplay_clock\fR are
-not documented in SVr4 or the XSI Curses standard.  They are deduced from the
+not documented in SVr4 or the XSI Curses standard.
+They are deduced from the
 documentation for the AT&T 505 terminal.
 .PP
 documentation for the AT&T 505 terminal.
 .PP
-Be careful assigning the \fBkmous\fR capability.  The \fBncurses\fR wants to
+Be careful assigning the \fBkmous\fR capability.
+The \fBncurses\fR wants to
 interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm
 that can return mouse-tracking information in the keyboard-input stream.
 .PP
 Different commercial ports of terminfo and curses support different subsets of
 interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm
 that can return mouse-tracking information in the keyboard-input stream.
 .PP
 Different commercial ports of terminfo and curses support different subsets of
-the XSI Curses standard and (in some cases) different extension sets.  Here
+the XSI Curses standard and (in some cases) different extension sets.
+Here
 is a summary, accurate as of October 1995:
 .PP
 \fBSVR4, Solaris, ncurses\fR --
 is a summary, accurate as of October 1995:
 .PP
 \fBSVR4, Solaris, ncurses\fR --
@@ -1466,7 +1551,8 @@ Supports the SVr4 set, adds one undocumented extended string
 capability (\fBset_pglen\fR).
 .PP
 \fBSVr1, Ultrix\fR --
 capability (\fBset_pglen\fR).
 .PP
 \fBSVr1, Ultrix\fR --
-These support a restricted subset of terminfo capabilities.  The booleans
+These support a restricted subset of terminfo capabilities.
+The booleans
 end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
 strings with \fBprtr_non\fR.
 .PP
 end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
 strings with \fBprtr_non\fR.
 .PP
@@ -1486,7 +1572,7 @@ Supports both the SVr4 set and the AIX extensions.
 .TP 25
 \*d/?/*
 files containing terminal descriptions
 .TP 25
 \*d/?/*
 files containing terminal descriptions
-.SH "SEE ALSO"
+.SH SEE ALSO
 \fBtic\fR(1M), \fBcurses\fR(3X), \fBprintf\fR(3S), \fBterm\fR(\*n).
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
 \fBtic\fR(1M), \fBcurses\fR(3X), \fBprintf\fR(3S), \fBterm\fR(\*n).
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
index e3a095453d3ca422ecadcd69acb02fb033bcf580..829fe4009d2bd7299d8fe6875418a72dd5a7de2b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tic.1m,v 1.29 2000/08/19 18:51:05 tom Exp $
+.\" $Id: tic.1m,v 1.33 2002/10/05 20:06:13 tom Exp $
 .TH tic 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .TH tic 1M ""
 .ds n 5
 .ds d @TERMINFO@
 [\fB\-\
 1\
 C\
 [\fB\-\
 1\
 C\
+G\
 I\
 I\
+L\
 N\
 N\
-R\
 T\
 V\
 a\
 c\
 f\
 T\
 V\
 a\
 c\
 f\
+g\
 r\
 s\
 r\
 s\
+t\
 x\
 \fR]
 [\fB-e\fR \fInames\fR]
 [\fB-o\fR \fIdir\fR]
 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]]
 \fIfile\fR
 [\fB-v\fR[\fIn\fR]]
 [\fB-w\fR[\fIn\fR]]
 \fIfile\fR
@@ -74,12 +78,22 @@ 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
 directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
 finally look in \fI\*d\fR.
 .TP
+\fB-1\fR
+restricts the output to a single column
+.TP
 \fB-a\fR
 tells \fBtic\fP to retain commented-out capabilities rather than discarding
 them.  Capabilities are commented by prefixing them with a period.
 This sets the \fB-x\fR option, because it treats the commented-out
 entries as user-defined names.
 .TP
 \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
 entries as user-defined names.
 .TP
+\fB-C\fR
+Force source translation to termcap format.  Note: this differs from the -C
+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
 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
 \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
@@ -88,35 +102,28 @@ will print warnings about entries which, after use resolution, are more than
 libraries (and a documented limit in terminfo), these entries may cause core
 dumps.
 .TP
 libraries (and a documented limit in terminfo), these entries may cause core
 dumps.
 .TP
-\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
-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-o\fR\fIdir\fR
-Write compiled entries to given directory.  Overrides the TERMINFO environment
-variable.
-.TP
-\fB-w\fR\fIn\fR
-specifies the width of the output.
-.TP
-\fB-1\fR
-restricts the output to a single column
+\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
+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 -I or -C.)
 .TP
 .TP
-\fB-C\fR
-Force source translation to termcap format.  Note: this differs from the -C
-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.
+\fB-f\fR
+Display complex terminfo strings which contain if/then/else/endif expressions
+indented for readability.
 .TP
 \fB-G\fR
 Display constant literals in decimal form
 rather than their character equivalents.
 .TP
 .TP
 \fB-G\fR
 Display constant literals in decimal form
 rather than their character equivalents.
 .TP
+\fB-g\fR
+Display constant character literals in quoted form
+rather than their decimal equivalents.
+.TP
 \fB-I\fR
 Force source translation to terminfo format.
 .TP
 \fB-I\fR
 Force source translation to terminfo format.
 .TP
@@ -136,49 +143,51 @@ 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
 This option forces a more literal translation that also preserves the
 obsolete capabilities.
 .TP
+\fB-o\fR\fIdir\fR
+Write compiled entries to given directory.  Overrides the TERMINFO environment
+variable.
+.TP
 \fB-R\fR\fIsubset\fR
 Restrict output to a given subset.  This option is for use with archaic
 \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 don't support
+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
 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
+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
+Summarize the compile by showing the directory into which entries
+are written, and the number of entries which are compiled.
+.TP
 \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
 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
+tells \fBtic\fP to discard commented-out capabilities.
+Normally when translating from terminfo to termcap,
+untranslatable capabilities are commented-out.
+.TP
 \fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .TP
 \fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .TP
-\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 up
-to version 1.3 or BSD termcap up to 4.3BSD) that doesn't handle multiple
-tc capabilities per entry.
-.TP
-\fB-e\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
-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 -I or -C.)
-.TP
-\fB-f\fR
-Display complex terminfo strings which contain if/then/else/endif expressions
-indented for readability.
-.TP
-\fB-g\fR
-Display constant character literals in quoted form
-rather than their decimal equivalents.
+\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
+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
 .TP
-\fB-s\fR
-Summarize the compile by showing the directory into which entries
-are written, and the number of entries which are compiled.
+\fB-w\fR\fIn\fR
+specifies the width of the output.
 .TP
 \fB-x\fR
 Treat unknown capabilities as user-defined.
 .TP
 \fB-x\fR
 Treat unknown capabilities as user-defined.
@@ -214,7 +223,7 @@ List of tokens encountered by scanner
 9
 All values computed in construction of the hash table
 .LP
 9
 All values computed in construction of the hash table
 .LP
-If n is not given, it is taken to be one.
+If the debug level \fIn\fR is not given, it is taken to be one.
 .PP
 All but one of the capabilities recognized by \fBtic\fR are documented
 in \fBterminfo\fR(\*n).  The exception is the \fBuse\fR capability.
 .PP
 All but one of the capabilities recognized by \fBtic\fR are documented
 in \fBterminfo\fR(\*n).  The exception is the \fBuse\fR capability.
@@ -278,7 +287,8 @@ The
 \fB-g\fR,
 \fB-o\fR,
 \fB-r\fR,
 \fB-g\fR,
 \fB-o\fR,
 \fB-r\fR,
-\fB-s\fR and
+\fB-s\fR,
+\fB-t\fR and 
 \fB-x\fR
 options
 are not supported under SVr4.
 \fB-x\fR
 options
 are not supported under SVr4.
index 898df1e606f50a5527d6d6a34c5694f2bc5e1385..7e73b0e0f49222c6274d2e7118c2eca3aff03753 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tput.1,v 1.16 2000/09/09 20:43:33 tom Exp $
+.\" $Id: tput.1,v 1.18 2002/10/12 13:53:20 tom Exp $
 .TH tput 1 ""
 .ds d @TERMINFO@
 .TH tput 1 ""
 .ds d @TERMINFO@
-.ds n 5
+.ds n 1
 .SH NAME
 \fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
 .SH SYNOPSIS
 .SH NAME
 \fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
 .SH SYNOPSIS
@@ -76,16 +76,27 @@ the attribute is also accepted.
 .TP
 \fIparms\fR
 If the attribute is a string that takes parameters, the arguments
 .TP
 \fIparms\fR
 If the attribute 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.
+\fIparms\fR will be instantiated into the string.
+An all-numeric argument will be passed to the attribute as a number.
+.IP
+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,
+\fBtput\fR writes the string without performing the substitution. 
 .TP
 \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
 .TP
 \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
+instead of from the command line (see example).
+Only one \fIcapname\fR is allowed per line.
+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).
 meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
 EXIT CODES section).
+.IP
+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
 reports the version of ncurses which was used in this program, and exits.
 .TP
 \fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
@@ -126,7 +137,7 @@ Initialize the terminal according to the type of
 terminal in the environmental variable \fBTERM\fR.  This
 command should be included in everyone's .profile after
 the environmental variable \fBTERM\fR has been exported, as
 terminal in the environmental variable \fBTERM\fR.  This
 command should be included in everyone's .profile after
 the environmental variable \fBTERM\fR has been exported, as
-illustrated on the \fBprofile\fR(4) manual page.
+illustrated on the \fBprofile\fR(5) manual page.
 .TP 5
 \fBtput -T5620 reset\fR
 Reset an AT&T 5620 terminal, overriding the type of
 .TP 5
 \fBtput -T5620 reset\fR
 Reset an AT&T 5620 terminal, overriding the type of
@@ -158,6 +169,9 @@ Set exit code to indicate if the current terminal is a hard copy terminal.
 \fBtput cup 23 4\fR
 Send the sequence to move the cursor to row 23, column 4.
 .TP 5
 \fBtput cup 23 4\fR
 Send the sequence to move the cursor to row 23, column 4.
 .TP 5
+\fBtput cup\fR
+Send the terminfo string for cursor-movement, with no parameters substituted.
+.TP 5
 \fBtput longname\fR
 Print the long name from the \fBterminfo\fR database for the
 type of terminal specified in the environmental
 \fBtput longname\fR
 Print the long name from the \fBterminfo\fR database for the
 type of terminal specified in the environmental
@@ -176,10 +190,11 @@ variable \fBTERM\fR.
 .RE
 .TP 5
 \&
 .RE
 .TP 5
 \&
-This example shows tput processing several capabilities in one
-invocation.  This example clears the screen, moves the cursor to
-position 10, 10 and turns on bold (extra bright) mode.  The list is
-terminated by an exclamation mark (\fB!\fR) on a line by itself.
+This example shows \fBtput\fR processing several capabilities in one invocation.
+It clears the screen,
+moves the cursor to position 10, 10
+and turns on bold (extra bright) mode.
+The list is terminated by an exclamation mark (\fB!\fR) on a line by itself.
 .SH FILES
 .TP
 \fB\*d\fR
 .SH FILES
 .TP
 \fB\*d\fR
@@ -196,39 +211,50 @@ tab settings for some terminals, in a format
 appropriate to be output to the terminal (escape
 sequences that set margins and tabs); for more
 information, see the "Tabs and Initialization"
 appropriate to be output to the terminal (escape
 sequences that set margins and tabs); for more
 information, see the "Tabs and Initialization"
-section of \fBterminfo\fR(4)
-.SH SEE ALSO
-\fB@CLEAR@\fR(1), \fBstty\fR(1), \fBtabs\fR(\*n).  \fBprofile\fR(\*n),
-\fBterminfo\fR(4) in the \fISystem\fR \fIAdministrator\fR'\fIs\fR
-\fIReference\fR \fIManual\fR.  Chapter 10 of the
-\fIProgrammer\fR'\fIs\fR \fIGuide\fR.
+section of \fBterminfo\fR(5)
 .SH EXIT CODES
 .SH EXIT CODES
-If \fIcapname\fR is of type boolean, a value of \fB0\fR is set for
-TRUE and \fB1\fR for FALSE unless the \fB-S\fR option is used.
-.PP
-If \fIcapname\fR is of type string, a value of \fB0\fR is set if the
-\fIcapname\fR is defined for this terminal \fItype\fR (the value of
-\fIcapname\fR is returned on standard output); a value of \fB1\fR is
-set if \fIcapname\fR is not defined for this terminal \fItype\fR (a
-null value is returned on standard output).
-.PP
-If \fIcapname\fR is of type boolean or string and the \fB-S\fR option
-is used, a value of \fB0\fR is returned to indicate that all lines
-were successful.  No indication of which line failed can be given so
+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.
+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.
 exit code \fB1\fR will never appear.  Exit codes \fB2\fR, \fB3\fR, and
 \fB4\fR retain their usual interpretation.
-.PP
-If \fIcapname\fR is of type integer, a value of \fB0\fR is always set,
+If the \fB-S\fR option is not used,
+the exit code depends on the type of \fIcapname\fR:
+.RS 5
+.TP
+.I boolean
+a value of \fB0\fR is set for TRUE and \fB1\fR for FALSE.
+.TP
+.I string
+a value of \fB0\fR is set if the
+\fIcapname\fR is defined for this terminal \fItype\fR (the value of
+\fIcapname\fR is returned on standard output);
+a value of \fB1\fR is set if \fIcapname\fR
+is not defined for this terminal \fItype\fR
+(nothing is written to standard output).
+.TP
+.I integer
+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,
 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 of standard output.  A value of \fB-1\fR
+the user must test the value written to standard output.
+A value of \fB-1\fR
 means that \fIcapname\fR is not defined for this terminal \fItype\fR.
 means that \fIcapname\fR is not defined for this terminal \fItype\fR.
+.TP
+.I other
+\fBreset\fR or \fBinit\fR may fail to find their respective files.
+In that case, the exit code is set to 4 + \fBerrno\fR.
+.RE
 .PP
 Any other exit code indicates an error; see the DIAGNOSTICS section.
 .SH DIAGNOSTICS
 \fBtput\fR prints the following error messages and sets the corresponding exit
 codes.
 .PP
 .PP
 Any other exit code indicates an error; see the DIAGNOSTICS section.
 .SH DIAGNOSTICS
 \fBtput\fR prints the following error messages and sets the corresponding exit
 codes.
 .PP
+.ne 15
 .TS
 l l.
 exit code      error message
 .TS
 l l.
 exit code      error message
@@ -242,12 +268,18 @@ T}
 \fB2\fR        usage error
 \fB3\fR        unknown terminal \fItype\fR or no \fBterminfo\fR database
 \fB4\fR        unknown \fBterminfo\fR capability \fIcapname\fR
 \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
 =
 .TE
 .SH PORTABILITY
 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.
 =
 .TE
 .SH PORTABILITY
 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
+\fB@CLEAR@\fR(1),
+\fBstty\fR(1),
+\fBtabs\fR(\*n),
+\fBterminfo\fR(5).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
index 5988f1987b25ce29fddb648574a5d81599e5aa23..62933f1a153dc8d7aa7952a911658076edd2a6d5 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"                                                                          *
 .\" 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
 .\"
 .\"
 .\" Author: Thomas E. Dickey <dickey@clark.net> 1996
 .\"
-.\" $Id: wresize.3x,v 1.5 1998/03/14 23:42:44 tom Exp $
+.\" $Id: wresize.3x,v 1.7 2002/02/16 22:40:59 tom Exp $
 .TH wresize 3X ""
 .SH NAME
 \fBwresize\fR - resize a curses window
 .TH wresize 3X ""
 .SH NAME
 \fBwresize\fR - resize a curses window
-..
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 \fBint wresize(WINDOW *win, int lines, int columns);\fR
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
 \fBint wresize(WINDOW *win, int lines, int columns);\fR
-..
 .SH DESCRIPTION
 The \fBwresize\fR function reallocates storage for an \fBncurses\fR
 window to adjust its dimensions to the specified values.
 If either dimension is larger than the current values, the
 window's data is filled with blanks that have the current background rendition
 (as set by \fBwbkgndset\fR) merged into them.
 .SH DESCRIPTION
 The \fBwresize\fR function reallocates storage for an \fBncurses\fR
 window to adjust its dimensions to the specified values.
 If either dimension is larger than the current values, the
 window's data is filled with blanks that have the current background rendition
 (as set by \fBwbkgndset\fR) merged into them.
-..
 .SH RETURN VALUE
 The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
 It will fail if either of the dimensions less than or equal to zero,
 or if an error occurs while (re)allocating memory for the window.
 .SH RETURN VALUE
 The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
 It will fail if either of the dimensions less than or equal to zero,
 or if an error occurs while (re)allocating memory for the window.
-..
 .SH NOTES
 The only restriction placed on the dimensions is that they be greater than zero.
 The dimensions are not compared to \fBcurses\fR screen dimensions to
 simplify the logic of \fBresizeterm\fR.
 The caller must ensure that the window's dimensions fit within the
 actual screen dimensions.
 .SH NOTES
 The only restriction placed on the dimensions is that they be greater than zero.
 The dimensions are not compared to \fBcurses\fR screen dimensions to
 simplify the logic of \fBresizeterm\fR.
 The caller must ensure that the window's dimensions fit within the
 actual screen dimensions.
-..
 .SH SEE ALSO
 \fBresizeterm\fR(3X).
 .SH SEE ALSO
 \fBresizeterm\fR(3X).
-..
 .SH AUTHOR
 Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
 .\"#
 .SH AUTHOR
 Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
 .\"#
index 08f7dc258f1a707ebadb35a329da89d66e29c3aa..b5c7b68cbd46946f1cf2536557690d480c960668 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.31 2000/10/14 17:57:02 Johnny.C.Lam Exp $
+# $Id: Makefile.in,v 1.36 2002/01/20 01:49:17 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.      #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -50,6 +50,7 @@ DESTDIR               = @DESTDIR@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
+bindir         = @bindir@
 libdir         = @libdir@
 includedir     = @includedir@
 
 libdir         = @libdir@
 includedir     = @includedir@
 
@@ -57,6 +58,7 @@ LIBTOOL               = @LIBTOOL@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
+INSTALL_PROG   = @INSTALL_PROG@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
@@ -85,7 +87,7 @@ CFLAGS_DEFAULT        = $(CFLAGS_@DFT_UPR_MODEL@)
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
-SHLIB_DIRS     = -L../lib -L$(libdir)
+SHLIB_DIRS     = -L../lib
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
@@ -97,6 +99,8 @@ ABI_VERSION   = @cf_cv_abi_version@
 
 RANLIB         = @RANLIB@
 
 
 RANLIB         = @RANLIB@
 
+IMPORT_LIB     = @IMPORT_LIB@
+SHARED_LIB     = @SHARED_LIB@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
@@ -115,8 +119,9 @@ install ::  $(AUTO_SRC) $(LIBRARIES)
 
 sources :      $(AUTO_SRC)
 
 
 sources :      $(AUTO_SRC)
 
+$(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
 $(DESTDIR)$(libdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 # make copies to simplify include-paths while still keeping menu's include
 # file in this directory.
 
 # make copies to simplify include-paths while still keeping menu's include
 # file in this directory.
@@ -142,7 +147,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
index 3fd5627445e7418f026df730f9382e6d5f66edc6..7867bc94502e8350540db687167150aef67cfeed 100644 (file)
@@ -11,4 +11,5 @@ directory.
 
 Juergen Pfeifer
 
 
 Juergen Pfeifer
 
-eMail: juergen.pfeifer@gmx.net
+Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
+
index cc1c8308a948d5c4ea15b2a90ab40a0c7b886008..d46636b077a2aca6c34a852a126f0ab8cf85fe0a 100644 (file)
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
  ****************************************************************************/
 
-#ifndef _ETI_ERRNO_H_
-#define _ETI_ERRNO_H_
+#ifndef NCURSES_ETI_H_incl
+#define NCURSES_ETI_H_incl 1
 
 #define        E_OK                    (0)
 #define        E_SYSTEM_ERROR          (-1)
 
 #define        E_OK                    (0)
 #define        E_SYSTEM_ERROR          (-1)
index 3f421c1113b2c8e4046dc5a19e93f8d8196c030c..82a7af486f30e6acf7c2609729e85749d1473f9a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission 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,1997,1999              *
+ *  Author: Thomas E. Dickey <dickey@clark.net> 1996-1999,2002              *
  ****************************************************************************/
 /* LINTLIBRARY */
 
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -122,10 +122,10 @@ MENU      _nc_Default_Menu;
 ITEM   _nc_Default_Item;
 
 #undef _nc_Connect_Items
 ITEM   _nc_Default_Item;
 
 #undef _nc_Connect_Items
-bool   _nc_Connect_Items(
+NCURSES_BOOL _nc_Connect_Items(
                MENU    *menu, 
                ITEM    **items)
                MENU    *menu, 
                ITEM    **items)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_Disconnect_Items
 void   _nc_Disconnect_Items(
 
 #undef _nc_Disconnect_Items
 void   _nc_Disconnect_Items(
@@ -310,20 +310,20 @@ void      *item_userptr(
 #undef set_item_value
 int    set_item_value(
                ITEM    *item, 
 #undef set_item_value
 int    set_item_value(
                ITEM    *item, 
-               bool    value)
+               NCURSES_BOOL value)
                { return(*(int *)0); }
 
 #undef item_value
                { return(*(int *)0); }
 
 #undef item_value
-bool   item_value(
+NCURSES_BOOL item_value(
                const ITEM *item)
                const ITEM *item)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./m_item_vis.c */
 
 #undef item_visible
 
 /* ./m_item_vis.c */
 
 #undef item_visible
-bool   item_visible(
+NCURSES_BOOL item_visible(
                const ITEM *item)
                const ITEM *item)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./m_items.c */
 
 
 /* ./m_items.c */
 
diff --git a/menu/llib-lmenuw b/menu/llib-lmenuw
new file mode 100644 (file)
index 0000000..3abc5f3
--- /dev/null
@@ -0,0 +1,508 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey <dickey@clark.net> 2002                        *
+ ****************************************************************************/
+/* LINTLIBRARY */
+
+/* ./m_attribs.c */
+
+#include "menu.priv.h"
+
+#undef set_menu_fore
+int    set_menu_fore(
+               MENU    *menu, 
+               chtype  attr)
+               { return(*(int *)0); }
+
+#undef menu_fore
+chtype menu_fore(
+               const MENU *menu)
+               { return(*(chtype *)0); }
+
+#undef set_menu_back
+int    set_menu_back(
+               MENU    *menu, 
+               chtype  attr)
+               { return(*(int *)0); }
+
+#undef menu_back
+chtype menu_back(
+               const MENU *menu)
+               { return(*(chtype *)0); }
+
+#undef set_menu_grey
+int    set_menu_grey(
+               MENU    *menu, 
+               chtype  attr)
+               { return(*(int *)0); }
+
+#undef menu_grey
+chtype menu_grey(
+               const MENU *menu)
+               { return(*(chtype *)0); }
+
+/* ./m_cursor.c */
+
+#undef _nc_menu_cursor_pos
+int    _nc_menu_cursor_pos(
+               const MENU *menu, 
+               const ITEM *item, 
+               int     *pY, 
+               int     *pX)
+               { return(*(int *)0); }
+
+#undef pos_menu_cursor
+int    pos_menu_cursor(
+               const MENU *menu)
+               { return(*(int *)0); }
+
+/* ./m_driver.c */
+
+#undef _nc_Match_Next_Character_In_Item_Name
+int    _nc_Match_Next_Character_In_Item_Name(
+               MENU    *menu, 
+               int     ch, 
+               ITEM    **item)
+               { return(*(int *)0); }
+
+#undef menu_driver
+int    menu_driver(
+               MENU    *menu, 
+               int     c)
+               { return(*(int *)0); }
+
+/* ./m_format.c */
+
+#undef set_menu_format
+int    set_menu_format(
+               MENU    *menu, 
+               int     rows, 
+               int     cols)
+               { return(*(int *)0); }
+
+#undef menu_format
+void   menu_format(
+               const MENU *menu, 
+               int     *rows, 
+               int     *cols)
+               { /* void */ }
+
+/* ./m_global.c */
+
+#undef _nc_Default_Menu
+MENU   _nc_Default_Menu;
+#undef _nc_Default_Item
+ITEM   _nc_Default_Item;
+
+#undef _nc_Connect_Items
+NCURSES_BOOL _nc_Connect_Items(
+               MENU    *menu, 
+               ITEM    **items)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_Disconnect_Items
+void   _nc_Disconnect_Items(
+               MENU    *menu)
+               { /* void */ }
+
+#undef _nc_Calculate_Item_Length_and_Width
+void   _nc_Calculate_Item_Length_and_Width(
+               MENU    *menu)
+               { /* void */ }
+
+#undef _nc_Link_Items
+void   _nc_Link_Items(
+               MENU    *menu)
+               { /* void */ }
+
+#undef _nc_Show_Menu
+void   _nc_Show_Menu(
+               const MENU *menu)
+               { /* void */ }
+
+#undef _nc_New_TopRow_and_CurrentItem
+void   _nc_New_TopRow_and_CurrentItem(
+               MENU    *menu, 
+               int     new_toprow, 
+               ITEM    *new_current_item)
+               { /* void */ }
+
+/* ./m_hook.c */
+
+#undef set_menu_init
+int    set_menu_init(
+               MENU    *menu, 
+               Menu_Hook func)
+               { return(*(int *)0); }
+
+#undef menu_init
+Menu_Hook menu_init(
+               const MENU *menu)
+               { return(*(Menu_Hook *)0); }
+
+#undef set_menu_term
+int    set_menu_term(
+               MENU    *menu, 
+               Menu_Hook func)
+               { return(*(int *)0); }
+
+#undef menu_term
+Menu_Hook menu_term(
+               const MENU *menu)
+               { return(*(Menu_Hook *)0); }
+
+#undef set_item_init
+int    set_item_init(
+               MENU    *menu, 
+               Menu_Hook func)
+               { return(*(int *)0); }
+
+#undef item_init
+Menu_Hook item_init(
+               const MENU *menu)
+               { return(*(Menu_Hook *)0); }
+
+#undef set_item_term
+int    set_item_term(
+               MENU    *menu, 
+               Menu_Hook func)
+               { return(*(int *)0); }
+
+#undef item_term
+Menu_Hook item_term(
+               const MENU *menu)
+               { return(*(Menu_Hook *)0); }
+
+/* ./m_item_cur.c */
+
+#undef set_current_item
+int    set_current_item(
+               MENU    *menu, 
+               ITEM    *item)
+               { return(*(int *)0); }
+
+#undef current_item
+ITEM   *current_item(
+               const MENU *menu)
+               { return(*(ITEM **)0); }
+
+#undef item_index
+int    item_index(
+               const ITEM *item)
+               { return(*(int *)0); }
+
+/* ./m_item_nam.c */
+
+#undef item_name
+const char *item_name(
+               const ITEM *item)
+               { return(*(const char **)0); }
+
+#undef item_description
+const char *item_description(
+               const ITEM *item)
+               { return(*(const char **)0); }
+
+/* ./m_item_new.c */
+
+#undef new_item
+ITEM   *new_item(
+               const char *name, 
+               const char *description)
+               { return(*(ITEM **)0); }
+
+#undef free_item
+int    free_item(
+               ITEM    *item)
+               { return(*(int *)0); }
+
+#undef set_menu_mark
+int    set_menu_mark(
+               MENU    *menu, 
+               const char *mark)
+               { return(*(int *)0); }
+
+#undef menu_mark
+const char *menu_mark(
+               const MENU *menu)
+               { return(*(const char **)0); }
+
+/* ./m_item_opt.c */
+
+#undef set_item_opts
+int    set_item_opts(
+               ITEM    *item, 
+               Item_Options opts)
+               { return(*(int *)0); }
+
+#undef item_opts_off
+int    item_opts_off(
+               ITEM    *item, 
+               Item_Options opts)
+               { return(*(int *)0); }
+
+#undef item_opts_on
+int    item_opts_on(
+               ITEM    *item, 
+               Item_Options opts)
+               { return(*(int *)0); }
+
+#undef item_opts
+Item_Options item_opts(
+               const ITEM *item)
+               { return(*(Item_Options *)0); }
+
+/* ./m_item_top.c */
+
+#undef set_top_row
+int    set_top_row(
+               MENU    *menu, 
+               int     row)
+               { return(*(int *)0); }
+
+#undef top_row
+int    top_row(
+               const MENU *menu)
+               { return(*(int *)0); }
+
+/* ./m_item_use.c */
+
+#undef set_item_userptr
+int    set_item_userptr(
+               ITEM    *item, 
+               void    *userptr)
+               { return(*(int *)0); }
+
+#undef item_userptr
+void   *item_userptr(
+               const ITEM *item)
+               { return(*(void **)0); }
+
+/* ./m_item_val.c */
+
+#undef set_item_value
+int    set_item_value(
+               ITEM    *item, 
+               NCURSES_BOOL value)
+               { return(*(int *)0); }
+
+#undef item_value
+NCURSES_BOOL item_value(
+               const ITEM *item)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./m_item_vis.c */
+
+#undef item_visible
+NCURSES_BOOL item_visible(
+               const ITEM *item)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./m_items.c */
+
+#undef set_menu_items
+int    set_menu_items(
+               MENU    *menu, 
+               ITEM    **items)
+               { return(*(int *)0); }
+
+#undef menu_items
+ITEM   **menu_items(
+               const MENU *menu)
+               { return(*(ITEM ***)0); }
+
+#undef item_count
+int    item_count(
+               const MENU *menu)
+               { return(*(int *)0); }
+
+/* ./m_new.c */
+
+#undef new_menu
+MENU   *new_menu(
+               ITEM    **items)
+               { return(*(MENU **)0); }
+
+#undef free_menu
+int    free_menu(
+               MENU    *menu)
+               { return(*(int *)0); }
+
+/* ./m_opts.c */
+
+#undef set_menu_opts
+int    set_menu_opts(
+               MENU    *menu, 
+               Menu_Options opts)
+               { return(*(int *)0); }
+
+#undef menu_opts_off
+int    menu_opts_off(
+               MENU    *menu, 
+               Menu_Options opts)
+               { return(*(int *)0); }
+
+#undef menu_opts_on
+int    menu_opts_on(
+               MENU    *menu, 
+               Menu_Options opts)
+               { return(*(int *)0); }
+
+#undef menu_opts
+Menu_Options menu_opts(
+               const MENU *menu)
+               { return(*(Menu_Options *)0); }
+
+/* ./m_pad.c */
+
+#undef set_menu_pad
+int    set_menu_pad(
+               MENU    *menu, 
+               int     pad)
+               { return(*(int *)0); }
+
+#undef menu_pad
+int    menu_pad(
+               const MENU *menu)
+               { return(*(int *)0); }
+
+/* ./m_pattern.c */
+
+#undef menu_pattern
+char   *menu_pattern(
+               const MENU *menu)
+               { return(*(char **)0); }
+
+#undef set_menu_pattern
+int    set_menu_pattern(
+               MENU    *menu, 
+               const char *p)
+               { return(*(int *)0); }
+
+/* ./m_post.c */
+
+#undef _nc_Post_Item
+void   _nc_Post_Item(
+               const MENU *menu, 
+               const ITEM *item)
+               { /* void */ }
+
+#undef _nc_Draw_Menu
+void   _nc_Draw_Menu(
+               const MENU *menu)
+               { /* void */ }
+
+#undef post_menu
+int    post_menu(
+               MENU    *menu)
+               { return(*(int *)0); }
+
+#undef unpost_menu
+int    unpost_menu(
+               MENU    *menu)
+               { return(*(int *)0); }
+
+/* ./m_req_name.c */
+
+#undef menu_request_name
+const char *menu_request_name(
+               int     request)
+               { return(*(const char **)0); }
+
+#undef menu_request_by_name
+int    menu_request_by_name(
+               const char *str)
+               { return(*(int *)0); }
+
+/* ./m_scale.c */
+
+#undef scale_menu
+int    scale_menu(
+               const MENU *menu, 
+               int     *rows, 
+               int     *cols)
+               { return(*(int *)0); }
+
+/* ./m_spacing.c */
+
+#undef set_menu_spacing
+int    set_menu_spacing(
+               MENU    *menu, 
+               int     s_desc, 
+               int     s_row, 
+               int     s_col)
+               { return(*(int *)0); }
+
+#undef menu_spacing
+int    menu_spacing(
+               const MENU *menu, 
+               int     *s_desc, 
+               int     *s_row, 
+               int     *s_col)
+               { return(*(int *)0); }
+
+/* ./m_sub.c */
+
+#undef set_menu_sub
+int    set_menu_sub(
+               MENU    *menu, 
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef menu_sub
+WINDOW *menu_sub(
+               const MENU *menu)
+               { return(*(WINDOW **)0); }
+
+/* ./m_userptr.c */
+
+#undef set_menu_userptr
+int    set_menu_userptr(
+               MENU    *menu, 
+               void    *userptr)
+               { return(*(int *)0); }
+
+#undef menu_userptr
+void   *menu_userptr(
+               const MENU *menu)
+               { return(*(void **)0); }
+
+/* ./m_win.c */
+
+#undef set_menu_win
+int    set_menu_win(
+               MENU    *menu, 
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef menu_win
+WINDOW *menu_win(
+               const MENU *menu)
+               { return(*(WINDOW **)0); }
index 3cf2a1189bf356f868da0076124bd9e978bd8150..34db8802d5187576c7073dbc0ef805dbbb1fd2bf 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_attribs.c,v 1.8 1999/05/16 17:24:24 juergen Exp $")
+MODULE_ID("$Id: m_attribs.c,v 1.10 2002/07/06 15:22:16 juergen Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
@@ -49,7 +50,7 @@ MODULE_ID("$Id: m_attribs.c,v 1.8 1999/05/16 17:24:24 juergen Exp $")
 
 /* "Template" macro to generate a function to set a menus attribute */
 #define GEN_MENU_ATTR_SET_FCT( name ) \
 
 /* "Template" macro to generate a function to set a menus attribute */
 #define GEN_MENU_ATTR_SET_FCT( name ) \
-int set_menu_ ## name (MENU * menu, chtype attr)\
+NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU * menu, chtype attr)\
 {\
    if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
       RETURN(E_BAD_ARGUMENT);\
 {\
    if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
       RETURN(E_BAD_ARGUMENT);\
@@ -64,7 +65,7 @@ int set_menu_ ## name (MENU * menu, chtype attr)\
 
 /* "Template" macro to generate a function to get a menus attribute */
 #define GEN_MENU_ATTR_GET_FCT( name ) \
 
 /* "Template" macro to generate a function to get a menus attribute */
 #define GEN_MENU_ATTR_GET_FCT( name ) \
-chtype menu_ ## name (const MENU * menu)\
+NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
 {\
    return (Normalize_Menu( menu ) -> name);\
 }
 {\
    return (Normalize_Menu( menu ) -> name);\
 }
index a46308954e967a643a28b4edf8ed6b65c45a533a..0ab3b7a3aead70fd9e106f3b263ddc6118c73fa9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_cursor.c,v 1.13 1999/05/16 17:24:43 juergen Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.15 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -49,9 +50,9 @@ MODULE_ID("$Id: m_cursor.c,v 1.13 1999/05/16 17:24:43 juergen Exp $")
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
-int _nc_menu_cursor_pos(const MENU* menu,
-                       const ITEM* item,
-                       int* pY, int* pX)
+NCURSES_EXPORT(int)
+_nc_menu_cursor_pos
+(const MENU* menu, const ITEM* item, int* pY, int* pX)
 {
   if (!menu || !pX || !pY)
     return(E_BAD_ARGUMENT);
 {
   if (!menu || !pX || !pY)
     return(E_BAD_ARGUMENT);
@@ -80,7 +81,8 @@ int _nc_menu_cursor_pos(const MENU* menu,
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
-int pos_menu_cursor(const MENU * menu)
+NCURSES_EXPORT(int)
+pos_menu_cursor (const MENU * menu)
 {
   WINDOW *win, *sub;
   int x, y;
 {
   WINDOW *win, *sub;
   int x, y;
index fef3e8ea7147e69436f72854c28cb5081ca4e595..d86100d776df052ad805d10514cf47215112f020 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_driver.c,v 1.17 1999/05/16 17:24:55 juergen Exp $")
+MODULE_ID("$Id: m_driver.c,v 1.19 2002/07/06 15:22:16 juergen Exp $")
 
 /* Macros */
 
 
 /* Macros */
 
@@ -111,7 +112,9 @@ static bool Is_Sub_String(
 |   Return Values :  E_OK        - an item matching the pattern was found
 |                    E_NO_MATCH  - nothing found
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK        - an item matching the pattern was found
 |                    E_NO_MATCH  - nothing found
 +--------------------------------------------------------------------------*/
-int _nc_Match_Next_Character_In_Item_Name(MENU *menu, int ch, ITEM **item)
+NCURSES_EXPORT(int)
+_nc_Match_Next_Character_In_Item_Name
+(MENU *menu, int ch, ITEM **item)
 {
   bool found = FALSE, passed = FALSE;
   int  idx, last;
 {
   bool found = FALSE, passed = FALSE;
   int  idx, last;
@@ -198,7 +201,8 @@ int _nc_Match_Next_Character_In_Item_Name(MENU *menu, int ch, ITEM **item)
 |                    E_BAD_STATE     - menu is in user hook routine
 |                    E_NOT_POSTED    - menu is not posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_STATE     - menu is in user hook routine
 |                    E_NOT_POSTED    - menu is not posted
 +--------------------------------------------------------------------------*/
-int menu_driver(MENU * menu, int   c)
+NCURSES_EXPORT(int)
+menu_driver (MENU * menu, int   c)
 {
 #define NAVIGATE(dir) \
   if (!item->dir)\
 {
 #define NAVIGATE(dir) \
   if (!item->dir)\
index 829fbe8caf6fe51d96e7c3b9611d01a7c49b5d9d..4f19f76c33d713cf9619810f00e29db97f5fd284 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_format.c,v 1.9 1999/05/16 17:25:04 juergen Exp $")
+MODULE_ID("$Id: m_format.c,v 1.11 2002/07/06 15:22:16 juergen Exp $")
 
 #define minimum(a,b) ((a)<(b) ? (a): (b))
 
 
 #define minimum(a,b) ((a)<(b) ? (a): (b))
 
@@ -55,7 +56,8 @@ MODULE_ID("$Id: m_format.c,v 1.9 1999/05/16 17:25:04 juergen Exp $")
 |                    E_NOT_CONNECTED        - there are no items connected
 |                    E_POSTED               - the menu is already posted
 +--------------------------------------------------------------------------*/
 |                    E_NOT_CONNECTED        - there are no items connected
 |                    E_POSTED               - the menu is already posted
 +--------------------------------------------------------------------------*/
-int set_menu_format(MENU *menu, int rows, int cols)
+NCURSES_EXPORT(int)
+set_menu_format (MENU *menu, int rows, int cols)
 {
   int total_rows, total_cols;
   
 {
   int total_rows, total_cols;
   
@@ -114,7 +116,8 @@ int set_menu_format(MENU *menu, int rows, int cols)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void menu_format(const MENU *menu, int *rows, int *cols)
+NCURSES_EXPORT(void)
+menu_format (const MENU *menu, int *rows, int *cols)
 {
   if (rows)
     *rows = Normalize_Menu(menu)->frows;
 {
   if (rows)
     *rows = Normalize_Menu(menu)->frows;
index 3633e55b9cc2992c8043dad60f6c72925040265c..b1f73f5c8d31c8802cd59fa6f86245f8c11b4f1f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_global.c,v 1.11 1999/05/16 17:25:14 juergen Exp $")
+MODULE_ID("$Id: m_global.c,v 1.14 2002/07/06 15:22:16 juergen Exp $")
 
 
-MENU _nc_Default_Menu = {
+static char mark[] = "-";
+
+NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
   16,                            /* Nr. of chars high */
   1,                             /* Nr. of chars wide */
   16,                            /* Nr. of items high */
   16,                            /* Nr. of chars high */
   1,                             /* Nr. of chars wide */
   16,                            /* Nr. of items high */
@@ -73,12 +76,12 @@ MENU _nc_Default_Menu = {
   (Menu_Hook)0,                          /* Item init */
   (Menu_Hook)0,                          /* Item term */
   (void *)0,                     /* userptr */
   (Menu_Hook)0,                          /* Item init */
   (Menu_Hook)0,                          /* Item term */
   (void *)0,                     /* userptr */
-  "-",                           /* mark */
+  mark,                                  /* mark */
   ALL_MENU_OPTS,                  /* options */
   0                              /* status */      
 };
 
   ALL_MENU_OPTS,                  /* options */
   0                              /* status */      
 };
 
-ITEM _nc_Default_Item = {
+NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
   { (char *)0, 0 },              /* name */
   { (char *)0, 0 },              /* description */
   (MENU *)0,                     /* Pointer to parent menu */
   { (char *)0, 0 },              /* name */
   { (char *)0, 0 },              /* description */
   (MENU *)0,                     /* Pointer to parent menu */
@@ -161,7 +164,8 @@ INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
 |   Return Values :  TRUE       - successfull connection
 |                    FALSE      - connection failed
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE       - successfull connection
 |                    FALSE      - connection failed
 +--------------------------------------------------------------------------*/
-bool _nc_Connect_Items(MENU *menu, ITEM **items)
+NCURSES_EXPORT(bool)
+_nc_Connect_Items (MENU *menu, ITEM **items)
 {
   ITEM **item;
   unsigned int ItemCount = 0;
 {
   ITEM **item;
   unsigned int ItemCount = 0;
@@ -222,7 +226,8 @@ bool _nc_Connect_Items(MENU *menu, ITEM **items)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Disconnect_Items(MENU * menu)
+NCURSES_EXPORT(void)
+_nc_Disconnect_Items (MENU * menu)
 {
   if (menu && menu->items)
     ResetConnectionInfo( menu, menu->items );
 {
   if (menu && menu->items)
     ResetConnectionInfo( menu, menu->items );
@@ -237,7 +242,8 @@ void _nc_Disconnect_Items(MENU * menu)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Calculate_Item_Length_and_Width(MENU * menu)
+NCURSES_EXPORT(void)
+_nc_Calculate_Item_Length_and_Width (MENU * menu)
 {
   int l;
   
 {
   int l;
   
@@ -265,7 +271,8 @@ void _nc_Calculate_Item_Length_and_Width(MENU * menu)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Link_Items(MENU * menu)
+NCURSES_EXPORT(void)
+_nc_Link_Items (MENU * menu)
 {
   if (menu && menu->items && *(menu->items))
     {
 {
   if (menu && menu->items && *(menu->items))
     {
@@ -391,7 +398,8 @@ void _nc_Link_Items(MENU * menu)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Show_Menu(const MENU *menu)
+NCURSES_EXPORT(void)
+_nc_Show_Menu (const MENU *menu)
 {
   WINDOW *win;
   int maxy, maxx;
 {
   WINDOW *win;
   int maxy, maxx;
@@ -430,8 +438,9 @@ void _nc_Show_Menu(const MENU *menu)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_New_TopRow_and_CurrentItem(MENU *menu, int new_toprow,
-                                   ITEM *new_current_item)
+NCURSES_EXPORT(void)
+_nc_New_TopRow_and_CurrentItem
+(MENU *menu, int new_toprow, ITEM *new_current_item)
 {
   ITEM *cur_item;
   bool mterm_called = FALSE;
 {
   ITEM *cur_item;
   bool mterm_called = FALSE;
index e031d37e4fc3f52f91747919cad69f0e2bd471e1..62f729788ea0e4d8c0d5eca23a201b1325b19d84 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_hook.c,v 1.8 1999/05/16 17:25:24 juergen Exp $")
+MODULE_ID("$Id: m_hook.c,v 1.10 2002/07/06 15:22:16 juergen Exp $")
 
 /* "Template" macro to generate function to set application specific hook */
 #define GEN_HOOK_SET_FUNCTION( typ, name ) \
 
 /* "Template" macro to generate function to set application specific hook */
 #define GEN_HOOK_SET_FUNCTION( typ, name ) \
-int set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
+NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
 {\
    (Normalize_Menu(menu) -> typ ## name = func );\
    RETURN(E_OK);\
 {\
    (Normalize_Menu(menu) -> typ ## name = func );\
    RETURN(E_OK);\
@@ -49,7 +50,7 @@ int set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
 
 /* "Template" macro to generate function to get application specific hook */
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
 
 /* "Template" macro to generate function to get application specific hook */
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
-Menu_Hook typ ## _ ## name ( const MENU *menu )\
+NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\
 {\
    return (Normalize_Menu(menu) -> typ ## name);\
 }
 {\
    return (Normalize_Menu(menu) -> typ ## name);\
 }
index 7ac9f33daf10cb1de424641f0c5513f1958a2c96..92215f3c5366335238e6525596f6910bb5b444aa 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_cur.c,v 1.11 1999/05/16 17:25:34 juergen Exp $")
+MODULE_ID("$Id: m_item_cur.c,v 1.13 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -47,7 +48,8 @@ MODULE_ID("$Id: m_item_cur.c,v 1.11 1999/05/16 17:25:34 juergen Exp $")
 |
 |   Return Values :  E_OK                - success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK                - success
 +--------------------------------------------------------------------------*/
-int set_current_item(MENU * menu, ITEM * item)
+NCURSES_EXPORT(int)
+set_current_item (MENU * menu, ITEM * item)
 {
   if (menu && item && (item->imenu==menu))
     {
 {
   if (menu && item && (item->imenu==menu))
     {
@@ -85,7 +87,8 @@ int set_current_item(MENU * menu, ITEM * item)
 |
 |   Return Values :  Item pointer or NULL if failure
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Item pointer or NULL if failure
 +--------------------------------------------------------------------------*/
-ITEM *current_item(const MENU * menu) 
+NCURSES_EXPORT(ITEM *)
+current_item (const MENU * menu) 
 {
   return (menu && menu->items) ? menu->curitem : (ITEM *)0;
 }
 {
   return (menu && menu->items) ? menu->curitem : (ITEM *)0;
 }
@@ -98,7 +101,8 @@ ITEM *current_item(const MENU * menu)
 |
 |   Return Values :  The index or ERR if this is an invalid item pointer
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The index or ERR if this is an invalid item pointer
 +--------------------------------------------------------------------------*/
-int item_index(const ITEM *item)
+NCURSES_EXPORT(int)
+item_index (const ITEM *item)
 {
   return (item && item->imenu) ? item->index : ERR;
 }
 {
   return (item && item->imenu) ? item->index : ERR;
 }
index 1be8a6da86fbc45cb18d60f333d3c37d76715e9f..0a74c6c635c51bd39405e7e4fc1b091b6abc144f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_nam.c,v 1.9 1999/05/16 17:25:43 juergen Exp $")
+MODULE_ID("$Id: m_item_nam.c,v 1.11 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -47,7 +48,8 @@ MODULE_ID("$Id: m_item_nam.c,v 1.9 1999/05/16 17:25:43 juergen Exp $")
 |
 |   Return Values :  See above; returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  See above; returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
-const char *item_name(const ITEM * item) 
+NCURSES_EXPORT(const char *)
+item_name (const ITEM * item) 
 {
   return ((item) ? item->name.str : (char *)0);
 }
 {
   return ((item) ? item->name.str : (char *)0);
 }
@@ -60,7 +62,8 @@ const char *item_name(const ITEM * item)
 |
 |   Return Values :  See above; Returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  See above; Returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
-const char *item_description(const ITEM * item)
+NCURSES_EXPORT(const char *)
+item_description (const ITEM * item)
 {
   return ((item) ? item->description.str : (char *)0);
 }
 {
   return ((item) ? item->description.str : (char *)0);
 }
index a7b50adaebb09395297f720fddc9e5f0d4331890..50dde29222573b6c3f950b3a93ba0e9777693a42 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -38,7 +39,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_new.c,v 1.11 1999/05/16 17:28:49 juergen Exp $")
+MODULE_ID("$Id: m_item_new.c,v 1.13 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -72,7 +73,8 @@ static bool Is_Printable_String(const char *s)
 |
 |   Return Values :  The item pointer or NULL if creation failed.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The item pointer or NULL if creation failed.
 +--------------------------------------------------------------------------*/
-ITEM *new_item(const char *name, const char *description)
+NCURSES_EXPORT(ITEM *)
+new_item (const char *name, const char *description)
 {
   ITEM *item;
   
 {
   ITEM *item;
   
@@ -120,7 +122,8 @@ ITEM *new_item(const char *name, const char *description)
 |                    E_BAD_ARGUMENT    - invalid value has been passed
 |                    E_CONNECTED       - item is still connected to a menu    
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT    - invalid value has been passed
 |                    E_CONNECTED       - item is still connected to a menu    
 +--------------------------------------------------------------------------*/
-int free_item(ITEM * item)
+NCURSES_EXPORT(int)
+free_item (ITEM * item)
 {
   if (!item)
     RETURN( E_BAD_ARGUMENT );
 {
   if (!item)
     RETURN( E_BAD_ARGUMENT );
@@ -150,7 +153,8 @@ int free_item(ITEM * item)
 |                    E_BAD_ARGUMENT     - an invalid value has been passed
 |                    E_SYSTEM_ERROR     - no memory to store mark
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT     - an invalid value has been passed
 |                    E_SYSTEM_ERROR     - no memory to store mark
 +--------------------------------------------------------------------------*/
-int set_menu_mark(MENU * menu, const char * mark)
+NCURSES_EXPORT(int)
+set_menu_mark (MENU * menu, const char * mark)
 {
   int l;
 
 {
   int l;
 
@@ -219,7 +223,8 @@ int set_menu_mark(MENU * menu, const char * mark)
 |
 |   Return Values :  The marker string pointer or NULL if no marker defined
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The marker string pointer or NULL if no marker defined
 +--------------------------------------------------------------------------*/
-const char *menu_mark(const MENU * menu)
+NCURSES_EXPORT(const char *)
+menu_mark (const MENU * menu)
 {
   return Normalize_Menu( menu )->mark;
 }
 {
   return Normalize_Menu( menu )->mark;
 }
index a37fadcbf901d076e576f4823117b0a15cd9233e..c9aed839f200f2325c5bb40558f7706564bdbe0f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_opt.c,v 1.10 1999/05/16 17:25:52 juergen Exp $")
+MODULE_ID("$Id: m_item_opt.c,v 1.12 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,7 +51,8 @@ MODULE_ID("$Id: m_item_opt.c,v 1.10 1999/05/16 17:25:52 juergen Exp $")
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid item options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid item options
 +--------------------------------------------------------------------------*/
-int set_item_opts(ITEM *item, Item_Options opts)
+NCURSES_EXPORT(int)
+set_item_opts (ITEM *item, Item_Options opts)
 { 
   opts &= ALL_ITEM_OPTS;
 
 { 
   opts &= ALL_ITEM_OPTS;
 
@@ -90,7 +92,8 @@ int set_item_opts(ITEM *item, Item_Options opts)
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int item_opts_off(ITEM *item, Item_Options  opts)
+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 behaviour */
 { 
   ITEM *citem = item; /* use a copy because set_item_opts must detect
                          NULL item itself to adjust its behaviour */
@@ -114,7 +117,8 @@ int item_opts_off(ITEM *item, Item_Options  opts)
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int item_opts_on(ITEM *item, Item_Options opts)
+NCURSES_EXPORT(int)
+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 behaviour */
 {
   ITEM *citem = item; /* use a copy because set_item_opts must detect
                          NULL item itself to adjust its behaviour */
@@ -138,7 +142,8 @@ int item_opts_on(ITEM *item, Item_Options opts)
 |
 |   Return Values :  Items options
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Items options
 +--------------------------------------------------------------------------*/
-Item_Options item_opts(const ITEM * item)
+NCURSES_EXPORT(Item_Options)
+item_opts (const ITEM * item)
 {
   return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
 }
 {
   return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
 }
index cbe092afbbc1870494ccbdc92104815da9fcbcc8..04eab6419fd592d2ffc8ec7000249d5b3be5d0be 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_top.c,v 1.4 1999/05/16 17:26:01 juergen Exp $")
+MODULE_ID("$Id: m_item_top.c,v 1.6 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,7 +50,8 @@ MODULE_ID("$Id: m_item_top.c,v 1.4 1999/05/16 17:26:01 juergen Exp $")
 |                    E_BAD_ARGUMENT   - not a menu pointer or invalid row
 |                    E_NOT_CONNECTED  - there are no items for the menu
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT   - not a menu pointer or invalid row
 |                    E_NOT_CONNECTED  - there are no items for the menu
 +--------------------------------------------------------------------------*/
-int set_top_row(MENU * menu, int row)
+NCURSES_EXPORT(int)
+set_top_row (MENU * menu, int row)
 {
   ITEM *item;
   
 {
   ITEM *item;
   
@@ -88,7 +90,8 @@ int set_top_row(MENU * menu, int row)
 |
 |   Return Values :  The row number or ERR if there is no row
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The row number or ERR if there is no row
 +--------------------------------------------------------------------------*/
-int top_row(const MENU * menu)
+NCURSES_EXPORT(int)
+top_row (const MENU * menu)
 {
   if (menu && menu->items && *(menu->items))
     {
 {
   if (menu && menu->items && *(menu->items))
     {
index 2659f4b3f38657eb8ed016c7adfaaa5b13c99fd7..4f52ea1aca1829701decff535b8bb748db5c730d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_use.c,v 1.10 1999/05/16 17:26:11 juergen Exp $")
+MODULE_ID("$Id: m_item_use.c,v 1.12 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: m_item_use.c,v 1.10 1999/05/16 17:26:11 juergen Exp $")
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
-int set_item_userptr(ITEM * item, void * userptr)
+NCURSES_EXPORT(int)
+set_item_userptr (ITEM * item, void * userptr)
 {
   Normalize_Item(item)->userptr = userptr;
   RETURN( E_OK );
 {
   Normalize_Item(item)->userptr = userptr;
   RETURN( E_OK );
@@ -64,7 +66,8 @@ int set_item_userptr(ITEM * item, void * userptr)
 |   Return Values :  Value of the pointer. If no such pointer has been set,
 |                    NULL is returned.
 +--------------------------------------------------------------------------*/
 |   Return Values :  Value of the pointer. If no such pointer has been set,
 |                    NULL is returned.
 +--------------------------------------------------------------------------*/
-void *item_userptr(const ITEM * item)
+NCURSES_EXPORT(void *)
+item_userptr (const ITEM * item)
 {
   return Normalize_Item(item)->userptr;
 }
 {
   return Normalize_Item(item)->userptr;
 }
index cf52d1dd668ad632d1056521403b2bbd0b7b45c5..aa3e43ac8d1a0c22d50666b16094588254bedd89 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_val.c,v 1.8 1999/05/16 17:26:20 juergen Exp $")
+MODULE_ID("$Id: m_item_val.c,v 1.10 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -52,7 +53,8 @@ MODULE_ID("$Id: m_item_val.c,v 1.8 1999/05/16 17:26:20 juergen Exp $")
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - not selectable or single valued menu
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - not selectable or single valued menu
 +--------------------------------------------------------------------------*/
-int set_item_value(ITEM *item, bool value)
+NCURSES_EXPORT(int)
+set_item_value (ITEM *item, bool value)
 {
   MENU *menu;
   
 {
   MENU *menu;
   
@@ -92,7 +94,8 @@ int set_item_value(ITEM *item, bool value)
 |   Return Values :  TRUE   - if item is selected
 |                    FALSE  - if item is not selected
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE   - if item is selected
 |                    FALSE  - if item is not selected
 +--------------------------------------------------------------------------*/
-bool item_value(const ITEM *item)
+NCURSES_EXPORT(bool)
+item_value (const ITEM *item)
 {
   return ((Normalize_Item(item)->value) ? TRUE : FALSE);
 }
 {
   return ((Normalize_Item(item)->value) ? TRUE : FALSE);
 }
index dab5ecb38e3819fec895809780a74f00f09f25ba..5ae40ae56364ccf2fc7de90073cbb4210e8908f6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_vis.c,v 1.10 1999/05/16 17:26:34 juergen Exp $")
+MODULE_ID("$Id: m_item_vis.c,v 1.12 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,7 +50,8 @@ MODULE_ID("$Id: m_item_vis.c,v 1.10 1999/05/16 17:26:34 juergen Exp $")
 |   Return Values :  TRUE  if visible
 |                    FALSE if invisible
 +--------------------------------------------------------------------------*/
 |   Return Values :  TRUE  if visible
 |                    FALSE if invisible
 +--------------------------------------------------------------------------*/
-bool item_visible(const ITEM * item)
+NCURSES_EXPORT(bool)
+item_visible (const ITEM * item)
 {
   MENU *menu;
   
 {
   MENU *menu;
   
index 1bda088a2f9ebcec7ea74f9c6ed30e3e76040eb2..54459e75ad9d9bc8b184466e301ea2ce0e55a96f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_items.c,v 1.8 1999/05/16 17:26:50 juergen Exp $")
+MODULE_ID("$Id: m_items.c,v 1.10 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -52,7 +53,8 @@ MODULE_ID("$Id: m_items.c,v 1.8 1999/05/16 17:26:50 juergen Exp $")
 |                    E_BAD_ARGUMENT - An incorrect menu or item array was
 |                                     passed to the function
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - An incorrect menu or item array was
 |                                     passed to the function
 +--------------------------------------------------------------------------*/
-int set_menu_items(MENU * menu, ITEM ** items)
+NCURSES_EXPORT(int)
+set_menu_items (MENU * menu, ITEM ** items)
 {
   if (!menu || (items && !(*items)))
     RETURN(E_BAD_ARGUMENT);
 {
   if (!menu || (items && !(*items)))
     RETURN(E_BAD_ARGUMENT);
@@ -81,7 +83,8 @@ int set_menu_items(MENU * menu, ITEM ** items)
 |
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
-ITEM **menu_items(const MENU *menu)
+NCURSES_EXPORT(ITEM **)
+menu_items (const MENU *menu)
 {
   return(menu ? menu->items : (ITEM **)0);
 }
 {
   return(menu ? menu->items : (ITEM **)0);
 }
@@ -95,7 +98,8 @@ ITEM **menu_items(const MENU *menu)
 |
 |   Return Values :  Number of items or -1 to indicate error.
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Number of items or -1 to indicate error.
 +--------------------------------------------------------------------------*/
-int item_count(const MENU *menu)
+NCURSES_EXPORT(int)
+item_count (const MENU *menu)
 {
   return(menu ? menu->nitems : -1);
 }
 {
   return(menu ? menu->nitems : -1);
 }
index ba2b90cffe193f5997baa4a6dc618b1daa4cf825..b5143e248d4a74f84b3082ad9075783cd51f8eba 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_new.c,v 1.10 1999/05/16 17:26:59 juergen Exp $")
+MODULE_ID("$Id: m_new.c,v 1.12 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,7 +51,8 @@ MODULE_ID("$Id: m_new.c,v 1.10 1999/05/16 17:26:59 juergen Exp $")
 |
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
-MENU *new_menu(ITEM ** items)
+NCURSES_EXPORT(MENU *)
+new_menu (ITEM ** items)
 {
   MENU *menu = (MENU *)calloc(1,sizeof(MENU));
   
 {
   MENU *menu = (MENU *)calloc(1,sizeof(MENU));
   
@@ -87,7 +89,8 @@ MENU *new_menu(ITEM ** items)
 |                    E_BAD_ARGUMENT     - Invalid menu pointer passed
 |                    E_POSTED           - Menu is already posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT     - Invalid menu pointer passed
 |                    E_POSTED           - Menu is already posted
 +--------------------------------------------------------------------------*/
-int free_menu(MENU * menu)
+NCURSES_EXPORT(int)
+free_menu (MENU * menu)
 {
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
 {
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
index 1875f418755b12aea940edd1c17e0eaf0c794042..298d70849a74d61df2de047ad27e30f4b1876e0b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_opts.c,v 1.12 1999/05/16 17:27:08 juergen Exp $")
+MODULE_ID("$Id: m_opts.c,v 1.14 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -52,7 +53,8 @@ MODULE_ID("$Id: m_opts.c,v 1.12 1999/05/16 17:27:08 juergen Exp $")
 |                    E_BAD_ARGUMENT - invalid menu options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid menu options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
-int set_menu_opts(MENU * menu, Menu_Options opts)
+NCURSES_EXPORT(int)
+set_menu_opts (MENU * menu, Menu_Options opts)
 {
   opts &= ALL_MENU_OPTS;
 
 {
   opts &= ALL_MENU_OPTS;
 
@@ -109,7 +111,8 @@ int set_menu_opts(MENU * menu, Menu_Options opts)
 |                    E_BAD_ARGUMENT - invalid options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
-int menu_opts_off(MENU *menu, Menu_Options  opts)
+NCURSES_EXPORT(int)
+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 behaviour */
 {
   MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
                          NULL menu itself to adjust its behaviour */
@@ -138,7 +141,8 @@ int menu_opts_off(MENU *menu, Menu_Options  opts)
 |                    E_BAD_ARGUMENT - invalid menu options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT - invalid menu options
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
-int menu_opts_on(MENU * menu, Menu_Options opts)
+NCURSES_EXPORT(int)
+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 behaviour */
 {
   MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
                          NULL menu itself to adjust its behaviour */
@@ -162,7 +166,8 @@ int menu_opts_on(MENU * menu, Menu_Options opts)
 |
 |   Return Values :  Menu options
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Menu options
 +--------------------------------------------------------------------------*/
-Menu_Options menu_opts(const MENU *menu)
+NCURSES_EXPORT(Menu_Options)
+menu_opts (const MENU *menu)
 {
   return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
 }
 {
   return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
 }
index 180228329dd241a2dcaada95c2a15a5a1fc9138e..8a3382eab19f411bee24439cec4be13952ded50a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_pad.c,v 1.4 1999/05/16 17:27:17 juergen Exp $")
+MODULE_ID("$Id: m_pad.c,v 1.6 2002/07/06 15:22:16 juergen Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
@@ -58,7 +59,8 @@ MODULE_ID("$Id: m_pad.c,v 1.4 1999/05/16 17:27:17 juergen Exp $")
 |   Return Values :  E_OK              - success
 |                    E_BAD_ARGUMENT    - an invalid value has been passed
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK              - success
 |                    E_BAD_ARGUMENT    - an invalid value has been passed
 +--------------------------------------------------------------------------*/
-int set_menu_pad(MENU *menu, int pad)
+NCURSES_EXPORT(int)
+set_menu_pad (MENU *menu, int pad)
 {
   bool do_refresh = (menu != (MENU*)0);
 
 {
   bool do_refresh = (menu != (MENU*)0);
 
@@ -82,7 +84,8 @@ int set_menu_pad(MENU *menu, int pad)
 |
 |   Return Values :  The pad character
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  The pad character
 +--------------------------------------------------------------------------*/
-int menu_pad(const MENU * menu)
+NCURSES_EXPORT(int)
+menu_pad (const MENU * menu)
 {
   return (Normalize_Menu( menu ) -> pad);
 }
 {
   return (Normalize_Menu( menu ) -> pad);
 }
index 7187c22458804cbef3024cd1bc4050640d08895c..34870012e0c7db83199e5b0c7ea1103d6923228f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_pattern.c,v 1.4 1999/05/16 17:27:28 juergen Exp $")
+MODULE_ID("$Id: m_pattern.c,v 1.7 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,7 +51,8 @@ MODULE_ID("$Id: m_pattern.c,v 1.4 1999/05/16 17:27:28 juergen Exp $")
 |                                    pattern is stored
 |                    PatternString - as expected
 +--------------------------------------------------------------------------*/
 |                                    pattern is stored
 |                    PatternString - as expected
 +--------------------------------------------------------------------------*/
-char *menu_pattern(const MENU * menu)
+NCURSES_EXPORT(char *)
+menu_pattern (const MENU * menu)
 {
   return (menu ? (menu->pattern ? menu->pattern : "") : (char *)0);
 }
 {
   return (menu ? (menu->pattern ? menu->pattern : "") : (char *)0);
 }
@@ -68,7 +70,8 @@ char *menu_pattern(const MENU * menu)
 |                    E_BAD_STATE       - menu in user hook routine
 |                    E_NO_MATCH        - no item matches pattern
 +--------------------------------------------------------------------------*/
 |                    E_BAD_STATE       - menu in user hook routine
 |                    E_NO_MATCH        - no item matches pattern
 +--------------------------------------------------------------------------*/
-int set_menu_pattern(MENU *menu, const char *p)
+NCURSES_EXPORT(int)
+set_menu_pattern (MENU *menu, const char *p)
 {
   ITEM *matchitem;
   int   matchpos;
 {
   ITEM *matchitem;
   int   matchpos;
@@ -99,7 +102,7 @@ int set_menu_pattern(MENU *menu, const char *p)
   
   while(*p)
     {
   
   while(*p)
     {
-      if ( !isprint(*p) || 
+      if ( !isprint((unsigned char)(*p)) || 
          (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
        {
          Reset_Pattern(menu);
          (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
        {
          Reset_Pattern(menu);
index 8825f3e579182f447fefa1b75b0d4fc64506d22f..8751712b3ccff8a955d415e5d90d7cba1fd1686c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_post.c,v 1.16 1999/05/16 17:27:38 juergen Exp $")
+MODULE_ID("$Id: m_post.c,v 1.18 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: m_post.c,v 1.16 1999/05/16 17:27:38 juergen Exp $")
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Post_Item(const MENU * menu, const ITEM * item)
+NCURSES_EXPORT(void)
+_nc_Post_Item (const MENU * menu, const ITEM * item)
 {
   int i;
   chtype ch;
 {
   int i;
   chtype ch;
@@ -189,7 +191,8 @@ void _nc_Post_Item(const MENU * menu, const ITEM * item)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-void _nc_Draw_Menu(const MENU * menu)
+NCURSES_EXPORT(void)
+_nc_Draw_Menu (const MENU * menu)
 {
   ITEM *item = menu->items[0];
   ITEM *lasthor, *lastvert;
 {
   ITEM *item = menu->items[0];
   ITEM *lasthor, *lastvert;
@@ -257,7 +260,8 @@ void _nc_Draw_Menu(const MENU * menu)
 |                    E_BAD_STATE         - Menu in userexit routine
 |                    E_POSTED            - Menu already posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_STATE         - Menu in userexit routine
 |                    E_POSTED            - Menu already posted
 +--------------------------------------------------------------------------*/
-int post_menu(MENU * menu)
+NCURSES_EXPORT(int)
+post_menu (MENU * menu)
 {
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
 {
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
@@ -330,7 +334,8 @@ int post_menu(MENU * menu)
 |                    E_BAD_STATE       - menu in userexit routine
 |                    E_NOT_POSTED      - menu is not posted
 +--------------------------------------------------------------------------*/
 |                    E_BAD_STATE       - menu in userexit routine
 |                    E_NOT_POSTED      - menu is not posted
 +--------------------------------------------------------------------------*/
-int unpost_menu(MENU * menu)
+NCURSES_EXPORT(int)
+unpost_menu (MENU * menu)
 {
   WINDOW *win;
   
 {
   WINDOW *win;
   
index d90d0afc4750b3d8fdb55bf413910f6efb1f157e..758721ba89e232da697fdc36c4d483fb455c955f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_req_name.c,v 1.12 1999/05/16 17:27:47 juergen Exp $")
+MODULE_ID("$Id: m_req_name.c,v 1.14 2002/07/06 15:22:16 juergen Exp $")
 
 static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
   "LEFT_ITEM"    ,
 
 static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
   "LEFT_ITEM"    ,
@@ -69,7 +70,8 @@ static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
 |   Return Values :  Pointer to name      - on success
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
 |   Return Values :  Pointer to name      - on success
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
-const char *menu_request_name( int request )
+NCURSES_EXPORT(const char *)
+menu_request_name ( int request )
 {
   if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
     {
 {
   if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
     {
@@ -90,7 +92,8 @@ const char *menu_request_name( int request )
 |   Return Values :  Request Id       - on success
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
 |   Return Values :  Request Id       - on success
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
-int menu_request_by_name( const char *str )
+NCURSES_EXPORT(int)
+menu_request_by_name ( const char *str )
 { 
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
 { 
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
index d6f964bff66238941f6c3b4da9afa78eeed3caf2..a6daf027656b10a7624f3c6ca971701eda28f339 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_scale.c,v 1.4 1999/05/16 17:28:00 juergen Exp $")
+MODULE_ID("$Id: m_scale.c,v 1.6 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,7 +51,8 @@ MODULE_ID("$Id: m_scale.c,v 1.4 1999/05/16 17:28:00 juergen Exp $")
 |                    E_BAD_ARGUMENT        - invalid menu pointer
 |                    E_NOT_CONNECTED       - no items are connected to menu
 +--------------------------------------------------------------------------*/
 |                    E_BAD_ARGUMENT        - invalid menu pointer
 |                    E_NOT_CONNECTED       - no items are connected to menu
 +--------------------------------------------------------------------------*/
-int scale_menu(const MENU *menu, int *rows, int *cols)
+NCURSES_EXPORT(int)
+scale_menu (const MENU *menu, int *rows, int *cols)
 {
   if (!menu) 
     RETURN( E_BAD_ARGUMENT );
 {
   if (!menu) 
     RETURN( E_BAD_ARGUMENT );
index 1d035ab052d9540d65123b3daa1b0db163fa8db6..25e54e0da2a631e369785d73b726c58731d33e9a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_spacing.c,v 1.11 1999/05/16 17:28:09 juergen Exp $")
+MODULE_ID("$Id: m_spacing.c,v 1.13 2002/07/06 15:22:16 juergen Exp $")
 
 #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
 #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
 
 #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
 #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
@@ -51,7 +52,9 @@ MODULE_ID("$Id: m_spacing.c,v 1.11 1999/05/16 17:28:09 juergen Exp $")
 |
 |   Return Values :  E_OK                 - on success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK                 - on success
 +--------------------------------------------------------------------------*/
-int set_menu_spacing(MENU *menu, int s_desc, int s_row, int s_col )
+NCURSES_EXPORT(int)
+set_menu_spacing
+(MENU *menu, int s_desc, int s_row, int s_col )
 {
   MENU *m; /* split for ATAC workaround */
   m = Normalize_Menu(menu);
 {
   MENU *m; /* split for ATAC workaround */
   m = Normalize_Menu(menu);
@@ -82,7 +85,8 @@ int set_menu_spacing(MENU *menu, int s_desc, int s_row, int s_col )
 |
 |   Return Values :  E_OK             - on success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK             - on success
 +--------------------------------------------------------------------------*/
-int menu_spacing( const MENU *menu, int* s_desc, int* s_row, int* s_col)
+NCURSES_EXPORT(int)
+menu_spacing ( const MENU *menu, int* s_desc, int* s_row, int* s_col)
 {
   const MENU *m; /* split for ATAC workaround */
   m = Normalize_Menu(menu);
 {
   const MENU *m; /* split for ATAC workaround */
   m = Normalize_Menu(menu);
index 35a361e687e2a083d86f880bf4282ba4f3414fbe..76cb0021f51dc0ced9e186eb62ee136ba8d9abb6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_sub.c,v 1.4 1999/05/16 17:28:20 juergen Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.6 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: m_sub.c,v 1.4 1999/05/16 17:28:20 juergen Exp $")
 |   Return Values :  E_OK           - success
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK           - success
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
-int set_menu_sub(MENU *menu, WINDOW *win)
+NCURSES_EXPORT(int)
+set_menu_sub (MENU *menu, WINDOW *win)
 {
   if (menu)
     {
 {
   if (menu)
     {
@@ -71,7 +73,8 @@ int set_menu_sub(MENU *menu, WINDOW *win)
 |
 |   Return Values :  NULL on error, otherwise a pointer to the window
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  NULL on error, otherwise a pointer to the window
 +--------------------------------------------------------------------------*/
-WINDOW *menu_sub(const MENU * menu)
+NCURSES_EXPORT(WINDOW *)
+menu_sub (const MENU * menu)
 {
   const MENU* m = Normalize_Menu(menu);
   return Get_Menu_Window(m);
 {
   const MENU* m = Normalize_Menu(menu);
   return Get_Menu_Window(m);
index 45818a3e78fb1b9848af299bd216617baa1e54bc..908758b1d385151b4800438c60591b80e6da640b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_userptr.c,v 1.10 1999/05/16 17:28:29 juergen Exp $")
+MODULE_ID("$Id: m_userptr.c,v 1.12 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: m_userptr.c,v 1.10 1999/05/16 17:28:29 juergen Exp $")
 |
 |   Return Values :  E_OK         - success
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  E_OK         - success
 +--------------------------------------------------------------------------*/
-int set_menu_userptr(MENU * menu, void * userptr)
+NCURSES_EXPORT(int)
+set_menu_userptr (MENU * menu, void * userptr)
 {
   Normalize_Menu(menu)->userptr = userptr;
   RETURN( E_OK );
 {
   Normalize_Menu(menu)->userptr = userptr;
   RETURN( E_OK );
@@ -64,7 +66,8 @@ int set_menu_userptr(MENU * menu, void * userptr)
 |   Return Values :  Value of the pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 |   Return Values :  Value of the pointer. If no such pointer has been set,
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
-void *menu_userptr(const MENU * menu)
+NCURSES_EXPORT(void *)
+menu_userptr (const MENU * menu)
 {
   return( Normalize_Menu(menu)->userptr);
 }
 {
   return( Normalize_Menu(menu)->userptr);
 }
index 73f34b5cc629cfa3adf0f6f6b3cc49860becad06..5fe760c8a4da40066e2297db3ffd5abde8c46842 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +38,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_win.c,v 1.9 1999/05/16 17:28:37 juergen Exp $")
+MODULE_ID("$Id: m_win.c,v 1.11 2002/07/06 15:22:16 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,7 +49,8 @@ MODULE_ID("$Id: m_win.c,v 1.9 1999/05/16 17:28:37 juergen Exp $")
 |   Return Values :  E_OK               - success
 |                    E_POSTED           - menu is already posted
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK               - success
 |                    E_POSTED           - menu is already posted
 +--------------------------------------------------------------------------*/
-int set_menu_win(MENU *menu, WINDOW *win)
+NCURSES_EXPORT(int)
+set_menu_win (MENU *menu, WINDOW *win)
 {
   if (menu)
     {
 {
   if (menu)
     {
@@ -71,7 +73,8 @@ int set_menu_win(MENU *menu, WINDOW *win)
 |
 |   Return Values :  NULL on error, otherwise pointer to window
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  NULL on error, otherwise pointer to window
 +--------------------------------------------------------------------------*/
-WINDOW *menu_win(const MENU *menu)
+NCURSES_EXPORT(WINDOW *)
+menu_win (const MENU *menu)
 {
   const MENU* m = Normalize_Menu(menu);
   return (m->userwin ? m->userwin : stdscr);
 {
   const MENU* m = Normalize_Menu(menu);
   return (m->userwin ? m->userwin : stdscr);
index 5be728b1c5df73380ba186c5db09a9c7f6d31b39..d827072248f9ad75a5249d2654a2b160a7aecd37 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 #ifndef ETI_MENU
  ****************************************************************************/
 
 #ifndef ETI_MENU
@@ -170,82 +171,82 @@ typedef struct tagMENU
 
 /* --------- prototypes for libmenu functions ----------------------------- */
 
 
 /* --------- prototypes for libmenu functions ----------------------------- */
 
-extern ITEM     **menu_items(const MENU *),
-                *current_item(const MENU *),
-                *new_item(const char *,const char *);
-
-extern MENU     *new_menu(ITEM **);
-
-extern Item_Options  item_opts(const ITEM *);
-extern Menu_Options  menu_opts(const MENU *);
-
-Menu_Hook       item_init(const MENU *),
-                item_term(const MENU *),
-                menu_init(const MENU *),
-                menu_term(const MENU *);
-
-extern WINDOW   *menu_sub(const MENU *),
-                *menu_win(const MENU *);
-
-extern const char *item_description(const ITEM *),
-                  *item_name(const ITEM *),
-                  *menu_mark(const MENU *),
-                  *menu_request_name(int);
-
-extern char     *menu_pattern(const MENU *);
-
-extern void     *menu_userptr(const MENU *),
-                *item_userptr(const ITEM *);
-
-extern chtype   menu_back(const MENU *),
-                menu_fore(const MENU *),
-                menu_grey(const MENU *);
-
-extern int      free_item(ITEM *),
-                free_menu(MENU *),
-                item_count(const MENU *),
-                item_index(const ITEM *),
-                item_opts_off(ITEM *,Item_Options),
-                item_opts_on(ITEM *,Item_Options),
-                menu_driver(MENU *,int),
-                menu_opts_off(MENU *,Menu_Options),
-                menu_opts_on(MENU *,Menu_Options),
-                menu_pad(const MENU *),
-                pos_menu_cursor(const MENU *),
-                post_menu(MENU *),
-                scale_menu(const MENU *,int *,int *),
-                set_current_item(MENU *menu,ITEM *item),
-                set_item_init(MENU *,void(*)(MENU *)),
-                set_item_opts(ITEM *,Item_Options),
-                set_item_term(MENU *,void(*)(MENU *)),
-                set_item_userptr(ITEM *, void *),
-                set_item_value(ITEM *,bool),
-                set_menu_back(MENU *,chtype),
-                set_menu_fore(MENU *,chtype),
-                set_menu_format(MENU *,int,int),
-                set_menu_grey(MENU *,chtype),
-                set_menu_init(MENU *,void(*)(MENU *)),
-                set_menu_items(MENU *,ITEM **),
-                set_menu_mark(MENU *, const char *),
-                set_menu_opts(MENU *,Menu_Options),
-                set_menu_pad(MENU *,int),
-                set_menu_pattern(MENU *,const char *),
-                set_menu_sub(MENU *,WINDOW *),
-                set_menu_term(MENU *,void(*)(MENU *)),
-                set_menu_userptr(MENU *,void *),
-                set_menu_win(MENU *,WINDOW *),
-                set_top_row(MENU *,int),
-                top_row(const MENU *),
-                unpost_menu(MENU *),
-                menu_request_by_name(const char *),
-                set_menu_spacing(MENU *,int,int,int),
-                menu_spacing(const MENU *,int *,int *,int *);
-
-
-extern bool     item_value(const ITEM *),
-                item_visible(const ITEM *);
-
-void            menu_format(const MENU *,int *,int *);
+extern NCURSES_EXPORT(ITEM **) menu_items (const MENU *);
+extern NCURSES_EXPORT(ITEM *)  current_item (const MENU *);
+extern NCURSES_EXPORT(ITEM *)  new_item (const char *,const char *);
+
+extern NCURSES_EXPORT(MENU *)  new_menu (ITEM **);
+
+extern NCURSES_EXPORT(Item_Options)    item_opts (const ITEM *);
+extern NCURSES_EXPORT(Menu_Options)    menu_opts (const MENU *);
+
+extern NCURSES_EXPORT(Menu_Hook)       item_init (const MENU *);
+extern NCURSES_EXPORT(Menu_Hook)       item_term (const MENU *);
+extern NCURSES_EXPORT(Menu_Hook)       menu_init (const MENU *);
+extern NCURSES_EXPORT(Menu_Hook)       menu_term (const MENU *);
+
+extern NCURSES_EXPORT(WINDOW *)        menu_sub (const MENU *);
+extern NCURSES_EXPORT(WINDOW *)        menu_win (const MENU *);
+
+extern NCURSES_EXPORT(const char *)    item_description (const ITEM *);
+extern NCURSES_EXPORT(const char *)    item_name (const ITEM *);
+extern NCURSES_EXPORT(const char *)    menu_mark (const MENU *);
+extern NCURSES_EXPORT(const char *)    menu_request_name (int);
+
+extern NCURSES_EXPORT(char *)  menu_pattern (const MENU *);
+
+extern NCURSES_EXPORT(void *)  menu_userptr (const MENU *);
+extern NCURSES_EXPORT(void *)  item_userptr (const ITEM *);
+
+extern NCURSES_EXPORT(chtype)  menu_back (const MENU *);
+extern NCURSES_EXPORT(chtype)  menu_fore (const MENU *);
+extern NCURSES_EXPORT(chtype)  menu_grey (const MENU *);
+
+extern NCURSES_EXPORT(int)     free_item (ITEM *);
+extern NCURSES_EXPORT(int)     free_menu (MENU *);
+extern NCURSES_EXPORT(int)     item_count (const MENU *);
+extern NCURSES_EXPORT(int)     item_index (const ITEM *);
+extern NCURSES_EXPORT(int)     item_opts_off (ITEM *,Item_Options);
+extern NCURSES_EXPORT(int)     item_opts_on (ITEM *,Item_Options);
+extern NCURSES_EXPORT(int)     menu_driver (MENU *,int);
+extern NCURSES_EXPORT(int)     menu_opts_off (MENU *,Menu_Options);
+extern NCURSES_EXPORT(int)     menu_opts_on (MENU *,Menu_Options);
+extern NCURSES_EXPORT(int)     menu_pad (const MENU *);
+extern NCURSES_EXPORT(int)     pos_menu_cursor (const MENU *);
+extern NCURSES_EXPORT(int)     post_menu (MENU *);
+extern NCURSES_EXPORT(int)     scale_menu (const MENU *,int *,int *);
+extern NCURSES_EXPORT(int)     set_current_item (MENU *menu,ITEM *item);
+extern NCURSES_EXPORT(int)     set_item_init (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)     set_item_opts (ITEM *,Item_Options);
+extern NCURSES_EXPORT(int)     set_item_term (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)     set_item_userptr (ITEM *, void *);
+extern NCURSES_EXPORT(int)     set_item_value (ITEM *,bool);
+extern NCURSES_EXPORT(int)     set_menu_back (MENU *,chtype);
+extern NCURSES_EXPORT(int)     set_menu_fore (MENU *,chtype);
+extern NCURSES_EXPORT(int)     set_menu_format (MENU *,int,int);
+extern NCURSES_EXPORT(int)     set_menu_grey (MENU *,chtype);
+extern NCURSES_EXPORT(int)     set_menu_init (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)     set_menu_items (MENU *,ITEM **);
+extern NCURSES_EXPORT(int)     set_menu_mark (MENU *, const char *);
+extern NCURSES_EXPORT(int)     set_menu_opts (MENU *,Menu_Options);
+extern NCURSES_EXPORT(int)     set_menu_pad (MENU *,int);
+extern NCURSES_EXPORT(int)     set_menu_pattern (MENU *,const char *);
+extern NCURSES_EXPORT(int)     set_menu_sub (MENU *,WINDOW *);
+extern NCURSES_EXPORT(int)     set_menu_term (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)     set_menu_userptr (MENU *,void *);
+extern NCURSES_EXPORT(int)     set_menu_win (MENU *,WINDOW *);
+extern NCURSES_EXPORT(int)     set_top_row (MENU *,int);
+extern NCURSES_EXPORT(int)     top_row (const MENU *);
+extern NCURSES_EXPORT(int)     unpost_menu (MENU *);
+extern NCURSES_EXPORT(int)     menu_request_by_name (const char *);
+extern NCURSES_EXPORT(int)     set_menu_spacing (MENU *,int,int,int);
+extern NCURSES_EXPORT(int)     menu_spacing (const MENU *,int *,int *,int *);
+
+
+extern NCURSES_EXPORT(bool)    item_value (const ITEM *);
+extern NCURSES_EXPORT(bool)    item_visible (const ITEM *);
+
+extern NCURSES_EXPORT(void)    menu_format (const MENU *,int *,int *);
 
 #ifdef __cplusplus
   }
 
 #ifdef __cplusplus
   }
index 4c2a22d1ff8e0443939ce36acbf4b094b3620c27..b249e435503dde52c1d1a7da4eed14c0df3d4d63 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
 * Top level private header file for all libnmenu modules                   *
 ***************************************************************************/
 
 * Top level private header file for all libnmenu modules                   *
 ***************************************************************************/
 
+#ifndef MENU_PRIV_H_incl
+#define MENU_PRIV_H_incl 1
+
+#include <ncurses_cfg.h>
+#include <curses.h>
+
 #include "mf_common.h"
 #include "menu.h"
 
 /* Backspace code */
 #define BS (8)
 
 #include "mf_common.h"
 #include "menu.h"
 
 /* Backspace code */
 #define BS (8)
 
-extern ITEM _nc_Default_Item;
-extern MENU _nc_Default_Menu;
+extern NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item;
+extern NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu;
 
 /* Normalize item to default if none was given */
 #define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item)
 
 /* Normalize item to default if none was given */
 #define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item)
@@ -101,14 +108,16 @@ extern MENU _nc_Default_Menu;
     (menu)->pattern[0] = '\0'; }
 
 /* Internal functions. */
     (menu)->pattern[0] = '\0'; }
 
 /* Internal functions. */
-extern void _nc_Draw_Menu(const MENU *);
-extern void _nc_Show_Menu(const MENU *);
-extern void _nc_Calculate_Item_Length_and_Width(MENU *);
-extern void _nc_Post_Item(const MENU *, const ITEM *);
-extern bool _nc_Connect_Items(MENU *, ITEM **);
-extern void _nc_Disconnect_Items(MENU *);
-extern void _nc_New_TopRow_and_CurrentItem(MENU *,int, ITEM *);
-extern void _nc_Link_Items(MENU *);
-extern int  _nc_Match_Next_Character_In_Item_Name(MENU*,int,ITEM**);
-extern int  _nc_menu_cursor_pos(const MENU* menu, const ITEM* item,
+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(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 *);
+extern NCURSES_EXPORT(void) _nc_New_TopRow_and_CurrentItem (MENU *,int, ITEM *);
+extern NCURSES_EXPORT(void) _nc_Link_Items (MENU *);
+extern NCURSES_EXPORT(int)  _nc_Match_Next_Character_In_Item_Name (MENU*,int,ITEM**);
+extern NCURSES_EXPORT(int)  _nc_menu_cursor_pos (const MENU* menu, const ITEM* item,
                                int* pY, int* pX);
                                int* pY, int* pX);
+
+#endif /* MENU_PRIV_H_incl */
index 6b1e8feee2c9c9e5f7094758aa91aa0433dc92b0..40ed1e29c4a616bf5919f2c52850b426823911f5 100644 (file)
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997            *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en             *
  ****************************************************************************/
 
 /* Common internal header for menu and form library */
 
  ****************************************************************************/
 
 /* Common internal header for menu and form library */
 
-#if HAVE_CONFIG_H
-#  include <ncurses_cfg.h>
-#endif
+#ifndef MF_COMMON_H_incl
+#define MF_COMMON_H_incl 1
+
+#include <ncurses_cfg.h>
+#include <curses.h>
 
 #include <stdlib.h>
 #include <sys/types.h>
 
 #include <stdlib.h>
 #include <sys/types.h>
@@ -91,3 +94,5 @@ extern int errno;
 #    define INLINE inline
 #  endif
 #endif
 #    define INLINE inline
 #  endif
 #endif
+
+#endif /* MF_COMMON_H_incl */
index 4ea04461e7f13bec4f8d75940edbafa146b93205..b8f25b8e6e993245c1c584175b969c0ad1145d46 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.29 2000/09/30 20:01:10 tom Exp $
+# $Id: Makefile.in,v 1.34 2002/01/12 23:54:39 Robert.Joop Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.           #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -40,7 +40,7 @@
 # and the programs with the configured default model.
 
 # turn off _all_ suffix rules; we'll generate our own
 # and the programs with the configured default model.
 
 # turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
+.SUFFIXES :
 
 SHELL          = /bin/sh
 THIS           = Makefile
 
 SHELL          = /bin/sh
 THIS           = Makefile
@@ -57,6 +57,9 @@ bindir                = @bindir@
 libdir         = @libdir@
 datadir                = @datadir@
 
 libdir         = @libdir@
 datadir                = @datadir@
 
+CC             = @CC@
+HOSTCC         = @BUILD_CC@
+
 tabsetdir      = $(datadir)/tabset
 ticdir         = @TERMINFO@
 source         = @TERMINFO_SRC@
 tabsetdir      = $(datadir)/tabset
 ticdir         = @TERMINFO@
 source         = @TERMINFO_SRC@
@@ -65,11 +68,13 @@ INSTALL             = @INSTALL@
 INSTALL_DATA   = @INSTALL_DATA@
 
 ################################################################################
 INSTALL_DATA   = @INSTALL_DATA@
 
 ################################################################################
-all:
+all :
+
+depend :
 
 
-sources:
+sources :
 
 
-install: install.data
+install : install.data
 
 install.data : $(DESTDIR)$(libdir) \
                $(DESTDIR)$(ticdir) \
 
 install.data : $(DESTDIR)$(libdir) \
                $(DESTDIR)$(ticdir) \
@@ -83,9 +88,11 @@ install.data :       $(DESTDIR)$(libdir) \
        datadir=${datadir} \
        ticdir=${ticdir} \
        source=${source} \
        datadir=${datadir} \
        ticdir=${ticdir} \
        source=${source} \
-       $(SHELL) ./run_tic.sh
+       THIS_CC="$(CC)" \
+       THAT_CC="$(HOSTCC)" \
+       sh ./run_tic.sh
        @cd $(srcdir)/tabset && \
        @cd $(srcdir)/tabset && \
-               $(SHELL) -c 'for i in * ; do \
+               sh -c 'for i in * ; do \
                        if test -f $$i ; then \
                        echo installing $$i; \
                        $(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
                        if test -f $$i ; then \
                        echo installing $$i; \
                        $(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
@@ -94,27 +101,27 @@ install.data :     $(DESTDIR)$(libdir) \
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(tabsetdir) \
 $(DESTDIR)$(ticdir) :
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(tabsetdir) \
 $(DESTDIR)$(ticdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 
-uninstall: uninstall.data
+uninstall : uninstall.data
 
 
-uninstall.data:
+uninstall.data :
        -cd $(DESTDIR)$(ticdir) && rm -rf *
        -cd $(DESTDIR)$(tabsetdir) && rm -rf *
 
        -cd $(DESTDIR)$(ticdir) && rm -rf *
        -cd $(DESTDIR)$(tabsetdir) && rm -rf *
 
-tags:
+tags :
 
 
-@MAKE_UPPER_TAGS@TAGS:
+@MAKE_UPPER_TAGS@TAGS :
 
 
-mostlyclean:
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+mostlyclean :
+       -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean :: mostlyclean
 
 
 clean :: mostlyclean
 
-distclean: clean
+distclean : clean
        -rm -f Makefile run_tic.sh
 
        -rm -f Makefile run_tic.sh
 
-realclean: distclean
+realclean : distclean
 
 ###############################################################################
 # The remainder of this file is automatically generated during configuration
 
 ###############################################################################
 # The remainder of this file is automatically generated during configuration
index fe9f99f185179891f3634e78413df3ff268999ad..046040734bca3cdc9bd355654188133cb66b5fe4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##############################################################################
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -27,9 +27,9 @@
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996,1997,2000
 #
 #
-# $Id: makellib,v 1.7 1998/02/11 12:13:50 tom Exp $
+# $Id: makellib,v 1.8 2000/10/28 21:37:10 tom Exp $
 # System-dependent wrapper for 'lint' that creates a lint-library via the
 # following method (XXX is the name of the library):
 #      a.  If the file llib-lXXX doesn't exist, create it using the make-rule
 # System-dependent wrapper for 'lint' that creates a lint-library via the
 # following method (XXX is the name of the library):
 #      a.  If the file llib-lXXX doesn't exist, create it using the make-rule
@@ -116,6 +116,11 @@ Solaris)
        TARGET=$llib.c
        ln $llib $TARGET
        ;;
        TARGET=$llib.c
        ln $llib $TARGET
        ;;
+FreeBSD)
+       CREATE="-g -z -C$LLIB"
+       TARGET=$llib.c
+       ln $llib $TARGET
+       ;;
 CLIX)
        CREATE="-DLINTLIBRARY -vxo$LLIB"
        TARGET=$llib.c
 CLIX)
        CREATE="-DLINTLIBRARY -vxo$LLIB"
        TARGET=$llib.c
index 59ae3279d688dd16310e870dffa59894f616570b..295ae0780d725b1b2b440924577f95b57e5e757b 100644 (file)
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey 1996,2000
 #
 #
 # Author: Thomas E. Dickey 1996,2000
 #
-# $Id: run_tic.in,v 1.10 2000/10/09 22:57:35 tom Exp $
+# $Id: run_tic.in,v 1.11 2001/10/14 00:44:33 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.
 #
 # 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.
 #
@@ -52,15 +52,21 @@ echo '** Building terminfo database, please wait...'
 : ${ticdir=@TERMINFO@}
 : ${source=@TERMINFO_SRC@}
 : ${LN_S="@LN_S@"}
 : ${ticdir=@TERMINFO@}
 : ${source=@TERMINFO_SRC@}
 : ${LN_S="@LN_S@"}
+: ${THAT_CC=cc}
+: ${THIS_CC=cc}
 
 test -z "${DESTDIR}" && DESTDIR=
 
 
 test -z "${DESTDIR}" && DESTDIR=
 
-# Allow tic to run either from the install-path, or from the build-directory
+# Allow tic to run either from the install-path, or from the build-directory.
+# Do not do this if we appear to be cross-compiling.  In that case, we rely
+# on the host's copy of tic to compile the terminfo database.
+if test "$THAT_CC" = "$THIS_CC" ; then
 case "$PATH" in
 :*) PATH=../progs:${DESTDIR}$bindir$PATH ;;
 *) PATH=../progs:${DESTDIR}$bindir:$PATH ;;
 esac
 export PATH
 case "$PATH" in
 :*) PATH=../progs:${DESTDIR}$bindir$PATH ;;
 *) PATH=../progs:${DESTDIR}$bindir:$PATH ;;
 esac
 export PATH
+fi
 
 #
 # set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
 
 #
 # set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
index 869a34bf92221ff9b198869f12354c64e089cbd3..c0e652b6f44ff1dee98cfc8e5b9575db85aafce7 100755 (executable)
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
-# $Id: tdlint,v 1.4 1998/02/11 12:13:50 tom Exp $
+# $Id: tdlint,v 1.5 2000/10/28 20:53:36 tom Exp $
 #
 # Lint-script that allows user's own lint libraries, in addition to the ones
 # installed in the system.
 #
 # Lint-script that allows user's own lint libraries, in addition to the ones
 # installed in the system.
@@ -48,6 +48,8 @@ else
                ;;
        IRIX)   set - $* -n -lc
                ;;
                ;;
        IRIX)   set - $* -n -lc
                ;;
+       FreeBSD) set - $* -g -p -u -v -z
+               ;;
        SunOS)
                case `uname -r` in
                5.*)    ARCH=Solaris
        SunOS)
                case `uname -r` in
                5.*)    ARCH=Solaris
index 9e58d167e191029402f2c7fd8a28c2c7f19a2511..03add0e1252bad4125432819f9eb42b5d0c9f2f5 100644 (file)
@@ -1,11 +1,16 @@
 ######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
 #
 # This version of terminfo.src is distributed with ncurses.
 ######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
 #
 # This version of terminfo.src is distributed with ncurses.
-# Report bugs to
+# Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
 #      bug-ncurses@gnu.org
 #
+# 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.
+#
+#------------------------------------------------------------------------------
 #      Version 10.2.1
 #      Version 10.2.1
-#      $Date: 2000/09/24 02:29:16 $
+#      $Date: 2002/10/05 18:40:53 $
 #      terminfo syntax
 #
 #      Eric S. Raymond         (current maintainer)
 #      terminfo syntax
 #
 #      Eric S. Raymond         (current maintainer)
@@ -329,11 +334,11 @@ ansi+sgrul|ansi underline only,
        rmul=\E[m, smul=\E[4m, 
 ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim, 
        bold=\E[1m, 
        rmul=\E[m, smul=\E[4m, 
 ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim, 
        bold=\E[1m, 
-       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m, 
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m, 
        use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul, 
 ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold, 
        dim=\E[2m, 
        use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul, 
 ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold, 
        dim=\E[2m, 
-       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;m, 
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m, 
        use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul, 
 ansi+pp|ansi printer port, 
        mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, 
        use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul, 
 ansi+pp|ansi printer port, 
        mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, 
@@ -657,12 +662,6 @@ beterm|BeOS Terminal,
 # *                                                                         *
 # ***************************************************************************
 #
 # *                                                                         *
 # ***************************************************************************
 #
-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
-# and it matters, turn off <ccc>.  The %02x escape used to implement this is
-# not back-portable to SV curses and not supported in ncurses versions before
-# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
-# themselves; this entry assumes that capability.
-#
 # This entry is good for the 1.2.13 or later version of the Linux console.
 #
 # ***************************************************************************
 # This entry is good for the 1.2.13 or later version of the Linux console.
 #
 # ***************************************************************************
@@ -683,25 +682,18 @@ beterm|BeOS Terminal,
 # *                                                                         *
 # ***************************************************************************
 #
 # *                                                                         *
 # ***************************************************************************
 #
-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
-# and it matters, turn off <ccc>.  The %02x escape used to implement this is
-# not back-portable to SV curses and not supported in ncurses versions before
-# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
+# All linux kernels since 1.2.13 (at least) set the screen size
 # themselves; this entry assumes that capability.
 #
 # themselves; this entry assumes that capability.
 #
-# The 2.2.x kernels add a private mode that sets the cursor type; use that to
-# get a block cursor for cvvis.
-# reported by Frank Heckenbach <frank@g-n-u.de>.
-linux|linux console, 
+linux-basic|linux console, 
        am, bce, eo, mir, msgr, xenl, xon, 
        it#8, ncv#18, 
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
        am, bce, eo, mir, msgr, xenl, xon, 
        it#8, ncv#18, 
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
-       bel=^G, civis=\E[?25l\E[?1c, clear=\E[H\E[J, 
-       cnorm=\E[?25h\E[?0c, cr=^M, csr=\E[%i%p1%d;%p2%dr, 
+       bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, 
        cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
        cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
-       cuu1=\E[A, cvvis=\E[?25h\E[?8c, dch=\E[%p1%dP, dch1=\E[P
-       dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J
-       el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H, 
+       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K
+       el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H, 
        hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, 
        il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177, 
        kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
        hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, 
        il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177, 
        kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
@@ -717,19 +709,32 @@ linux|linux console,
        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, 
        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@, 
        setab@, setaf@, setb@, setf@, use=linux, 
 linux-m|Linux console no color, 
        colors@, pairs@, 
        setab@, setaf@, setb@, setf@, use=linux, 
-linux-c-nc|linux console 1.3.x hack for ncurses only, 
+
+# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
+# and it matters, turn off <ccc>.  The %02x escape used to implement this is
+# not supposedly back-portable to older SV curses (although it has worked fine
+# on Solaris for several years) and not supported in ncurses versions before
+# 1.9.9.
+linux-c-nc|linux console with color-change, 
        ccc, 
        ccc, 
-       initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, 
-       oc=\E]R, use=linux, 
+       initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x, 
+       oc=\E]R, use=linux-basic
 # From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
 # From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
-linux-c|linux console 1.3.6+ with private palette for each virtual console
+linux-c|linux console 1.3.6+ for older ncurses
        ccc, 
        ccc, 
-       colors#8, pairs#64, 
-       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%;, 
-       oc=\E]R, use=linux, 
+       initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;, 
+       oc=\E]R, use=linux-basic, 
+
+# The 2.2.x kernels add a private mode that sets the cursor type; use that to
+# get a block cursor for cvvis.
+# reported by Frank Heckenbach <frank@g-n-u.de>.
+linux|linux console, 
+       civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c, 
+       cvvis=\E[?25h\E[?8c, use=linux-c-nc, 
 
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 linux-nic|linux with ich/ich1 suppressed for non-curses programs, 
 
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 linux-nic|linux with ich/ich1 suppressed for non-curses programs, 
@@ -763,7 +768,7 @@ mach|Mach Console,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
        cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, 
        el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, 
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
        cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, 
        el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, 
-       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
+       kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
        kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ, 
        kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, 
        kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U, 
        kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ, 
        kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, 
        kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U, 
@@ -799,21 +804,37 @@ pmcons|pmconsole|PMAX console,
 #
 # klone+sgr-dumb is an error since the acsc does not match -TD
 #
 #
 # klone+sgr-dumb is an error since the acsc does not match -TD
 #
-# In this description based on SCO's keyboard(HW) manpage list of default function key
-# values:
+# In this description based on SCO's keyboard(HW) manpage list of default
+# function key values:
 #      F13-F24 are shifted F1-F12
 #      F25-F36 are control F1-F12
 #      F37-F48 are shift+control F1-F12
 #      F13-F24 are shifted F1-F12
 #      F25-F36 are control F1-F12
 #      F37-F48 are shift+control F1-F12
-scoansi|SCO Extended ANSI standard crt, 
-       OTbs, am, eo, xon, 
+#
+# hpa/vpa work in the console, but not in scoterm:
+#      hpa=\E[%p1%dG,
+#      vpa=\E[%p1%dd,
+#
+# SCO's terminfo uses
+#      kLFT=\E[d,
+#      kRIT=\E[c,
+# which do not work (console or scoterm).
+#
+# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
+scoansi-old|SCO Extended ANSI standard crt (5.0.5), 
+       OTbs, am, bce, eo, xon, 
        colors#8, cols#80, it#8, lines#25, pairs#64, 
        colors#8, cols#80, it#8, lines#25, pairs#64, 
-       acsc=0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`ja0fxgqh2jYk?lZm@nEqDtCu4vAwBx3~y, 
-       blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, 
-       cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
-       cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, 
-       ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S, invis=\E[8m, kbeg=\E[E, 
-       kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
-       kcuu1=\E[A, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, 
+       acsc=-\230.\231\,.+/0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207, 
+       bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, 
+       civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C, 
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
+       cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP, 
+       dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M, 
+       ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I, 
+       hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, 
+       ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H, 
+       kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
+       kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, 
        kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c, 
        kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, 
        kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, 
        kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c, 
        kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, 
        kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, 
@@ -823,11 +844,26 @@ scoansi|SCO Extended ANSI standard crt,
        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, 
        kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], 
        kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, 
        kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, 
-       kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[37;40m, rev=\E[7m, 
-       ri=\E[T, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, 
-       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m, 
-       sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m, 
+       kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8, 
+       rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, 
+       rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7, 
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m, 
+       smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, 
+scoansi-new|SCO Extended ANSI standard crt (5.0.6), 
+       km, 
+       civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr, 
+       cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m, 
+       rep=\E[%p1%d;%p2%db, rmm=\E[=11L, 
+       sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m, 
+       smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm, 
+       smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m, 
+       smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m, 
+       smgtp=\E[=0;%i%p1%dm, smm=\E[=10L, 
+       wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr, 
+       use=scoansi-old, 
+# make this easy to change...
+scoansi|SCO Extended ANSI standard crt, 
+       use=scoansi-old, 
 
 # This actually describes the generic SVr4 display driver for Intel boxes.
 # The <dim=\E[2m> isn't documented and therefore may not be reliable.
 
 # This actually describes the generic SVr4 display driver for Intel boxes.
 # The <dim=\E[2m> isn't documented and therefore may not be reliable.
@@ -1263,7 +1299,7 @@ qansi-g|QNX ANSI,
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, 
        setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, 
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, 
        setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, 
-       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;, 
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m, 
        smul=\E[4m, tbc=\E[2g, 
        tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, 
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m, 
        smul=\E[4m, tbc=\E[2g, 
        tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, 
@@ -1365,6 +1401,16 @@ pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
        cols#132, lines#50, 
        is2=\E[1;50r\E[50;1H, use=pcvtXX, 
 
        cols#132, lines#50, 
        is2=\E[1;50r\E[50;1H, use=pcvtXX, 
 
+#      OpenBSD implements a color variation
+pcvt25-color|dec vt220 emulation with 25 lines and color, 
+       cols#80, lines#25, 
+       is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~, 
+       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
+       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
+       kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~, 
+       kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX, 
+       use=ecma+color, 
+
 # Terminfo entries to enable the use of the ncurses library in colour on a
 # NetBSD-arm32 console (only tested on a RiscPC).
 # Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
 # Terminfo entries to enable the use of the ncurses library in colour on a
 # NetBSD-arm32 console (only tested on a RiscPC).
 # Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
@@ -1385,11 +1431,11 @@ arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
        kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
        kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x, 
        kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v, 
        kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
        kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x, 
        kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v, 
-       kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[6m$<2>, ri=\EM$<5>, 
+       kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, 
        rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>, 
        rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        sc=\E7, 
        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%;
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr, 
        use=klone+color, 
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr, 
        use=klone+color, 
@@ -1491,6 +1537,12 @@ mgterm,
 #
 # Setting colors turns off reverse; we cannot guarantee order, so use ncv.
 # Note that this disables standout with color.
 #
 # Setting colors turns off reverse; we cannot guarantee order, so use ncv.
 # Note that this disables standout with color.
+#
+# The emulator sends difference strings based on shift- and control-keys,
+# like scoansi:
+#      F13-F24 are shifted F1-F12
+#      F25-F36 are control F1-F12
+#      F37-F48 are shift+control F1-F12
 cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode), 
        am, bce, bw, eo, msgr, npc, 
        colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64, 
 cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode), 
        am, bce, bw, eo, msgr, npc, 
        colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64, 
@@ -1504,12 +1556,19 @@ cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
        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, 
        il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, kb2=\E[E, 
        kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
        kcuu1=\E[A, kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, 
-       kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, 
-       kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, 
-       kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, 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, sgr0=\E[m, 
-       smso=\E[7m, vpa=\E[%i%p1%dd, 
+       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, 
+       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|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, 
@@ -1802,7 +1861,7 @@ vt100|vt100-am|dec vt100 (w/advanced video),
        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, 
        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%;, 
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 vt100nam|vt100-nam|vt100 no automargins, 
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 vt100nam|vt100-nam|vt100 no automargins, 
@@ -1925,7 +1984,7 @@ vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
        ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmso=\E[27m, rmul=\E[24m, 
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
        ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmso=\E[27m, rmul=\E[24m, 
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
@@ -2030,7 +2089,7 @@ vt200-js|vt220-js|dec vt200 series with jump scroll,
        is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m, 
        kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8, 
        is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m, 
        kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8, 
-       rf=/usr/lib/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l, 
+       rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l, 
        rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m, 
        rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=, 
        smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m, 
        rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m, 
        rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=, 
        smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m, 
@@ -2219,7 +2278,7 @@ vt420|DEC VT420,
        rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
        rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smkx=\E=, smso=\E[7m, smul=\E[4m, 
 
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smkx=\E=, smso=\E[7m, smul=\E[4m, 
 
@@ -2317,7 +2376,7 @@ vt520|DEC VT520,
        ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
        ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
@@ -2344,7 +2403,7 @@ vt525|DEC VT525,
        ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
        ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, 
        rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
        rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7, 
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
        sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h, 
        smso=\E[7m, smul=\E[4m, 
 
@@ -2387,6 +2446,57 @@ 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, 
 
        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)
+# http://www.chiark.greenend.org.uk/~sgtatham/putty/
+#
+# This emulates vt100 + vt52 (plus a few vt220 features:  ech, SRM, DECTCEM, as
+# well as SCO and Atari, color palettes from Linux console).  Reading the code,
+# it is intended to be VT102 plus selected features By default, it sets $TERM
+# to xterm, which is incorrect, since several features are misimplemented:
+#
+#      Alt+key always sends ESC+key, so 'km' capability is removed.
+#
+#      Control responses, wrapping and tabs are buggy, failing a couple of
+#      screens in vttest.
+#
+#      xterm mouse support is not implemented (unrelease version may).
+#
+# Several features such as backspace/delete are optional; this entry documents
+# the default behavior -TD
+putty|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, 
+       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>, 
+       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, 
+       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, 
+
 # This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
 # T. Teranishi dated Mar 10, 1998.  It is a free software terminal emulator
 # (communication program) which supports:
 # This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
 # T. Teranishi dated Mar 10, 1998.  It is a free software terminal emulator
 # (communication program) which supports:
@@ -2448,11 +2558,31 @@ teraterm|Tera Term Pro,
 
 # Tested with WinNT 4.0, the telnet application assumes the screensize is
 # 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
 
 # Tested with WinNT 4.0, the telnet application assumes the screensize is
 # 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
+#
+# Other notes:
+# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
+#    for casual (occasional) use.  Also fails several of the vttest screens,
+#    but that is not unusual for vt100 "emulators".
+# b) Does not implement vt100 keypad
+# c) Recognizes a subset of vt52 controls.
 ms-vt100|MS telnet imitating dec vt100, 
        lines#25, 
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
 ms-vt100|MS telnet imitating dec vt100, 
        lines#25, 
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
-       tbc@, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, 
-       use=vt100, 
+       ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@, 
+       kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, u6=\E[%i%d;%dR, u7=\E[6n, 
+       u8=\E[?6c, u9=\E[c, use=vt100, 
+
+# Tested with Windows 2000, the telnet application runs in a console window,
+# also using 'Terminal' font.
+#
+# Other notes:
+# a) This version has no function keys or numeric keypad.  Unlike the older
+#    version, the numeric keypad is entirely ignored.
+# b) The program sets $TERM to "ansi", which of course is inaccurate.
+ms-vt100-color|windows 2000 ansi (sic), 
+       bce, 
+       dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color, 
+       use=ms-vt100, 
 
 #### X terminal emulators
 #
 
 #### X terminal emulators
 #
@@ -2617,13 +2747,13 @@ xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
        kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, 
        kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, 
        kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l, 
        kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, 
        kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, 
        kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l, 
-       sgr=\E[0%?%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
        smcup=\E[?1049h, use=xterm-xf86-v333, 
 
 xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System), 
        npc, 
        smcup=\E[?1049h, use=xterm-xf86-v333, 
 
 xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System), 
        npc, 
-       kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~, 
-       kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, 
+       kDC=\E[3;2~, kEND=\EO2F, kHOM=\EO2H, kIC=\E[2;2~, 
+       kLFT=\EO2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO2C, 
        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, 
        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, 
@@ -2664,7 +2794,7 @@ xterm-basic|xterm terminal emulator - common (XFree86),
        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, 
        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%;, 
+       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, 
        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, 
        sgr0=\E[m\017, smacs=^N, 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, 
@@ -2676,12 +2806,7 @@ xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
 
 # 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, 
 
 # 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, 
-       colors#16, ncv#32, pairs#256, 
-       setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm, 
-       setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm, 
-       setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, 
-       setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, 
-       use=xterm-xfree86, 
+       ncv#32, use=ibm+16color, use=xterm-xfree86, 
 
 # These variants of XFree86 3.9.16 xterm are built as a configure option.
 xterm-256color|xterm with 256 colors, 
 
 # These variants of XFree86 3.9.16 xterm are built as a configure option.
 xterm-256color|xterm with 256 colors, 
@@ -2737,7 +2862,7 @@ xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
        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, 
        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%;, 
+       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, 
        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, 
@@ -2822,10 +2947,13 @@ xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
+# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
+#  -- MATSUMOTO Shoji)
 kterm|kterm kanji terminal emulator (X window system), 
        eslok, hs, 
 kterm|kterm kanji terminal emulator (X window system), 
        eslok, hs, 
-       acsc@, csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs@, fsl=\E[?F, 
-       kmous=\E[M, rc=\E8, rmacs@, sc=\E7, smacs@, 
+       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, 
 kterm-color|kterm-co|kterm with ANSI colors, 
        ncv@, use=kterm, use=ecma+color, 
        tsl=\E[?E\E[?%i%dT, use=xterm-r6, use=ecma+color, 
 kterm-color|kterm-co|kterm with ANSI colors, 
        ncv@, use=kterm, use=ecma+color, 
@@ -2882,17 +3010,109 @@ nxterm|xterm-color|generic color xterm,
        op=\E[m, use=xterm-r6, use=klone+color, 
 
 # this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
        op=\E[m, use=xterm-r6, use=klone+color, 
 
 # this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome|Gnome terminal, 
+gnome-rh62|Gnome terminal, 
        bce, 
        kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 
        use=xterm-color, 
 
        bce, 
        kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 
        use=xterm-color, 
 
+# GNOME Terminal 1.4.0.4 (Redhat 7.2)
+#
+# This implements a subset of vt102 with a random selection of features from
+# other terminals such as color and function-keys.
+#
+# shift-f1 to shift-f10 are f11 to f20
+#
+# NumLock changes the application keypad to approximate vt100 keypad, except
+# that there is no escape sequence matching comma (,).
+#
+# Other defects observed:
+#      vt100 LNM mode is not implemented.
+#      vt100 80/132 column mode is not implemented.
+#      vt100 DECALN is not implemented.
+#      vt100 DECSCNM mode is not implemented, so flash does not work.
+#      vt100 TBC (tab reset) is not implemented.
+#      xterm alternate screen controls do not restore cursor position properly
+#      it hangs in tack after running function-keys test.
+gnome-rh72|GNOME Terminal, 
+       bce, 
+       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, 
+
+gnome|GNOME Terminal, 
+       use=gnome-rh72, 
+
 # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
 # or not is debatable).
 kvt|KDE terminal, 
        bce, km@, 
        kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color, 
 
 # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
 # or not is debatable).
 kvt|KDE terminal, 
        bce, km@, 
        kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color, 
 
+# Konsole 1.0.1
+# (formerly known as kvt)
+#
+# This program hardcodes $TERM to 'xterm', which is not accurate.  However, to
+# simplify this entry (and point out why konsole isn't xterm), we base this on
+# xterm-r6.  The default keyboard appears to be 'linux'.
+#
+# Notes:
+# a) konsole implements several features from XFree86 xterm, though none of
+#    that is documented - except of course in its source code - apparently
+#    because its implementors are unaccustomed to reading documentation - as
+#    evidenced by the sparse and poorly edited documentation distributed with
+#    konsole.  Some features such as the 1049 private mode are recognized but
+#    incorrectly implemented as a duplicate of the 47 private mode.
+# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
+#    sends PC-style escapes rather than vt100.
+# c) fails vttest menu 3 (Test of character sets) because it does not properly
+#    parse some control sequences.  Also fails vttest Primary Device Attributes
+#    by sending a bogus code (in the source it says it's supposed to be a
+#    vt220, which is doubly incorrect because it does not implement vt220
+#    control sequences except for a few special cases).  Treat it as a
+#    mildly-broken vt102.
+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, 
+       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, 
+konsole-linux|KDE console window with linux keyboard, 
+       kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, 
+       kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, 
+       kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, 
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
+       use=konsole-base, 
+# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
+# than testing the code.
+konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm, 
+       kend=\E[4~, khome=\E[1~, use=konsole-vt100, 
+# The value for kbs reflects local customization rather than the settings used
+# for XFree86 xterm.
+konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm, 
+       kbs=^H, kend=\EOF, kf1=\EOP, kf2=\EOQ, 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.
+konsole-vt100|KDE console window with vt100 (sic) keyboard, 
+       kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~, 
+       kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, 
+       kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~, 
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
+       khome=\E[H, use=konsole-base, 
+konsole-vt420pc|KDE console window with vt420 pc keyboard, 
+       kbs=^H, kdch1=\177, use=konsole-vt100, 
+konsole-16color|klone of xterm-16color, 
+       ncv#32, use=ibm+16color, use=konsole, 
+# make a default entry for konsole
+konsole|KDE console window, 
+       use=konsole-linux, 
+
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
 # Notes:
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
 # Notes:
@@ -2947,10 +3167,14 @@ rxvt|rxvt terminal emulator (X Window System),
        ncv@, 
        sgr0=\E[m\017, use=rxvt-basic, use=ecma+color, 
 
        ncv@, 
        sgr0=\E[m\017, use=rxvt-basic, use=ecma+color, 
 
+# This variant is supposed to work with rxvt 2.7.7 when compiled with
+# NO_BRIGHTCOLOR defined.  rxvt needs more work...
+rxvt-16color|xterm with 16 colors like aixterm, 
+       ncv#32, use=ibm+16color, use=rxvt, 
+
 # From: Michael Jennings <mej@valinux.com>
 # removed kf0 which conflicts with kf10 -TD
 # remove cvvis which conflicts with cnorm -TD
 # From: Michael Jennings <mej@valinux.com>
 # removed kf0 which conflicts with kf10 -TD
 # remove cvvis which conflicts with cnorm -TD
-# There's no u6 because Eterm appears to lack CPR (cursor position report).
 Eterm|Eterm-color|Eterm with xterm-style color support (X Window System), 
        am, bce, bw, eo, km, mc5i, mir, msgr, xenl, xon, 
        btns#5, cols#80, it#8, lines#24, lm#0, ncv@, 
 Eterm|Eterm-color|Eterm with xterm-style color support (X Window System), 
        am, bce, bw, eo, km, mc5i, mir, msgr, xenl, xon, 
        btns#5, cols#80, it#8, lines#24, lm#0, ncv@, 
@@ -2986,8 +3210,8 @@ Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
        sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, 
        smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, 
        sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, 
        smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, 
-       u7=\E[6n, u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd
-       use=ecma+color, 
+       u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c
+       vpa=\E[%i%p1%dd, use=ecma+color, 
 
 # These (xtermc and xtermm) are distributed with Solaris.  They refer to a
 # variant of xterm which is apparently no longer supported, but are interesting
 
 # These (xtermc and xtermm) are distributed with Solaris.  They refer to a
 # variant of xterm which is apparently no longer supported, but are interesting
@@ -2996,7 +3220,7 @@ xtermm|xterm terminal emulator (monocrome),
        OTbs, am, km, mir, msgr, xenl, 
        btns#3, cols#80, it#8, lines#24, 
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
        OTbs, am, km, mir, msgr, xenl, 
        btns#3, cols#80, it#8, lines#24, 
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
-       bel=^G, blink=@, bold=\E[1m, clear=\E[H\E[2J, cr=^M, 
+       bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M, 
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D, 
        cud=\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, 
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D, 
        cud=\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, 
@@ -3104,6 +3328,40 @@ emu|emu native mode,
        setaf=\Er%i%p1%d;, sgr0=\ES, smacs=\0, smir=\EY, 
        smso=\ES\ET, smul=\ES\EV, tbc=\Ej, 
 
        setaf=\Er%i%p1%d;, sgr0=\ES, smacs=\0, smir=\EY, 
        smso=\ES\ET, smul=\ES\EV, tbc=\Ej, 
 
+# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
+# print interface, ANSI X3.64 colour escape sequences, etc.  Newsgroup postings
+# indicate that it emulates more than one terminal, but incompletely.
+# 
+# This is dapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
+# It is based on vt102's entry, with some subtle differences, but also
+#      has status line
+#      supports ANSI colors (except for 'op' string)
+#      apparently implements alternate screen like xterm
+#      does not use padding, of course.
+mvterm|vv100|SwitchTerm aka mvTERM, 
+       am, eslok, hs, km, mir, msgr, xenl, 
+       colors#8, cols#80, it#8, lines#24, pairs#64, 
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M, 
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
+       dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, 
+       fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, 
+       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, ka1=\EOq, 
+       ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD, 
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy, 
+       kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, 
+       kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, op=\E[100m, rc=\E8, 
+       rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8, 
+       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
+       rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H, 
+       sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
+       sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h, 
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, 
+       tsl=\E[?E\E[?%i%p1%dT, 
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
@@ -3189,6 +3447,8 @@ eterm|gnu emacs term.el terminal emulation,
 #                   (\E[39m / \E[49m).
 #      S0   (str)   Switch charset 'G0' to the specified charset.
 #      E0   (str)   Switch charset 'G0' back to standard charset.
 #                   (\E[39m / \E[49m).
 #      S0   (str)   Switch charset 'G0' to the specified charset.
 #      E0   (str)   Switch charset 'G0' back to standard charset.
+#
+# tested with screen 3.09.08
 screen|VT 100/ANSI X3.64 virtual terminal, 
        OTbs, OTpt, am, km, mir, msgr, xenl, G0, 
        colors#8, cols#80, it#8, lines#24, pairs#64, 
 screen|VT 100/ANSI X3.64 virtual terminal, 
        OTbs, OTpt, am, km, mir, msgr, xenl, G0, 
        colors#8, cols#80, it#8, lines#24, pairs#64, 
@@ -3201,16 +3461,56 @@ screen|VT 100/ANSI X3.64 virtual terminal,
        cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, 
        dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 
        flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, 
        cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, 
        dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 
        flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, 
-       il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD, 
-       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, 
-       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, 
-       kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, 
-       kf9=\E[20~, khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, 
-       kpp=\E[5~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, 
-       rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, 
-       rs2=\Ec, sc=\E7, sgr0=\E[m, smacs=^N, smir=\E[4h, 
-       smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, 
-       S0=\E(%p1%c, use=ecma+color, 
+       il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z, 
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
+       kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, 
+       kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
+       nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmir=\E[4l, 
+       rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, 
+       sgr0=\E[m, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=, 
+       smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, S0=\E(%p1%c, 
+       use=ecma+color, 
+
+# Read the fine manpage:
+#       When  screen  tries  to  figure  out  a  terminal name for
+#       itself, it first looks for an entry named "screen.<term>",
+#       where  <term>  is the contents of your $TERM variable.  If
+#       no such entry exists, screen tries "screen" (or "screen-w"
+#       if the terminal is wide (132 cols or more)).  If even this
+#       entry cannot be found, "vt100" is used as a substitute.
+#
+# Here are a few customized entries which are useful -TD
+#
+# Notes:
+# (a)  screen does not support invis.
+# (b)  screen's implementation of bw is incorrect according to tack.
+# (c)  screen appears to hardcode the strings for khome/kend, making it
+#      necessary to override the "use=" clause's values.
+# (d)  screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
+#      which is NOT the same as the terminfo screen.<term>.
+# (e)  when screen finds one of these customized entries, it sets $TERM to
+#      match.  Hence, no "screen.xterm" entry is provided, since that would
+#      create heartburn for people running remote xterm's.
+#
+#      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, 
+       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, 
+# xterm-r6 does not really support khome/kend unless it is propped up by
+# the translations resource.
+screen.xterm-r6|screen customized for X11R6 xterm, 
+       bw, use=xterm-r6, 
+# Color applications running in screen and TeraTerm do not play well together
+# on Solaris.
+screen.teraterm|disable ncv in teraterm, 
+       ncv#127, use=screen, 
 
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols, 
        cols#132, use=screen, 
 
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols, 
        cols#132, use=screen, 
@@ -3340,6 +3640,45 @@ pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
        ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s, 
        rmso=\EB, smso=\Eb, 
 
        ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s, 
        rmso=\EB, smso=\Eb, 
 
+# From: Federico Bianchi <bianchi@www.arte.unipi.it>
+# These entries are for the Embeddable Linux Kernel System (ELKS)
+# project - an heavily stripped down Linux to be run on 16 bit
+# boxes or, eventually, to be used in embedded systems - and have been
+# adapted from the stock ELKS termcap. The project itself looks stalled,
+# and the latest improvements I know of date back to March 2000.
+#
+# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
+# as an added bonus, this deals with all the capabilities common to
+# both VT52 and ANSI (or, eventually, "special") modes.
+
+elks-glasstty|ELKS glass-TTY capabilities, 
+       OTbs, am, 
+       cols#80, it#8, lines#25, 
+       bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, 
+       nel=^M^J, 
+
+elks-vt52|ELKS vt52 console, 
+       clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC, 
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK, 
+       home=\EH, use=elks-glasstty, 
+
+elks-ansi|ELKS ANSI console, 
+       clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C, 
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H, 
+       rmso=\E[m, smso=\E[7m, use=elks-glasstty, 
+
+# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
+# instead of VT52, but the "elks" entry still refers to the latter.
+
+elks|default ELKS console, 
+       use=elks-vt52, 
+
+# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
+# one but in screen size
+
+sibo|ELKS SIBO console, 
+       cols#61, it#8, lines#20, use=elks-vt52, 
+
 ######## COMMERCIAL WORKSTATION CONSOLES
 #
 
 ######## COMMERCIAL WORKSTATION CONSOLES
 #
 
@@ -3517,7 +3856,7 @@ news-unk|SONY NEWS vt100 emulator common entry,
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, 
        ed=\E[J, el=\E[K, home=\E[H, ht=^I, 
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, 
        ed=\E[J, el=\E[K, home=\E[H, ht=^I, 
-       if=/usr/lib/tabset/vt100, il=\E[%p1%dL, il1=\E[L, 
+       if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L, 
        is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD, 
        kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP, 
        kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, 
        is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD, 
        kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP, 
        kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, 
@@ -3565,7 +3904,7 @@ news-old-unk|SONY NEWS vt100 emulator common entry,
        OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, 
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, 
        OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, 
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K, 
-       home=\E[H, ht=^I, if=/usr/lib/tabset/vt100, kbs=^H, 
+       home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H, 
        kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, 
        kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM, 
        rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
        kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, 
        kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM, 
        rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
@@ -3700,7 +4039,7 @@ dtterm|CDE desktop terminal,
 # Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
 ansi-emx|ANSI.SYS color, 
        am, bce, eo, mir, msgr, xenl, xon, 
 # Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
 ansi-emx|ANSI.SYS color, 
        am, bce, eo, mir, msgr, xenl, xon, 
-       colors#16, cols#80, it#8, lines#25, pairs#64, 
+       colors#8, cols#80, it#8, lines#25, pairs#64, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
@@ -3717,7 +4056,7 @@ ansi-emx|ANSI.SYS color,
        tbc=\E[3g, u8=\E[?6c, u9=\E[c, 
 ansi-color-2-emx|ANSI.SYS color 2, 
        am, bce, eo, mir, msgr, xenl, xon, 
        tbc=\E[3g, u8=\E[?6c, u9=\E[c, 
 ansi-color-2-emx|ANSI.SYS color 2, 
        am, bce, eo, mir, msgr, xenl, xon, 
-       colors#16, cols#80, it#8, lines#25, pairs#64, 
+       colors#8, cols#80, it#8, lines#25, pairs#64, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[0;37;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[0;37;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
@@ -3734,7 +4073,7 @@ ansi-color-2-emx|ANSI.SYS color 2,
        tbc=\E[3g, u8=\E[?6c, u9=\E[c, 
 ansi-color-3-emx|ANSI.SYS color 3, 
        am, bce, eo, mir, msgr, xenl, xon, 
        tbc=\E[3g, u8=\E[?6c, u9=\E[c, 
 ansi-color-3-emx|ANSI.SYS color 3, 
        am, bce, eo, mir, msgr, xenl, xon, 
-       colors#16, cols#80, it#8, lines#25, pairs#64, 
+       colors#8, cols#80, it#8, lines#25, pairs#64, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[0;37;40m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, 
        clear=\E[0;37;40m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, 
        cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
@@ -3763,7 +4102,7 @@ mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
 # Use this for cygwin32 (tested with beta 19.1)
 # underline is colored bright magenta
 # shifted kf1-kf12 are kf11-kf22
 # Use this for cygwin32 (tested with beta 19.1)
 # underline is colored bright magenta
 # shifted kf1-kf12 are kf11-kf22
-cygwin|ansi emulation for cygwin32, 
+cygwinB19|ansi emulation for cygwin32, 
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
        kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, 
        kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
        kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, 
        kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 
@@ -3773,6 +4112,36 @@ cygwin|ansi emulation for cygwin32,
        khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@, 
        use=ansi.sys, 
 
        khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@, 
        use=ansi.sys, 
 
+# Use this for cygwin (tested with version 1.1.0).
+# I've combined pcansi and linux.  Some values of course were different and
+# I've indicated which of these were and which I used.
+# Cheers, earnie_boyd@yahoo.com
+# several changes based on running with tack and comparing with older entry -TD
+cygwin|ansi emulation for Cygwin, 
+       am, eo, in, msgr, xon, 
+       colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64, 
+       acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
+       bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub1=^H, 
+       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, 
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, 
+       el=\E[K, el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, 
+       hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, 
+       ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D, kcud1=\E[B, 
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, 
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, 
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, 
+       kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, 
+       kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, 
+       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, 
+       knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, 
+       rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l, rmpch=\E[10m, 
+       rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, 
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
+       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, 
+       sgr0=\E[0;10m, smir=\E[4h, smpch=\E[11m, smso=\E[7m, 
+       smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u9=\E[c, 
+       vpa=\E[%i%p1%dd, 
+
 # This entry fits the Windows NT console when the _POSIX_TERM environment
 # variable is set to 'on'.  While the Windows NT POSIX console is seldom used,
 # the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
 # This entry fits the Windows NT console when the _POSIX_TERM environment
 # variable is set to 'on'.  While the Windows NT POSIX console is seldom used,
 # the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
@@ -4890,7 +5259,7 @@ adm31-old|o31|old adm31,
 adm36|LSI ADM36, 
        OTbs, OTpt, 
        OTkn#4, 
 adm36|LSI ADM36, 
        OTbs, OTpt, 
        OTkn#4, 
-       if=/usr/lib/tabset/vt100, 
+       if=/usr/share/tabset/vt100, 
        is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, 
        use=vt100, 
 # (adm42: removed obsolete ":ma=^K^P:" -- esr)
        is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, 
        use=vt100, 
 # (adm42: removed obsolete ":ma=^K^P:" -- esr)
@@ -5034,7 +5403,7 @@ qvt103|qume qvt 103,
        rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>, 
        rmso=\E[m$<2>, rmul=\E[m$<2>, 
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
        rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>, 
        rmso=\E[m$<2>, rmul=\E[m$<2>, 
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
-       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, 
+       sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>
        sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 qvt103-w|qume qvt103 132 cols, 
        sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 qvt103-w|qume qvt103 132 cols, 
@@ -7615,7 +7984,7 @@ v5410|att5410 in terms of a vt100,
        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, 
        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%;, 
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 
@@ -11018,7 +11387,7 @@ ts100|ts100-sp|falco ts100-sp,
        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, 
        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%;, 
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 ts100-ctxt|falco ts-100 saving context, 
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 ts100-ctxt|falco ts-100 saving context, 
@@ -11651,6 +12020,12 @@ ibm+color|IBM color definitions,
        op=\E[32m\E[40m, 
        setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;, 
        setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;, 
        op=\E[32m\E[40m, 
        setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;, 
        setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;, 
+ibm+16color|IBM aixterm color definitions, 
+       colors#16, pairs#256, 
+       setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm, 
+       setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm, 
+       setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, 
+       setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, 
 ibm5154|IBM 5154 Color display, 
        colors#8, ncv@, pairs#64, 
        bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, 
 ibm5154|IBM 5154 Color display, 
        colors#8, ncv@, pairs#64, 
        bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151, 
@@ -11792,6 +12167,7 @@ ibm8514-c|IBM 8514 color display with standout and underline,
 #
 # AIX entries.  IBM ships these with AIX 3.2.5. 
 # -- added rc, sc based on manpage -TD
 #
 # AIX entries.  IBM ships these with AIX 3.2.5. 
 # -- added rc, sc based on manpage -TD
+# Note that we could use ibm+16color, but that is not how IBM defines this one.
 aixterm|IBM Aixterm Terminal Emulator, 
        eslok, hs, 
        acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, 
 aixterm|IBM Aixterm Terminal Emulator, 
        eslok, hs, 
        acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E, 
@@ -13637,7 +14013,7 @@ tek4105-30|4015 emulating 30 line vt100,
        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, 
        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%;, 
+       sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 
        sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, 
        smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, 
 
@@ -13739,7 +14115,7 @@ tek4107|tek4109|tektronix terminals 4107 4109,
        kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, 
        rev=\E%!1\E[7m$<2>\E%0, ri=\EI, 
        rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0, 
        kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, 
        rev=\E%!1\E[7m$<2>\E%0, ri=\EI, 
        rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0, 
-       sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%!0, 
+       sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0, 
        sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0, 
        smul=\E%!1\E[4m$<2>\E%!0, 
 # Tektronix 4207 with sysline.  In the ancestral termcap file this was 4107-s;
        sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0, 
        smul=\E%!1\E[4m$<2>\E%!0, 
 # Tektronix 4207 with sysline.  In the ancestral termcap file this was 4107-s;
@@ -14327,6 +14703,495 @@ mac|macintosh|Macintosh with MacTerminal,
 mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode, 
        cols#132, use=mac, 
 
 mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode, 
        cols#132, use=mac, 
 
+# The AppKit Terminal.app descriptions all have names beginning with
+# "nsterm". Note that the statusline (-s) versions use the window
+# titlebar as a phony status line, and may produce warnings during
+# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
+# these warnings, or even ignore these entries entirely. Apps which
+# need to position the cursor or do other fancy stuff inside the status
+# line won't work with these entries. They're primarily useful for
+# programs like Pine which provide simple notifications in the status
+# line. Please note that non-ASCII characters don't work right in the
+# status line, since Terminal.app incorrectly interprets their Unicode
+# codepoints as MacRoman codepoints.
+# 
+# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
+#   "nsterm" to comply with the name length and case conventions and
+#   limitations of various software packages [notably Solaris terminfo
+#   and UNIX.] A single Apple_Terminal alias is retained for
+#   backwards-compatbility.
+# 
+# * Added function key support (F1-F4). These only work in Terminal.app
+#   version 51, hopefully the capabilities won't cause problems for people
+#   using version 41.
+# 
+# * Added "full color" (-c) entries which support the 16-color mode in
+#   version 51.
+# 
+# * By default, version 51 uses UTF-8 encoding with broken altcharset
+#   support, so "ASCII" (-7) entries without altcharset support were
+#   added.
+
+# nsterm - AppKit Terminal.app
+#
+# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
+# Terminal.app. It is a partial VT100 emulation with some xterm-like
+# extensions. This terminfo was written to describe versions 41
+# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
+# version 10.1) of Terminal.app.
+#
+# Terminal.app runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems.)  On the Mac OS X machine I
+# use, the executable for Terminal.app is:
+# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
+#
+# If you're looking for a description of the full-screen system
+# console which runs under Apple's Darwin operating system on PowerPC
+# platforms, see the "xnuppc" entry instead.
+#
+# There were no function keys in version 41. In version 51, there are
+# four working function keys (F1, F2, F3 and F4.) The function keys
+# are included in all of these entries.
+#
+# It does not support mouse pointer position reporting. Under some
+# circumstances the cursor can be positioned using option-click; this
+# works by comparing the cursor position and the selected position,
+# and simulating enough cursor-key presses to move the cursor to the
+# selected position. This technique fails in all but the simplest
+# applications.
+#
+# It provides partial ANSI color support (background colors interacted
+# badly with bold in version 41, though, as reflected in :ncv:.) The
+# monochrome (-m) entries are useful if you've disabled color support
+# or use a monochrome monitor. The full color (-c) entries are useful
+# in version 51, which doesn't exhibit the background color bug. They
+# also enable an xterm-compatible 16-color mode.
+#
+# The configurable titlebar is set using xterm-compatible sequences;
+# it is used as a status bar in the statusline (-s) entries. Its width
+# depends on font sizes and window sizes, but 50 characters seems to
+# be the default for an 80x24 window.
+#
+# The MacRoman character encoding is used for some of the alternate
+# characters in the "MacRoman" entries; the "ASCII" (-7) entries
+# disable alternate character set support entirely, and the "VT100"
+# (-acs) entries rely instead on Terminal.app's own buggy VT100
+# graphics emulation, which seems to think the character encoding is
+# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
+# are useful in Terminal.app version 51, which supports UTF-8 and
+# other ASCII-compatible character encodings but does not correctly
+# implement VT100 graphics; once VT100 graphics are correctly
+# implemented in Terminal.app, the "VT100" (-acs) entries should be
+# usable in any ASCII-compatible character encoding [except perhaps
+# in UTF-8, where some experts argue for disallowing alternate
+# characters entirely.]
+#
+# Terminal.app reports "vt100" as the terminal type, but exports
+# several environment variables which may aid detection in a shell
+# profile (i.e. .profile or .login):
+#
+# TERM=vt100
+# TERM_PROGRAM=Apple_Terminal
+# TERM_PROGRAM_VERSION=41      # in Terminal.app version 41
+# TERM_PROGRAM_VERSION=51      # in Terminal.app version 51
+#
+# For example, the following Bourne shell script would detect the
+# correct terminal type:
+#
+# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
+# then
+#     export TERM
+#     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
+#     then
+#         TERM="nsterm"
+#     else
+#         TERM="nsterm-c-7"
+#     fi
+# fi
+#
+# In a C shell derivative, this would be accomplished by:
+#
+# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
+#     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
+#          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
+#              setenv TERM "nsterm"
+#          else
+#              setenv TERM "nsterm-c-7"
+#          endif
+#     endif
+# endif
+
+# The '+' entries are building blocks
+nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset, 
+       am, bw, msgr, xenl, xon, 
+       cols#80, it#8, lines#24, 
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M, 
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, 
+       home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, 
+       ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=\177, kc1=\EOp, kc3=\EOn, 
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, 
+       kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, 
+       ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m, 
+       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, 
+       smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, 
+       u8=\E[?1;2c, u9=\E[c, 
+
+nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset, 
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+       enacs=\E(B\E)0, rmacs=^O, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
+       smacs=^N, use=nsterm+7, 
+
+nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset, 
+       acsc=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366\,\334.\377, 
+       enacs=\E(B\E)0, rmacs=^O, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
+       smacs=^N, use=nsterm+7, 
+
+nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support, 
+       hs, 
+       wsl#50, 
+       dsl=\E]2;\007, fsl=^G, tsl=\E]2;, 
+
+nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors), 
+       op=\E[0m, use=ibm+16color, 
+
+nsterm+c41|AppKit Terminal.app v41 color support, 
+       colors#8, ncv#37, pairs#64, 
+       op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
+
+# These are different combinations of the building blocks
+
+# ASCII charset (-7)
+nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome), 
+       use=nsterm+7, 
+
+nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline), 
+       use=nsterm+s, use=nsterm+7, 
+
+nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color), 
+       use=nsterm+c41, use=nsterm+7, 
+
+nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color), 
+       use=nsterm+c, use=nsterm+7, 
+
+nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline), 
+       use=nsterm+s, use=nsterm+c41, use=nsterm+7, 
+
+nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline), 
+       use=nsterm+s, use=nsterm+c, use=nsterm+7, 
+
+# VT100 alternate-charset (-acs)
+nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome), 
+       use=nsterm+acs, 
+
+nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline), 
+       use=nsterm+s, use=nsterm+acs, 
+
+nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color), 
+       use=nsterm+c41, use=nsterm+acs, 
+
+nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color), 
+       use=nsterm+c, use=nsterm+acs, 
+
+nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline), 
+       use=nsterm+s, use=nsterm+c41, use=nsterm+acs, 
+
+nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline), 
+       use=nsterm+s, use=nsterm+c, use=nsterm+acs, 
+
+# MacRoman charset
+nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome), 
+       use=nsterm+mac, 
+
+nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline), 
+       use=nsterm+s, use=nsterm+mac, 
+
+nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color), 
+       use=nsterm+c41, use=nsterm+mac, 
+
+nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color), 
+       use=nsterm+c, use=nsterm+mac, 
+
+nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline), 
+       use=nsterm+s, use=nsterm+c41, use=nsterm+mac, 
+
+nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline), 
+       use=nsterm+s, use=nsterm+c, use=nsterm+mac, 
+
+# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
+#
+# On PowerPC platforms, Apple's Darwin operating system uses a
+# full-screen system console derived from a NetBSD framebuffer
+# console. It is an ANSI-style terminal, and is not really VT-100
+# compatible.
+#
+# Under Mac OS X, this is the system console driver used while in
+# single-user mode [reachable by holding down Command-S during the
+# boot process] and when logged in using console mode [reachable by
+# typing ">console" at the graphical login prompt.]
+#
+# If you're looking for a description of the Terminal.app terminal
+# emulator which runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems,) see the "nsterm"
+# entry instead.
+#
+# NOTE: Under Mac OS X version 10.1, the default login window does not
+# prompt for user name, instead requiring an icon to be selected from
+# a list of known users. Since the special ">console" login is not in
+# this list, you must make one of two changes in the Login Window
+# panel of the Login section of System Prefs to make the special
+# ">console" login accessible. The first option is to enable 'Show
+# "Other User" in list for network users', which will add a special
+# "Other..." icon to the graphical login panel. Selecting "Other..."
+# will present the regular graphical login prompt. The second option
+# is to change the 'Display Login Window as:' setting to 'Name and
+# password entry fields', which replaces the login panel with a
+# graphical login prompt.
+#
+# There are no function keys, at least not in Darwin 1.3.
+#
+# It has no mouse support.
+#
+# It has full ANSI color support, and color combines correctly with
+# all three supported attributes: bold, inverse-video and underline.
+# However, bold colored text is almost unreadable (bolding is
+# accomplished using shifting and or-ing, and looks smeared) so bold
+# has been excluded from the list of color-compatible attributes
+# [using (ncv)]. The monochrome entry (-m) is useful if you use a
+# monochrome monitor.
+#
+# There is one serious bug with this terminal emulation's color
+# support: repositioning the cursor onto a cell with non-matching
+# colors obliterates that cell's contents, replacing it with a blank
+# and displaying a colored cursor in the "current" colors. There is
+# no complete workaround at present [other than using the monochrome
+# (-m) entries,] but removing the (msgr) capability seemed to help.
+#
+# The "standout" chosen was simple reverse-video, although a colorful
+# standout might be more aesthetically pleasing. Similarly, the bold
+# chosen is the terminal's own smeared bold, although a simple
+# color-change might be more readable. The color-bold (-b) entries
+# uses magenta colored text for bolding instead. The fancy color (-f
+# and -f2) entries use color for bold, standout and underlined text
+# (underlined text is still underlined, though.)
+#
+# Apparently the terminal emulator does support a VT-100-style
+# alternate character set, but all the alternate character set
+# positions have been left blank in the font. For this reason, no
+# alternate character set capabilities have been included in this
+# description. The console driver appears to be ASCII-only, so (enacs)
+# has been excluded [although the VT-100 sequence does work.]
+#
+# The default Mac OS X and Darwin installation reports "vt100" as the
+# terminal type, and exports no helpful environment variables. To fix
+# this, change the "console" entry in /etc/ttys from "vt100" to
+# "xnuppc-WxH", where W and H are the character dimensions of your
+# console (see below.)
+#
+# The font used by the terminal emulator is apparently one originally
+# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
+# file includes descriptions for the following geometries:
+#
+#     Pixels        Characters   Entry Name (append -m for monochrome)
+#    -------------------------------------------------------------------
+#     640x400       80x25        xnuppc-80x25
+#     640x480       80x30        xnuppc-80x30
+#     720x480       90x30        xnuppc-90x30
+#     800x600       100x37       xnuppc-100x37
+#     896x600       112x37       xnuppc-112x37
+#     1024x640      128x40       xnuppc-128x40
+#     1024x768      128x48       xnuppc-128x48
+#     1152x768      144x48       xnuppc-144x48
+#     1280x1024     160x64       xnuppc-160x64
+#     1600x1024     200x64       xnuppc-200x64
+#     1600x1200     200x75       xnuppc-200x75
+#     2048x1536     256x96       xnuppc-256x96
+#
+# The basic "xnuppc" entry includes no size information, and the
+# emulator includes no reporting capability, so you'll be at the mercy
+# of the TTY device (which reports incorrectly on my hardware.) The
+# color-bold entries do not include size information.
+
+# The '+' entries are building blocks
+xnuppc+basic|Darwin PowerPC Console basic capabilities, 
+       am, bce, mir, xenl, 
+       it#8, 
+       bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr, 
+       cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
+       cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K, 
+       el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq, 
+       ka3=\EOs, kb2=\EOr, kbs=\177, kc1=\EOp, kc3=\EOn, kcub1=\EOD, 
+       kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, rev=\E[7m, 
+       ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
+       rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, 
+       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m, 
+       smul=\E[4m, tbc=\E[3g, 
+
+xnuppc+c|Darwin PowerPC Console ANSI color support, 
+       colors#8, ncv#32, pairs#64, 
+       op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
+
+xnuppc+b|Darwin PowerPC Console color-bold support, 
+       ncv#32, 
+       bold=\E[35m, 
+       sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, 
+       use=xnuppc+basic, 
+
+xnuppc+f|Darwin PowerPC Console fancy color support, 
+       ncv#35, 
+       sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%p3%t;7%;m, 
+       smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b, 
+
+xnuppc+f2|Darwin PowerPC Console alternate fancy color support, 
+       ncv#35, 
+       bold=\E[33m, 
+       sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%p3%t;7%;m, 
+       smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic, 
+
+# Building blocks for specific screen sizes
+xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels), 
+       cols#80, lines#25, 
+
+xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels), 
+       cols#80, lines#30, 
+
+xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels), 
+       cols#90, lines#30, 
+
+xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels), 
+       cols#100, lines#37, 
+
+xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels), 
+       cols#112, lines#37, 
+
+xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels), 
+       cols#128, lines#40, 
+
+xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels), 
+       cols#128, lines#48, 
+
+xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels), 
+       cols#144, lines#48, 
+
+xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels), 
+       cols#160, lines#64, 
+
+xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels), 
+       cols#200, lines#64, 
+
+xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels), 
+       cols#200, lines#75, 
+
+xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels), 
+       cols#256, lines#96, 
+
+# These are different combinations of the building blocks
+
+xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome), 
+       use=xnuppc+basic, 
+
+xnuppc|darwin|Darwin PowerPC Console (color), 
+       use=xnuppc+c, use=xnuppc+basic, 
+
+xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold), 
+       use=xnuppc+b, 
+
+xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold), 
+       use=xnuppc+b, use=xnuppc+c, 
+
+xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome), 
+       use=xnuppc+f, 
+
+xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color), 
+       use=xnuppc+f, use=xnuppc+c, 
+
+xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome), 
+       use=xnuppc+f2, 
+
+xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color), 
+       use=xnuppc+f2, use=xnuppc+c, 
+
+# Combinations for specific screen sizes
+xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25, 
+       use=xnuppc+80x25, use=xnuppc+basic, 
+
+xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25, 
+       use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic, 
+
+xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30, 
+       use=xnuppc+80x30, use=xnuppc+basic, 
+
+xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30, 
+       use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic, 
+
+xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30, 
+       use=xnuppc+90x30, use=xnuppc+basic, 
+
+xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30, 
+       use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic, 
+
+xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37, 
+       use=xnuppc+100x37, use=xnuppc+basic, 
+
+xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37, 
+       use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic, 
+
+xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37, 
+       use=xnuppc+112x37, use=xnuppc+basic, 
+
+xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37, 
+       use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic, 
+
+xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40, 
+       use=xnuppc+128x40, use=xnuppc+basic, 
+
+xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40, 
+       use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic, 
+
+xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48, 
+       use=xnuppc+128x48, use=xnuppc+basic, 
+
+xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48, 
+       use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic, 
+
+xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48, 
+       use=xnuppc+144x48, use=xnuppc+basic, 
+
+xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48, 
+       use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic, 
+
+xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64, 
+       use=xnuppc+160x64, use=xnuppc+basic, 
+
+xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64, 
+       use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic, 
+
+xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64, 
+       use=xnuppc+200x64, use=xnuppc+basic, 
+
+xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64, 
+       use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic, 
+
+xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75, 
+       use=xnuppc+200x75, use=xnuppc+basic, 
+
+xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75, 
+       use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic, 
+
+xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96, 
+       use=xnuppc+256x96, use=xnuppc+basic, 
+
+xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96, 
+       use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic, 
+
 #### Radio Shack/Tandy
 #
 
 #### Radio Shack/Tandy
 #
 
@@ -14679,7 +15544,7 @@ mai|basic4|MAI Basic Four in ansi mode,
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=^X, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P, 
        dl1=\E[M, ed=^_, el=^^, home=^], ht=^I, 
        cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=^X, 
        cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P, 
        dl1=\E[M, ed=^_, el=^^, home=^], ht=^I, 
-       if=/usr/lib/tabset/vt100, il1=\E[L, ind=\ED, 
+       if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED, 
        is2=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H, 
        kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, 
        is2=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H, 
        kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, 
@@ -17058,7 +17923,7 @@ dwk|dwk-vt|dwk terminal,
 env230|envision230|envision 230 graphics terminal, 
        xenl@, 
        mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, 
 env230|envision230|envision 230 graphics terminal, 
        xenl@, 
        mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, 
-       sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, 
+       sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>
        use=vt100, 
 # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
 # coupler attached, the whole rig fitting in a suitcase and more or less
        use=vt100, 
 # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
 # coupler attached, the whole rig fitting in a suitcase and more or less
@@ -18597,6 +19462,83 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #        bracketing sequences that reset video attributes (\E8 would restore
 #        them) -TD
 #
 #        bracketing sequences that reset video attributes (\E8 would restore
 #        them) -TD
 #
+# 2000-11-11
+#      * rename cygwin to cygwinB19, adapt newer entry from Earnie Boyd -TD
+#
+# 2000-12-16
+#      * improved scoansi, based on SCO man-page, and testing console,
+#        scoterm with tack -TD
+#
+# 2001-01-27
+#      * modify kterm to use acsc via SCS controls.
+#
+# 2001-02-10
+#      * screen 3.9.8 allows xterm mouse controls to pass-through
+#
+# 2001-03-11
+#      * remove spurious "%|" from some xterm entries.
+#
+# 2001-03-31
+#      * modify 'screen' khome/kend to match screen 3.09.08
+#      * add examples of 'screen' customization (screen.xterm-xfree86,
+#        screen.xterm-r6, screen.teraterm) -TD
+#
+# 2001-04-14
+#      * correct definitions of shifted editing keys for xterm-xfree86 -TD
+#      * add "Apple_Terminal" entries -Benjamin Sittler
+#      * remove time-delays from "Apple_Terminal" entries -TD
+#      * make sgr entries time-delays consistent with individual caps -TD
+#
+# 2001-05-05
+#      * corrected/updated screen.xterm-xfree86
+#
+# 2001-05-19
+#      * ELKS descriptions, from Federico Bianchi
+#      * add u6 (CSR) to Eterm (Michael Jennings).
+#
+# 2001-07-21
+#      * renamed "Apple_Terminal" entries to "nsterm" to work with Solaris's
+#        tic which handles names no longer than 14 characters.  Add
+#        corresponding descriptions for the Darwin PowerPC console named
+#        "xnuppc" -Benjamin Sittler
+#
+# 2001-09-01
+#      * change kbs in mach entries to ^? (Marcus Brinkmann).
+#
+# 2001-11-17
+#      * add "putty" entry -TD
+#      * updated "Apple_Terminal" entries -Benjamin Sittler
+#
+# 2001-11-24
+#      * add ms-vt100-color entry -TD
+#      * add "konsole" entries -TD
+#
+# 2001-12-08
+#      * update gnome entry to Redhat 7.2 -TD
+#
+# 2002-05-25
+#      * add kf13-kf48 strings to cons25w -TD
+#      * add pcvt25-color entry -TD
+#      * changed a few /usr/lib/tabset -> /usr/share/tabset.
+#      * improve some features of scoansi entry based on SCO's version -TD
+#      * add scoansi-new entry corresponding to OpenServer 5.0.6
+#
+# 2002-06-15
+#      * add kcbt to screen entry -TD
+#
+# 2002-06-22
+#      * add rxvt-16color, ibm+16color, mvterm entries -TD
+#
+# 2002-09-28
+#      * split out linux-basic entry, making linux-c inherit from that, and
+#        in turn linux (with cnorm, etc) inherit from linux-c-nc to reflect
+#        the history of this console type -TD
+#      * scaled the linux-c terminfo entry to match linux-c-nc, i.e., the
+#        r/g/b parameters of initc are in the range 0 to 1000 -TD
+#
+# 2002-1005
+#      * minor fix for scale-factor of linux-c and linux-c-nc -TD
+#
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
index 5173269e440aa64399d40337877082efc680dc50..399f156bb0cd5e1e7e0d3e3dafee02306f8387ac 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-0th.awk,v 1.8 2000/01/09 00:29:10 tom Exp $
+# $Id: mk-0th.awk,v 1.14 2002/08/31 21:36:54 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2001 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # 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 sources for a library, together with lint/lintlib rules
 #
 # Variables:
 # Generate list of sources for a library, together with lint/lintlib rules
 #
 # Variables:
-#      name (library name, e.g., "ncurses", "panel", "forms", "menus")
+#      libname (library name, e.g., "ncurses", "panel", "forms", "menus")
 #
 BEGIN  {
                print  ""
                print  "# generated by mk-0th.awk"
                print  ""
 #
 BEGIN  {
                print  ""
                print  "# generated by mk-0th.awk"
                print  ""
-               print  ".SUFFIXES: .c .h .i"
+               print  ".SUFFIXES: .c .cc .h .i .ii"
                print  ".c.i :"
                printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
                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  ""
                found = 0;
        }
        !/^[@#]/ {
                print  ".h.i :"
                printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
                print  ""
                found = 0;
        }
        !/^[@#]/ {
-               if ( $0 != "" )
+               if ( $0 != "" && $1 != "link_test" )
                {
                        if ( found == 0 )
                        {
                {
                        if ( found == 0 )
                        {
+                               if ( subsets ~ /widechar/ )
+                                       widechar = 1;
+                               else
+                                       widechar = 0;
                                printf "C_SRC ="
                                if ( $2 == "lib" )
                                        found = 1
                                else
                                        found = 2
                        }
                                printf "C_SRC ="
                                if ( $2 == "lib" )
                                        found = 1
                                else
                                        found = 2
                        }
-                       printf " \\\n\t%s/%s.c", $3, $1
+                       if ( libname == "c++" || libname == "c++w" ) {
+                               printf " \\\n\t%s/%s.cc", $3, $1
+                       } else if ( widechar == 1 || $3 != "$(wide)" ) {
+                               printf " \\\n\t%s/%s.c", $3, $1
+                       }
                }
        }
 END    {
                }
        }
 END    {
@@ -65,19 +75,19 @@ END {
                if ( found == 1 )
                {
                        print  ""
                if ( found == 1 )
                {
                        print  ""
-                       printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", name
+                       printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname
                        print  "# it in the lintlib rule.  We'll only remove in the cleanest setup."
                        print  "clean ::"
                        print  "# it in the lintlib rule.  We'll only remove in the cleanest setup."
                        print  "clean ::"
-                       printf "\trm -f llib-l%s.*\n", name
+                       printf "\trm -f llib-l%s.*\n", libname
                        print  ""
                        print  "realclean ::"
                        print  ""
                        print  "realclean ::"
-                       printf "\trm -f llib-l%s\n", name
+                       printf "\trm -f llib-l%s\n", libname
                        print  ""
                        print  ""
-                       printf "llib-l%s : $(C_SRC)\n", name
+                       printf "llib-l%s : $(C_SRC)\n", libname
                        printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
                        print  ""
                        print  "lintlib :"
                        printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
                        print  ""
                        print  "lintlib :"
-                       printf "\t$(srcdir)/../misc/makellib %s $(CPPFLAGS)", name
+                       printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
                        print ""
                        print "lint :"
                        print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
                        print ""
                        print "lint :"
                        print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
index c14219cd529a85b61ea70f2db6faa35f48e49413..bbd7c40efa561d55ad7580a8d0ffe0e974d442aa 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.46 2000/10/14 17:57:02 Johnny.C.Lam Exp $
+# $Id: mk-1st.awk,v 1.55 2002/04/20 17:32:47 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -40,6 +40,7 @@
 #      subset ("none", "base", "base+ext_funcs" or "termlib")
 #      target (cross-compile target, if any)
 #      ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
 #      subset ("none", "base", "base+ext_funcs" or "termlib")
 #      target (cross-compile target, 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)
 #      overwrite ("yes" or "no", flag to add link to libcurses.a
 #      DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
 #      rmSoLocs ("yes" or "no", flag to add extra clean target)
 #      overwrite ("yes" or "no", flag to add link to libcurses.a
@@ -77,7 +78,7 @@ function removelinks(directory) {
                }
        }
 function sharedlinks(directory) {
                }
        }
 function sharedlinks(directory) {
-               if ( ShlibVer != "auto" ) {
+               if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) {
                        printf "\tcd %s && (", directory
                        if ( DoLinks == "reverse" ) {
                                if ( ShlibVer == "rel" ) {
                        printf "\tcd %s && (", directory
                        if ( DoLinks == "reverse" ) {
                                if ( ShlibVer == "rel" ) {
@@ -131,6 +132,7 @@ BEGIN       {
        }
        {
                if (using \
        }
        {
                if (using \
+                && ( $1 != "link_test" ) \
                 && ( $2 == "lib" \
                   || $2 == "progs" \
                   || $2 == "c++" \
                 && ( $2 == "lib" \
                   || $2 == "progs" \
                   || $2 == "c++" \
@@ -159,35 +161,76 @@ END       {
                        lib_name = sprintf("%s%s%s", prefix, name, suffix)
                        if ( MODEL == "SHARED" )
                        {
                        lib_name = sprintf("%s%s%s", prefix, name, suffix)
                        if ( MODEL == "SHARED" )
                        {
-                               abi_name = sprintf("%s.$(ABI_VERSION)", lib_name);
-                               rel_name = sprintf("%s.$(REL_VERSION)", lib_name);
+                               if (ShlibVerInfix == "cygdll") {
+                                       abi_name = sprintf("%s%s$(ABI_VERSION)%s", prefix, name, suffix);
+                                       rel_name = sprintf("%s%s$(REL_VERSION)%s", prefix, name, suffix);
+                                       imp_name = sprintf("%s%s%s.a", prefix, name, suffix);
+                               } else if (ShlibVerInfix == "yes") {
+                                       abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix);
+                                       rel_name = sprintf("%s%s.$(REL_VERSION)%s", prefix, name, suffix);
+                               } else {
+                                       abi_name = sprintf("%s.$(ABI_VERSION)", lib_name);
+                                       rel_name = sprintf("%s.$(REL_VERSION)", lib_name);
+                               }
                                if ( DoLinks == "reverse") {
                                        end_name = lib_name;
                                } else {
                                        if ( ShlibVer == "rel" ) {
                                                end_name = rel_name;
                                if ( DoLinks == "reverse") {
                                        end_name = lib_name;
                                } else {
                                        if ( ShlibVer == "rel" ) {
                                                end_name = rel_name;
-                                       } else if ( ShlibVer == "abi" ) {
+                                       } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
                                                end_name = abi_name;
                                        } else {
                                                end_name = lib_name;
                                        }
                                }
                                                end_name = abi_name;
                                        } else {
                                                end_name = lib_name;
                                        }
                                }
-                               printf "../lib/%s : $(%s_OBJS)\n", end_name, OBJS
-                               print  "\t-@rm -f $@"
+
+                               if ( ShlibVer == "cygdll" ) {
+                                       dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)";
+                                       printf "$(SHARED_LIB) $(IMPORT_LIB) : $(%s_OBJS)\n", OBJS;
+                                       print "\t-@rm -f $(SHARED_LIB) $(IMPORT_LIB)";
+                               } else {
+                                       dst_dirs = "$(DESTDIR)$(libdir)";
+                                       printf "../lib/%s : $(%s_OBJS)\n", end_name, OBJS
+                                       print "\t-@rm -f $@";
+                               }
                                if ( subset == "termlib") {
                                        printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(TINFO_LIST)\n", OBJS
                                } else {
                                if ( subset == "termlib") {
                                        printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(TINFO_LIST)\n", OBJS
                                } else {
-                                       printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST)\n", OBJS
+                                       printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST) $(LDFLAGS)\n", OBJS
                                }
                                sharedlinks("../lib")
                                }
                                sharedlinks("../lib")
+
                                print  ""
                                print  "install \\"
                                print  "install.libs \\"
                                print  ""
                                print  "install \\"
                                print  "install.libs \\"
-                               printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, end_name
-                               printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", end_name, end_name
-                               printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", end_name
-                               printf "\t$(INSTALL_LIB) ../lib/%s $(DESTDIR)$(libdir)/%s\n", end_name, end_name
-                               sharedlinks("$(DESTDIR)$(libdir)")
+                               printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs
+
+                               if ( ShlibVer == "cygdll" ) {
+
+                                       src_name = sprintf("../lib/%s", end_name);
+                                       dst_name = sprintf("$(DESTDIR)$(bindir)/%s", end_name);
+                                       printf "\t@echo installing %s as %s\n", src_name, dst_name
+                                       printf "\t-@rm -f %s\n", dst_name
+                                       printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name
+
+                                       src_name = sprintf("../lib/%s", imp_name);
+                                       dst_name = sprintf("$(DESTDIR)$(libdir)/%s", imp_name);
+                                       printf "\t@echo installing %s as %s\n", src_name, dst_name
+                                       printf "\t-@rm -f %s\n", dst_name
+                                       printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name
+
+                               } else {
+
+                                       src_name = sprintf("../lib/%s", end_name);
+                                       dst_name = sprintf("$(DESTDIR)$(libdir)/%s", end_name);
+                                       printf "\t@echo installing %s as %s\n", src_name, dst_name
+                                       printf "\t-@rm -f %s\n", dst_name
+                                       printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name
+
+                                       sharedlinks("$(DESTDIR)$(libdir)")
+
+                               }
+
                                if ( overwrite == "yes" && name == "ncurses" )
                                {
                                        ovr_name = sprintf("libcurses%s", suffix)
                                if ( overwrite == "yes" && name == "ncurses" )
                                {
                                        ovr_name = sprintf("libcurses%s", suffix)
@@ -201,12 +244,22 @@ END       {
                                print  "uninstall \\"
                                print  "uninstall.libs \\"
                                printf "uninstall.%s ::\n", name
                                print  "uninstall \\"
                                print  "uninstall.libs \\"
                                printf "uninstall.%s ::\n", name
-                               printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", end_name
-                               removelinks("$(DESTDIR)$(libdir)")
-                               if ( overwrite == "yes" && name == "ncurses" )
-                               {
-                                       ovr_name = sprintf("libcurses%s", suffix)
-                                       printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
+                               if ( ShlibVer == "cygdll" ) {
+
+                                       printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name
+                                       printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name
+
+                                       printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", imp_name
+                                       printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", imp_name
+
+                               } else {
+                                       printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", end_name
+                                       removelinks("$(DESTDIR)$(libdir)")
+                                       if ( overwrite == "yes" && name == "ncurses" )
+                                       {
+                                               ovr_name = sprintf("libcurses%s", suffix)
+                                               printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
+                                       }
                                }
                                if ( rmSoLocs == "yes" ) {
                                        print  ""
                                }
                                if ( rmSoLocs == "yes" ) {
                                        print  ""
index 8f0503e0382f071c61a703d39225a062ec386e59..ffe7494c4073b0569f91accd851b80b4ad86776d 100755 (executable)
@@ -23,7 +23,8 @@ for file in ${1+"$@"} ; do
      if test ! -d "$pathcomp"; then
         echo "mkdir $pathcomp" 1>&2
         case "$pathcomp" in
      if test ! -d "$pathcomp"; then
         echo "mkdir $pathcomp" 1>&2
         case "$pathcomp" in
-          [a-zA-Z]: )  ;;               # DOSISH systems
+          [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
+                ;;               # DOSISH systems
           * )          mkdir "$pathcomp" || errstatus=$? ;;
         esac
      fi
           * )          mkdir "$pathcomp" || errstatus=$? ;;
         esac
      fi
index 208b819d6a57449f07e158ee2fd59ec29c272667..bbc7622c29b53da77ad3d80bbf2194b3f0296046 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.71 2000/10/14 22:55:35 tom Exp $
+# $Id: Makefile.in,v 1.84 2002/06/29 22:36:25 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.                #
+# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.      #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996-2001
 #
 # Makefile for ncurses source code.
 #
 #
 # Makefile for ncurses source code.
 #
@@ -55,9 +55,11 @@ CF_MFLAGS    = @cf_cv_makeflags@
 
 MODEL          = @DFT_LWR_MODEL@
 DESTDIR                = @DESTDIR@
 
 MODEL          = @DFT_LWR_MODEL@
 DESTDIR                = @DESTDIR@
+top_srcdir     = @top_srcdir@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
+bindir         = @bindir@
 libdir         = @libdir@
 includedir     = @includedir@
 datadir                = @datadir@
 libdir         = @libdir@
 includedir     = @includedir@
 datadir                = @datadir@
@@ -66,6 +68,7 @@ LIBTOOL               = @LIBTOOL@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
+INSTALL_PROG   = @INSTALL_PROG@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
@@ -79,14 +82,14 @@ CPP         = @CPP@
 CFLAGS         = @CFLAGS@
 
 INCDIR         = $(srcdir)/../include
 CFLAGS         = @CFLAGS@
 
 INCDIR         = $(srcdir)/../include
-CPPFLAGS       = -I../ncurses -I$(srcdir) @CPPFLAGS@ \
-                 -DHAVE_CONFIG_H
+CPPFLAGS       = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
 
 HOSTCC         = @BUILD_CC@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
 
 HOSTCC         = @BUILD_CC@
-HOSTCCFLAGS    = @CFLAGS@ $(CPPFLAGS)
-HOSTLDFLAGS    = @LDFLAGS@ @LIBS@
+HOSTCCFLAGS    = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @BUILD_CFLAGS@ @BUILD_CPPFLAGS@
+HOSTLDFLAGS    = @BUILD_LDFLAGS@
+HOSTLIBS       = @BUILD_LIBS@
 
 CFLAGS_LIBTOOL = $(CCFLAGS)
 CFLAGS_NORMAL  = $(CCFLAGS)
 
 CFLAGS_LIBTOOL = $(CCFLAGS)
 CFLAGS_NORMAL  = $(CCFLAGS)
@@ -99,7 +102,7 @@ CFLAGS_DEFAULT       = $(CFLAGS_@DFT_UPR_MODEL@)
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
-SHLIB_DIRS     = -L../lib -L$(libdir)
+SHLIB_DIRS     = -L../lib
 SHLIB_LIST     = $(SHLIB_DIRS) @SHLIB_LIST@
 TINFO_LIST     = $(SHLIB_DIRS) @TINFO_LIST@
 
 SHLIB_LIST     = $(SHLIB_DIRS) @SHLIB_LIST@
 TINFO_LIST     = $(SHLIB_DIRS) @TINFO_LIST@
 
@@ -112,6 +115,8 @@ ABI_VERSION = @cf_cv_abi_version@
 
 RANLIB         = @RANLIB@
 
 
 RANLIB         = @RANLIB@
 
+IMPORT_LIB     = @IMPORT_LIB@
+SHARED_LIB     = @SHARED_LIB@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
@@ -120,17 +125,21 @@ LINT_LIBS = -lncurses @LIBS@
 
 FALLBACK_LIST  = @FALLBACK_LIST@
 
 
 FALLBACK_LIST  = @FALLBACK_LIST@
 
+TERMINFO_CAPS  = $(top_srcdir)/include/@TERMINFO_CAPS@
+
 AUTO_SRC = \
        ../include/nomacros.h \
 AUTO_SRC = \
        ../include/nomacros.h \
-       ./comp_captab.c \
-       ./expanded.c \
-       ./fallback.c \
+       codes.c \
+       comp_captab.c \
+       expanded.c \
+       fallback.c \
        init_keytry.h \
        init_keytry.h \
-       ./lib_keyname.c \
-       ./lib_gen.c \
-       ./codes.c \
-       ./names.c \
-       ./unctrl.c
+       keys.list \
+       lib_gen.c \
+       lib_keyname.c \
+       link_test.c \
+       names.c \
+       unctrl.c
 
 TEST_DEPS      = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
 TEST_ARGS      = -L../lib -lncurses@DFT_ARG_SUFFIX@
 
 TEST_DEPS      = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
 TEST_ARGS      = -L../lib -lncurses@DFT_ARG_SUFFIX@
@@ -139,6 +148,7 @@ TEST_LDFLAGS        = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFL
 TEST_PROGS = \
        captoinfo$x \
        hardscroll$x \
 TEST_PROGS = \
        captoinfo$x \
        hardscroll$x \
+       link_test$x \
        hashmap$x \
        lib_mvcur$x
 
        hashmap$x \
        lib_mvcur$x
 
@@ -146,6 +156,7 @@ base        = $(srcdir)/base
 serial = $(srcdir)/tty
 tinfo  = $(srcdir)/tinfo
 trace  = $(srcdir)/trace
 serial = $(srcdir)/tty
 tinfo  = $(srcdir)/tinfo
 trace  = $(srcdir)/trace
+wide   = $(srcdir)/widechar
 
 ################################################################################
 all \
 
 ################################################################################
 all \
@@ -153,53 +164,57 @@ libs ::           $(AUTO_SRC) ../lib $(LIBRARIES)
 
 sources:       $(AUTO_SRC)
 
 
 sources:       $(AUTO_SRC)
 
+$(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
 $(DESTDIR)$(libdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 ../lib : ; mkdir $@
 
 
 ../lib : ; mkdir $@
 
-./fallback.c : $(tinfo)/MKfallback.sh
-       sh $(tinfo)/MKfallback.sh $(FALLBACK_LIST) >$@
+fallback.c : $(tinfo)/MKfallback.sh
+       sh $(tinfo)/MKfallback.sh @TERMINFO@ @TERMINFO_SRC@ $(FALLBACK_LIST) >$@
 
 
-./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
-       sh $(base)/MKlib_gen.sh "$(CPP)" "$(AWK)" <../include/curses.h >$@
+lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
+       sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
 
 ../include/nomacros.h : $(base)/MKlib_gen.sh ../include/curses.h
 
 ../include/nomacros.h : $(base)/MKlib_gen.sh ../include/curses.h
-       sh $(base)/MKlib_gen.sh "$(CPP)" "$(AWK)" <../include/curses.h | \
+       sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h | \
                fgrep undef >$@
 
                fgrep undef >$@
 
-init_keytry.h: make_keys$x $(tinfo)/keys.list
-       ./make_keys $(tinfo)/keys.list > $@
+init_keytry.h: make_keys$x keys.list
+       ./make_keys keys.list > $@
+
+keys.list :    $(tinfo)/MKkeys_list.sh
+       AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@
 
 make_keys$x : \
                $(tinfo)/make_keys.c \
 
 make_keys$x : \
                $(tinfo)/make_keys.c \
-               ./names.c
-       $(HOSTCC) -o $@ $(HOSTCCFLAGS) $(tinfo)/make_keys.c $(HOSTLDFLAGS)
+               names.c
+       $(HOSTCC) -o $@ $(HOSTCCFLAGS) $(tinfo)/make_keys.c $(HOSTLDFLAGS) $(HOSTLIBS)
 
 make_hash$x : \
                $(tinfo)/comp_hash.c \
                ../include/hashsize.h
 
 make_hash$x : \
                $(tinfo)/comp_hash.c \
                ../include/hashsize.h
-       $(HOSTCC) -o $@ $(HOSTCCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(HOSTLDFLAGS)
+       $(HOSTCC) -o $@ $(HOSTCCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(HOSTLDFLAGS) $(HOSTLIBS)
 
 
-./expanded.c : $(serial)/MKexpanded.sh
+expanded.c : $(serial)/MKexpanded.sh
        sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
 
        sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
 
-./comp_captab.c: \
+comp_captab.c: \
                make_hash$x \
                ../include/hashsize.h \
                $(tinfo)/MKcaptab.awk
                make_hash$x \
                ../include/hashsize.h \
                $(tinfo)/MKcaptab.awk
-       sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/Caps > $@
+       sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ > $@
 
 
-./lib_keyname.c: $(tinfo)/keys.list $(base)/MKkeyname.awk
-       $(AWK) -f $(base)/MKkeyname.awk $(tinfo)/keys.list > $@
+lib_keyname.c: keys.list $(base)/MKkeyname.awk
+       $(AWK) -f $(base)/MKkeyname.awk keys.list > $@
 
 
-./names.c ./codes.c: $(tinfo)/MKnames.awk
-       $(AWK) -f $(tinfo)/MKnames.awk $(srcdir)/../include/Caps
-       cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >./names.c
-       cat namehdr boolcodes numcodes strcodes codeftr >./codes.c
+names.c codes.c: $(tinfo)/MKnames.awk
+       $(AWK) -f $(tinfo)/MKnames.awk $(srcdir)/../include/@TERMINFO_CAPS@
+       cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >names.c
+       cat namehdr boolcodes numcodes strcodes codeftr >codes.c
        -rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
 
        -rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
 
-./unctrl.c: $(base)/MKunctrl.awk
+unctrl.c: $(base)/MKunctrl.awk
        echo | $(AWK) -f $(base)/MKunctrl.awk >$@
 
 tags:
        echo | $(AWK) -f $(base)/MKunctrl.awk >$@
 
 tags:
@@ -209,7 +224,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
        -rm -f $(TEST_PROGS)
 
 clean :: mostlyclean
        -rm -f $(TEST_PROGS)
 
 clean :: mostlyclean
@@ -232,6 +247,9 @@ realclean :: distclean
 # These rules build test-programs for the modules that have test-drivers
 test_progs : $(TEST_PROGS)
 
 # These rules build test-programs for the modules that have test-drivers
 test_progs : $(TEST_PROGS)
 
+link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
+       sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
+
 captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
        @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
 
 captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
        @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
 
@@ -245,6 +263,10 @@ lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
                ../@DFT_OBJ_SUBDIR@/dump_entry.o
        @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry.o $(TEST_LDFLAGS)
 
                ../@DFT_OBJ_SUBDIR@/dump_entry.o
        @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry.o $(TEST_LDFLAGS)
 
+link_test$x : link_test.c $(TEST_DEPS) \
+               ../@DFT_OBJ_SUBDIR@/link_test.o
+       @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test.o $(TEST_LDFLAGS)
+
 ../@DFT_OBJ_SUBDIR@/dump_entry.o:
        cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry.o
 
 ../@DFT_OBJ_SUBDIR@/dump_entry.o:
        cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry.o
 
index aade721a2e6e6abfda58ba7f9345cf0bc23c2a24..20c94d3c289506d05efbd52de5554ee900cc2ee8 100644 (file)
@@ -1,2 +1,2 @@
-For discussion of the package internals, see hackguide.html in the misc
+For discussion of the package internals, see hackguide.html in the doc/html
 directory.
 directory.
diff --git a/ncurses/README.IZ b/ncurses/README.IZ
new file mode 100644 (file)
index 0000000..2952f68
--- /dev/null
@@ -0,0 +1,65 @@
+Here is the patch.  I did no testing whatsoever with event watching
+requests present (I need some applications which exersize this before
+this, probably lynx ;-), but the code looks working "the normal way".
+
+I had no way to test that the poll() branch compiles/works...
+
+Here is the API: 
+
+*) two new functions wgetch_events() wgetstrn_event() are introduced,
+   which allow an event-watch specification given as the last argument;
+
+*) if the last argument is NULL, they behave as wgetch() and
+   wgetstrn() (TESTED!);
+
+*) the event specification is a pointer to _nc_eventlist, which
+   contains bookkeeping elements (count and the summary of results),
+   and an array of pointers to _nc_event;
+
+*) each _nc_event is a typed union, with two types supported "as
+   shipped": _NC_EVENT_TIMEOUT_MSEC, _NC_EVENT_FILE.  For
+   _NC_EVENT_FILE the fields are fd, flag, and the output field.
+
+*) The only supported flag "as shipped" is _NC_EVENT_FILE_READABLE.
+   If the file was found readable, the return field is set to this,
+   otherwise to 0;
+
+*) If these functions return KEY_EVENT, this means that the return
+   fields in both the _nc_eventlist and _nc_event structures make
+   sense.  The field result_flags of _nc_eventlist may have a
+   combination of bits _NC_EVENT_TIMEOUT_MSEC and _NC_EVENT_FILE_READABLE
+   set;
+
+*) The timeout_msec field of _NC_EVENT_TIMEOUT_MSEC _nc_event's is
+   updated on return, even if the return is not KEY_EVENT.  However,
+   the change in the value represents only the amount of time spent in
+   waiting for events, not the amount of time spent bookkeeping;
+
+*) the return KEY_EVENT of wgetstrn_event() means that the output
+   string includes the user input typed so far, but the user did not have
+   a chance to press ENTER (or whatever).  This call should be
+   repeated (with "shifted" pointer to a buffer, of course) to
+   complete the input;
+
+*) The presence of this extension can be checked via inspecting
+   #ifdef NCURSES_EVENT_VERSION.  This symbol is not defined on BeOS,
+   since there is no support for this on BeOS.
+
+Known issues:  calls interrupted by KEY_EVENT reset the ESCDELAY
+timer.  This is not entirely new, since other synthetic events behave
+the same (see "if (ch >= KEY_MIN)" branch of kgetch()).  However,
+KEY_EVENT may be generated in a continuous stream (say, when
+downloading a file), thus this may be more important than with other
+synthetic keys.  An additional field in window structure which keeps
+timestamp of the first raw key in the queue may be needed to
+circumvent this.
+
+Another possible issue: KEY_EVENT has a preference over a user input,
+so a stream of KEY_EVENT's can make input hard.  Maybe use
+result_flags as in input parameter too, which specifies whether the
+user input should have higher precedence?
+
+Also: I took an opportunity to document kgetch() better.
+
+Enjoy,
+Ilya
index 9b5a31a85a2f965a2e9855f3f1fc65b9966d19f8..53d12bfd42bc6f0c5ab3fd9ee7d19992ecafe0af 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
- * $Id: SigAction.h,v 1.5 1999/06/19 23:00:54 tom Exp $
+ * $Id: SigAction.h,v 1.6 2000/12/10 02:36:10 tom Exp $
  *
  * This file exists to handle non-POSIX systems which don't have <unistd.h>,
  * and usually no sigaction() nor <termios.h>
  *
  * This file exists to handle non-POSIX systems which don't have <unistd.h>,
  * and usually no sigaction() nor <termios.h>
@@ -105,12 +105,12 @@ typedef unsigned long sigset_t;
 #undef  sigaddset
 #define sigaddset   _nc_sigaddset
 
 #undef  sigaddset
 #define sigaddset   _nc_sigaddset
 
-extern int sigaction (int sig, sigaction_t * sigact, sigaction_t *  osigact);
-extern int sigprocmask (int how, sigset_t *mask, sigset_t *omask);
-extern int sigemptyset (sigset_t *mask);
-extern int sigsuspend (sigset_t *mask);
-extern int sigdelset (sigset_t *mask, int sig);
-extern int sigaddset (sigset_t *mask, int sig);
+extern NCURSES_EXPORT(int) sigaction (int sig, sigaction_t * sigact, sigaction_t *  osigact);
+extern NCURSES_EXPORT(int) sigprocmask (int how, sigset_t *mask, sigset_t *omask);
+extern NCURSES_EXPORT(int) sigemptyset (sigset_t *mask);
+extern NCURSES_EXPORT(int) sigsuspend (sigset_t *mask);
+extern NCURSES_EXPORT(int) sigdelset (sigset_t *mask, int sig);
+extern NCURSES_EXPORT(int) sigaddset (sigset_t *mask, int sig);
 
 #endif /* HAVE_SIGVEC */
 #endif /* HAVE_SIGACTION */
 
 #endif /* HAVE_SIGVEC */
 #endif /* HAVE_SIGACTION */
index aaeb4743cdfe81b86f70a8f3bfeba08819ba6343..4bf83eafbcaf28a3d5a23c7e100f60bd4e5e501a 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: MKkeyname.awk,v 1.17 1999/02/18 11:18:06 tom Exp $
+# $Id: MKkeyname.awk,v 1.24 2002/09/01 19:43:34 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1999 Free Software Foundation, Inc.                          #
+# Copyright (c) 1999-2001,2002 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 BEGIN {
        print "/* generated by MKkeyname.awk */"
        print ""
 BEGIN {
        print "/* generated by MKkeyname.awk */"
        print ""
-       print "#include <ncurses_cfg.h>"
-       print "#include <stdlib.h>"
-       print "#include <string.h>"
-       print "#include <curses.h>"
+       print "#include <curses.priv.h>"
        print "#include <tic.h>"
        print ""
        print "const struct kn _nc_key_names[] = {"
        print "#include <tic.h>"
        print ""
        print "const struct kn _nc_key_names[] = {"
@@ -45,30 +42,49 @@ BEGIN {
 END {
        printf "\t{ 0, 0 }};\n"
        print ""
 END {
        printf "\t{ 0, 0 }};\n"
        print ""
-       print "NCURSES_CONST char *keyname(int c)"
+       print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
        print "{"
        print "{"
+       print "static char **table;"
        print "int i;"
        print "int i;"
-       print "static char name[20];"
+       print "char name[20];"
        print "char *p;"
        print ""
        print "char *p;"
        print ""
+       print "\tif (c == -1) return \"-1\";"
+       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 "\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 >= 256) return \"UNKNOWN KEY\";"
-       print "\tp = name;"
-       print "\tif (c >= 128) {"
-       print "\t\tstrcpy(p, \"M-\");"
-       print "\t\tp += 2;"
-       print "\t\tc -= 128;"
+       print "\tif (c < 0 || c >= 256) return 0;"
+       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 "\t}"
-       print "\tif (c < 0)"
-       print "\t\tsprintf(p, \"%d\", c);"
-       print "\telse if (c < 32)"
-       print "\t\tsprintf(p, \"^%c\", c + '@');"
-       print "\telse if (c == 127)"
-       print "\t\tstrcpy(p, \"^?\");"
-       print "\telse"
-       print "\t\tsprintf(p, \"%c\", c);"
-       print "\treturn (NCURSES_CONST char *)name;"
+       print "\treturn (NCURSES_CONST char *)table[c];"
+       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 "}"
        print "}"
+       print "#endif"
 }
 }
index 3377940070350896d6b9ce96b7a46b1cdd8a0d50..7dcef086d7103cfdaf120dcbc7c6b69515bfaaad 100755 (executable)
@@ -2,7 +2,35 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.12 2000/07/29 16:30:11 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.20 2002/09/28 15:02:11 tom Exp $)
+#
+##############################################################################
+# Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "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.                                                             #
+##############################################################################
 #
 # The XSI Curses standard requires all curses entry points to exist as
 # functions, even though many definitions would normally be shadowed
 #
 # The XSI Curses standard requires all curses entry points to exist as
 # functions, even though many definitions would normally be shadowed
 # 7. sed: squeeze spaces, strip off gen_ prefix, create needed #undef
 #
 
 # 7. sed: squeeze spaces, strip off gen_ prefix, create needed #undef
 #
 
+# keep the editing independent of locale:
+if test "${LANGUAGE+set}"    = set; then LANGUAGE=C;    export LANGUAGE;    fi
+if test "${LANG+set}"        = set; then LANG=C;        export LANG;        fi
+if test "${LC_ALL+set}"      = set; then LC_ALL=C;      export LC_ALL;      fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+if test "${LC_COLLATE+set}"  = set; then LC_COLLATE=C;  export LC_COLLATE;  fi
+
 preprocessor="$1 -I../include"
 AWK="$2"
 preprocessor="$1 -I../include"
 AWK="$2"
-ED1=sed1$$.sed
-ED2=sed2$$.sed
-ED3=sed3$$.sed
-AW1=awk1$$.awk
-TMP=gen$$.c
-trap "rm -f $ED1 $ED2 $ED3 $AW1 $TMP" 0 1 2 5 15
-
-(cat <<EOF
-#include <ncurses_cfg.h>
-#include <curses.h>
+USE="$3"
 
 
-DECLARATIONS
+PID=$$
+ED1=sed1_${PID}.sed
+ED2=sed2_${PID}.sed
+ED3=sed3_${PID}.sed
+ED4=sed4_${PID}.sed
+AW1=awk1_${PID}.awk
+AW2=awk2_${PID}.awk
+TMP=gen__${PID}.c
+trap "rm -f $ED1 $ED2 $ED3 $ED4 $AW1 $AW2 $TMP" 0 1 2 5 15
 
 
-EOF
-cat >$ED1 <<EOF1
+ALL=$USE
+if test "$USE" = implemented ; then
+       CALL="call_"
+       cat >$ED1 <<EOF1
+/^extern.*implemented/{
+       h
+       s/^.*implemented:\([^   *]*\).*/P_#if_USE_\1_SUPPORT/p
+       g
+       s/^extern \([^;]*\);.*/\1/p
+       g
+       s/^.*implemented:\([^   *]*\).*/P_#endif/p
+}
 /^extern.*generated/{
        h
        s/^.*generated:\([^     *]*\).*/P_#if_USE_\1_SUPPORT/p
 /^extern.*generated/{
        h
        s/^.*generated:\([^     *]*\).*/P_#if_USE_\1_SUPPORT/p
@@ -52,6 +97,19 @@ cat >$ED1 <<EOF1
        s/^.*generated:\([^     *]*\).*/P_#endif/p
 }
 EOF1
        s/^.*generated:\([^     *]*\).*/P_#endif/p
 }
 EOF1
+else
+       CALL=""
+       cat >$ED1 <<EOF1
+/^extern.*${ALL}/{
+       h
+       s/^.*${ALL}:\([^        *]*\).*/P_#if_USE_\1_SUPPORT/p
+       g
+       s/^extern \([^;]*\);.*/\1/p
+       g
+       s/^.*${ALL}:\([^        *]*\).*/P_#endif/p
+}
+EOF1
+fi
 
 cat >$ED2 <<EOF2
 /^P_/b nc
 
 cat >$ED2 <<EOF2
 /^P_/b nc
@@ -74,6 +132,7 @@ cat >$ED2 <<EOF2
        s/*/ * /g
        s/%/ , /g
        s/)/ z)/
        s/*/ * /g
        s/%/ , /g
        s/)/ z)/
+       s/\.\.\. z)/...)/
 :nc
        /(/s// ( /
        s/)/ )/
 :nc
        /(/s// ( /
        s/)/ )/
@@ -88,6 +147,7 @@ cat >$ED3 <<EOF3
        s/              */ /g
        s/  */ /g
        s/ ,/,/g
        s/              */ /g
        s/  */ /g
        s/ ,/,/g
+       s/( /(/g
        s/ )/)/g
        s/ gen_/ /
        s/^M_/#undef /
        s/ )/)/g
        s/ gen_/ /
        s/^M_/#undef /
@@ -95,34 +155,78 @@ cat >$ED3 <<EOF3
 :done
 EOF3
 
 :done
 EOF3
 
+if test "$USE" = generated ; then
+cat >$ED4 <<EOF
+       s/^\(.*\) \(.*\) (\(.*\))\$/NCURSES_EXPORT(\1) \2 (\3)/
+EOF
+else
+cat >$ED4 <<EOF
+/^\(.*\) \(.*\) (\(.*\))\$/ {
+       h
+       s/^\(.*\) \(.*\) (\(.*\))\$/extern \1 call_\2 (\3);/
+       p
+       g
+       s/^\(.*\) \(.*\) (\(.*\))\$/\1 call_\2 (\3)/
+       }
+EOF
+fi
+
 cat >$AW1 <<\EOF1
 BEGIN  {
                skip=0;
        }
 cat >$AW1 <<\EOF1
 BEGIN  {
                skip=0;
        }
-       /^P_#if/ {
+/^P_#if/ {
                print "\n"
                print $0
                skip=0;
                print "\n"
                print $0
                skip=0;
-       }
-       /^P_#endif/ {
+}
+/^P_#endif/ {
                print $0
                skip=1;
                print $0
                skip=1;
-       }
-       $0 !~ /^P_/ {
+}
+$0 !~ /^P_/ {
        if (skip)
                print "\n"
        skip=1;
 
        if (skip)
                print "\n"
        skip=1;
 
-       if ( $1 == "chtype" ) {
+       first=$1
+       for (i = 1; i <= NF; i++) {
+               if ( $i != "NCURSES_CONST" ) {
+                       first = i;
+                       break;
+               }
+       }
+       second = first + 1;
+       if ( $first == "chtype" ) {
                returnType = "Char";
                returnType = "Char";
+       } else if ( $first == "SCREEN" ) {
+               returnType = "SP";
+       } else if ( $first == "WINDOW" ) {
+               returnType = "Win";
+       } else if ( $first == "attr_t" || $second == "attrset" || $second == "standout" || $second == "standend" || $second == "wattrset" || $second == "wstandout" || $second == "wstandend" ) {
+               returnType = "Attr";
+       } else if ( $first == "bool" || $first == "NCURSES_BOOL" ) {
+               returnType = "Bool";
+       } else if ( $second == "*" ) {
+               returnType = "Ptr";
        } else {
                returnType = "Code";
        }
        } else {
                returnType = "Code";
        }
-       print "M_" $2
+       myfunc = second;
+       for (i = second; i <= NF; i++) {
+               if ($i != "*") {
+                       myfunc = i;
+                       break;
+               }
+       }
+       if (using == "generated") {
+               print "M_" $myfunc
+       }
        print $0;
        print "{";
        argcount = 1;
        print $0;
        print "{";
        argcount = 1;
-       if (NF == 5 && $4 == "void")
+       check = NF - 1;
+       if ($check == "void")
                argcount = 0;
        if (argcount != 0) {
                for (i = 1; i <= NF; i++)
                argcount = 0;
        if (argcount != 0) {
                for (i = 1; i <= NF; i++)
@@ -133,16 +237,27 @@ BEGIN     {
        # suppress trace-code for functions that we cannot do properly here,
        # since they return data.
        dotrace = 1;
        # suppress trace-code for functions that we cannot do properly here,
        # since they return data.
        dotrace = 1;
-       if ($2 == "innstr")
+       if ($myfunc ~ /innstr/)
+               dotrace = 0;
+       if ($myfunc ~ /innwstr/)
                dotrace = 0;
 
                dotrace = 0;
 
+       # workaround functions that we do not parse properly
+       if ($myfunc ~ /ripoffline/) {
+               dotrace = 0;
+               argcount = 2;
+       }
+       if ($myfunc ~ /wunctrl/) {
+               dotrace = 0;
+       }
+
        call = "%%T((T_CALLED(\""
        args = ""
        comma = ""
        num = 0;
        pointer = 0;
        argtype = ""
        call = "%%T((T_CALLED(\""
        args = ""
        comma = ""
        num = 0;
        pointer = 0;
        argtype = ""
-       for (i = 1; i <= NF; i++) {
+       for (i = myfunc; i <= NF; i++) {
                ch = $i;
                if ( ch == "*" )
                        pointer = 1;
                ch = $i;
                if ( ch == "*" )
                        pointer = 1;
@@ -181,7 +296,7 @@ BEGIN       {
                        }
                        if (ch == ",")
                                args = args comma "a" ++num;
                        }
                        if (ch == ",")
                                args = args comma "a" ++num;
-                       else if (argcount != 0)
+                       else if ( argcount != 0 && $check != "..." )
                                args = args comma "z"
                        call = call ch
                        if (pointer == 0 && argcount != 0 && argtype != "" )
                                args = args comma "z"
                        call = call ch
                        if (pointer == 0 && argcount != 0 && argtype != "" )
@@ -209,11 +324,17 @@ BEGIN     {
        else
                call = "%%return ";
 
        else
                call = "%%return ";
 
-       call = call $2 "(";
-       for (i = 1; i < argcount; i++)
-               call = call "a" i ", ";
-       if (argcount != 0)
+       call = call $myfunc "(";
+       for (i = 1; i < argcount; i++) {
+               if (i != 1)
+                       call = call ", ";
+               call = call "a" i;
+       }
+       if ( argcount != 0 && $check != "..." ) {
+               if (argcount != 1)
+                       call = call ", ";
                call = call "z";
                call = call "z";
+       }
        if (!match($0, "^void"))
                call = call ") ";
        if (dotrace)
        if (!match($0, "^void"))
                call = call ") ";
        if (dotrace)
@@ -226,34 +347,54 @@ BEGIN     {
 }
 EOF1
 
 }
 EOF1
 
-sed -n -f $ED1 | sed -f $ED2 \
-| $AWK -f $AW1 ) \
-| sed \
-       -e '/^\([a-z_][a-z_]*\) /s//\1 gen_/' >$TMP
-  $preprocessor $TMP 2>/dev/null \
-| $AWK '
+cat >$AW2 <<EOF1
 BEGIN          {
 BEGIN          {
-       print "/*"
-       print " * DO NOT EDIT THIS FILE BY HAND!"
-       print " * It is generated by MKlib_gen.sh."
-       print " *"
-       print " * This is a file of trivial functions generated from macro"
-       print " * definitions in curses.h to satisfy the XSI Curses requirement"
-       print " * that every macro also exist as a callable function."
-       print " *"
-       print " * It will never be linked unless you call one of the entry"
-       print " * points with its normal macro definition disabled.  In that"
-       print " * case, if you have no shared libraries, it will indirectly"
-       print " * pull most of the rest of the library into your link image."
-       print " */"
-       print "#include <curses.priv.h>"
-       print ""
+               print "/*"
+               print " * DO NOT EDIT THIS FILE BY HAND!"
+               printf " * It is generated by $0 %s.\n", "$USE"
+               if ( "$USE" == "generated" ) {
+                       print " *"
+                       print " * This is a file of trivial functions generated from macro"
+                       print " * definitions in curses.h to satisfy the XSI Curses requirement"
+                       print " * that every macro also exist as a callable function."
+                       print " *"
+                       print " * It will never be linked unless you call one of the entry"
+                       print " * points with its normal macro definition disabled.  In that"
+                       print " * case, if you have no shared libraries, it will indirectly"
+                       print " * pull most of the rest of the library into your link image."
+               }
+               print " */"
+               print "#include <curses.priv.h>"
+               print ""
                }
 /^DECLARATIONS/        {start = 1; next;}
                }
 /^DECLARATIONS/        {start = 1; next;}
-               {if (start) print $0;}
-' \
+               {if (start) print \$0;}
+END            {
+               if ( "$USE" != "generated" ) {
+                       print "int main(void) { return 0; }"
+               }
+               }
+EOF1
+
+cat >$TMP <<EOF
+#include <ncurses_cfg.h>
+#include <curses.h>
+
+DECLARATIONS
+
+EOF
+
+sed -n -f $ED1 \
+| sed -e 's/NCURSES_EXPORT(\(.*\)) \(.*\) (\(.*\))/\1 \2(\3)/' \
+| sed -f $ED2 \
+| $AWK -f $AW1 using=$USE \
+| sed -e 's/^\([a-z_][a-z_]*[ *]*\)/\1 gen_/' -e 's/  / /g' >>$TMP
+
+$preprocessor $TMP 2>/dev/null \
+| sed -e 's/  / /g' -e 's/^ //' \
+| $AWK -f $AW2 \
 | sed -f $ED3 \
 | sed \
        -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
 | sed -f $ED3 \
 | sed \
        -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
-       -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/        return \1;/'
-
+       -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/        return \1;/' \
+| sed -f $ED4
index 3d5b25637d75f41c1ae397b08d9b4ba8a5c3bfb3..d8a6587e2c69f248bd264294f1f3428537f5e092 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: MKunctrl.awk,v 1.7 2000/04/01 19:49:26 tom Exp $
+# $Id: MKunctrl.awk,v 1.9 2001/06/02 23:59:20 skimo Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -39,7 +39,7 @@ BEGIN {
                print ""
        }
 END    {
                print ""
        }
 END    {
-               print "NCURSES_CONST char *unctrl(register chtype ch)"
+               print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
                print "{"
                printf "static const char* const table[] = {"
                for ( ch = 0; ch < 256; ch++ ) {
                print "{"
                printf "static const char* const table[] = {"
                for ( ch = 0; ch < 256; ch++ ) {
@@ -64,6 +64,6 @@ END   {
                }
                print "};"
                print ""
                }
                print "};"
                print ""
-               print "\treturn (NCURSES_CONST char *)table[TextOf(ch)];"
+               print "\treturn (NCURSES_CONST char *)table[ChCharOf(ch)];"
                print "}"
        }
                print "}"
        }
index 52dc6927bd5500b403beebfee5a28426d50d44e6..7fc885f8d9b30288d7c056e30df4fc0616245d9c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: define_key.c,v 1.4 1999/02/21 13:03:55 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.6 2000/12/10 02:43:26 tom Exp $")
 
 
-int
-define_key(char *str, int keycode)
+NCURSES_EXPORT(int)
+define_key
+(char *str, int keycode)
 {
 {
-       int code = ERR;
+    int code = ERR;
 
 
-       T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
-       if (keycode > 0) {
-               if (str != 0) {
-                       define_key(str, 0);
-               } else if (has_key(keycode)) {
-                       while (_nc_remove_key(&(SP->_keytry), keycode))
-                               code = OK;
-               }
-               if (str != 0) {
-                       (void) _nc_add_to_try(&(SP->_keytry), str, keycode);
-                       code = OK;
-               }
-       } else {
-               while (_nc_remove_string(&(SP->_keytry), str))
-                       code = OK;
+    T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
+    if (keycode > 0) {
+       if (str != 0) {
+           define_key(str, 0);
+       } else if (has_key(keycode)) {
+           while (_nc_remove_key(&(SP->_keytry), keycode))
+               code = OK;
        }
        }
-       returnCode(code);
+       if (str != 0) {
+           (void) _nc_add_to_try(&(SP->_keytry), str, keycode);
+           code = OK;
+       }
+    } else {
+       while (_nc_remove_string(&(SP->_keytry), str))
+           code = OK;
+    }
+    returnCode(code);
 }
 }
index c9aa022921183a26efd54abd03568a0fe29be3c5..c8ca2856bb977554ff5198570de271fed2b012ad 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: keybound.c,v 1.1 1999/02/19 11:55:56 tom Exp $")
+MODULE_ID("$Id: keybound.c,v 1.3 2000/12/10 02:43:26 tom Exp $")
 
 /*
  * Returns the count'th string definition which is associated with the
  * given keycode.  The result is malloc'd, must be freed by the caller.
  */
 
 
 /*
  * Returns the count'th string definition which is associated with the
  * given keycode.  The result is malloc'd, must be freed by the caller.
  */
 
-char *keybound(int code, int count)
+NCURSES_EXPORT(char *)
+keybound(int code, int count)
 {
 {
-       return _nc_expand_try(SP->_key_ok, code, &count, 0);
+    return _nc_expand_try(SP->_key_ok, code, &count, 0);
 }
 }
index a1385769781f16de05bb71e8da3d70a36cc5a8ec..e3b4be297c17aa96960c774b9d5a6329317c989e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: keyok.c,v 1.3 1999/02/19 11:29:48 tom Exp $")
+MODULE_ID("$Id: keyok.c,v 1.5 2000/12/10 02:43:26 tom Exp $")
 
 /*
  * Enable (or disable) ncurses' interpretation of a keycode by adding (or
 
 /*
  * Enable (or disable) ncurses' interpretation of a keycode by adding (or
@@ -44,29 +44,30 @@ MODULE_ID("$Id: keyok.c,v 1.3 1999/02/19 11:29:48 tom Exp $")
  * corresponding tree.
  */
 
  * corresponding tree.
  */
 
-int keyok(int c, bool flag)
+NCURSES_EXPORT(int)
+keyok(int c, bool flag)
 {
 {
-       int code = ERR;
-       int count = 0;
-       char *s;
+    int code = ERR;
+    int count = 0;
+    char *s;
 
 
-       T((T_CALLED("keyok(%d,%d)"), c, flag));
-       if (flag) {
-               while ((s = _nc_expand_try(SP->_key_ok, c, &count, 0)) != 0
-                && _nc_remove_key(&(SP->_key_ok), c)) {
-                       _nc_add_to_try(&(SP->_keytry), s, c);
-                       free(s);
-                       code = OK;
-                       count = 0;
-               }
-       } else {
-               while ((s = _nc_expand_try(SP->_keytry, c, &count, 0)) != 0
-                && _nc_remove_key(&(SP->_keytry), c)) {
-                       _nc_add_to_try(&(SP->_key_ok), s, c);
-                       free(s);
-                       code = OK;
-                       count = 0;
-               }
+    T((T_CALLED("keyok(%d,%d)"), c, flag));
+    if (flag) {
+       while ((s = _nc_expand_try(SP->_key_ok, c, &count, 0)) != 0
+              && _nc_remove_key(&(SP->_key_ok), c)) {
+           _nc_add_to_try(&(SP->_keytry), s, c);
+           free(s);
+           code = OK;
+           count = 0;
        }
        }
-       returnCode(code);
+    } else {
+       while ((s = _nc_expand_try(SP->_keytry, c, &count, 0)) != 0
+              && _nc_remove_key(&(SP->_keytry), c)) {
+           _nc_add_to_try(&(SP->_key_ok), s, c);
+           free(s);
+           code = OK;
+           count = 0;
+       }
+    }
+    returnCode(code);
 }
 }
index 69c17c34709bf0cd43cde2177ab3570efa3677ea..5b41fedf3a2c851bfb3b47b0b881531104804fe0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * authorization.                                                           *
  ****************************************************************************/
 
  * authorization.                                                           *
  ****************************************************************************/
 
-/****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- ****************************************************************************/
-
 /*
 **     lib_addch.c
 **
 /*
 **     lib_addch.c
 **
@@ -41,7 +36,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_addch.c,v 1.44 2000/05/20 21:13:11 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.68 2002/09/28 17:48:13 tom Exp $")
 
 /*
  * Ugly microtweaking alert.  Everything from here to end of module is
 
 /*
  * Ugly microtweaking alert.  Everything from here to end of module is
@@ -54,39 +49,35 @@ MODULE_ID("$Id: lib_addch.c,v 1.44 2000/05/20 21:13:11 tom Exp $")
  */
 
 /* Return bit mask for clearing color pair number if given ch has color */
  */
 
 /* Return bit mask for clearing color pair number if given ch has color */
-#define COLOR_MASK(ch) (~(chtype)((ch)&A_COLOR?A_COLOR:0))
+#define COLOR_MASK(ch) (~(attr_t)((ch)&A_COLOR?A_COLOR:0))
 
 
-static inline chtype
-render_char(WINDOW *win, chtype ch)
+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 */
 {
 /* compute a rendition of the given char correct for the current context */
 {
-    chtype a = win->_attrs;
+    attr_t a = win->_attrs;
 
 
-    if (ch == ' ') {
-       /* color in attrs has precedence over bkgd */
-       ch = a | (win->_bkgd & COLOR_MASK(a));
+    if (ISBLANK(ch) && AttrOf(ch) == A_NORMAL) {
+       /* color in attrs has precedence over bkgrnd */
+       ch = win->_nc_bkgd;
+       SetAttr(ch, a | (AttrOf(win->_nc_bkgd) & COLOR_MASK(a)));
     } else {
     } else {
-       /* color in attrs has precedence over bkgd */
-       a |= (win->_bkgd & A_ATTRIBUTES) & COLOR_MASK(a);
+       /* color in attrs has precedence over bkgrnd */
+       a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a);
        /* color in ch has precedence */
        /* color in ch has precedence */
-       ch |= (a & COLOR_MASK(ch));
+       AddAttr(ch, (a & COLOR_MASK(AttrOf(ch))));
     }
 
     }
 
-    TR(TRACE_VIRTPUT, ("bkg = %lx, attrs = %lx -> ch = %lx", win->_bkgd,
-           win->_attrs, ch));
+    TR(TRACE_VIRTPUT, ("bkg = %s, attrs = %s -> ch = %s",
+                      _tracech_t2(1, CHREF(win->_nc_bkgd)),
+                      _traceattr(win->_attrs),
+                      _tracech_t2(3, CHREF(ch))));
 
     return (ch);
 }
 
 
     return (ch);
 }
 
-chtype
-_nc_background(WINDOW *win)
-/* make render_char() visible while still allowing us to inline it below */
-{
-    return (win->_bkgd);
-}
-
-chtype
-_nc_render(WINDOW *win, chtype ch)
+NCURSES_EXPORT(NCURSES_CH_T)
+_nc_render(WINDOW *win, NCURSES_CH_T ch)
 /* make render_char() visible while still allowing us to inline it below */
 {
     return render_char(win, ch);
 /* make render_char() visible while still allowing us to inline it below */
 {
     return render_char(win, ch);
@@ -109,7 +100,7 @@ _nc_render(WINDOW *win, chtype ch)
 #endif
 
 static inline int
 #endif
 
 static inline int
-waddch_literal(WINDOW *win, chtype ch)
+waddch_literal(WINDOW *win, NCURSES_CH_T ch)
 {
     int x;
     struct ldat *line;
 {
     int x;
     struct ldat *line;
@@ -122,7 +113,7 @@ waddch_literal(WINDOW *win, chtype ch)
      * 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 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 0                          /* Solaris 2.6 allows updating the corner more than once */
     if (win->_flags & _WRAPPED) {
        if (x >= win->_maxx)
            return (ERR);
     if (win->_flags & _WRAPPED) {
        if (x >= win->_maxx)
            return (ERR);
@@ -137,9 +128,39 @@ waddch_literal(WINDOW *win, chtype ch)
 
     CHANGED_CELL(line, x);
 
 
     CHANGED_CELL(line, x);
 
+    /*
+     * Handle non-spacing characters
+     */
+    if_WIDEC({
+       if (wcwidth(CharOf(ch)) == 0) {
+           int i;
+           int y;
+           if ((x > 0 && ((y = win->_cury) >= 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) {
+                       chars[i] = CharOf(ch);
+                       break;
+                   }
+               }
+           }
+           goto testwrapping;
+       }
+    });
     line->text[x++] = ch;
     line->text[x++] = ch;
+    /*
+     * Provide for multi-column characters
+     */
+    if_WIDEC({
+       if (wcwidth(CharOf(ch)) > 1)
+           AddAttr(line->text[x++], WA_NAC);
+    }
+  testwrapping:
+    );
 
 
-    TR(TRACE_VIRTPUT, ("(%d, %d) = %s", win->_cury, x, _tracechtype(ch)));
+    TR(TRACE_VIRTPUT, ("(%d, %d) = %s", win->_cury, x, _tracech_t(CHREF(ch))));
     if (x > win->_maxx) {
        /*
         * The _WRAPPED flag is useful only for telling an application that
     if (x > win->_maxx) {
        /*
         * The _WRAPPED flag is useful only for telling an application that
@@ -167,15 +188,15 @@ waddch_literal(WINDOW *win, chtype ch)
 }
 
 static inline int
 }
 
 static inline int
-waddch_nosync(WINDOW *win, const chtype ch)
+waddch_nosync(WINDOW *win, const NCURSES_CH_T ch)
 /* the workhorse function -- add a character to the given window */
 {
     int x, y;
 /* the workhorse function -- add a character to the given window */
 {
     int x, y;
-    int t = 0;
+    chtype t = 0;
     const char *s = 0;
 
     const char *s = 0;
 
-    if ((ch & A_ALTCHARSET)
-       || ((t = TextOf(ch)) > 127)
+    if ((AttrOf(ch) & A_ALTCHARSET)
+       || ((t = CharOf(ch)) > 127)
        || ((s = unctrl(t))[1] == 0))
        return waddch_literal(win, ch);
 
        || ((s = unctrl(t))[1] == 0))
        return waddch_literal(win, ch);
 
@@ -192,7 +213,8 @@ waddch_nosync(WINDOW *win, const chtype ch)
         */
        if ((!win->_scroll && (y == win->_regbottom))
            || (x <= win->_maxx)) {
         */
        if ((!win->_scroll && (y == win->_regbottom))
            || (x <= win->_maxx)) {
-           chtype blank = (' ' | AttrOf(ch));
+           NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
+           AddAttr(blank, AttrOf(ch));
            while (win->_curx < x) {
                if (waddch_literal(win, blank) == ERR)
                    return (ERR);
            while (win->_curx < x) {
                if (waddch_literal(win, blank) == ERR)
                    return (ERR);
@@ -234,9 +256,12 @@ waddch_nosync(WINDOW *win, const chtype ch)
        win->_flags &= ~_WRAPPED;
        break;
     default:
        win->_flags &= ~_WRAPPED;
        break;
     default:
-       while (*s)
-           if (waddch_literal(win, (*s++) | AttrOf(ch)) == ERR)
+       while (*s) {
+           NCURSES_CH_T sch;
+           SetChar(sch, *s++, AttrOf(ch));
+           if (waddch_literal(win, sch) == ERR)
                return ERR;
                return ERR;
+       }
        return (OK);
     }
 
        return (OK);
     }
 
@@ -246,8 +271,8 @@ waddch_nosync(WINDOW *win, const chtype ch)
     return (OK);
 }
 
     return (OK);
 }
 
-int
-_nc_waddch_nosync(WINDOW *win, const chtype c)
+NCURSES_EXPORT(int)
+_nc_waddch_nosync(WINDOW *win, const NCURSES_CH_T c)
 /* export copy of waddch_nosync() so the string-put functions can use it */
 {
     return (waddch_nosync(win, c));
 /* export copy of waddch_nosync() so the string-put functions can use it */
 {
     return (waddch_nosync(win, c));
@@ -261,15 +286,17 @@ _nc_waddch_nosync(WINDOW *win, const chtype c)
 
 /* These are actual entry points */
 
 
 /* These are actual entry points */
 
-int
+NCURSES_EXPORT(int)
 waddch(WINDOW *win, const chtype ch)
 {
     int code = ERR;
 waddch(WINDOW *win, const chtype ch)
 {
     int code = ERR;
+    NCURSES_CH_T wch;
+    SetChar2(wch, ch);
 
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), win,
 
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), win,
-           _tracechtype(ch)));
+                                     _tracechtype(ch)));
 
 
-    if (win && (waddch_nosync(win, ch) != ERR)) {
+    if (win && (waddch_nosync(win, wch) != ERR)) {
        _nc_synchook(win);
        code = OK;
     }
        _nc_synchook(win);
        code = OK;
     }
@@ -278,15 +305,54 @@ waddch(WINDOW *win, const chtype ch)
     return (code);
 }
 
     return (code);
 }
 
-int
+NCURSES_EXPORT(int)
 wechochar(WINDOW *win, const chtype ch)
 {
     int code = ERR;
 wechochar(WINDOW *win, const chtype ch)
 {
     int code = ERR;
+    NCURSES_CH_T wch;
+    SetChar2(wch, ch);
 
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win,
 
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win,
-           _tracechtype(ch)));
+                                     _tracechtype(ch)));
+
+    if (win && (waddch_nosync(win, wch) != ERR)) {
+       bool save_immed = win->_immed;
+       win->_immed = TRUE;
+       _nc_synchook(win);
+       win->_immed = save_immed;
+       code = OK;
+    }
+    TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
+    return (code);
+}
+
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int)
+wadd_wch(WINDOW *win, const cchar_t * wch)
+{
+    int code = ERR;
+
+    TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win,
+                                     _tracech_t(wch)));
+
+    if (win && (waddch_nosync(win, *wch) != ERR)) {
+       _nc_synchook(win);
+       code = OK;
+    }
+
+    TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
+    return (code);
+}
+
+NCURSES_EXPORT(int)
+wecho_wchar(WINDOW *win, const cchar_t * wch)
+{
+    int code = ERR;
+
+    TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wecho_wchar(%p, %s)"), win,
+                                     _tracech_t(wch)));
 
 
-    if (win && (waddch_nosync(win, ch) != ERR)) {
+    if (win && (waddch_nosync(win, *wch) != ERR)) {
        bool save_immed = win->_immed;
        win->_immed = TRUE;
        _nc_synchook(win);
        bool save_immed = win->_immed;
        win->_immed = TRUE;
        _nc_synchook(win);
@@ -296,3 +362,4 @@ wechochar(WINDOW *win, const chtype ch)
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
     return (code);
 }
     TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
     return (code);
 }
+#endif /* USE_WIDEC_SUPPORT */
index 59a3bae81c8cd91319b4dd5c2660521121ba01d8..d6f9345542e34427b3a4c061c418b0e0b8fc9934 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_addstr.c,v 1.18 2000/07/29 16:42:41 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.34 2002/10/06 00:25:25 tom Exp $")
 
 
-int
-waddnstr(WINDOW *win, const char *const astr, int n)
+#if USE_WIDEC_SUPPORT
+#define CONV_DATA   mbstate_t state; wchar_t cached; int clen = 0
+#define CONV_INIT   memset (&state, '\0', sizeof (state)); cached = (wchar_t)WEOF
+#define NEXT_CHAR(s,ch, n)                                             \
+    {                                                                  \
+       int len, i = 0;                                                 \
+       memset(&ch, 0, sizeof(cchar_t));                                \
+       if (cached != (wchar_t) WEOF) {                                 \
+           ch.chars[i++] = cached;                                     \
+           cached = (wchar_t) WEOF;                                    \
+           n -= clen;                                                  \
+           s += clen;                                                  \
+       }                                                               \
+       for (; i < CCHARW_MAX && n > 0; ++i) {                          \
+           if ((len = mbrtowc(&ch.chars[i], s, n, &state)) < 0) {      \
+               code = ERR;                                             \
+               break;                                                  \
+           }                                                           \
+           if (i == 0 || wcwidth(ch.chars[i]) == 0) {                  \
+               n -= len;                                               \
+               s += len;                                               \
+           } else {                                                    \
+               cached = ch.chars[i];                                   \
+               clen = len;                                             \
+               ch.chars[i] = L'\0';                                    \
+               break;                                                  \
+           }                                                           \
+       }                                                               \
+       if (code == ERR)                                                \
+           break;                                                      \
+    }
+#else
+#define CONV_DATA
+#define CONV_INIT
+#define NEXT_CHAR(s,ch, n)                                             \
+    ch = *s++;                                                         \
+    --n
+#endif
+
+NCURSES_EXPORT(int)
+waddnstr(WINDOW *win, const char *astr, int n)
 {
     unsigned const char *str = (unsigned const char *) astr;
     int code = ERR;
 {
     unsigned const char *str = (unsigned const char *) astr;
     int code = ERR;
+    CONV_DATA;
 
 
-    T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbuf(astr), n));
+    T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbufn(astr, n), n));
 
     if (win && (str != 0)) {
        TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs)));
 
     if (win && (str != 0)) {
        TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs)));
-       TR(TRACE_VIRTPUT, ("str is not null"));
        code = OK;
        if (n < 0)
            n = (int) strlen(astr);
 
        code = OK;
        if (n < 0)
            n = (int) strlen(astr);
 
-       while ((n-- > 0) && (*str != '\0')) {
+       TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
+       CONV_INIT;
+       while ((n > 0) && (*str != '\0')) {
+           NCURSES_CH_T ch;
            TR(TRACE_VIRTPUT, ("*str = %#x", *str));
            TR(TRACE_VIRTPUT, ("*str = %#x", *str));
-           if (_nc_waddch_nosync(win, (chtype) * str++) == ERR) {
+           NEXT_CHAR(str, ch, n);
+           if (_nc_waddch_nosync(win, ch) == ERR) {
                code = ERR;
                break;
            }
                code = ERR;
                break;
            }
@@ -70,8 +113,8 @@ waddnstr(WINDOW *win, const char *const astr, int n)
     returnCode(code);
 }
 
     returnCode(code);
 }
 
-int
-waddchnstr(WINDOW *win, const chtype * const astr, int n)
+NCURSES_EXPORT(int)
+waddchnstr(WINDOW *win, const chtype * astr, int n)
 {
     NCURSES_SIZE_T y = win->_cury;
     NCURSES_SIZE_T x = win->_curx;
 {
     NCURSES_SIZE_T y = win->_cury;
     NCURSES_SIZE_T x = win->_curx;
@@ -95,9 +138,116 @@ waddchnstr(WINDOW *win, const chtype * const astr, int n)
        returnCode(code);
 
     line = &(win->_line[y]);
        returnCode(code);
 
     line = &(win->_line[y]);
+#if USE_WIDEC_SUPPORT
+    {
+       int i;
+       for (i = 0; i < n; ++i)
+           SetChar(line->text[i + x], ChCharOf(astr[i]), ChAttrOf(astr[i]));
+    }
+#else
     memcpy(line->text + x, astr, n * sizeof(*astr));
     memcpy(line->text + x, astr, n * sizeof(*astr));
+#endif
     CHANGED_RANGE(line, x, x + n - 1);
 
     _nc_synchook(win);
     returnCode(code);
 }
     CHANGED_RANGE(line, x, x + n - 1);
 
     _nc_synchook(win);
     returnCode(code);
 }
+
+#if USE_WIDEC_SUPPORT
+
+int
+_nc_wchstrlen(const cchar_t * s)
+{
+    int result = 0;
+    while (CharOf(s[result]) != L'\0') {
+       result++;
+    }
+    return result;
+}
+
+NCURSES_EXPORT(int)
+wadd_wchnstr(WINDOW *win, const cchar_t * const astr, int n)
+{
+    NCURSES_SIZE_T y = win->_cury;
+    NCURSES_SIZE_T x = win->_curx;
+    int code = OK;
+    struct ldat *line;
+    int i, start, end;
+
+    T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n));
+
+    if (!win)
+       returnCode(ERR);
+
+    if (n < 0) {
+       n = _nc_wchstrlen(astr);
+    }
+    if (n > win->_maxx - x + 1)
+       n = win->_maxx - x + 1;
+    if (n == 0)
+       returnCode(code);
+
+    line = &(win->_line[y]);
+    start = x;
+    end = x + n - 1;
+    if (isnac(line->text[x])) {
+       line->text[x - 1] = win->_nc_bkgd;
+       --start;
+    }
+    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 (x <= win->_maxx && isnac(line->text[x])) {
+       line->text[x] = win->_nc_bkgd;
+       ++end;
+    }
+    CHANGED_RANGE(line, start, end);
+
+    _nc_synchook(win);
+    returnCode(code);
+}
+
+NCURSES_EXPORT(int)
+waddnwstr(WINDOW *win, const wchar_t * str, int n)
+{
+    int code = ERR;
+    int i;
+
+    T((T_CALLED("waddnwstr(%p,%s,%d)"), win, _nc_viswbufn(str,n), n));
+
+    if (win && (str != 0)) {
+       TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs)));
+       code = OK;
+       if (n < 0)
+           n = (int) wcslen(str);
+
+       TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
+       while ((n-- > 0) && (*str != L('\0'))) {
+           NCURSES_CH_T ch;
+           TR(TRACE_VIRTPUT, ("*str[0] = %#lx", *str));
+           SetChar(ch, *str++, A_NORMAL);
+           i = 1;
+           while (i < CCHARW_MAX && n > 0 && (*str != L('\0'))
+                  && wcwidth(*str) == 0) {
+               TR(TRACE_VIRTPUT, ("*str[%d] = %#lx", i, *str));
+               ch.chars[i++] = *str++;
+               --n;
+           }
+           if (_nc_waddch_nosync(win, ch) == ERR) {
+               code = ERR;
+               break;
+           }
+       }
+       _nc_synchook(win);
+    }
+    TR(TRACE_VIRTPUT, ("waddnwstr returns %d", code));
+    returnCode(code);
+}
+
+#endif
index 3428aaf69e1605620f174aa251f79a5e6e3e597b..c23d0a1d2ff1085c59d58cc5fc9eb7ae9167de9d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
  *     beep.c
  *
 /*
  *     beep.c
  *
@@ -40,9 +39,9 @@
  */
 
 #include <curses.priv.h>
  */
 
 #include <curses.priv.h>
-#include <term.h>      /* beep, flash */
+#include <term.h>              /* beep, flash */
 
 
-MODULE_ID("$Id: lib_beep.c,v 1.7 1999/10/22 21:39:09 tom Exp $")
+MODULE_ID("$Id: lib_beep.c,v 1.9 2000/12/10 02:43:26 tom Exp $")
 
 /*
  *     beep()
 
 /*
  *     beep()
@@ -52,22 +51,23 @@ MODULE_ID("$Id: lib_beep.c,v 1.7 1999/10/22 21:39:09 tom Exp $")
  *
  */
 
  *
  */
 
-int beep(void)
+NCURSES_EXPORT(int)
+beep(void)
 {
 {
-       int res = ERR;
+    int res = ERR;
 
 
-       T((T_CALLED("beep()")));
+    T((T_CALLED("beep()")));
 
 
-       /* FIXME: should make sure that we are not in altchar mode */
-       if (bell) {
-               TPUTS_TRACE("bell");
-               res = putp(bell);
-               _nc_flush();
-       } else if (flash_screen) {
-               TPUTS_TRACE("flash_screen");
-               res = putp(flash_screen);
-               _nc_flush();
-       }
+    /* FIXME: should make sure that we are not in altchar mode */
+    if (bell) {
+       TPUTS_TRACE("bell");
+       res = putp(bell);
+       _nc_flush();
+    } else if (flash_screen) {
+       TPUTS_TRACE("flash_screen");
+       res = putp(flash_screen);
+       _nc_flush();
+    }
 
 
-       returnCode(res);
+    returnCode(res);
 }
 }
index 410ee0580433b6d7a91015b4cbf8c6b9c46e19aa..ca189a656ebd8de87ae7600be85b91a4c64316ae 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2001-2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_bkgd.c,v 1.12 1998/02/11 12:13:54 tom Exp $")
+MODULE_ID("$Id: lib_bkgd.c,v 1.29 2002/09/22 20:30:32 tom Exp $")
 
 
-void wbkgdset(WINDOW *win, chtype ch)
+/*
+ * Set the window's background information.
+ */
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(void)
+#else
+static inline void
+#endif
+wbkgrndset(WINDOW *win, const ARG_CH_T ch)
 {
 {
-  T((T_CALLED("wbkgdset(%p,%s)"), win, _tracechtype(ch)));
-    
-  if (win) {
-    chtype off = AttrOf(win->_bkgd);
-    chtype on  = AttrOf(ch);
-    
-    toggle_attr_off(win->_attrs,off);
-    toggle_attr_on (win->_attrs,on);
-    
-    if (TextOf(ch)==0)
-      ch |= BLANK;
-    win->_bkgd = ch;
-  }
-  returnVoid;
+    T((T_CALLED("wbkgdset(%p,%s)"), win, _tracech_t(ch)));
+
+    if (win) {
+       attr_t off = AttrOf(win->_nc_bkgd);
+       attr_t on = AttrOf(CHDEREF(ch));
+
+       toggle_attr_off(win->_attrs, off);
+       toggle_attr_on(win->_attrs, on);
+
+       if (CharOf(CHDEREF(ch)) == L('\0'))
+           SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch)));
+       else
+           win->_nc_bkgd = CHDEREF(ch);
+#if USE_WIDEC_SUPPORT
+       /*
+        * If we're compiled for wide-character support, _bkgrnd is the
+        * preferred location for the background information since it stores
+        * more than _bkgd.  Update _bkgd each time we modify _bkgrnd, so the
+        * macro getbkgd() will work.
+        */
+       {
+           cchar_t wch;
+           int tmp;
+
+           wgetbkgrnd(win, &wch);
+           tmp = wctob(CharOf(wch));
+
+           win->_bkgd = ((tmp == EOF) ? ' ' : (chtype) tmp) | AttrOf(wch);
+       }
+#endif
+    }
+    returnVoid;
+}
+
+NCURSES_EXPORT(void)
+wbkgdset(WINDOW *win, chtype ch)
+{
+    NCURSES_CH_T wch;
+    SetChar2(wch, ch);
+    wbkgrndset(win, CHREF(wch));
 }
 
 }
 
-int wbkgd(WINDOW *win, const chtype ch)
+/*
+ * Set the window's background information and apply it to each cell.
+ */
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int)
+#else
+static inline int
+#undef wbkgrnd
+#endif
+wbkgrnd(WINDOW *win, const ARG_CH_T ch)
 {
 {
-  int code = ERR;
-  int x, y;
-  chtype new_bkgd = ch;
-
-  T((T_CALLED("wbkgd(%p,%s)"), win, _tracechtype(new_bkgd)));
-
-  if (win) {
-    chtype old_bkgd = getbkgd(win);
-
-    wbkgdset(win, new_bkgd);
-    wattrset(win, AttrOf(win->_bkgd));
-    
-    for (y = 0; y <= win->_maxy; y++) {
-      for (x = 0; x <= win->_maxx; x++) {
-       if (win->_line[y].text[x] == old_bkgd)
-         win->_line[y].text[x] = win->_bkgd;
-       else 
-         win->_line[y].text[x] =
-           _nc_render(win,(A_ALTCHARSET & 
-                           AttrOf(win->_line[y].text[x])) 
-                      | TextOf(win->_line[y].text[x]));
-      }
+    int code = ERR;
+    int x, y;
+    NCURSES_CH_T new_bkgd = CHDEREF(ch);
+
+    T((T_CALLED("wbkgd(%p,%s)"), win, _tracech_t(ch)));
+
+    if (win) {
+       NCURSES_CH_T old_bkgrnd;
+       wgetbkgrnd(win, &old_bkgrnd);
+
+       wbkgrndset(win, CHREF(new_bkgd));
+       wattrset(win, AttrOf(win->_nc_bkgd));
+
+       for (y = 0; y <= win->_maxy; y++) {
+           for (x = 0; x <= win->_maxx; x++) {
+               if (CharEq(win->_line[y].text[x], old_bkgrnd))
+                   win->_line[y].text[x] = win->_nc_bkgd;
+               else {
+                   NCURSES_CH_T wch = win->_line[y].text[x];
+                   RemAttr(wch, (~A_ALTCHARSET));
+                   win->_line[y].text[x] = _nc_render(win, wch);
+               }
+           }
+       }
+       touchwin(win);
+       _nc_synchook(win);
+       code = OK;
     }
     }
-    touchwin(win);
-    _nc_synchook(win);
-    code = OK;
-  }
-  returnCode(code);
+    returnCode(code);
+}
+
+NCURSES_EXPORT(int)
+wbkgd(WINDOW *win, chtype ch)
+{
+    NCURSES_CH_T wch;
+    SetChar2(wch, ch);
+    return wbkgrnd(win, CHREF(wch));
 }
 }
index 8a682585b5605266b73e36026edd980149837216..50f436592ded65b427b5fe1ae574bf8b3f8a9cb6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_box.c,v 1.11 2000/04/29 21:12:37 tom Exp $")
+MODULE_ID("$Id: lib_box.c,v 1.21 2002/09/15 01:04:27 tom Exp $")
 
 
-int
+#if USE_WIDEC_SUPPORT
+static inline chtype
+_my_render(WINDOW *win, chtype ch)
+{
+    NCURSES_CH_T wch;
+    SetChar2(wch, ch);
+    wch = _nc_render(win, wch);
+    return CharOf(wch) | AttrOf(wch);
+}
+#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _my_render(win, (ch == 0) ? def : ch)
+#else
+#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _nc_render(win, (ch == 0) ? def : ch)
+#endif
+
+NCURSES_EXPORT(int)
 wborder(WINDOW *win,
 wborder(WINDOW *win,
-    chtype ls, chtype rs, chtype ts, chtype bs,
-    chtype tl, chtype tr, chtype bl, chtype br)
+       chtype ls, chtype rs,
+       chtype ts, chtype bs,
+       chtype tl, chtype tr,
+       chtype bl, chtype br)
 {
     NCURSES_SIZE_T i;
     NCURSES_SIZE_T endx, endy;
 {
     NCURSES_SIZE_T i;
     NCURSES_SIZE_T endx, endy;
+    chtype wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
 
     T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
 
     T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
-           win,
-           _tracechtype2(1, ls),
-           _tracechtype2(2, rs),
-           _tracechtype2(3, ts),
-           _tracechtype2(4, bs),
-           _tracechtype2(5, tl),
-           _tracechtype2(6, tr),
-           _tracechtype2(7, bl),
-           _tracechtype2(8, br)));
+       win,
+       _tracechtype2(1, ls),
+       _tracechtype2(2, rs),
+       _tracechtype2(3, ts),
+       _tracechtype2(4, bs),
+       _tracechtype2(5, tl),
+       _tracechtype2(6, tr),
+       _tracechtype2(7, bl),
+       _tracechtype2(8, br)));
 
     if (!win)
        returnCode(ERR);
 
 
     if (!win)
        returnCode(ERR);
 
-    if (ls == 0)
-       ls = ACS_VLINE;
-    if (rs == 0)
-       rs = ACS_VLINE;
-    if (ts == 0)
-       ts = ACS_HLINE;
-    if (bs == 0)
-       bs = ACS_HLINE;
-    if (tl == 0)
-       tl = ACS_ULCORNER;
-    if (tr == 0)
-       tr = ACS_URCORNER;
-    if (bl == 0)
-       bl = ACS_LLCORNER;
-    if (br == 0)
-       br = ACS_LRCORNER;
-
-    ls = _nc_render(win, ls);
-    rs = _nc_render(win, rs);
-    ts = _nc_render(win, ts);
-    bs = _nc_render(win, bs);
-    tl = _nc_render(win, tl);
-    tr = _nc_render(win, tr);
-    bl = _nc_render(win, bl);
-    br = _nc_render(win, br);
+    RENDER_WITH_DEFAULT(ls, ACS_VLINE);
+    RENDER_WITH_DEFAULT(rs, ACS_VLINE);
+    RENDER_WITH_DEFAULT(ts, ACS_HLINE);
+    RENDER_WITH_DEFAULT(bs, ACS_HLINE);
+    RENDER_WITH_DEFAULT(tl, ACS_ULCORNER);
+    RENDER_WITH_DEFAULT(tr, ACS_URCORNER);
+    RENDER_WITH_DEFAULT(bl, ACS_LLCORNER);
+    RENDER_WITH_DEFAULT(br, ACS_LRCORNER);
 
 
-    T(("using %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx",
-           ls, rs, ts, bs, tl, tr, bl, br));
+    T(("using %s, %s, %s, %s, %s, %s, %s, %s",
+       _tracechtype2(1, wls),
+       _tracechtype2(2, wrs),
+       _tracechtype2(3, wts),
+       _tracechtype2(4, wbs),
+       _tracechtype2(5, wtl),
+       _tracechtype2(6, wtr),
+       _tracechtype2(7, wbl),
+       _tracechtype2(8, wbr)));
 
     endx = win->_maxx;
     endy = win->_maxy;
 
     for (i = 0; i <= endx; i++) {
 
     endx = win->_maxx;
     endy = win->_maxy;
 
     for (i = 0; i <= endx; i++) {
-       win->_line[0].text[i] = ts;
-       win->_line[endy].text[i] = bs;
+       SetChar2(win->_line[0].text[i], wts);
+       SetChar2(win->_line[endy].text[i], wbs);
     }
     win->_line[endy].firstchar = win->_line[0].firstchar = 0;
     win->_line[endy].lastchar = win->_line[0].lastchar = endx;
 
     for (i = 0; i <= endy; i++) {
     }
     win->_line[endy].firstchar = win->_line[0].firstchar = 0;
     win->_line[endy].lastchar = win->_line[0].lastchar = endx;
 
     for (i = 0; i <= endy; i++) {
-       win->_line[i].text[0] = ls;
-       win->_line[i].text[endx] = rs;
+       SetChar2(win->_line[i].text[0], wls);
+       SetChar2(win->_line[i].text[endx], wrs);
        win->_line[i].firstchar = 0;
        win->_line[i].lastchar = endx;
     }
        win->_line[i].firstchar = 0;
        win->_line[i].lastchar = endx;
     }
-    win->_line[0].text[0] = tl;
-    win->_line[0].text[endx] = tr;
-    win->_line[endy].text[0] = bl;
-    win->_line[endy].text[endx] = br;
+    SetChar2(win->_line[0].text[0], wtl);
+    SetChar2(win->_line[0].text[endx], wtr);
+    SetChar2(win->_line[endy].text[0], wbl);
+    SetChar2(win->_line[endy].text[endx], wbr);
 
     _nc_synchook(win);
     returnCode(OK);
 
     _nc_synchook(win);
     returnCode(OK);
index 7690ae4a2af3b685c488c15b526bb60bc147edcc..54e66ed1ffae6743b0d9b4e21f44c080b74da4af 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_chgat.c,v 1.2 1998/02/11 12:14:00 tom Exp $")
+MODULE_ID("$Id: lib_chgat.c,v 1.5 2001/06/03 00:05:02 skimo Exp $")
 
 
-int wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
+NCURSES_EXPORT(int)
+wchgat
+(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
 {
 {
-    int        i;
+    int i;
 
     T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color));
 
     if (win) {
 
     T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color));
 
     if (win) {
-      toggle_attr_on(attr,COLOR_PAIR(color));
+       toggle_attr_on(attr, COLOR_PAIR(color));
 
 
-      for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++)
-       win->_line[win->_cury].text[i]
-         = TextOf(win->_line[win->_cury].text[i]) | attr;
+       for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++)
+           SetAttr(win->_line[win->_cury].text[i], attr);
 
 
-      returnCode(OK);
-    }
-    else
-      returnCode(ERR);
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 9c07cf0890e4cd52d275c7a860649091f855c892..e0b4edf9e2245ae3b61347dce432aaaf867d2cf2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_clear.c,v 1.5 1998/02/11 12:13:53 tom Exp $")
+MODULE_ID("$Id: lib_clear.c,v 1.7 2000/12/10 02:43:26 tom Exp $")
 
 
-int wclear(WINDOW *win)
+NCURSES_EXPORT(int)
+wclear(WINDOW *win)
 {
 {
-int code = ERR;
+    int code = ERR;
 
 
-       T((T_CALLED("wclear(%p)"), win));
+    T((T_CALLED("wclear(%p)"), win));
 
 
-       if ((code = werase(win))!=ERR)
-         win->_clear = TRUE;
-       
-       returnCode(code);
+    if ((code = werase(win)) != ERR)
+       win->_clear = TRUE;
+
+    returnCode(code);
 }
 }
index cc904b1d7dc7d7c8fb6c36b3d05e8b37b91cc250..9b56bd1ec63aa73ab8697b428101239cb0b6a301 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_clearok.c
 **
 /*
 **     lib_clearok.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_clearok.c,v 1.2 1998/02/11 12:14:00 tom Exp $")
+MODULE_ID("$Id: lib_clearok.c,v 1.4 2000/12/10 02:43:26 tom Exp $")
 
 
-int clearok(WINDOW *win, bool flag)
+NCURSES_EXPORT(int)
+clearok(WINDOW *win, bool flag)
 {
 {
-       T((T_CALLED("clearok(%p,%d)"), win, flag));
+    T((T_CALLED("clearok(%p,%d)"), win, flag));
 
 
-       if (win) {
-         win->_clear = flag;
-         returnCode(OK);
-       }
-       else
-         returnCode(ERR);
+    if (win) {
+       win->_clear = flag;
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index d1e243f37ffd6de5b855cf31e00fb76f410019cf..bc12960e48f0fc824a02df4b734af1e3afddb2c9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_clrbot.c,v 1.15 2000/04/29 21:15:26 tom Exp $")
+MODULE_ID("$Id: lib_clrbot.c,v 1.19 2001/12/19 01:05:59 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wclrtobot(WINDOW *win)
 {
     int code = ERR;
 wclrtobot(WINDOW *win)
 {
     int code = ERR;
@@ -52,15 +52,15 @@ wclrtobot(WINDOW *win)
     if (win) {
        NCURSES_SIZE_T y;
        NCURSES_SIZE_T startx = win->_curx;
     if (win) {
        NCURSES_SIZE_T y;
        NCURSES_SIZE_T startx = win->_curx;
-       chtype blank = _nc_background(win);
+       NCURSES_CH_T blank = win->_nc_bkgd;
 
        T(("clearing from y = %d to y = %d with maxx =  %d",
 
        T(("clearing from y = %d to y = %d with maxx =  %d",
-               win->_cury, win->_maxy, win->_maxx));
+          win->_cury, win->_maxy, win->_maxx));
 
        for (y = win->_cury; y <= win->_maxy; y++) {
            struct ldat *line = &(win->_line[y]);
 
        for (y = win->_cury; y <= win->_maxy; y++) {
            struct ldat *line = &(win->_line[y]);
-           chtype *ptr = &(line->text[startx]);
-           chtype *end = &(line->text[win->_maxx]);
+           NCURSES_CH_T *ptr = &(line->text[startx]);
+           NCURSES_CH_T *end = &(line->text[win->_maxx]);
 
            CHANGED_TO_EOL(line, startx, win->_maxx);
 
 
            CHANGED_TO_EOL(line, startx, win->_maxx);
 
index a5d067cbfd5ffbea3f69ca5b08950a00573699c8..c46ebd93a33232729ad735f31d2d7d3609d85335 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_clreol.c,v 1.16 2000/04/29 21:14:54 tom Exp $")
+MODULE_ID("$Id: lib_clreol.c,v 1.21 2001/12/19 01:06:04 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wclrtoeol(WINDOW *win)
 {
     int code = ERR;
 wclrtoeol(WINDOW *win)
 {
     int code = ERR;
@@ -50,8 +50,8 @@ wclrtoeol(WINDOW *win)
     T((T_CALLED("wclrtoeol(%p)"), win));
 
     if (win) {
     T((T_CALLED("wclrtoeol(%p)"), win));
 
     if (win) {
-       chtype blank;
-       chtype *ptr, *end;
+       NCURSES_CH_T blank;
+       NCURSES_CH_T *ptr, *end;
        struct ldat *line;
        NCURSES_SIZE_T y = win->_cury;
        NCURSES_SIZE_T x = win->_curx;
        struct ldat *line;
        NCURSES_SIZE_T y = win->_cury;
        NCURSES_SIZE_T x = win->_curx;
@@ -60,7 +60,7 @@ wclrtoeol(WINDOW *win)
         * If we have just wrapped the cursor, the clear applies to the
         * new line, unless we are at the lower right corner.
         */
         * If we have just wrapped the cursor, the clear applies to the
         * new line, unless we are at the lower right corner.
         */
-       if (win->_flags & _WRAPPED
+       if ((win->_flags & _WRAPPED) != 0
            && y < win->_maxy) {
            win->_flags &= ~_WRAPPED;
        }
            && y < win->_maxy) {
            win->_flags &= ~_WRAPPED;
        }
@@ -69,12 +69,12 @@ wclrtoeol(WINDOW *win)
         * There's no point in clearing if we're not on a legal
         * position, either.
         */
         * There's no point in clearing if we're not on a legal
         * position, either.
         */
-       if (win->_flags & _WRAPPED
+       if ((win->_flags & _WRAPPED) != 0
            || y > win->_maxy
            || x > win->_maxx)
            returnCode(ERR);
 
            || y > win->_maxy
            || x > win->_maxx)
            returnCode(ERR);
 
-       blank = _nc_background(win);
+       blank = win->_nc_bkgd;
        line = &win->_line[y];
        CHANGED_TO_EOL(line, x, win->_maxx);
 
        line = &win->_line[y];
        CHANGED_TO_EOL(line, x, win->_maxx);
 
index 492194babbfbb7de35b1204bbb20737bb487667c..86c3fba32cbb057579bf0078904ed358988b9094 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <term.h>
 #include <tic.h>
 
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_color.c,v 1.53 2000/09/02 18:02:15 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.62 2002/09/28 20:40:05 tom Exp $")
 
 /*
  * These should be screen structure members.  They need to be globals for
  * historical reasons.  So we assign them in start_color() and also in
  * set_term()'s screen-switching logic.
  */
 
 /*
  * These should be screen structure members.  They need to be globals for
  * historical reasons.  So we assign them in start_color() and also in
  * set_term()'s screen-switching logic.
  */
-int COLOR_PAIRS = 0;
-int COLORS = 0;
+NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
+NCURSES_EXPORT_VAR(int) COLORS = 0;
+
+#define DATA(r,g,b) {r,g,b, 0,0,0, 0}
 
 /*
  * Given a RGB range of 0..1000, we'll normally set the individual values
 
 /*
  * Given a RGB range of 0..1000, we'll normally set the individual values
@@ -61,27 +63,27 @@ int COLORS = 0;
 static const color_t cga_palette[] =
 {
     /*  R               G               B */
 static const color_t cga_palette[] =
 {
     /*  R               G               B */
-    {RGB_OFF,          RGB_OFF,        RGB_OFF},       /* COLOR_BLACK */
-    {RGB_ON,           RGB_OFF,        RGB_OFF},       /* COLOR_RED */
-    {RGB_OFF,          RGB_ON,         RGB_OFF},       /* COLOR_GREEN */
-    {RGB_ON,           RGB_ON,         RGB_OFF},       /* COLOR_YELLOW */
-    {RGB_OFF,          RGB_OFF,        RGB_ON},        /* COLOR_BLUE */
-    {RGB_ON,           RGB_OFF,        RGB_ON},        /* COLOR_MAGENTA */
-    {RGB_OFF,          RGB_ON,         RGB_ON},        /* COLOR_CYAN */
-    {RGB_ON,           RGB_ON,         RGB_ON},        /* COLOR_WHITE */
+    DATA(RGB_OFF,      RGB_OFF,        RGB_OFF),       /* COLOR_BLACK */
+    DATA(RGB_ON,       RGB_OFF,        RGB_OFF),       /* COLOR_RED */
+    DATA(RGB_OFF,      RGB_ON,         RGB_OFF),       /* COLOR_GREEN */
+    DATA(RGB_ON,       RGB_ON,         RGB_OFF),       /* COLOR_YELLOW */
+    DATA(RGB_OFF,      RGB_OFF,        RGB_ON),        /* COLOR_BLUE */
+    DATA(RGB_ON,       RGB_OFF,        RGB_ON),        /* COLOR_MAGENTA */
+    DATA(RGB_OFF,      RGB_ON,         RGB_ON),        /* COLOR_CYAN */
+    DATA(RGB_ON,       RGB_ON,         RGB_ON),        /* COLOR_WHITE */
 };
 
 static const color_t hls_palette[] =
 {
 };
 
 static const color_t hls_palette[] =
 {
-    /*  H       L       S */
-    {  0,      0,      0},             /* COLOR_BLACK */
-    {  120,    50,     100},           /* COLOR_RED */
-    {  240,    50,     100},           /* COLOR_GREEN */
-    {  180,    50,     100},           /* COLOR_YELLOW */
-    {  330,    50,     100},           /* COLOR_BLUE */
-    {  60,     50,     100},           /* COLOR_MAGENTA */
-    {  300,    50,     100},           /* COLOR_CYAN */
-    {  0,      50,     100},           /* COLOR_WHITE */
+    /*         H       L       S */
+    DATA(      0,      0,      0),             /* COLOR_BLACK */
+    DATA(      120,    50,     100),           /* COLOR_RED */
+    DATA(      240,    50,     100),           /* COLOR_GREEN */
+    DATA(      180,    50,     100),           /* COLOR_YELLOW */
+    DATA(      330,    50,     100),           /* COLOR_BLUE */
+    DATA(      60,     50,     100),           /* COLOR_MAGENTA */
+    DATA(      300,    50,     100),           /* COLOR_CYAN */
+    DATA(      0,      50,     100),           /* COLOR_WHITE */
 };
 /* *INDENT-ON* */
 
 };
 /* *INDENT-ON* */
 
@@ -117,7 +119,7 @@ toggled_colors(int c)
     if (c < 16) {
        static const int table[] =
        {0, 4, 2, 6, 1, 5, 3, 7,
     if (c < 16) {
        static const int table[] =
        {0, 4, 2, 6, 1, 5, 3, 7,
-           8, 12, 10, 14, 9, 13, 11, 15};
+        8, 12, 10, 14, 9, 13, 11, 15};
        c = table[c];
     }
     return c;
        c = table[c];
     }
     return c;
@@ -147,49 +149,12 @@ set_foreground_color(int fg, int (*outc) (int))
     }
 }
 
     }
 }
 
-static bool
-set_original_colors(void)
-{
-    if (orig_pair != 0) {
-       TPUTS_TRACE("orig_pair");
-       putp(orig_pair);
-       return TRUE;
-    } else if (orig_colors != NULL) {
-       TPUTS_TRACE("orig_colors");
-       putp(orig_colors);
-       return TRUE;
-    }
-    return FALSE;
-}
-
-int
-start_color(void)
+static void
+init_color_table(void)
 {
 {
-    int n;
     const color_t *tp;
     const color_t *tp;
+    int n;
 
 
-    T((T_CALLED("start_color()")));
-
-    if (set_original_colors() != TRUE) {
-       set_foreground_color(default_fg(), _nc_outch);
-       set_background_color(default_bg(), _nc_outch);
-    }
-
-    if (VALID_NUMERIC(max_pairs))
-       COLOR_PAIRS = SP->_pair_count = max_pairs;
-    else
-       returnCode(ERR);
-    if ((SP->_color_pairs = typeCalloc(unsigned short, max_pairs)) == 0)
-         returnCode(ERR);
-    SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
-    if (VALID_NUMERIC(max_colors))
-       COLORS = SP->_color_count = max_colors;
-    else
-       returnCode(ERR);
-    SP->_coloron = 1;
-
-    if ((SP->_color_table = typeMalloc(color_t, COLORS)) == 0)
-       returnCode(ERR);
     tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
     for (n = 0; n < COLORS; n++) {
        if (n < 8) {
     tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
     for (n = 0; n < COLORS; n++) {
        if (n < 8) {
@@ -208,9 +173,83 @@ start_color(void)
            }
        }
     }
            }
        }
     }
+}
+
+/*
+ * Reset the color pair, e.g., to whatever color pair 0 is.
+ */
+static bool
+reset_color_pair(void)
+{
+    bool result = FALSE;
+
+    if (orig_pair != 0) {
+       TPUTS_TRACE("orig_pair");
+       putp(orig_pair);
+       result = TRUE;
+    }
+    return result;
+}
+
+/*
+ * Reset color pairs and definitions.  Actually we do both more to accommodate
+ * badly-written terminal descriptions than for the relatively rare case where
+ * someone has changed the color definitions.
+ */
+bool
+_nc_reset_colors(void)
+{
+    int result = FALSE;
+
+    T((T_CALLED("_nc_reset_colors()")));
+    if (SP->_color_defs > 0)
+       SP->_color_defs = -(SP->_color_defs);
+
+    if (reset_color_pair())
+       result = TRUE;
+    if (orig_colors != 0) {
+       TPUTS_TRACE("orig_colors");
+       putp(orig_colors);
+       result = TRUE;
+    }
+    returnBool(result);
+}
+
+NCURSES_EXPORT(int)
+start_color(void)
+{
+    int result = ERR;
+
+    T((T_CALLED("start_color()")));
+
+    if (!SP->_coloron) {
+
+       if (reset_color_pair() != TRUE) {
+           set_foreground_color(default_fg(), _nc_outch);
+           set_background_color(default_bg(), _nc_outch);
+       }
 
 
-    T(("started color: COLORS = %d, COLOR_PAIRS = %d", COLORS, COLOR_PAIRS));
+       if (max_pairs > 0 && max_colors > 0) {
+           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) {
+                   SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
+                   init_color_table();
+
+                   T(("started color: COLORS = %d, COLOR_PAIRS = %d",
+                      COLORS, COLOR_PAIRS));
+
+                   SP->_coloron = 1;
+                   result = OK;
+               } else {
+                   FreeAndNull(SP->_color_pairs);
+               }
+           }
+       }
+    }
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
@@ -256,7 +295,7 @@ rgb2hls(short r, short g, short b, short *h, short *l, short *s)
  * Extension (1997/1/18) - Allow negative f/b values to set default color
  * values.
  */
  * Extension (1997/1/18) - Allow negative f/b values to set default color
  * values.
  */
-int
+NCURSES_EXPORT(int)
 init_pair(short pair, short f, short b)
 {
     unsigned result;
 init_pair(short pair, short f, short b)
 {
     unsigned result;
@@ -299,10 +338,10 @@ init_pair(short pair, short f, short b)
            struct ldat *ptr = &(curscr->_line[y]);
            bool changed = FALSE;
            for (x = 0; x <= curscr->_maxx; x++) {
            struct ldat *ptr = &(curscr->_line[y]);
            bool changed = FALSE;
            for (x = 0; x <= curscr->_maxx; x++) {
-               if ((ptr->text[x] & A_COLOR) == z) {
+               if ((AttrOf(ptr->text[x]) & A_COLOR) == z) {
                    /* Set the old cell to zero to ensure it will be
                       updated on the next doupdate() */
                    /* Set the old cell to zero to ensure it will be
                       updated on the next doupdate() */
-                   ptr->text[x] = 0;
+                   SetChar(ptr->text[x], 0, 0);
                    CHANGED_CELL(ptr, x);
                    changed = TRUE;
                }
                    CHANGED_CELL(ptr, x);
                    changed = TRUE;
                }
@@ -319,73 +358,79 @@ init_pair(short pair, short f, short b)
        const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
 
        T(("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
        const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
 
        T(("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
-               pair,
-               tp[f].red, tp[f].green, tp[f].blue,
-               tp[b].red, tp[b].green, tp[b].blue));
+          pair,
+          tp[f].red, tp[f].green, tp[f].blue,
+          tp[b].red, tp[b].green, tp[b].blue));
 
        if (initialize_pair) {
            TPUTS_TRACE("initialize_pair");
            putp(tparm(initialize_pair,
 
        if (initialize_pair) {
            TPUTS_TRACE("initialize_pair");
            putp(tparm(initialize_pair,
-                   pair,
-                   tp[f].red, tp[f].green, tp[f].blue,
-                   tp[b].red, tp[b].green, tp[b].blue));
+                      pair,
+                      tp[f].red, tp[f].green, tp[f].blue,
+                      tp[b].red, tp[b].green, tp[b].blue));
        }
     }
 
     returnCode(OK);
 }
 
        }
     }
 
     returnCode(OK);
 }
 
-int
+#define okRGB(n) ((n) >= 0 && (n) < 1000)
+
+NCURSES_EXPORT(int)
 init_color(short color, short r, short g, short b)
 {
 init_color(short color, short r, short g, short b)
 {
+    int result = ERR;
+
     T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
 
     T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
 
-    if (initialize_color == NULL)
-       returnCode(ERR);
+    if (initialize_color != NULL
+       && (color >= 0 && color < COLORS)
+       && (okRGB(r) && okRGB(g) && okRGB(b))) {
 
 
-    if (color < 0 || color >= COLORS)
-       returnCode(ERR);
-    if (r < 0 || r > 1000 || g < 0 || g > 1000 || b < 0 || b > 1000)
-       returnCode(ERR);
+       SP->_color_table[color].init = 1;
+       SP->_color_table[color].r = r;
+       SP->_color_table[color].g = g;
+       SP->_color_table[color].b = b;
 
 
-    if (hue_lightness_saturation)
-       rgb2hls(r, g, b,
-           &SP->_color_table[color].red,
-           &SP->_color_table[color].green,
-           &SP->_color_table[color].blue);
-    else {
-       SP->_color_table[color].red = r;
-       SP->_color_table[color].green = g;
-       SP->_color_table[color].blue = b;
-    }
+       if (hue_lightness_saturation) {
+           rgb2hls(r, g, b,
+                   &SP->_color_table[color].red,
+                   &SP->_color_table[color].green,
+                   &SP->_color_table[color].blue);
+       } else {
+           SP->_color_table[color].red = r;
+           SP->_color_table[color].green = g;
+           SP->_color_table[color].blue = b;
+       }
 
 
-    if (initialize_color) {
        TPUTS_TRACE("initialize_color");
        putp(tparm(initialize_color, color, r, g, b));
        TPUTS_TRACE("initialize_color");
        putp(tparm(initialize_color, color, r, g, b));
+       SP->_color_defs = max(color + 1, SP->_color_defs);
+       result = OK;
     }
     }
-    returnCode(OK);
+    returnCode(result);
 }
 
 }
 
-bool
+NCURSES_EXPORT(bool)
 can_change_color(void)
 {
     T((T_CALLED("can_change_color()")));
     returnCode((can_change != 0) ? TRUE : FALSE);
 }
 
 can_change_color(void)
 {
     T((T_CALLED("can_change_color()")));
     returnCode((can_change != 0) ? TRUE : FALSE);
 }
 
-bool
+NCURSES_EXPORT(bool)
 has_colors(void)
 {
     T((T_CALLED("has_colors()")));
     returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
 has_colors(void)
 {
     T((T_CALLED("has_colors()")));
     returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
-           && (((set_foreground != NULL)
-                   && (set_background != NULL))
-               || ((set_a_foreground != NULL)
-                   && (set_a_background != NULL))
-               || set_color_pair)) ? TRUE : FALSE);
+               && (((set_foreground != NULL)
+                    && (set_background != NULL))
+                   || ((set_a_foreground != NULL)
+                       && (set_a_background != NULL))
+                   || set_color_pair)) ? TRUE : FALSE);
 }
 
 }
 
-int
+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));
 color_content(short color, short *r, short *g, short *b)
 {
     T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
@@ -398,10 +443,11 @@ color_content(short color, short *r, short *g, short *b)
        *g = SP->_color_table[color].green;
     if (b)
        *b = SP->_color_table[color].blue;
        *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);
 }
 
     returnCode(OK);
 }
 
-int
+NCURSES_EXPORT(int)
 pair_content(short pair, short *f, short *b)
 {
     T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
 pair_content(short pair, short *f, short *b)
 {
     T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
@@ -413,10 +459,11 @@ pair_content(short pair, short *f, short *b)
     if (b)
        *b = (SP->_color_pairs[pair] & C_MASK);
 
     if (b)
        *b = (SP->_color_pairs[pair] & C_MASK);
 
+    T(("...pair_content(%d,%d,%d)", pair, *f, *b));
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-void
+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;
 _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
 {
     NCURSES_COLOR_T fg = C_MASK, bg = C_MASK;
@@ -434,8 +481,9 @@ _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);
+    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 NCURSES_EXT_FUNCS
        if ((fg == C_MASK && old_fg != C_MASK)
            || (bg == C_MASK && old_bg != C_MASK)) {
 #if NCURSES_EXT_FUNCS
@@ -450,10 +498,10 @@ _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
                tputs("\033[49m", 1, outc);
            } else
 #endif
                tputs("\033[49m", 1, outc);
            } else
 #endif
-               set_original_colors();
+               reset_color_pair();
        }
     } else {
        }
     } else {
-       set_original_colors();
+       reset_color_pair();
        if (old_pair < 0)
            return;
     }
        if (old_pair < 0)
            return;
     }
@@ -471,7 +519,8 @@ _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
        bg = xx;
     }
 
        bg = xx;
     }
 
-    TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair, fg, bg));
+    TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair,
+                    fg, bg));
 
     if (fg != C_MASK) {
        set_foreground_color(fg, outc);
 
     if (fg != C_MASK) {
        set_foreground_color(fg, outc);
index 3870e875f32289ebe2fe335dfd9c9eff72b385fc..f480bc16703b9b142ad053331ccc5655673ba598 100644 (file)
@@ -27,7 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1998                  *
+ *  Author: Juergen Pfeifer, 1998                                           *
+ *  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <ctype.h>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_colorset.c,v 1.6 2000/07/29 16:37:19 tom Exp $")
+MODULE_ID("$Id: lib_colorset.c,v 1.8 2002/07/13 11:35:08 juergen Exp $")
 
 
-int
-wcolor_set(WINDOW *win, short color_pair_number, void *opts)
+NCURSES_EXPORT(int)
+wcolor_set
+(WINDOW *win, short color_pair_number, void *opts)
 {
     T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number));
     if (win
 {
     T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number));
     if (win
index 0169d31ac6d5101a4d58588aa0398b5052bdea94..0c30f2d93c1ba49f1102dfb42a23128a6bb54a44 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_delch.c,v 1.8 1998/06/28 00:28:17 tom Exp $")
+MODULE_ID("$Id: lib_delch.c,v 1.12 2001/12/19 01:06:09 tom Exp $")
 
 
-int wdelch(WINDOW *win)
+NCURSES_EXPORT(int)
+wdelch(WINDOW *win)
 {
 {
-int     code = ERR;
+    int code = ERR;
 
 
-       T((T_CALLED("wdelch(%p)"), win));
+    T((T_CALLED("wdelch(%p)"), win));
 
 
-       if (win) {
-               chtype  blank = _nc_background(win);
-               struct ldat *line = &(win->_line[win->_cury]);
-               chtype *end   = &(line->text[win->_maxx]);
-               chtype *temp2 = &(line->text[win->_curx + 1]);
-               chtype *temp1 = temp2 - 1;
+    if (win) {
+       NCURSES_CH_T blank = win->_nc_bkgd;
+       struct ldat *line = &(win->_line[win->_cury]);
+       NCURSES_CH_T *end = &(line->text[win->_maxx]);
+       NCURSES_CH_T *temp2 = &(line->text[win->_curx + 1]);
+       NCURSES_CH_T *temp1 = temp2 - 1;
 
 
-               CHANGED_TO_EOL(line, win->_curx, win->_maxx);
-               while (temp1 < end)
-                       *temp1++ = *temp2++;
+       CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+       while (temp1 < end)
+           *temp1++ = *temp2++;
 
 
-               *temp1 = blank;
+       *temp1 = blank;
 
 
-               _nc_synchook(win);
-               code = OK;
-       }
-       returnCode(code);
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
 }
 }
index 7bab0c77b02ba3e2bb09c16409ec811baca34463..89d8e7c32ece398bb1126cc7e685ccc82429fdce 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_delwin.c,v 1.9 1998/02/11 12:13:53 tom Exp $")
+MODULE_ID("$Id: lib_delwin.c,v 1.13 2001/08/26 00:40:20 tom Exp $")
 
 
-static bool have_children(WINDOW *win)
+static bool
+cannot_delete(WINDOW *win)
 {
 {
-       WINDOWLIST *p;
-       for (p = _nc_windows; p != 0; p = p->next) {
-               if (p->win->_flags & _SUBWIN
-                && p->win->_parent == win)
-                       return TRUE;
+    WINDOWLIST *p;
+    bool result = TRUE;
+
+    for (p = _nc_windows; p != 0; p = p->next) {
+       if (&(p->win) == win) {
+           result = FALSE;
+       } else if ((p->win._flags & _SUBWIN) != 0
+                  && p->win._parent == win) {
+           result = TRUE;
+           break;
        }
        }
-       return FALSE;
+    }
+    return result;
 }
 
 }
 
-int delwin(WINDOW *win)
+NCURSES_EXPORT(int)
+delwin(WINDOW *win)
 {
 {
-       T((T_CALLED("delwin(%p)"), win));
-
-       if (win == 0
-        || have_children(win))
-               returnCode(ERR);
+    T((T_CALLED("delwin(%p)"), win));
 
 
-       if (win->_flags & _SUBWIN)
-               touchwin(win->_parent);
-       else if (curscr != 0)
-               touchwin(curscr);
+    if (win == 0
+       || cannot_delete(win))
+       returnCode(ERR);
 
 
-       _nc_freewin(win);
+    if (win->_flags & _SUBWIN)
+       touchwin(win->_parent);
+    else if (curscr != 0)
+       touchwin(curscr);
 
 
-       returnCode(OK);
+    returnCode(_nc_freewin(win));
 }
 }
index 7c090244f29122e18e016e3dbd7e48ac16db4b3d..24705c9615e9f9578b30fcb040ac289cc9e30632 100644 (file)
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.13 2000/07/07 16:50:27 tom Exp $")
+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.15 2000/12/10 02:43:27 tom Exp $")
 
 /*
  * Modify the behavior of color-pair 0 so that the library doesn't assume that
  * it is white on black.  This is an extension to XSI curses.
  */
 
 /*
  * Modify the behavior of color-pair 0 so that the library doesn't assume that
  * it is white on black.  This is an extension to XSI curses.
  */
-int
+NCURSES_EXPORT(int)
 use_default_colors(void)
 {
     T((T_CALLED("use_default_colors()")));
 use_default_colors(void)
 {
     T((T_CALLED("use_default_colors()")));
@@ -50,7 +50,7 @@ use_default_colors(void)
  * Modify the behavior of color-pair 0 so that the library assumes that it
  * is something specific, possibly not white on black.
  */
  * Modify the behavior of color-pair 0 so that the library assumes that it
  * is something specific, possibly not white on black.
  */
-int
+NCURSES_EXPORT(int)
 assume_default_colors(int fg, int bg)
 {
     T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
 assume_default_colors(int fg, int bg)
 {
     T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
index 4ccf97ff64c08a3cc070c24663c87dec6111d67f..df44713d1a11b88566f005760d8aece7a45fccb4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
  *     echo.c
  *
 /*
  *     echo.c
  *
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_echo.c,v 1.3 1998/10/12 13:15:33 Alexander.V.Lukyanov Exp $")
+MODULE_ID("$Id: lib_echo.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
 
 
-int echo(void)
+NCURSES_EXPORT(int)
+echo(void)
 {
 {
-       T((T_CALLED("echo()")));
-       SP->_echo = TRUE;
-       returnCode(OK);
+    T((T_CALLED("echo()")));
+    SP->_echo = TRUE;
+    returnCode(OK);
 }
 
 }
 
-int noecho(void)
+NCURSES_EXPORT(int)
+noecho(void)
 {
 {
-       T((T_CALLED("noecho()")));
-       SP->_echo = FALSE;
-       returnCode(OK);
+    T((T_CALLED("noecho()")));
+    SP->_echo = FALSE;
+    returnCode(OK);
 }
 }
index 31b6e516cc1dd367098e6398c4f96e65de6aab0a..66662871962bba58551000ad2467fbd5bb4d95cc 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_endwin.c
 **
 /*
 **     lib_endwin.c
 **
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_endwin.c,v 1.17 1999/06/12 23:01:46 tom Exp $")
+MODULE_ID("$Id: lib_endwin.c,v 1.19 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 endwin(void)
 {
 endwin(void)
 {
-       T((T_CALLED("endwin()")));
+    T((T_CALLED("endwin()")));
 
 
-       if (SP) {
-               SP->_endwin = TRUE;
-               SP->_mouse_wrap(SP);
-               _nc_screen_wrap();
-               _nc_mvcur_wrap();       /* wrap up cursor addressing */
-               returnCode(reset_shell_mode());
-       }
+    if (SP) {
+       SP->_endwin = TRUE;
+       SP->_mouse_wrap(SP);
+       _nc_screen_wrap();
+       _nc_mvcur_wrap();       /* wrap up cursor addressing */
+       returnCode(reset_shell_mode());
+    }
 
 
-       returnCode(ERR);
+    returnCode(ERR);
 }
 }
index 1e4237bf8056c565ab02f24d1bdad629d43e831e..5e397312ffe35b747c0c3df6ad81acb914631a6e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_erase.c
 **
 /*
 **     lib_erase.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_erase.c,v 1.11 1998/02/11 12:13:54 tom Exp $")
+MODULE_ID("$Id: lib_erase.c,v 1.15 2001/12/19 01:06:13 tom Exp $")
 
 
-int  werase(WINDOW     *win)
+NCURSES_EXPORT(int)
+werase(WINDOW *win)
 {
 {
-int     code = ERR;
-int    y;
-chtype blank;
-chtype *sp, *end, *start;
+    int code = ERR;
+    int y;
+    NCURSES_CH_T blank;
+    NCURSES_CH_T *sp, *end, *start;
 
 
-       T((T_CALLED("werase(%p)"), win));
+    T((T_CALLED("werase(%p)"), win));
 
 
-       if (win) {
-         blank = _nc_background(win);
-         for (y = 0; y <= win->_maxy; y++) {
+    if (win) {
+       blank = win->_nc_bkgd;
+       for (y = 0; y <= win->_maxy; y++) {
            start = win->_line[y].text;
            end = &start[win->_maxx];
            start = win->_line[y].text;
            end = &start[win->_maxx];
-           
+
            for (sp = start; sp <= end; sp++)
            for (sp = start; sp <= end; sp++)
-             *sp = blank;
-           
+               *sp = blank;
+
            win->_line[y].firstchar = 0;
            win->_line[y].lastchar = win->_maxx;
            win->_line[y].firstchar = 0;
            win->_line[y].lastchar = win->_maxx;
-         }
-         win->_curx = win->_cury = 0;
-         win->_flags &= ~_WRAPPED;
-         _nc_synchook(win);
-         code = OK;
        }
        }
-       returnCode(code);
+       win->_curx = win->_cury = 0;
+       win->_flags &= ~_WRAPPED;
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
 }
 }
index d0d607f6b0f82eced47f9f7dd4df57fb594de1aa..a6b022a8e816bec9d1e531356907af830af6fd1a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
  *     flash.c
  *
 /*
  *     flash.c
  *
@@ -40,9 +39,9 @@
  */
 
 #include <curses.priv.h>
  */
 
 #include <curses.priv.h>
-#include <term.h>      /* beep, flash */
+#include <term.h>              /* beep, flash */
 
 
-MODULE_ID("$Id: lib_flash.c,v 1.4 1999/10/22 21:39:06 tom Exp $")
+MODULE_ID("$Id: lib_flash.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 /*
  *     flash()
 
 /*
  *     flash()
@@ -52,22 +51,23 @@ MODULE_ID("$Id: lib_flash.c,v 1.4 1999/10/22 21:39:06 tom Exp $")
  *
  */
 
  *
  */
 
-int flash(void)
+NCURSES_EXPORT(int)
+flash(void)
 {
 {
-       int res = ERR;
+    int res = ERR;
 
 
-       T((T_CALLED("flash()")));
+    T((T_CALLED("flash()")));
 
 
-       /* FIXME: should make sure that we are not in altchar mode */
-       if (flash_screen) {
-               TPUTS_TRACE("flash_screen");
-               res = putp(flash_screen);
-               _nc_flush();
-       } else if (bell) {
-               TPUTS_TRACE("bell");
-               res = putp(bell);
-               _nc_flush();
-       }
+    /* FIXME: should make sure that we are not in altchar mode */
+    if (flash_screen) {
+       TPUTS_TRACE("flash_screen");
+       res = putp(flash_screen);
+       _nc_flush();
+    } else if (bell) {
+       TPUTS_TRACE("bell");
+       res = putp(bell);
+       _nc_flush();
+    }
 
 
-       returnCode(res);
+    returnCode(res);
 }
 }
index 28f0e5f9f425d0d889d7b030cc29ab6e6ee42833..bce0a73ef30faedbaf0e8b8e4df0d9ebd881a381 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 extern int malloc_errfd;       /* FIXME */
 #endif
 
 extern int malloc_errfd;       /* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.16 1999/11/28 01:34:11 tom Exp $")
-
-static void
-free_slk(SLK *p)
-{
-    if (p != 0) {
-       FreeIfNeeded(p->ent);
-       FreeIfNeeded(p->buffer);
-       free(p);
-    }
-}
-
-static void
-free_tries(struct tries *p)
-{
-    struct tries *q;
-
-    while (p != 0) {
-       q = p->sibling;
-       if (p->child != 0)
-           free_tries(p->child);
-       free(p);
-       p = q;
-    }
-}
+MODULE_ID("$Id: lib_freeall.c,v 1.20 2002/07/28 00:35:25 tom Exp $")
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
  * use for it as an extension).
  */
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
  * use for it as an extension).
  */
-void
+NCURSES_EXPORT(void)
 _nc_freeall(void)
 {
     WINDOWLIST *p, *q;
 _nc_freeall(void)
 {
     WINDOWLIST *p, *q;
+    char *s;
 
 #if NO_LEAKS
     _nc_free_tparm();
 
 #if NO_LEAKS
     _nc_free_tparm();
@@ -85,34 +62,29 @@ _nc_freeall(void)
 
                for (q = _nc_windows; q != 0; q = q->next) {
                    if ((p != q)
 
                for (q = _nc_windows; q != 0; q = q->next) {
                    if ((p != q)
-                       && (q->win->_flags & _SUBWIN)
-                       && (p->win == q->win->_parent)) {
+                       && (q->win._flags & _SUBWIN)
+                       && (&(p->win) == q->win._parent)) {
                        found = TRUE;
                        break;
                    }
                }
 
                if (!found) {
                        found = TRUE;
                        break;
                    }
                }
 
                if (!found) {
-                   delwin(p->win);
+                   delwin(&(p->win));
                    break;
                }
            }
        }
                    break;
                }
            }
        }
-
-       free_tries(SP->_keytry);
-       free_tries(SP->_key_ok);
-       free_slk(SP->_slk);
-       FreeIfNeeded(SP->_color_pairs);
-       FreeIfNeeded(SP->_color_table);
-#if !BROKEN_LINKER
-       FreeAndNull(SP);
-#endif
+       delscreen(SP);
     }
 
     if (cur_term != 0) {
        _nc_free_termtype(&(cur_term->type));
        free(cur_term);
     }
     }
 
     if (cur_term != 0) {
        _nc_free_termtype(&(cur_term->type));
        free(cur_term);
     }
+
+    if ((s = _nc_home_terminfo()) != 0)
+       free(s);
 #ifdef TRACE
     (void) _nc_trace_buf(-1, 0);
 #endif
 #ifdef TRACE
     (void) _nc_trace_buf(-1, 0);
 #endif
@@ -124,7 +96,7 @@ _nc_freeall(void)
 #endif
 }
 
 #endif
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_free_and_exit(int code)
 {
     _nc_freeall();
 _nc_free_and_exit(int code)
 {
     _nc_freeall();
@@ -132,7 +104,7 @@ _nc_free_and_exit(int code)
 }
 
 #else
 }
 
 #else
-void
+NCURSES_EXPORT(void)
 _nc_freeall(void)
 {
 }
 _nc_freeall(void)
 {
 }
index f67bf9a35f7725eb2f8b65219c2d461fe4cf1058..757703d8afeaebb756eda4f400257651e307c170 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_getch.c,v 1.50 2000/10/09 23:53:57 Ilya.Zakharevich Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.67 2002/09/07 17:17:59 tom Exp $")
 
 #include <fifo_defs.h>
 
 
 #include <fifo_defs.h>
 
-int ESCDELAY = 1000;           /* max interval betw. chars in funkeys, in millisecs */
+NCURSES_EXPORT_VAR(int)
+ESCDELAY = 1000;               /* max interval betw. chars in funkeys, in millisecs */
+
+#ifdef NCURSES_WGETCH_EVENTS
+#define TWAIT_MASK 7
+#else
+#define TWAIT_MASK 3
+#endif
 
 static inline int
 fifo_peek(void)
 
 static inline int
 fifo_peek(void)
@@ -61,7 +68,7 @@ fifo_pull(void)
 {
     int ch;
     ch = SP->_fifo[head];
 {
     int ch;
     ch = SP->_fifo[head];
-    TR(TRACE_IEVENT, ("pulling %d from %d", ch, head));
+    TR(TRACE_IEVENT, ("pulling %s from %d", _tracechar(ch), head));
 
     if (peek == head) {
        h_inc();
 
     if (peek == head) {
        h_inc();
@@ -77,11 +84,13 @@ fifo_pull(void)
 }
 
 static inline int
 }
 
 static inline int
-fifo_push(void)
+fifo_push(EVENTLIST_0th(_nc_eventlist * evl))
 {
     int n;
 {
     int n;
-    unsigned int ch;
+    int ch = 0;
+    int mask;
 
 
+    (void) mask;
     if (tail == -1)
        return ERR;
 
     if (tail == -1)
        return ERR;
 
@@ -90,18 +99,37 @@ fifo_push(void)
     errno = 0;
 #endif
 
     errno = 0;
 #endif
 
+#ifdef NCURSES_WGETCH_EVENTS
+    if (evl
+#if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
+       || (SP->_mouse_fd >= 0)
+#endif
+       ) {
+       mask = _nc_timed_wait(TWAIT_MASK, -1, (int *) 0, evl);
+    } else
+       mask = 0;
+
+    if (mask & 4) {
+       T(("fifo_push: ungetch KEY_EVENT"));
+       ungetch(KEY_EVENT);
+       return KEY_EVENT;
+    }
+#elif USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
+    if (SP->_mouse_fd >= 0)
+       mask = _nc_timed_wait(TWAIT_MASK, -1, (int *) 0 EVENTLIST_2nd(evl));
+#endif
+
 #if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
 #if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
-    if ((SP->_mouse_fd >= 0)
-       && (_nc_timed_wait(3, -1, (int *) 0) & 2)) {
+    if ((SP->_mouse_fd >= 0) && (mask & 2)) {
        SP->_mouse_event(SP);
        ch = KEY_MOUSE;
        n = 1;
     } else
 #endif
        SP->_mouse_event(SP);
        ch = KEY_MOUSE;
        n = 1;
     } else
 #endif
-    {
+    {                          /* Can block... */
        unsigned char c2 = 0;
        n = read(SP->_ifd, &c2, 1);
        unsigned char c2 = 0;
        n = read(SP->_ifd, &c2, 1);
-       ch = c2 & 0xff;
+       ch = c2;
     }
 
 #ifdef HIDE_EINTR
     }
 
 #ifdef HIDE_EINTR
@@ -129,7 +157,7 @@ fifo_push(void)
     if (head == -1)
        head = peek = tail;
     t_inc();
     if (head == -1)
        head = peek = tail;
     t_inc();
-    TR(TRACE_IEVENT, ("pushed %#x at %d", ch, tail));
+    TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail));
 #ifdef TRACE
     if (_nc_tracing & TRACE_IEVENT)
        _nc_fifo_dump();
 #ifdef TRACE
     if (_nc_tracing & TRACE_IEVENT)
        _nc_fifo_dump();
@@ -140,26 +168,31 @@ fifo_push(void)
 static inline void
 fifo_clear(void)
 {
 static inline void
 fifo_clear(void)
 {
-    int i;
-    for (i = 0; i < FIFO_SIZE; i++)
-       SP->_fifo[i] = 0;
+    memset(SP->_fifo, 0, sizeof(SP->_fifo));
     head = -1;
     tail = peek = 0;
 }
 
     head = -1;
     tail = peek = 0;
 }
 
-static int kgetch(WINDOW *);
+static int kgetch(EVENTLIST_0th(_nc_eventlist * evl));
 
 #define wgetch_should_refresh(win) (\
        (is_wintouched(win) || (win->_flags & _HASMOVED)) \
        && !(win->_flags & _ISPAD))
 
 
 #define wgetch_should_refresh(win) (\
        (is_wintouched(win) || (win->_flags & _HASMOVED)) \
        && !(win->_flags & _ISPAD))
 
-int
-wgetch(WINDOW *win)
+NCURSES_EXPORT(int)
+_nc_wgetch(WINDOW *win,
+          unsigned long *result,
+          int use_meta
+          EVENTLIST_2nd(_nc_eventlist * evl))
 {
     int ch;
 {
     int ch;
+#ifdef NCURSES_WGETCH_EVENTS
+    long event_delay = -1;
+#endif
 
 
-    T((T_CALLED("wgetch(%p)"), win));
+    T((T_CALLED("_nc_wgetch(%p)"), win));
 
 
+    *result = 0;
     if (!win)
        returnCode(ERR);
 
     if (!win)
        returnCode(ERR);
 
@@ -167,10 +200,14 @@ wgetch(WINDOW *win)
        if (wgetch_should_refresh(win))
            wrefresh(win);
 
        if (wgetch_should_refresh(win))
            wrefresh(win);
 
-       ch = fifo_pull();
-       T(("wgetch returning (pre-cooked): %#x = %s", ch, _trace_key(ch)));
-       returnCode(ch);
+       *result = fifo_pull();
+       returnCode(OK);
     }
     }
+#ifdef NCURSES_WGETCH_EVENTS
+    if (evl && (evl->count == 0))
+       evl = NULL;
+    event_delay = _nc_eventlist_timeout(evl);
+#endif
 
     /*
      * Handle cooked mode.  Grab a string from the screen,
 
     /*
      * Handle cooked mode.  Grab a string from the screen,
@@ -179,19 +216,35 @@ wgetch(WINDOW *win)
      */
     if (head == -1 && !SP->_raw && !SP->_cbreak) {
        char buf[MAXCOLUMNS], *sp;
      */
     if (head == -1 && !SP->_raw && !SP->_cbreak) {
        char buf[MAXCOLUMNS], *sp;
+       int rc;
 
        TR(TRACE_IEVENT, ("filling queue in cooked mode"));
 
 
        TR(TRACE_IEVENT, ("filling queue in cooked mode"));
 
-       wgetnstr(win, buf, MAXCOLUMNS);
+       rc = wgetnstr(win, buf, MAXCOLUMNS);
 
        /* ungetch in reverse order */
 
        /* ungetch in reverse order */
-       ungetch('\n');
+#ifdef NCURSES_WGETCH_EVENTS
+       if (rc != KEY_EVENT)
+#endif
+           ungetch('\n');
        for (sp = buf + strlen(buf); sp > buf; sp--)
            ungetch(sp[-1]);
 
        for (sp = buf + strlen(buf); sp > buf; sp--)
            ungetch(sp[-1]);
 
-       returnCode(fifo_pull());
+#ifdef NCURSES_WGETCH_EVENTS
+       /* Return it first */
+       if (rc == KEY_EVENT) {
+           *result = rc;
+           returnCode(OK);
+       }
+#endif
+
+       *result = fifo_pull();
+       returnCode(OK);
     }
 
     }
 
+    if (win->_use_keypad != SP->_keypad_on)
+       _nc_keypad(win->_use_keypad);
+
     if (wgetch_should_refresh(win))
        wrefresh(win);
 
     if (wgetch_should_refresh(win))
        wrefresh(win);
 
@@ -204,11 +257,28 @@ wgetch(WINDOW *win)
        else
            delay = win->_delay;
 
        else
            delay = win->_delay;
 
+#ifdef NCURSES_WGETCH_EVENTS
+       if (event_delay >= 0 && delay > event_delay)
+           delay = event_delay;
+#endif
+
        TR(TRACE_IEVENT, ("delay is %d milliseconds", delay));
 
        TR(TRACE_IEVENT, ("delay is %d milliseconds", delay));
 
-       if (head == -1)         /* fifo is empty */
-           if (!_nc_timed_wait(3, delay, (int *) 0))
+       if (head == -1) {       /* fifo is empty */
+           int rc = _nc_timed_wait(TWAIT_MASK,
+                                   delay,
+                                   (int *) 0
+                                   EVENTLIST_2nd(evl));
+
+#ifdef NCURSES_WGETCH_EVENTS
+           if (rc & 4) {
+               *result = KEY_EVENT;
+               returnCode(OK);
+           }
+#endif
+           if (!rc)
                returnCode(ERR);
                returnCode(ERR);
+       }
        /* else go on to read data available */
     }
 
        /* else go on to read data available */
     }
 
@@ -225,26 +295,47 @@ wgetch(WINDOW *win)
         * increase the wait with mouseinterval().
         */
        int runcount = 0;
         * increase the wait with mouseinterval().
         */
        int runcount = 0;
+       int rc;
 
        do {
 
        do {
-           ch = kgetch(win);
+           ch = kgetch(EVENTLIST_1st(evl));
            if (ch == KEY_MOUSE) {
                ++runcount;
                if (SP->_mouse_inline(SP))
                    break;
            }
            if (ch == KEY_MOUSE) {
                ++runcount;
                if (SP->_mouse_inline(SP))
                    break;
            }
+           if (SP->_maxclick < 0)
+               break;
        } while
            (ch == KEY_MOUSE
        } while
            (ch == KEY_MOUSE
-           && (_nc_timed_wait(3, SP->_maxclick, (int *) 0)
-               || !SP->_mouse_parse(runcount)));
-       if (runcount > 0 && ch != KEY_MOUSE) {
-           /* mouse event sequence ended by keystroke, push it */
+            && (((rc = _nc_timed_wait(TWAIT_MASK,
+                                      SP->_maxclick,
+                                      (int *) 0
+                                      EVENTLIST_2nd(evl))) != 0
+                 && !(rc & 4))
+                || !SP->_mouse_parse(runcount)));
+#ifdef NCURSES_WGETCH_EVENTS
+       if ((rc & 4) && !ch == KEY_EVENT) {
            ungetch(ch);
            ungetch(ch);
-           ch = KEY_MOUSE;
+           ch = KEY_EVENT;
+       }
+#endif
+       if (runcount > 0 && ch != KEY_MOUSE) {
+#ifdef NCURSES_WGETCH_EVENTS
+           /* mouse event sequence ended by an event, report event */
+           if (ch == KEY_EVENT) {
+               ungetch(KEY_MOUSE);     /* FIXME This interrupts a gesture... */
+           } else
+#endif
+           {
+               /* mouse event sequence ended by keystroke, store keystroke */
+               ungetch(ch);
+               ch = KEY_MOUSE;
+           }
        }
     } else {
        if (head == -1)
        }
     } else {
        if (head == -1)
-           fifo_push();
+           fifo_push(EVENTLIST_1st(evl));
        ch = fifo_pull();
     }
 
        ch = fifo_pull();
     }
 
@@ -254,13 +345,11 @@ wgetch(WINDOW *win)
            _nc_update_screensize();
            /* resizeterm can push KEY_RESIZE */
            if (cooked_key_in_fifo()) {
            _nc_update_screensize();
            /* resizeterm can push KEY_RESIZE */
            if (cooked_key_in_fifo()) {
-               ch = fifo_pull();
-               T(("wgetch returning (pre-cooked): %#x = %s", ch, _trace_key(ch)));
-               returnCode(ch);
+               *result = fifo_pull();
+               returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
            }
        }
 #endif
            }
        }
 #endif
-       T(("wgetch returning ERR"));
        returnCode(ERR);
     }
 
        returnCode(ERR);
     }
 
@@ -299,13 +388,48 @@ wgetch(WINDOW *win)
      * that display only 7-bit characters.  Note that 'ch' may be a
      * function key at this point, so we mustn't strip _those_.
      */
      * that display only 7-bit characters.  Note that 'ch' may be a
      * function key at this point, so we mustn't strip _those_.
      */
-    if ((ch < KEY_MIN) && (ch & 0x80))
-       if (!SP->_use_meta)
+    if (!use_meta)
+       if ((ch < KEY_MIN) && (ch & 0x80))
            ch &= 0x7f;
 
            ch &= 0x7f;
 
-    T(("wgetch returning : %#x = %s", ch, _trace_key(ch)));
+    T(("wgetch returning : %s", _tracechar(ch)));
+
+    *result = ch;
+    returnCode(ch >= KEY_MIN ? KEY_CODE_YES : OK);
+}
+
+#ifdef NCURSES_WGETCH_EVENTS
+NCURSES_EXPORT(int)
+wgetch_events(WINDOW *win, _nc_eventlist * evl)
+{
+    int code;
+    unsigned long value;
+
+    T((T_CALLED("wgetch_events(%p,%p)"), win, evl));
+    code = _nc_wgetch(win,
+                     &value,
+                     SP->_use_meta
+                     EVENTLIST_2nd(evl));
+    if (code != ERR)
+       code = value;
+    returnCode(code);
+}
+#endif
+
+NCURSES_EXPORT(int)
+wgetch(WINDOW *win)
+{
+    int code;
+    unsigned long value;
 
 
-    returnCode(ch);
+    T((T_CALLED("wgetch(%p)"), win));
+    code = _nc_wgetch(win,
+                     &value,
+                     SP->_use_meta
+                     EVENTLIST_2nd((_nc_eventlist *) 0));
+    if (code != ERR)
+       code = value;
+    returnCode(code);
 }
 
 /*
 }
 
 /*
@@ -318,50 +442,61 @@ wgetch(WINDOW *win)
 **      sequence is received by the time the alarm goes off, pass through
 **      the sequence gotten so far.
 **
 **      sequence is received by the time the alarm goes off, pass through
 **      the sequence gotten so far.
 **
-**     This function must be called when there is no cooked keys in queue.
+**     This function must be called when there are no cooked keys in queue.
 **     (that is head==-1 || peek==head)
 **
 */
 
 static int
 **     (that is head==-1 || peek==head)
 **
 */
 
 static int
-kgetch(WINDOW *win GCC_UNUSED)
+kgetch(EVENTLIST_0th(_nc_eventlist * evl))
 {
     struct tries *ptr;
     int ch = 0;
     int timeleft = ESCDELAY;
 
 {
     struct tries *ptr;
     int ch = 0;
     int timeleft = ESCDELAY;
 
-    TR(TRACE_IEVENT, ("kgetch(%p) called", win));
+    TR(TRACE_IEVENT, ("kgetch() called"));
 
     ptr = SP->_keytry;
 
     for (;;) {
 
     ptr = SP->_keytry;
 
     for (;;) {
-       if (!raw_key_in_fifo()) {
-           if (fifo_push() == ERR) {
+       if (cooked_key_in_fifo() && SP->_fifo[head] >= KEY_MIN) {
+           break;
+       } else if (!raw_key_in_fifo()) {
+           ch = fifo_push(EVENTLIST_1st(evl));
+           if (ch == ERR) {
                peek = head;    /* the keys stay uninterpreted */
                return ERR;
            }
                peek = head;    /* the keys stay uninterpreted */
                return ERR;
            }
+#ifdef NCURSES_WGETCH_EVENTS
+           else if (ch == KEY_EVENT) {
+               peek = head;    /* the keys stay uninterpreted */
+               return fifo_pull();     /* Remove KEY_EVENT from the queue */
+           }
+#endif
        }
        }
+
        ch = fifo_peek();
        if (ch >= KEY_MIN) {
        ch = fifo_peek();
        if (ch >= KEY_MIN) {
+           /* If not first in queue, somebody put this key there on purpose in
+            * emergency.  Consider it higher priority than the unfinished
+            * keysequence we are parsing.
+            */
            peek = head;
            /* assume the key is the last in fifo */
            t_dec();            /* remove the key */
            return ch;
        }
 
            peek = head;
            /* assume the key is the last in fifo */
            t_dec();            /* remove the key */
            return ch;
        }
 
-       TR(TRACE_IEVENT, ("ch: %s", _trace_key((unsigned char) ch)));
+       TR(TRACE_IEVENT, ("ch: %s", _tracechar((unsigned char) ch)));
        while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
            ptr = ptr->sibling;
        while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
            ptr = ptr->sibling;
-#ifdef TRACE
+
        if (ptr == NULL) {
            TR(TRACE_IEVENT, ("ptr is null"));
        if (ptr == NULL) {
            TR(TRACE_IEVENT, ("ptr is null"));
-       } else
-           TR(TRACE_IEVENT, ("ptr=%p, ch=%d, value=%d",
-                   ptr, ptr->ch, ptr->value));
-#endif /* TRACE */
-
-       if (ptr == NULL)
            break;
            break;
+       }
+       TR(TRACE_IEVENT, ("ptr=%p, ch=%d, value=%d",
+                         ptr, ptr->ch, ptr->value));
 
        if (ptr->value != 0) {  /* sequence terminated */
            TR(TRACE_IEVENT, ("end of sequence"));
 
        if (ptr->value != 0) {  /* sequence terminated */
            TR(TRACE_IEVENT, ("end of sequence"));
@@ -375,8 +510,22 @@ kgetch(WINDOW *win GCC_UNUSED)
        ptr = ptr->child;
 
        if (!raw_key_in_fifo()) {
        ptr = ptr->child;
 
        if (!raw_key_in_fifo()) {
+           int rc;
+
            TR(TRACE_IEVENT, ("waiting for rest of sequence"));
            TR(TRACE_IEVENT, ("waiting for rest of sequence"));
-           if (!_nc_timed_wait(3, timeleft, &timeleft)) {
+           rc = _nc_timed_wait(TWAIT_MASK,
+                               timeleft,
+                               &timeleft
+                               EVENTLIST_2nd(evl));
+#ifdef NCURSES_WGETCH_EVENTS
+           if (rc & 4) {
+               TR(TRACE_IEVENT, ("interrupted by a user event"));
+               /* FIXME Should have preserved timeleft for reusal... */
+               peek = head;    /* Restart interpreting later */
+               return KEY_EVENT;
+           }
+#endif
+           if (!rc) {
                TR(TRACE_IEVENT, ("ran out of time"));
                break;
            }
                TR(TRACE_IEVENT, ("ran out of time"));
                break;
            }
index 485c6e35c8ff3679ea24cbe43597f214c7c4d98b..761703824496e49130faac7de64d466425350035 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_getstr.c
 **
 /*
 **     lib_getstr.c
 **
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_getstr.c,v 1.20 1998/12/20 00:16:01 tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.24 2002/09/01 17:31:12 tom Exp $")
 
 /*
  * This wipes out the last character, no matter whether it was a tab, control
  * or other character, and handles reverse wraparound.
  */
 
 /*
  * This wipes out the last character, no matter whether it was a tab, control
  * or other character, and handles reverse wraparound.
  */
-static char *WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed)
+static char *
+WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed)
 {
 {
-       if (last > first) {
-               *--last = '\0';
-               if (echoed) {
-                       int y1 = win->_cury;
-                       int x1 = win->_curx;
-
-                       wmove(win, y, x);
-                       waddstr(win, first);
-                       getyx(win, y, x);
-                       while (win->_cury < y1
-                          || (win->_cury == y1 && win->_curx < x1))
-                               waddch(win, ' ');
-
-                       wmove(win, y, x);
-               }
+    if (last > first) {
+       *--last = '\0';
+       if (echoed) {
+           int y1 = win->_cury;
+           int x1 = win->_curx;
+
+           wmove(win, y, x);
+           waddstr(win, first);
+           getyx(win, y, x);
+           while (win->_cury < y1
+                  || (win->_cury == y1 && win->_curx < x1))
+               waddch(win, (chtype) ' ');
+
+           wmove(win, y, x);
        }
        }
-       return last;
+    }
+    return last;
 }
 
 }
 
-int wgetnstr(WINDOW *win, char *str, int maxlen)
+NCURSES_EXPORT(int)
+wgetnstr_events(WINDOW *win,
+               char *str,
+               int maxlen,
+               EVENTLIST_1st(_nc_eventlist * evl))
 {
 {
-TTY    buf;
-bool   oldnl, oldecho, oldraw, oldcbreak;
-char   erasec;
-char   killc;
-char   *oldstr;
-int ch;
-int    y, x;
+    TTY buf;
+    bool oldnl, oldecho, oldraw, oldcbreak;
+    char erasec;
+    char killc;
+    char *oldstr;
+    int ch;
+    int y, x;
 
 
-       T((T_CALLED("wgetnstr(%p,%p, %d)"), win, str, maxlen));
+    T((T_CALLED("wgetnstr(%p,%p, %d)"), win, str, maxlen));
 
 
-       if (!win)
-         returnCode(ERR);
+    if (!win)
+       returnCode(ERR);
 
 
-       _nc_get_tty_mode(&buf);
+    _nc_get_tty_mode(&buf);
 
 
-       oldnl = SP->_nl;
-       oldecho = SP->_echo;
-       oldraw = SP->_raw;
-       oldcbreak = SP->_cbreak;
-       nl();
-       noecho();
-       noraw();
-       cbreak();
+    oldnl = SP->_nl;
+    oldecho = SP->_echo;
+    oldraw = SP->_raw;
+    oldcbreak = SP->_cbreak;
+    nl();
+    noecho();
+    noraw();
+    cbreak();
 
 
-       erasec = erasechar();
-       killc = killchar();
+    erasec = erasechar();
+    killc = killchar();
 
 
-       oldstr = str;
-       getyx(win, y, x);
+    oldstr = str;
+    getyx(win, y, x);
 
 
-       if (is_wintouched(win) || (win->_flags & _HASMOVED))
-               wrefresh(win);
+    if (is_wintouched(win) || (win->_flags & _HASMOVED))
+       wrefresh(win);
 
 
-       while ((ch = wgetch(win)) != ERR) {
-               /*
-                * Some terminals (the Wyse-50 is the most common) generate
-                * a \n from the down-arrow key.  With this logic, it's the
-                * user's choice whether to set kcud=\n for wgetch();
-                * terminating *getstr() with \n should work either way.
-                */
-               if (ch == '\n'
-                || ch == '\r'
-                || ch == KEY_DOWN
-                || ch == KEY_ENTER) {
-                       if (oldecho == TRUE
-                        && win->_cury == win->_maxy
-                        && win->_scroll)
-                               wechochar(win, '\n');
-                       break;
-               }
-               if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) {
-                       if (str > oldstr) {
-                               str = WipeOut(win, y, x, oldstr, str, oldecho);
-                       }
-               } else if (ch == killc) {
-                       while (str > oldstr) {
-                               str = WipeOut(win, y, x, oldstr, str, oldecho);
-                       }
-               } else if (ch >= KEY_MIN
-                          || (maxlen >= 0 && str - oldstr >= maxlen)) {
-                       beep();
-               } else {
-                       *str++ = ch;
-                       if (oldecho == TRUE) {
-                               int oldy = win->_cury;
-                               if (waddch(win, ch) == ERR) {
-                                       /*
-                                        * We can't really use the lower-right
-                                        * corner for input, since it'll mess
-                                        * up bookkeeping for erases.
-                                        */
-                                       win->_flags &= ~_WRAPPED;
-                                       waddch(win, ' ');
-                                       str = WipeOut(win, y, x, oldstr, str, oldecho);
-                                       continue;
-                               } else if (win->_flags & _WRAPPED) {
-                                       /*
-                                        * If the last waddch forced a wrap &
-                                        * scroll, adjust our reference point
-                                        * for erasures.
-                                        */
-                                       if (win->_scroll
-                                        && oldy == win->_maxy
-                                        && win->_cury == win->_maxy) {
-                                               if (--y <= 0) {
-                                                       y = 0;
-                                               }
-                                       }
-                                       win->_flags &= ~_WRAPPED;
-                               }
-                               wrefresh(win);
+    while ((ch = wgetch_events(win, evl)) != ERR) {
+       /*
+        * Some terminals (the Wyse-50 is the most common) generate
+        * a \n from the down-arrow key.  With this logic, it's the
+        * user's choice whether to set kcud=\n for wgetch();
+        * terminating *getstr() with \n should work either way.
+        */
+       if (ch == '\n'
+           || ch == '\r'
+           || ch == KEY_DOWN
+           || ch == KEY_ENTER) {
+           if (oldecho == TRUE
+               && win->_cury == win->_maxy
+               && win->_scroll)
+               wechochar(win, (chtype) '\n');
+           break;
+       }
+#ifdef KEY_EVENT
+       if (ch == KEY_EVENT)
+           break;
+#endif
+       if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) {
+           if (str > oldstr) {
+               str = WipeOut(win, y, x, oldstr, str, oldecho);
+           }
+       } else if (ch == killc) {
+           while (str > oldstr) {
+               str = WipeOut(win, y, x, oldstr, str, oldecho);
+           }
+       } else if (ch >= KEY_MIN
+                  || (maxlen >= 0 && str - oldstr >= maxlen)) {
+           beep();
+       } else {
+           *str++ = ch;
+           if (oldecho == TRUE) {
+               int oldy = win->_cury;
+               if (waddch(win, (chtype) ch) == ERR) {
+                   /*
+                    * We can't really use the lower-right
+                    * corner for input, since it'll mess
+                    * up bookkeeping for erases.
+                    */
+                   win->_flags &= ~_WRAPPED;
+                   waddch(win, (chtype) ' ');
+                   str = WipeOut(win, y, x, oldstr, str, oldecho);
+                   continue;
+               } else if (win->_flags & _WRAPPED) {
+                   /*
+                    * If the last waddch forced a wrap &
+                    * scroll, adjust our reference point
+                    * for erasures.
+                    */
+                   if (win->_scroll
+                       && oldy == win->_maxy
+                       && win->_cury == win->_maxy) {
+                       if (--y <= 0) {
+                           y = 0;
                        }
                        }
+                   }
+                   win->_flags &= ~_WRAPPED;
                }
                }
+               wrefresh(win);
+           }
        }
        }
+    }
+
+    win->_curx = 0;
+    win->_flags &= ~_WRAPPED;
+    if (win->_cury < win->_maxy)
+       win->_cury++;
+    wrefresh(win);
+
+    /* Restore with a single I/O call, to fix minor asymmetry between
+     * raw/noraw, etc.
+     */
+    SP->_nl = oldnl;
+    SP->_echo = oldecho;
+    SP->_raw = oldraw;
+    SP->_cbreak = oldcbreak;
+
+    _nc_set_tty_mode(&buf);
+
+    *str = '\0';
+    if (ch == ERR)
+       returnCode(ch);
+#ifdef KEY_EVENT
+    if (ch == KEY_EVENT)
+       returnCode(ch);
+#endif
+
+    T(("wgetnstr returns %s", _nc_visbuf(oldstr)));
+
+    returnCode(OK);
+}
 
 
-       win->_curx = 0;
-       win->_flags &= ~_WRAPPED;
-       if (win->_cury < win->_maxy)
-               win->_cury++;
-       wrefresh(win);
-
-       /* Restore with a single I/O call, to fix minor asymmetry between
-        * raw/noraw, etc.
-        */
-       SP->_nl = oldnl;
-       SP->_echo = oldecho;
-       SP->_raw = oldraw;
-       SP->_cbreak = oldcbreak;
-
-       _nc_set_tty_mode(&buf);
-
-       *str = '\0';
-       if (ch == ERR)
-               returnCode(ERR);
-
-       T(("wgetnstr returns %s", _nc_visbuf(oldstr)));
-
-       returnCode(OK);
+#ifdef NCURSES_WGETCH_EVENTS
+NCURSES_EXPORT(int)
+wgetnstr(WINDOW *win, char *str, int maxlen)
+{
+    returnCode(wgetnstr_events(win,
+                              str,
+                              maxlen,
+                              EVENTLIST_1st((_nc_eventlist *) 0)));
 }
 }
+#endif
index fd32d35a38e770ff662e6a33a9a9a54a78dcdbc0..2cb6cc5ce6fd53fbf97f53168a28033cc9f74604 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_hline.c,v 1.6 2000/07/04 14:08:09 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_hline.c,v 1.10 2001/06/03 00:39:24 skimo Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 whline(WINDOW *win, chtype ch, int n)
 {
     int code = ERR;
 whline(WINDOW *win, chtype ch, int n)
 {
     int code = ERR;
@@ -53,6 +53,7 @@ whline(WINDOW *win, chtype ch, int n)
 
     if (win) {
        struct ldat *line = &(win->_line[win->_cury]);
 
     if (win) {
        struct ldat *line = &(win->_line[win->_cury]);
+       NCURSES_CH_T wch;
 
        start = win->_curx;
        end = start + n - 1;
 
        start = win->_curx;
        end = start + n - 1;
@@ -62,11 +63,13 @@ whline(WINDOW *win, chtype ch, int n)
        CHANGED_RANGE(line, start, end);
 
        if (ch == 0)
        CHANGED_RANGE(line, start, end);
 
        if (ch == 0)
-           ch = ACS_HLINE;
-       ch = _nc_render(win, ch);
+           SetChar(wch, ChCharOf(ACS_HLINE), ChAttrOf(ACS_HLINE));
+       else
+           SetChar(wch, ChCharOf(ch), ChAttrOf(ch));
+       wch = _nc_render(win, wch);
 
        while (end >= start) {
 
        while (end >= start) {
-           line->text[end] = ch;
+           line->text[end] = wch;
            end--;
        }
 
            end--;
        }
 
index 5590ec9f5406f5bb4354ec751eef42820c019006..87988b66f1a325858504eb8e8675663162015f72 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_immedok.c
 **
 /*
 **     lib_immedok.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_immedok.c,v 1.2 1998/02/11 12:14:01 tom Exp $")
+MODULE_ID("$Id: lib_immedok.c,v 1.4 2000/12/10 02:43:27 tom Exp $")
 
 
-void immedok(WINDOW *win, bool flag)
+NCURSES_EXPORT(void)
+immedok(WINDOW *win, bool flag)
 {
 {
-       T((T_CALLED("immedok(%p,%d)"), win, flag));
+    T((T_CALLED("immedok(%p,%d)"), win, flag));
 
 
-       if (win)
-         win->_immed = flag;
+    if (win)
+       win->_immed = flag;
 
 
-       returnVoid;
+    returnVoid;
 }
 }
index 4779ae09d75bc5a0abb09490dd41b30d0ff47909..6ff01687826eb09709f5c856174439ac8ec22340 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_inchstr.c
 **
 /*
 **     lib_inchstr.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_inchstr.c,v 1.7 1998/02/11 12:13:55 tom Exp $")
+MODULE_ID("$Id: lib_inchstr.c,v 1.10 2001/06/02 23:37:58 skimo Exp $")
 
 
-int winchnstr(WINDOW *win, chtype *str, int n)
+NCURSES_EXPORT(int)
+winchnstr(WINDOW *win, chtype * str, int n)
 {
 {
-       int     i = 0;
+    int i = 0;
 
 
-       T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n));
+    T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n));
 
 
-       if (!str)
-         returnCode(0);
+    if (!str)
+       returnCode(0);
 
 
-       if (win) {
-         for (; (n < 0 || (i < n)) && (win->_curx + i <= win->_maxx); i++)
-           str[i] = win->_line[win->_cury].text[win->_curx + i];
-       }
-       str[i] = (chtype)0;
+    if (win) {
+       for (; (n < 0 || (i < n)) && (win->_curx + i <= win->_maxx); i++)
+           str[i] =
+               CharOf(win->_line[win->_cury].text[win->_curx + i]) |
+               AttrOf(win->_line[win->_cury].text[win->_curx + i]);
+    }
+    str[i] = (chtype) 0;
 
 
-       returnCode(i);
+    returnCode(i);
 }
 }
index 9a89a077cd44822bf0baf696f4477d8d670ec18c..1b7750d5ac9fd252c7876dd576d774194c15f019 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
-#include <tic.h>       /* for MAX_ALIAS */
+#include <tic.h>               /* for MAX_ALIAS */
 
 #if HAVE_SYS_TERMIO_H
 
 #if HAVE_SYS_TERMIO_H
-#include <sys/termio.h>        /* needed for ISC */
+#include <sys/termio.h>                /* needed for ISC */
 #endif
 
 #endif
 
-MODULE_ID("$Id: lib_initscr.c,v 1.26 1998/12/19 23:10:09 tom Exp $")
+MODULE_ID("$Id: lib_initscr.c,v 1.32 2002/10/12 15:24:34 tom Exp $")
 
 
-WINDOW *initscr(void)
+NCURSES_EXPORT(WINDOW *)
+initscr(void)
 {
 {
-static bool initialized = FALSE;
-NCURSES_CONST char *name;
-int value;
+    static bool initialized = FALSE;
+    NCURSES_CONST char *name;
+    int value;
 
 
-       T((T_CALLED("initscr()")));
-       /* Portable applications must not call initscr() more than once */
-       if (!initialized) {
-               initialized = TRUE;
+    START_TRACE();
+    T((T_CALLED("initscr()")));
+    /* Portable applications must not call initscr() more than once */
+    if (!initialized) {
+       initialized = TRUE;
 
 
-               if ((name = getenv("TERM")) == 0
-                || *name == '\0')
-                       name = "unknown";
-               if (newterm(name, stdout, stdin) == 0) {
-                       fprintf(stderr, "Error opening terminal: %s.\n", name);
-                       exit(EXIT_FAILURE);
-               }
-
-               /* allow user to set maximum escape delay from the environment */
-               if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
-                       ESCDELAY = value;
-               }
+       if ((name = getenv("TERM")) == 0
+           || *name == '\0')
+           name = "unknown";
+#ifdef __CYGWIN__
+       /*
+        * 2002/9/21
+        * Work around a bug in Cygwin.  Full-screen subprocesses run from
+        * bash, in turn spawned from another full-screen process, will dump
+        * core when attempting to write to stdout.  Opening /dev/tty
+        * explicitly seems to fix the problem.
+        */
+       if (isatty(fileno(stdout))) {
+           FILE *fp = fopen("/dev/tty", "w");
+           if (fp != 0 && isatty(fileno(fp))) {
+               fclose(stdout);
+               dup2(fileno(fp), STDOUT_FILENO);
+               stdout = fdopen(STDOUT_FILENO, "w");
+           }
+       }
+#endif
+       if (newterm(name, stdout, stdin) == 0) {
+           fprintf(stderr, "Error opening terminal: %s.\n", name);
+           exit(EXIT_FAILURE);
+       }
 
 
-               /* def_shell_mode - done in newterm/_nc_setupscreen */
-               def_prog_mode();
+       /* allow user to set maximum escape delay from the environment */
+       if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
+           ESCDELAY = value;
        }
        }
-       returnWin(stdscr);
+
+       /* def_shell_mode - done in newterm/_nc_setupscreen */
+       def_prog_mode();
+    }
+    returnWin(stdscr);
 }
 }
index ccc5ff5d024dc4460b7c2e599fa3e66de766eb1f..c3671e5d235bffbdd6492aac3349b0ff513e9417 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,8 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 /*
 **     lib_insch.c
 **
 /*
 **     lib_insch.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_insch.c,v 1.10 1998/06/28 00:26:52 tom Exp $")
+MODULE_ID("$Id: lib_insch.c,v 1.15 2001/06/09 23:47:38 skimo Exp $")
 
 
-int  winsch(WINDOW *win, chtype c)
+NCURSES_EXPORT(int)
+winsch(WINDOW *win, chtype c)
 {
 {
-int code = ERR;
+    int code = ERR;
 
 
-       T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c)));
+    T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c)));
 
 
-       if (win) {
-               struct ldat *line = &(win->_line[win->_cury]);
-               chtype *end = &(line->text[win->_curx]);
-               chtype *temp1 = &(line->text[win->_maxx]);
-               chtype *temp2 = temp1 - 1;
+    if (win) {
+       struct ldat *line = &(win->_line[win->_cury]);
+       NCURSES_CH_T *end = &(line->text[win->_curx]);
+       NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+       NCURSES_CH_T *temp2 = temp1 - 1;
+       NCURSES_CH_T wch;
+       SetChar2(wch, c);
 
 
-               CHANGED_TO_EOL(line, win->_curx, win->_maxx);
-               while (temp1 > end)
-                       *temp1-- = *temp2--;
+       CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+       while (temp1 > end)
+           *temp1-- = *temp2--;
 
 
-               *temp1 = _nc_render(win, c);
-               code = OK;
-       }
-       returnCode(code);
+       *temp1 = _nc_render(win, wch);
+       code = OK;
+    }
+    returnCode(code);
 }
 }
index 48e108de8d9b25fce3c88f681f114d935ae550a1..432bcace9e6a14ae5e1ed9af33e048939f9e24f4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_insdel.c,v 1.8 1998/02/11 12:13:55 tom Exp $")
+MODULE_ID("$Id: lib_insdel.c,v 1.11 2001/12/19 01:10:49 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 winsdelln(WINDOW *win, int n)
 {
 winsdelln(WINDOW *win, int n)
 {
-int code = ERR;
+    int code = ERR;
 
 
-       T((T_CALLED("winsdel(%p,%d)"), win, n));
+    T((T_CALLED("winsdel(%p,%d)"), win, n));
 
 
-       if (win) {
-         if (n != 0) {
-           _nc_scroll_window(win, -n, win->_cury, win->_maxy, _nc_background(win));      
+    if (win) {
+       if (n != 0) {
+           _nc_scroll_window(win, -n, win->_cury, win->_maxy,
+                             win->_nc_bkgd);
            _nc_synchook(win);
            _nc_synchook(win);
-         }
-         code = OK;
        }
        }
-       returnCode(code);
+       code = OK;
+    }
+    returnCode(code);
 }
 }
index a2275f9457b60d279f8d95d6ed98952c06beccd0..347b35611c8f6e386f9a7477c30741eb9a0c0c19 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,9 +41,9 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_insstr.c,v 1.14 2000/04/29 21:16:41 tom Exp $")
+MODULE_ID("$Id: lib_insstr.c,v 1.20 2002/09/28 16:22:34 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 winsnstr(WINDOW *win, const char *s, int n)
 {
     int code = ERR;
 winsnstr(WINDOW *win, const char *s, int n)
 {
     int code = ERR;
@@ -52,17 +52,19 @@ winsnstr(WINDOW *win, const char *s, int n)
     const unsigned char *str = (const unsigned char *) s;
     const unsigned char *cp;
 
     const unsigned char *str = (const unsigned char *) s;
     const unsigned char *cp;
 
-    T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbuf(s), n));
+    T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s,n), n));
 
     if (win && str) {
        oy = win->_cury;
        ox = win->_curx;
        for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
 
     if (win && str) {
        oy = win->_cury;
        ox = win->_curx;
        for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
-           if (*cp == '\n' || *cp == '\r' || *cp == '\t' || *cp == '\b')
-               _nc_waddch_nosync(win, (chtype) (*cp));
-           else if (is7bits(*cp) && iscntrl(*cp)) {
+           if (*cp == '\n' || *cp == '\r' || *cp == '\t' || *cp == '\b') {
+               NCURSES_CH_T wch;
+               SetChar2(wch, *cp);
+               _nc_waddch_nosync(win, wch);
+           } else if (is7bits(*cp) && iscntrl(*cp)) {
                winsch(win, ' ' + (chtype) (*cp));
                winsch(win, ' ' + (chtype) (*cp));
-               winsch(win, '^');
+               winsch(win, (chtype) '^');
                win->_curx += 2;
            } else {
                winsch(win, (chtype) (*cp));
                win->_curx += 2;
            } else {
                winsch(win, (chtype) (*cp));
index b3e1d030a4b64eb11f4e4ce63799c71789a4b029..157d2ec9b4f7266c127c274cc5840eda13730e5d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_instr.c
 **
 /*
 **     lib_instr.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_instr.c,v 1.8 1998/02/11 12:13:54 tom Exp $")
+MODULE_ID("$Id: lib_instr.c,v 1.12 2002/10/05 23:23:05 tom Exp $")
 
 
-int winnstr(WINDOW *win, char *str, int n)
+NCURSES_EXPORT(int)
+winnstr(WINDOW *win, char *str, int n)
 {
 {
-       int     i=0, row, col;
+    int i = 0, row, col;
+
+    T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n));
 
 
-       T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n));
+    if (!str)
+       returnCode(0);
 
 
-       if (!str)
-         returnCode(0);
-       
-       if (win) {
-         getyx(win, row, col);
+    if (win) {
+       getyx(win, row, col);
 
 
-         if (n < 0)
+       if (n < 0)
            n = win->_maxx - win->_curx + 1;
 
            n = win->_maxx - win->_curx + 1;
 
-         for (; i < n;) {
-           str[i++] = TextOf(win->_line[row].text[col]);
+       for (; i < n;) {
+           str[i++] = CharOf(win->_line[row].text[col]);
            if (++col > win->_maxx) {
            if (++col > win->_maxx) {
-             col = 0;
-             if (++row > win->_maxy)
-               break;
+               col = 0;
+               if (++row > win->_maxy)
+                   break;
            }
            }
-         }
        }
        }
-       str[i] = '\0';  /* SVr4 does not seem to count the null */
-       returnCode(i);
+    }
+    str[i] = '\0';             /* SVr4 does not seem to count the null */
+    T(("winnstr returns %s", _nc_visbuf(str)));
+    returnCode(i);
 }
 }
-
index 60015fca55b91b81e1ed99a94118dc2c7156f174..b337d97a94c3f71575cc82626752ff2fe86cc29d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_endwin.c
 **
 /*
 **     lib_endwin.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_isendwin.c,v 1.4 1998/04/11 22:52:32 tom Exp $")
+MODULE_ID("$Id: lib_isendwin.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 
-bool isendwin(void)
+NCURSES_EXPORT(bool)
+isendwin(void)
 {
 {
-       if (SP == NULL)
-               return FALSE;
-       return SP->_endwin;
+    if (SP == NULL)
+       return FALSE;
+    return SP->_endwin;
 }
 }
index e83285d714f41c6ab305f2f791ebd5f5e8c9d1ba..17d095d0f8c8e8987cba7f997d83057baa3208ba 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_leaveok.c
 **
 /*
 **     lib_leaveok.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_leaveok.c,v 1.3 1998/03/21 22:54:20 jtc Exp $")
+MODULE_ID("$Id: lib_leaveok.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
 
 
-int leaveok(WINDOW *win, bool flag)
+NCURSES_EXPORT(int)
+leaveok(WINDOW *win, bool flag)
 {
 {
-       T((T_CALLED("leaveok(%p,%d)"), win, flag));
+    T((T_CALLED("leaveok(%p,%d)"), win, flag));
 
 
-       if (win) {
-         win->_leaveok = flag;
-         returnCode(OK);
-       }
-       else
-         returnCode(ERR);
+    if (win) {
+       win->_leaveok = flag;
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 3b85635039798abc655864baac28b9dfd589e581..0555f1fd2ce74a7cc3f88adfdc9c0530634d9f61 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -84,7 +84,7 @@
 #endif
 #endif
 
 #endif
 #endif
 
-MODULE_ID("$Id: lib_mouse.c,v 1.55 2000/10/10 00:07:28 Ilya.Zakharevich Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.61 2002/09/28 16:08:58 tom Exp $")
 
 #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
 
 
 #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
 
@@ -327,17 +327,18 @@ _nc_mouse_init(void)
     }
 }
 
     }
 }
 
+/*
+ * Query to see if there is a pending mouse event.  This is called from
+ * fifo_push() in lib_getch.c
+ */
 static bool
 _nc_mouse_event(SCREEN * sp GCC_UNUSED)
 static bool
 _nc_mouse_event(SCREEN * sp GCC_UNUSED)
-/* query to see if there is a pending mouse event */
 {
 #if USE_GPM_SUPPORT
     /* GPM: query server for event, return TRUE if we find one */
     Gpm_Event ev;
 
 {
 #if USE_GPM_SUPPORT
     /* GPM: query server for event, return TRUE if we find one */
     Gpm_Event ev;
 
-    if (gpm_fd >= 0
-       && (_nc_timed_wait(3, 0, (int *) 0) & 2) != 0
-       && Gpm_GetEvent(&ev) == 1) {
+    if (Gpm_GetEvent(&ev) == 1) {
        eventp->id = 0;         /* there's only one mouse... */
 
        eventp->bstate = 0;
        eventp->id = 0;         /* there's only one mouse... */
 
        eventp->bstate = 0;
@@ -373,8 +374,7 @@ _nc_mouse_event(SCREEN * sp GCC_UNUSED)
 #endif
 
 #ifdef USE_EMX_MOUSE
 #endif
 
 #ifdef USE_EMX_MOUSE
-    if (SP->_mouse_fd >= 0
-       && (_nc_timed_wait(3, 0, (int *) 0) & 2) != 0) {
+    {
        char kbuf[3];
 
        int i, res = read(M_FD(sp), &kbuf, 3);  /* Eat the prefix */
        char kbuf[3];
 
        int i, res = read(M_FD(sp), &kbuf, 3);  /* Eat the prefix */
@@ -655,7 +655,7 @@ _nc_mouse_parse(int runcount)
     /* first pass; merge press/release pairs */
     do {
        merge = FALSE;
     /* first pass; merge press/release pairs */
     do {
        merge = FALSE;
-       for (ep = runp; next = NEXT(ep), next != eventp; ep = next) {
+       for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
            if (ep->x == next->x && ep->y == next->y
                && (ep->bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED))
                && (!(ep->bstate & BUTTON1_PRESSED)
            if (ep->x == next->x && ep->y == next->y
                && (ep->bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED))
                && (!(ep->bstate & BUTTON1_PRESSED)
@@ -720,7 +720,7 @@ _nc_mouse_parse(int runcount)
        MEVENT *follower;
 
        merge = FALSE;
        MEVENT *follower;
 
        merge = FALSE;
-       for (ep = runp; next = NEXT(ep), next != eventp; ep = next)
+       for (ep = runp; (next = NEXT(ep)) != eventp; ep = next)
            if (ep->id != INVALID_EVENT) {
                if (next->id != INVALID_EVENT)
                    continue;
            if (ep->id != INVALID_EVENT) {
                if (next->id != INVALID_EVENT)
                    continue;
@@ -863,7 +863,7 @@ _nc_mouse_resume(SCREEN * sp GCC_UNUSED)
  *
  **************************************************************************/
 
  *
  **************************************************************************/
 
-int
+NCURSES_EXPORT(int)
 getmouse(MEVENT * aevent)
 /* grab a copy of the current mouse event */
 {
 getmouse(MEVENT * aevent)
 /* grab a copy of the current mouse event */
 {
@@ -886,10 +886,12 @@ getmouse(MEVENT * aevent)
     returnCode(ERR);
 }
 
     returnCode(ERR);
 }
 
-int
+NCURSES_EXPORT(int)
 ungetmouse(MEVENT * aevent)
 /* enqueue a synthesized mouse event to be seen by the next wgetch() */
 {
 ungetmouse(MEVENT * aevent)
 /* enqueue a synthesized mouse event to be seen by the next wgetch() */
 {
+    T((T_CALLED("ungetmouse(%p)"), aevent));
+
     /* stick the given event in the next-free slot */
     *eventp = *aevent;
 
     /* stick the given event in the next-free slot */
     *eventp = *aevent;
 
@@ -897,10 +899,10 @@ ungetmouse(MEVENT * aevent)
     eventp = NEXT(eventp);
 
     /* push back the notification event on the keyboard queue */
     eventp = NEXT(eventp);
 
     /* push back the notification event on the keyboard queue */
-    return ungetch(KEY_MOUSE);
+    returnCode(ungetch(KEY_MOUSE));
 }
 
 }
 
-mmask_t
+NCURSES_EXPORT(mmask_t)
 mousemask(mmask_t newmask, mmask_t * oldmask)
 /* set the mouse event mask */
 {
 mousemask(mmask_t newmask, mmask_t * oldmask)
 /* set the mouse event mask */
 {
@@ -912,7 +914,7 @@ mousemask(mmask_t newmask, mmask_t * oldmask)
        *oldmask = eventmask;
 
     if (!newmask && !initialized)
        *oldmask = eventmask;
 
     if (!newmask && !initialized)
-       returnCode(0);
+       returnBits(0);
 
     _nc_mouse_init();
     if (mousetype != M_NONE) {
 
     _nc_mouse_init();
     if (mousetype != M_NONE) {
@@ -930,29 +932,35 @@ mousemask(mmask_t newmask, mmask_t * oldmask)
        result = eventmask;
     }
 
        result = eventmask;
     }
 
-    returnCode(result);
+    returnBits(result);
 }
 
 }
 
-bool
+NCURSES_EXPORT(bool)
 wenclose(const WINDOW *win, int y, int x)
 /* check to see if given window encloses given screen location */
 {
 wenclose(const WINDOW *win, int y, int x)
 /* check to see if given window encloses given screen location */
 {
-    if (win) {
+    bool result = FALSE;
+
+    T((T_CALLED("wenclose(%p,%d,%d)"), win, y, x));
+
+    if (win != 0) {
        y -= win->_yoffset;
        y -= win->_yoffset;
-       return ((win->_begy <= y &&
-                win->_begx <= x &&
-                (win->_begx + win->_maxx) >= x &&
-                (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
+       result = ((win->_begy <= y &&
+                  win->_begx <= x &&
+                  (win->_begx + win->_maxx) >= x &&
+                  (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
     }
     }
-    return FALSE;
+    returnBool(result);
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 mouseinterval(int maxclick)
 /* set the maximum mouse interval within which to recognize a click */
 {
     int oldval;
 
 mouseinterval(int maxclick)
 /* set the maximum mouse interval within which to recognize a click */
 {
     int oldval;
 
+    T((T_CALLED("mouseinterval(%d)"), maxclick));
+
     if (SP != 0) {
        oldval = SP->_maxclick;
        if (maxclick >= 0)
     if (SP != 0) {
        oldval = SP->_maxclick;
        if (maxclick >= 0)
@@ -961,22 +969,24 @@ mouseinterval(int maxclick)
        oldval = DEFAULT_MAXCLICK;
     }
 
        oldval = DEFAULT_MAXCLICK;
     }
 
-    return (oldval);
+    returnCode(oldval);
 }
 
 /* This may be used by other routines to ask for the existence of mouse
    support */
 }
 
 /* This may be used by other routines to ask for the existence of mouse
    support */
-int
+NCURSES_EXPORT(int)
 _nc_has_mouse(void)
 {
     return (mousetype == M_NONE ? 0 : 1);
 }
 
 _nc_has_mouse(void)
 {
     return (mousetype == M_NONE ? 0 : 1);
 }
 
-bool
+NCURSES_EXPORT(bool)
 wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
 {
     bool result = FALSE;
 
 wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
 {
     bool result = FALSE;
 
+    T((T_CALLED("wmouse_trafo(%p,%p,%p,%d)"), win, pY, pX, to_screen));
+
     if (win && pY && pX) {
        int y = *pY;
        int x = *pX;
     if (win && pY && pX) {
        int y = *pY;
        int x = *pX;
@@ -998,7 +1008,7 @@ wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
            *pY = y;
        }
     }
            *pY = y;
        }
     }
-    return (result);
+    returnBool(result);
 }
 
 /* lib_mouse.c ends here */
 }
 
 /* lib_mouse.c ends here */
index 68415d6e620d953e42b84d54d154900c4fce0b3a..e917eb78052563a744512279fa7cce2818a8b6d3 100644 (file)
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_move.c,v 1.9 2000/04/29 21:11:19 tom Exp $")
+MODULE_ID("$Id: lib_move.c,v 1.11 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wmove(WINDOW *win, int y, int x)
 {
     T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
 wmove(WINDOW *win, int y, int x)
 {
     T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
index 9774d9f58dfe8a45f7bb125001e3eb155a35acc0..63d54ccda57429a43a1387c81d2ffc3eb4773fa6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,8 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 /*
 **     lib_mvwin.c
 **
 /*
 **     lib_mvwin.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_mvwin.c,v 1.7 1998/02/11 12:13:55 tom Exp $")
+MODULE_ID("$Id: lib_mvwin.c,v 1.12 2001/12/19 01:06:22 tom Exp $")
 
 
-int mvwin(WINDOW *win, int by, int bx)
+NCURSES_EXPORT(int)
+mvwin(WINDOW *win, int by, int bx)
 {
 {
-       T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx));
+    T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx));
 
 
-       if (!win || (win->_flags & _ISPAD))
-           returnCode(ERR);
+    if (!win || (win->_flags & _ISPAD))
+       returnCode(ERR);
 
 
-       /* Copying subwindows is allowed, but it is expensive... */
-       if (win->_flags & _SUBWIN) {
-         int err = ERR;
-         WINDOW *parent = win->_parent;
-         if (parent)
-           { /* Now comes the complicated and costly part, you should really
-              * try to avoid to move subwindows. Because a subwindow shares
-              * the text buffers with its parent, one can't do a simple
-              * memmove of the text buffers. One has to create a copy, then
-              * to relocate the subwindow and then to do a copy.
-              */
-             if ((by - parent->_begy == win->_pary) &&
-                 (bx - parent->_begx == win->_parx))
-               err=OK; /* we don't actually move */
-             else {
-               WINDOW* clone = dupwin(win);  
+    /* Copying subwindows is allowed, but it is expensive... */
+    if (win->_flags & _SUBWIN) {
+       int err = ERR;
+       WINDOW *parent = win->_parent;
+       if (parent) {           /* Now comes the complicated and costly part, you should really
+                                * try to avoid to move subwindows. Because a subwindow shares
+                                * the text buffers with its parent, one can't do a simple
+                                * memmove of the text buffers. One has to create a copy, then
+                                * to relocate the subwindow and then to do a copy.
+                                */
+           if ((by - parent->_begy == win->_pary) &&
+               (bx - parent->_begx == win->_parx))
+               err = OK;       /* we don't actually move */
+           else {
+               WINDOW *clone = dupwin(win);
                if (clone) {
                if (clone) {
-                 /* now we have the clone, so relocate win */
-                 
-                 werase(win);             /* Erase the original place     */
-                 wbkgd(win,parent->_bkgd);/* fill with parents background */
-                 wsyncup(win);            /* Tell the parent(s)           */
-                 
-                 err = mvderwin(win,                   
-                                by - parent->_begy,
-                                bx - parent->_begx);
-                 if (err!=ERR) {
-                   err = copywin(clone,win,
-                                 0, 0, 0, 0, win->_maxy, win->_maxx, 0);
-                   if (ERR!=err)
-                     wsyncup(win);
-                 }
-                 if (ERR==delwin(clone))
-                   err=ERR;
+                   /* now we have the clone, so relocate win */
+
+                   werase(win);        /* Erase the original place     */
+                   /* fill with parents background */
+                   wbkgrnd(win, CHREF(parent->_nc_bkgd));
+                   wsyncup(win);       /* Tell the parent(s)           */
+
+                   err = mvderwin(win,
+                                  by - parent->_begy,
+                                  bx - parent->_begx);
+                   if (err != ERR) {
+                       err = copywin(clone, win,
+                                     0, 0, 0, 0, win->_maxy, win->_maxx, 0);
+                       if (ERR != err)
+                           wsyncup(win);
+                   }
+                   if (ERR == delwin(clone))
+                       err = ERR;
                }
                }
-             }
            }
            }
-         returnCode(err);
        }
        }
+       returnCode(err);
+    }
 
 
-       if (by + win->_maxy > screen_lines - 1
-       ||  bx + win->_maxx > screen_columns - 1
-       ||  by < 0
-       ||  bx < 0)
-           returnCode(ERR);
+    if (by + win->_maxy > screen_lines - 1
+       || bx + win->_maxx > screen_columns - 1
+       || by < 0
+       || bx < 0)
+       returnCode(ERR);
 
 
-       /*
-        * Whether or not the window is moved, touch the window's contents so
-        * that a following call to 'wrefresh()' will paint the window at the
-        * new location.  This ensures that if the caller has refreshed another
-        * window at the same location, that this one will be displayed.
-        */     
-       win->_begy = by;
-       win->_begx = bx;
-       returnCode(touchwin(win));
+    /*
+     * Whether or not the window is moved, touch the window's contents so
+     * that a following call to 'wrefresh()' will paint the window at the
+     * new location.  This ensures that if the caller has refreshed another
+     * window at the same location, that this one will be displayed.
+     */
+    win->_begy = by;
+    win->_begx = bx;
+    returnCode(touchwin(win));
 }
 }
index 7da4069b5b8505271bc6380ce51f33911de7b501..8d6dd97e001cc38a7693f8be43d53263fc57f5d1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -47,7 +47,7 @@
 #include <term.h>              /* clear_screen, cup & friends, cur_term */
 #include <tic.h>
 
 #include <term.h>              /* clear_screen, cup & friends, cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.48 2000/09/02 18:11:42 tom Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.56 2002/10/12 15:24:08 tom Exp $")
 
 #ifndef ONLCR                  /* Allows compilation under the QNX 4.2 OS */
 #define ONLCR 0
 
 #ifndef ONLCR                  /* Allows compilation under the QNX 4.2 OS */
 #define ONLCR 0
@@ -64,18 +64,25 @@ MODULE_ID("$Id: lib_newterm.c,v 1.48 2000/09/02 18:11:42 tom Exp $")
 static inline int
 _nc_initscr(void)
 {
 static inline int
 _nc_initscr(void)
 {
+    int result = ERR;
+
     /* for extended XPG4 conformance requires cbreak() at this point */
     /* (SVr4 curses does this anyway) */
     /* for extended XPG4 conformance requires cbreak() at this point */
     /* (SVr4 curses does this anyway) */
-    cbreak();
+    if (cbreak() == OK) {
+       TTY buf;
 
 
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    cur_term->Nttyb.c_lflag &= ~(ECHO | ECHONL);
-    cur_term->Nttyb.c_iflag &= ~(ICRNL | INLCR | IGNCR);
-    cur_term->Nttyb.c_oflag &= ~(ONLCR);
+       buf.c_lflag &= ~(ECHO | ECHONL);
+       buf.c_iflag &= ~(ICRNL | INLCR | IGNCR);
+       buf.c_oflag &= ~(ONLCR);
 #else
 #else
-    cur_term->Nttyb.sg_flags &= ~(ECHO | CRMOD);
+       buf.sg_flags &= ~(ECHO | CRMOD);
 #endif
 #endif
-    return _nc_set_tty_mode(&cur_term->Nttyb);
+       if ((result = _nc_set_tty_mode(&buf)) == OK)
+           cur_term->Nttyb = buf;
+    }
+    return result;
 }
 
 /*
 }
 
 /*
@@ -86,30 +93,27 @@ _nc_initscr(void)
  */
 static int filter_mode = FALSE;
 
  */
 static int filter_mode = FALSE;
 
-void
+NCURSES_EXPORT(void)
 filter(void)
 {
 filter(void)
 {
+    T((T_CALLED("filter")));
     filter_mode = TRUE;
     filter_mode = TRUE;
+    returnVoid;
 }
 
 }
 
-SCREEN *
+NCURSES_EXPORT(SCREEN *)
 newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
 {
     int errret;
     int slk_format = _nc_slk_format;
     SCREEN *current;
 newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
 {
     int errret;
     int slk_format = _nc_slk_format;
     SCREEN *current;
-#ifdef TRACE
-    int t = _nc_getenv_num("NCURSES_TRACE");
-
-    if (t >= 0)
-       trace(t);
-#endif
 
 
+    START_TRACE();
     T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
 
     /* this loads the capability entry, then sets LINES and COLS */
     if (setupterm(name, fileno(ofp), &errret) == ERR)
     T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
 
     /* this loads the capability entry, then sets LINES and COLS */
     if (setupterm(name, fileno(ofp), &errret) == ERR)
-       return 0;
+       returnSP(0);
 
     /* implement filter mode */
     if (filter_mode) {
 
     /* implement filter mode */
     if (filter_mode) {
@@ -138,8 +142,8 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
     if (num_labels <= 0 || !SLK_STDFMT(slk_format))
        if (slk_format) {
            if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
     if (num_labels <= 0 || !SLK_STDFMT(slk_format))
        if (slk_format) {
            if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
-                   _nc_slk_initialize))
-               return 0;
+                                     _nc_slk_initialize))
+               returnSP(0);
        }
     /* this actually allocates the screen structure, and saves the
      * original terminal settings.
        }
     /* this actually allocates the screen structure, and saves the
      * original terminal settings.
@@ -148,7 +152,7 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
     _nc_set_screen(0);
     if (_nc_setupscreen(LINES, COLS, ofp) == ERR) {
        _nc_set_screen(current);
     _nc_set_screen(0);
     if (_nc_setupscreen(LINES, COLS, ofp) == ERR) {
        _nc_set_screen(current);
-       return 0;
+       returnSP(0);
     }
 
     /* if the terminal type has real soft labels, set those up */
     }
 
     /* if the terminal type has real soft labels, set those up */
@@ -156,11 +160,10 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
        _nc_slk_initialize(stdscr, COLS);
 
     SP->_ifd = fileno(ifp);
        _nc_slk_initialize(stdscr, COLS);
 
     SP->_ifd = fileno(ifp);
-    SP->_checkfd = fileno(ifp);
     typeahead(fileno(ifp));
 #ifdef TERMIOS
     SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 &&
     typeahead(fileno(ifp));
 #ifdef TERMIOS
     SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 &&
-       !(cur_term->Ottyb.c_iflag & ISTRIP));
+                    !(cur_term->Ottyb.c_iflag & ISTRIP));
 #else
     SP->_use_meta = FALSE;
 #endif
 #else
     SP->_use_meta = FALSE;
 #endif
@@ -171,8 +174,8 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
      * will be useless.
      */
     SP->_scrolling = ((scroll_forward && scroll_reverse) ||
      * will be useless.
      */
     SP->_scrolling = ((scroll_forward && scroll_reverse) ||
-       ((parm_rindex || parm_insert_line || insert_line) &&
-           (parm_index || parm_delete_line || delete_line)));
+                     ((parm_rindex || parm_insert_line || insert_line) &&
+                      (parm_index || parm_delete_line || delete_line)));
 
     baudrate();                        /* sets a field in the SP structure */
 
 
     baudrate();                        /* sets a field in the SP structure */
 
@@ -191,26 +194,6 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
     SP->_use_rmso = SGR0_TEST(exit_standout_mode);
     SP->_use_rmul = SGR0_TEST(exit_underline_mode);
 
     SP->_use_rmso = SGR0_TEST(exit_standout_mode);
     SP->_use_rmul = SGR0_TEST(exit_underline_mode);
 
-#if USE_WIDEC_SUPPORT
-    /*
-     * XFree86 xterm can be configured to support UTF-8 based on environment
-     * variable settings.
-     */
-    {
-       char *s;
-       s = getenv("LC_ALL");
-       if (s == NULL || *s == '\0') {
-           s = getenv("LC_CTYPE");
-           if (s == NULL || *s == '\0') {
-               s = getenv("LANG");
-           }
-       }
-       if (s != NULL && *s != '\0' && strstr(s, "UTF-8") != NULL) {
-           SP->_outch = _nc_utf8_outch;
-       }
-    }
-#endif
-
     /* compute movement costs so we can do better move optimization */
     _nc_mvcur_init();
 
     /* compute movement costs so we can do better move optimization */
     _nc_mvcur_init();
 
@@ -222,6 +205,5 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
 
     _nc_signal_handler(TRUE);
 
 
     _nc_signal_handler(TRUE);
 
-    T((T_RETURN("%p"), SP));
-    return (SP);
+    returnSP(SP);
 }
 }
index ececa58a314d9aac87afa82d66a67bc9587cd358..aa8959ca3243385af71e5559967bfeff261f48aa 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_newwin.c,v 1.24 2000/04/29 18:49:51 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.34 2002/08/18 00:12:30 tom Exp $")
 
 
-void
+static WINDOW *
+remove_window_from_screen(WINDOW *win)
+{
+    SCREEN **scan = &_nc_screen_chain;
+
+    while (*scan) {
+       SCREEN *sp = *scan;
+       if (sp->_curscr == win) {
+           sp->_curscr = 0;
+           if (win == curscr)
+               curscr = 0;
+       } else if (sp->_stdscr == win) {
+           sp->_stdscr = 0;
+           if (win == stdscr)
+               stdscr = 0;
+       } else if (sp->_newscr == win) {
+           sp->_newscr = 0;
+           if (win == newscr)
+               newscr = 0;
+       } else {
+           scan = &(*scan)->_next_screen;
+           continue;
+       }
+       break;
+    }
+
+    return 0;
+}
+
+NCURSES_EXPORT(int)
 _nc_freewin(WINDOW *win)
 {
     WINDOWLIST *p, *q;
     int i;
 _nc_freewin(WINDOW *win)
 {
     WINDOWLIST *p, *q;
     int i;
+    int result = ERR;
 
     if (win != 0) {
        for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) {
 
     if (win != 0) {
        for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) {
-           if (p->win == win) {
+           if (&(p->win) == win) {
+               remove_window_from_screen(win);
                if (q == 0)
                    _nc_windows = p->next;
                else
                    q->next = p->next;
                if (q == 0)
                    _nc_windows = p->next;
                else
                    q->next = p->next;
-               free(p);
 
                if (!(win->_flags & _SUBWIN)) {
                    for (i = 0; i <= win->_maxy; i++)
                        FreeIfNeeded(win->_line[i].text);
                }
                free(win->_line);
 
                if (!(win->_flags & _SUBWIN)) {
                    for (i = 0; i <= win->_maxy; i++)
                        FreeIfNeeded(win->_line[i].text);
                }
                free(win->_line);
-               free(win);
-
-               if (win == curscr)
-                   curscr = 0;
-               if (win == stdscr)
-                   stdscr = 0;
-               if (win == newscr)
-                   newscr = 0;
+               free(p);
 
 
+               result = OK;
                T(("...deleted win=%p", win));
                break;
            }
        }
     }
                T(("...deleted win=%p", win));
                break;
            }
        }
     }
+    return result;
 }
 
 }
 
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 newwin(int num_lines, int num_columns, int begy, int begx)
 {
     WINDOW *win;
 newwin(int num_lines, int num_columns, int begy, int begx)
 {
     WINDOW *win;
-    chtype *ptr;
+    NCURSES_CH_T *ptr;
     int i;
 
     T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
     int i;
 
     T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
@@ -102,22 +127,21 @@ newwin(int num_lines, int num_columns, int begy, int begx)
        returnWin(0);
 
     for (i = 0; i < num_lines; i++) {
        returnWin(0);
 
     for (i = 0; i < num_lines; i++) {
-       win->_line[i].text = typeCalloc(chtype, (unsigned) num_columns);
+       win->_line[i].text = typeCalloc(NCURSES_CH_T, (unsigned) num_columns);
        if (win->_line[i].text == 0) {
        if (win->_line[i].text == 0) {
-           _nc_freewin(win);
+           (void) _nc_freewin(win);
            returnWin(0);
        }
            returnWin(0);
        }
-       for (ptr = win->_line[i].text; ptr < win->_line[i].text +
-           num_columns;)
-           *ptr++ = ' ';
+       for (ptr = win->_line[i].text;
+            ptr < win->_line[i].text + num_columns;
+            ptr++)
+           SetChar(*ptr, BLANK_TEXT, BLANK_ATTR);
     }
 
     }
 
-    T(("newwin: returned window is %p", win));
-
     returnWin(win);
 }
 
     returnWin(win);
 }
 
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
 {
     WINDOW *win;
 derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
 {
     WINDOW *win;
@@ -125,10 +149,10 @@ derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
     int flags = _SUBWIN;
 
     T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns,
     int flags = _SUBWIN;
 
     T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns,
-           begy, begx));
+       begy, begx));
 
     /*
 
     /*
-       ** make sure window fits inside the original one
+     * make sure window fits inside the original one
      */
     if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0)
        returnWin(0);
      */
     if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0)
        returnWin(0);
@@ -146,25 +170,23 @@ derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
        flags |= _ISPAD;
 
     if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy,
        flags |= _ISPAD;
 
     if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy,
-               orig->_begx + begx, flags)) == 0)
+                          orig->_begx + begx, flags)) == 0)
        returnWin(0);
 
     win->_pary = begy;
     win->_parx = begx;
     win->_attrs = orig->_attrs;
        returnWin(0);
 
     win->_pary = begy;
     win->_parx = begx;
     win->_attrs = orig->_attrs;
-    win->_bkgd = orig->_bkgd;
+    win->_nc_bkgd = orig->_nc_bkgd;
 
     for (i = 0; i < num_lines; i++)
        win->_line[i].text = &orig->_line[begy++].text[begx];
 
     win->_parent = orig;
 
 
     for (i = 0; i < num_lines; i++)
        win->_line[i].text = &orig->_line[begy++].text[begx];
 
     win->_parent = orig;
 
-    T(("derwin: returned window is %p", win));
-
     returnWin(win);
 }
 
     returnWin(win);
 }
 
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 subwin(WINDOW *w, int l, int c, int y, int x)
 {
     T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), w, l, c, y, x));
 subwin(WINDOW *w, int l, int c, int y, int x)
 {
     T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), w, l, c, y, x));
@@ -180,7 +202,7 @@ dimension_limit(int value)
     return (test == value && value > 0);
 }
 
     return (test == value && value > 0);
 }
 
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
 {
     int i;
 _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
 {
     int i;
@@ -196,8 +218,7 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
     if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
        return 0;
 
     if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
        return 0;
 
-    if ((win = typeCalloc(WINDOW, 1)) == 0)
-         return 0;
+    win = &(wp->win);
 
     if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
        free(win);
 
     if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
        free(win);
@@ -214,10 +235,10 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
 
     win->_flags = flags;
     win->_attrs = A_NORMAL;
 
     win->_flags = flags;
     win->_attrs = A_NORMAL;
-    win->_bkgd = BLANK;
+    SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR);
 
 
-    win->_clear = is_pad ? FALSE : (num_lines == screen_lines && num_columns
-       == screen_columns);
+    win->_clear = is_pad ? FALSE : (num_lines == screen_lines
+                                   && num_columns == screen_columns);
     win->_idlok = FALSE;
     win->_idcok = TRUE;
     win->_scroll = FALSE;
     win->_idlok = FALSE;
     win->_idcok = TRUE;
     win->_scroll = FALSE;
@@ -277,7 +298,6 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
     }
 
     wp->next = _nc_windows;
     }
 
     wp->next = _nc_windows;
-    wp->win = win;
     _nc_windows = wp;
 
     T((T_CREATE("window %p"), win));
     _nc_windows = wp;
 
     T((T_CREATE("window %p"), win));
index bfaffdefda5a627d606bdfad85ce86ec423cd7c6..32515da0be816c0cfde8335dba321e59c4046bf9 100644 (file)
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_nl.c,v 1.6 2000/02/13 00:59:39 tom Exp $")
+MODULE_ID("$Id: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $")
 
 #ifdef __EMX__
 #include <io.h>
 #endif
 
 
 #ifdef __EMX__
 #include <io.h>
 #endif
 
-int
+NCURSES_EXPORT(int)
 nl(void)
 {
     T((T_CALLED("nl()")));
 nl(void)
 {
     T((T_CALLED("nl()")));
@@ -63,7 +63,7 @@ nl(void)
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-int
+NCURSES_EXPORT(int)
 nonl(void)
 {
     T((T_CALLED("nonl()")));
 nonl(void)
 {
     T((T_CALLED("nonl()")));
index db2dce1b79f6de3d917aa036e20144e8dbf24dbb..7840b45036e0968e5c9d96ca62cf0cdc3e255357 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_overlay.c
 **
 /*
 **     lib_overlay.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_overlay.c,v 1.12 1998/02/11 12:13:59 tom Exp $")
+MODULE_ID("$Id: lib_overlay.c,v 1.21 2002/09/21 23:03:32 tom Exp $")
 
 
-static int overlap(const WINDOW *const s, WINDOW *const d, int const flag)
+static int
+overlap(const WINDOW *const s, WINDOW *const d, int const flag)
 {
 {
-int sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol;
-
-       T(("overlap : sby %d, sbx %d, smy %d, smx %d, dby %d, dbx %d, dmy %d, dmx %d",
-               s->_begy, s->_begx, s->_maxy, s->_maxx,
-               d->_begy, d->_begx, d->_maxy, d->_maxx));
-       
-       if (!s || !d)
-               returnCode(ERR);
-
-       sminrow = max(s->_begy, d->_begy) - s->_begy;
-       smincol = max(s->_begx, d->_begx) - s->_begx;
-       dminrow = max(s->_begy, d->_begy) - d->_begy;
-       dmincol = max(s->_begx, d->_begx) - d->_begx;
-       dmaxrow = min(s->_maxy+s->_begy, d->_maxy+d->_begy) - d->_begy;
-       dmaxcol = min(s->_maxx+s->_begx, d->_maxx+d->_begx) - d->_begx;
-
-       return(copywin(s, d,
-                      sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol,
-                      flag));
+    int sx1, sy1, sx2, sy2;
+    int dx1, dy1, dx2, dy2;
+    int sminrow, smincol;
+    int dminrow, dmincol;
+    int dmaxrow, dmaxcol;
+
+    T((T_CALLED("overlap(%p,%p,%d)"), s, d, flag));
+
+    if (s == 0 || d == 0) {
+       returnCode(ERR);
+    } else {
+       T(("src : begy %d, begx %d, maxy %d, maxx %d",
+          s->_begy, s->_begx, s->_maxy, s->_maxx));
+       T(("dst : begy %d, begx %d, maxy %d, maxx %d",
+          d->_begy, d->_begx, d->_maxy, d->_maxx));
+
+       sx1 = s->_begx;
+       sy1 = s->_begy;
+       sx2 = sx1 + s->_maxx;
+       sy2 = sy1 + s->_maxy;
+
+       dx1 = d->_begx;
+       dy1 = d->_begy;
+       dx2 = dx1 + d->_maxx;
+       dy2 = dy1 + d->_maxy;
+
+       if (dx2 < sx1 || dx1 > sx2 || dy2 < sy1 || dy1 > sy2) {
+           returnCode(ERR);    /* No intersection */
+       } else {
+           sminrow = max(sy1, dy1) - sy1;
+           smincol = max(sx1, dx1) - sx1;
+           dminrow = max(sy1, dy1) - dy1;
+           dmincol = max(sx1, dx1) - dx1;
+           dmaxrow = min(sy2, dy2) - dy1;
+           dmaxcol = min(sx2, dx2) - dx1;
+
+           returnCode(copywin(s, d,
+                              sminrow, smincol,
+                              dminrow, dmincol,
+                              dmaxrow, dmaxcol,
+                              flag));
+       }
+    }
 }
 
 /*
 }
 
 /*
@@ -76,10 +100,11 @@ int sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol;
 **
 **/
 
 **
 **/
 
-int overlay(const WINDOW *win1, WINDOW *win2)
+NCURSES_EXPORT(int)
+overlay(const WINDOW *win1, WINDOW *win2)
 {
 {
-       T((T_CALLED("overlay(%p,%p)"), win1, win2));
-       returnCode(overlap(win1, win2, TRUE));
+    T((T_CALLED("overlay(%p,%p)"), win1, win2));
+    returnCode(overlap(win1, win2, TRUE));
 }
 
 /*
 }
 
 /*
@@ -92,70 +117,68 @@ int overlay(const WINDOW *win1, WINDOW *win2)
 **
 **/
 
 **
 **/
 
-int overwrite(const WINDOW *win1, WINDOW *win2)
+NCURSES_EXPORT(int)
+overwrite(const WINDOW *win1, WINDOW *win2)
 {
 {
-       T((T_CALLED("overwrite(%p,%p)"), win1, win2));
-       returnCode(overlap(win1, win2, FALSE));
+    T((T_CALLED("overwrite(%p,%p)"), win1, win2));
+    returnCode(overlap(win1, win2, FALSE));
 }
 
 }
 
-int copywin(const WINDOW *src, WINDOW *dst,
+NCURSES_EXPORT(int)
+copywin(const WINDOW *src, WINDOW *dst,
        int sminrow, int smincol,
        int sminrow, int smincol,
-       int dminrow, int dmincol, int dmaxrow, int dmaxcol,
+       int dminrow, int dmincol,
+       int dmaxrow, int dmaxcol,
        int over)
 {
        int over)
 {
-int sx, sy, dx, dy;
-bool touched;
-chtype bk = AttrOf(dst->_bkgd);
-chtype mask = ~(chtype)((bk&A_COLOR) ? A_COLOR : 0);
-
-       T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"),
-               src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
-
-       if (!src || !dst)
-         returnCode(ERR);
-
-       /* make sure rectangle exists in source */
-       if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) ||
-           (smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {
-               returnCode(ERR);
+    int sx, sy, dx, dy;
+    bool touched;
+    attr_t bk = AttrOf(dst->_nc_bkgd);
+    attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
+
+    T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"),
+       src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
+
+    if (!src || !dst)
+       returnCode(ERR);
+
+    /* make sure rectangle exists in source */
+    if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) ||
+       (smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {
+       returnCode(ERR);
+    }
+
+    T(("rectangle exists in source"));
+
+    /* make sure rectangle fits in destination */
+    if (dmaxrow > dst->_maxy || dmaxcol > dst->_maxx) {
+       returnCode(ERR);
+    }
+
+    T(("rectangle fits in destination"));
+
+    for (dy = dminrow, sy = sminrow; dy <= dmaxrow; sy++, dy++) {
+       touched = FALSE;
+       for (dx = dmincol, sx = smincol; dx <= dmaxcol; sx++, dx++) {
+           if (over) {
+               if ((CharOf(src->_line[sy].text[sx]) != L(' ')) &&
+                   (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx]))) {
+                   dst->_line[dy].text[dx] = src->_line[sy].text[sx];
+                   SetAttr(dst->_line[dy].text[dx],
+                           (AttrOf(src->_line[sy].text[sx]) & mask) | bk);
+                   touched = TRUE;
+               }
+           } else {
+               if (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx])) {
+                   dst->_line[dy].text[dx] = src->_line[sy].text[sx];
+                   touched = TRUE;
+               }
+           }
        }
        }
-
-       T(("rectangle exists in source"));
-
-       /* make sure rectangle fits in destination */
-       if (dmaxrow > dst->_maxy || dmaxcol > dst->_maxx) {
-               returnCode(ERR);
-       }
-
-       T(("rectangle fits in destination"));
-
-       for (dy = dminrow, sy = sminrow; dy <= dmaxrow; sy++, dy++) {
-          touched = FALSE;
-          for(dx=dmincol, sx=smincol; dx <= dmaxcol; sx++, dx++)
-          {
-               if (over)
-               {
-                  if ((TextOf(src->_line[sy].text[sx]) != ' ') &&
-                       (dst->_line[dy].text[dx]!=src->_line[sy].text[sx]))
-                  {
-                       dst->_line[dy].text[dx] =
-                                       (src->_line[sy].text[sx] & mask) | bk;
-                       touched = TRUE;
-                  }
-               }
-               else {
-                  if (dst->_line[dy].text[dx] != src->_line[sy].text[sx])
-                  {
-                       dst->_line[dy].text[dx] = src->_line[sy].text[sx];
-                       touched = TRUE;
-                   }
-                }
-           }
-          if (touched)
-          {
-             touchline(dst,0,getmaxy(dst));
-          }
+       if (touched) {
+           touchline(dst, dminrow, (dmaxrow - dminrow + 1));
        }
        }
-       T(("finished copywin"));
-       returnCode(OK);
+    }
+    T(("finished copywin"));
+    returnCode(OK);
 }
 }
index af7dd3b501945d9760bace4bcab7fcc955477103..97b2d357acbe5785d895f4c5cf9605a45a67a03f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_pad.c,v 1.29 2000/04/29 21:19:44 tom Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.38 2002/08/03 23:29:26 Philippe.Blain Exp $")
 
 
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 newpad(int l, int c)
 {
     WINDOW *win;
 newpad(int l, int c)
 {
     WINDOW *win;
-    chtype *ptr;
+    NCURSES_CH_T *ptr;
     int i;
 
     T((T_CALLED("newpad(%d, %d)"), l, c));
     int i;
 
     T((T_CALLED("newpad(%d, %d)"), l, c));
@@ -59,19 +59,20 @@ newpad(int l, int c)
 
     for (i = 0; i < l; i++) {
        if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX);
 
     for (i = 0; i < l; i++) {
        if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX);
-       if ((win->_line[i].text = typeCalloc(chtype, ((size_t) c))) == 0) {
-           _nc_freewin(win);
+       if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == 0) {
+           (void) _nc_freewin(win);
            returnWin(0);
        }
            returnWin(0);
        }
-       for (ptr = win->_line[i].text; ptr < win->_line[i].text + c;)
-           *ptr++ = ' ';
+       for (ptr = win->_line[i].text; ptr < win->_line[i].text + c; ptr++)
+           SetChar(*ptr, BLANK_TEXT, BLANK_ATTR);
     }
 
     returnWin(win);
 }
 
     }
 
     returnWin(win);
 }
 
-WINDOW *
-subpad(WINDOW *orig, int l, int c, int begy, int begx)
+NCURSES_EXPORT(WINDOW *)
+subpad
+(WINDOW *orig, int l, int c, int begy, int begx)
 {
     WINDOW *win = (WINDOW *) 0;
 
 {
     WINDOW *win = (WINDOW *) 0;
 
@@ -85,33 +86,38 @@ subpad(WINDOW *orig, int l, int c, int begy, int begx)
     returnWin(win);
 }
 
     returnWin(win);
 }
 
-int
-prefresh(WINDOW *win, int pminrow, int pmincol,
-    int sminrow, int smincol, int smaxrow, int smaxcol)
+NCURSES_EXPORT(int)
+prefresh
+(WINDOW *win, int pminrow, int pmincol,
+ int sminrow, int smincol, int smaxrow, int smaxcol)
 {
     T((T_CALLED("prefresh()")));
     if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow,
 {
     T((T_CALLED("prefresh()")));
     if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow,
-           smaxcol) != ERR
+                    smaxcol) != ERR
        && doupdate() != ERR) {
        returnCode(OK);
     }
     returnCode(ERR);
 }
 
        && doupdate() != ERR) {
        returnCode(OK);
     }
     returnCode(ERR);
 }
 
-int
-pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
-    int sminrow, int smincol, int smaxrow, int smaxcol)
+NCURSES_EXPORT(int)
+pnoutrefresh
+(WINDOW *win, int pminrow, int pmincol,
+ int sminrow, int smincol, int smaxrow, int smaxcol)
 {
 {
-    const int my_len = 2;      /* parameterize the threshold for hardscroll */
     NCURSES_SIZE_T i, j;
     NCURSES_SIZE_T m, n;
     NCURSES_SIZE_T pmaxrow;
     NCURSES_SIZE_T pmaxcol;
     NCURSES_SIZE_T i, j;
     NCURSES_SIZE_T m, n;
     NCURSES_SIZE_T pmaxrow;
     NCURSES_SIZE_T pmaxcol;
+
+#if USE_SCROLL_HINTS
+    const int my_len = 2;      /* parameterize the threshold for hardscroll */
     NCURSES_SIZE_T displaced;
     bool wide;
     NCURSES_SIZE_T displaced;
     bool wide;
+#endif
 
     T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"),
 
     T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"),
-           win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
+       win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
 
     if (win == 0)
        returnCode(ERR);
 
     if (win == 0)
        returnCode(ERR);
@@ -147,20 +153,22 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
        pmaxcol = pmincol + smaxcol - smincol;
     }
 
        pmaxcol = pmincol + smaxcol - smincol;
     }
 
-    if (smaxrow > screen_lines
-       || smaxcol > screen_columns
+    if (smaxrow >= screen_lines
+       || smaxcol >= screen_columns
        || sminrow > smaxrow
        || smincol > smaxcol)
        returnCode(ERR);
 
     T(("pad being refreshed"));
 
        || sminrow > smaxrow
        || smincol > smaxcol)
        returnCode(ERR);
 
     T(("pad being refreshed"));
 
+#if USE_SCROLL_HINTS
     if (win->_pad._pad_y >= 0) {
        displaced = pminrow - win->_pad._pad_y
            - (sminrow - win->_pad._pad_top);
        T(("pad being shifted by %d line(s)", displaced));
     } else
        displaced = 0;
     if (win->_pad._pad_y >= 0) {
        displaced = pminrow - win->_pad._pad_y
            - (sminrow - win->_pad._pad_top);
        T(("pad being shifted by %d line(s)", displaced));
     } else
        displaced = 0;
+#endif
 
     /*
      * For pure efficiency, we'd want to transfer scrolling information
 
     /*
      * For pure efficiency, we'd want to transfer scrolling information
@@ -176,17 +184,30 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
      * windows).  Note that changing this formula will not break any code,
      * merely change the costs of various update cases.
      */
      * windows).  Note that changing this formula will not break any code,
      * merely change the costs of various update cases.
      */
+#if USE_SCROLL_HINTS
     wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len));
     wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len));
+#endif
 
     for (i = pminrow, m = sminrow + win->_yoffset;
 
     for (i = pminrow, m = sminrow + win->_yoffset;
-       i <= pmaxrow && m <= newscr->_maxy;
-       i++, m++) {
+        i <= pmaxrow && m <= newscr->_maxy;
+        i++, m++) {
        register struct ldat *nline = &newscr->_line[m];
        register struct ldat *oline = &win->_line[i];
        register struct ldat *nline = &newscr->_line[m];
        register struct ldat *oline = &win->_line[i];
-
        for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) {
        for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) {
-           if (oline->text[j] != nline->text[n]) {
-               nline->text[n] = oline->text[j];
+           NCURSES_CH_T ch = oline->text[j];
+#if USE_WIDEC_SUPPORT
+           /*
+            * Special case for leftmost character of the displayed area.
+            * Only half of a double-width character may be visible.
+            */
+           if (j == pmincol
+               && j > 0
+               && isnac(ch)) {
+               SetChar(ch, L(' '), AttrOf(oline->text[j - 1]));
+           }
+#endif
+           if (!CharEq(ch, nline->text[n])) {
+               nline->text[n] = ch;
                CHANGED_CELL(nline, n);
            }
        }
                CHANGED_CELL(nline, n);
            }
        }
@@ -227,7 +248,7 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
     for (i = pminrow - 1; (i >= 0) && (win->_line[i].oldindex >= 0); i--)
        win->_line[i].oldindex = _NEWINDEX;
     for (i = pmaxrow + 1; (i <= win->_maxy)
     for (i = pminrow - 1; (i >= 0) && (win->_line[i].oldindex >= 0); i--)
        win->_line[i].oldindex = _NEWINDEX;
     for (i = pmaxrow + 1; (i <= win->_maxy)
-       && (win->_line[i].oldindex >= 0); i++)
+        && (win->_line[i].oldindex >= 0); i++)
        win->_line[i].oldindex = _NEWINDEX;
 #endif
 
        win->_line[i].oldindex = _NEWINDEX;
 #endif
 
@@ -269,7 +290,7 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-int
+NCURSES_EXPORT(int)
 pechochar(WINDOW *pad, const chtype ch)
 {
     T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch)));
 pechochar(WINDOW *pad, const chtype ch)
 {
     T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch)));
@@ -282,11 +303,11 @@ pechochar(WINDOW *pad, const chtype ch)
 
     waddch(pad, ch);
     prefresh(pad, pad->_pad._pad_y,
 
     waddch(pad, ch);
     prefresh(pad, pad->_pad._pad_y,
-       pad->_pad._pad_x,
-       pad->_pad._pad_top,
-       pad->_pad._pad_left,
-       pad->_pad._pad_bottom,
-       pad->_pad._pad_right);
+            pad->_pad._pad_x,
+            pad->_pad._pad_top,
+            pad->_pad._pad_left,
+            pad->_pad._pad_bottom,
+            pad->_pad._pad_right);
 
     returnCode(OK);
 }
 
     returnCode(OK);
 }
index 8d28f288d3c16681c7516c5ab0f81c28dbd1a3d0..d08a0b42dc204393c1dac49143cc091ad8c51805 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_printw.c,v 1.7 1998/04/11 22:53:44 tom Exp $")
+MODULE_ID("$Id: lib_printw.c,v 1.13 2002/10/05 22:52:21 tom Exp $")
 
 
-int printw(NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+printw(NCURSES_CONST char *fmt,...)
 {
 {
-       va_list argp;
-       int code;
-
-       T(("printw(%s,...) called", _nc_visbuf(fmt)));
+    va_list argp;
+    int code;
+
+#ifdef TRACE
+    va_start(argp, fmt);
+    T((T_CALLED("printw(%s%s)"),
+       _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+    va_end(argp);
+#endif
 
 
-       va_start(argp, fmt);
-       code = vwprintw(stdscr, fmt, argp);
-       va_end(argp);
+    va_start(argp, fmt);
+    code = vwprintw(stdscr, fmt, argp);
+    va_end(argp);
 
 
-       return code;
+    returnCode(code);
 }
 
 }
 
-int wprintw(WINDOW *win, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+wprintw(WINDOW *win, NCURSES_CONST char *fmt,...)
 {
 {
-       va_list argp;
-       int code;
-
-       T(("wprintw(%p,%s,...) called", win, _nc_visbuf(fmt)));
+    va_list argp;
+    int code;
+
+#ifdef TRACE
+    va_start(argp, fmt);
+    T((T_CALLED("wprintw(%p,%s%s)"),
+       win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+    va_end(argp);
+#endif
 
 
-       va_start(argp, fmt);
-       code = vwprintw(win, fmt, argp);
-       va_end(argp);
+    va_start(argp, fmt);
+    code = vwprintw(win, fmt, argp);
+    va_end(argp);
 
 
-       return code;
+    returnCode(code);
 }
 
 }
 
-int mvprintw(int y, int x, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+mvprintw(int y, int x, NCURSES_CONST char *fmt,...)
 {
 {
-       va_list argp;
-       int code = move(y, x);
-
-       if (code != ERR) {
-               va_start(argp, fmt);
-               code = vwprintw(stdscr, fmt, argp);
-               va_end(argp);
-       }
-       return code;
+    va_list argp;
+    int code;
+
+#ifdef TRACE
+    va_start(argp, fmt);
+    T((T_CALLED("mvprintw(%d,%d,%s%s)"),
+       y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+    va_end(argp);
+#endif
+
+    if ((code = move(y, x)) != ERR) {
+       va_start(argp, fmt);
+       code = vwprintw(stdscr, fmt, argp);
+       va_end(argp);
+    }
+    returnCode(code);
 }
 
 }
 
-int mvwprintw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+mvwprintw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...)
 {
 {
-       va_list argp;
-       int code = wmove(win, y, x);
-
-       if (code != ERR) {
-               va_start(argp, fmt);
-               code = vwprintw(win, fmt, argp);
-               va_end(argp);
-       }
-       return code;
+    va_list argp;
+    int code;
+
+#ifdef TRACE
+    va_start(argp, fmt);
+    T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"),
+       y, x, win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+    va_end(argp);
+#endif
+
+    if ((code = wmove(win, y, x)) != ERR) {
+       va_start(argp, fmt);
+       code = vwprintw(win, fmt, argp);
+       va_end(argp);
+    }
+    returnCode(code);
 }
 
 }
 
-int vwprintw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
+NCURSES_EXPORT(int)
+vwprintw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
 {
 {
-       char *buf = _nc_printf_string(fmt, argp);
-       int code = ERR;
+    char *buf;
+    int code = ERR;
+
+    T((T_CALLED("vwprintw(%p,%s,%p)"),
+       win, _nc_visbuf(fmt), argp));
 
 
-       if (buf != 0) {
-               code = waddstr(win, buf);
+    if ((buf = _nc_printf_string(fmt, argp)) != 0) {
+       code = waddstr(win, buf);
 #if USE_SAFE_SPRINTF
 #if USE_SAFE_SPRINTF
-               free(buf);
+       free(buf);
 #endif
 #endif
-       }
-       return code;
+    }
+    returnCode(code);
 }
 }
index 10fda917984e38c520c101a55c82194953a5130b..91a03711de7cc701928a46257a7aa4d63b21afd7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_redrawln.c,v 1.7 1998/09/19 20:09:50 Alexander.V.Lukyanov Exp $")
+MODULE_ID("$Id: lib_redrawln.c,v 1.10 2001/09/29 17:41:31 tom Exp $")
 
 
-int wredrawln(WINDOW *win, int beg, int num)
+NCURSES_EXPORT(int)
+wredrawln(WINDOW *win, int beg, int num)
 {
 {
-       int i;
-       int end;
-       size_t len = (win->_maxx + 1) * sizeof(chtype);
+    int i;
+    int end;
+    size_t len = (win->_maxx + 1);
 
 
-       T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
+    T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
 
 
-       if (beg < 0)
-               beg = 0;
+    if (beg < 0)
+       beg = 0;
 
 
-       if (touchline (win, beg, num) == ERR)
-               returnCode(ERR);
+    if (touchline(win, beg, num) == ERR)
+       returnCode(ERR);
 
 
-       end = beg + num;
-       if (end > win->_maxy + 1)
-               end = win->_maxy + 1;
+    end = beg + num;
+    if (end > curscr->_maxy + 1)
+       end = curscr->_maxy + 1;
+    if (end > win->_maxy + 1)
+       end = win->_maxy + 1;
 
 
-       for (i = beg; i < end; i++)
-       {
-               memset (curscr->_line[i+win->_begy].text+win->_begx, 0, len);
-               _nc_make_oldhash(i+win->_begy);
-       }
+    if (len > (size_t) (curscr->_maxx + 1))
+       len = (size_t) (curscr->_maxx + 1);
+    len *= sizeof(curscr->_line[0].text[0]);
 
 
-       returnCode(OK);
+    for (i = beg; i < end; i++) {
+       memset(curscr->_line[i + win->_begy].text + win->_begx, 0, len);
+       _nc_make_oldhash(i + win->_begy);
+    }
+
+    returnCode(OK);
 }
 }
index 910664b0187a3c83e8bb1f191a72007762a117f6..e5908a39e9210db58559aa838da726085844deae 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_refresh.c,v 1.25 2000/04/29 21:17:08 tom Exp $")
+MODULE_ID("$Id: lib_refresh.c,v 1.32 2002/05/26 00:17:04 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wrefresh(WINDOW *win)
 {
     int code;
 wrefresh(WINDOW *win)
 {
     int code;
@@ -67,7 +67,7 @@ wrefresh(WINDOW *win)
     returnCode(code);
 }
 
     returnCode(code);
 }
 
-int
+NCURSES_EXPORT(int)
 wnoutrefresh(WINDOW *win)
 {
     NCURSES_SIZE_T limit_x;
 wnoutrefresh(WINDOW *win)
 {
     NCURSES_SIZE_T limit_x;
@@ -75,7 +75,9 @@ wnoutrefresh(WINDOW *win)
     NCURSES_SIZE_T begx;
     NCURSES_SIZE_T begy;
     NCURSES_SIZE_T m, n;
     NCURSES_SIZE_T begx;
     NCURSES_SIZE_T begy;
     NCURSES_SIZE_T m, n;
+#if USE_SCROLL_HINTS
     bool wide;
     bool wide;
+#endif
 
     T((T_CALLED("wnoutrefresh(%p)"), win));
 #ifdef TRACE
 
     T((T_CALLED("wnoutrefresh(%p)"), win));
 #ifdef TRACE
@@ -94,12 +96,13 @@ wnoutrefresh(WINDOW *win)
     begx = win->_begx;
     begy = win->_begy;
 
     begx = win->_begx;
     begy = win->_begy;
 
-    newscr->_bkgd = win->_bkgd;
+    newscr->_nc_bkgd = win->_nc_bkgd;
     newscr->_attrs = win->_attrs;
 
     /* merge in change information from all subwindows of this window */
     wsyncdown(win);
 
     newscr->_attrs = win->_attrs;
 
     /* merge in change information from all subwindows of this window */
     wsyncdown(win);
 
+#if USE_SCROLL_HINTS
     /*
      * For pure efficiency, we'd want to transfer scrolling information
      * from the window to newscr whenever the window is wide enough that
     /*
      * For pure efficiency, we'd want to transfer scrolling information
      * from the window to newscr whenever the window is wide enough that
@@ -115,6 +118,7 @@ wnoutrefresh(WINDOW *win)
      * merely change the costs of various update cases.
      */
     wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1));
      * merely change the costs of various update cases.
      */
     wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1));
+#endif
 
     win->_flags &= ~_HASMOVED;
 
 
     win->_flags &= ~_HASMOVED;
 
@@ -128,12 +132,12 @@ wnoutrefresh(WINDOW *win)
     /* limit(n) */
     limit_x = win->_maxx;
     /* limit(j) */
     /* limit(n) */
     limit_x = win->_maxx;
     /* limit(j) */
-    if (limit_x > win->_maxx)
-       limit_x = win->_maxx;
+    if (limit_x > newscr->_maxx - begx)
+       limit_x = newscr->_maxx - begx;
 
     for (i = 0, m = begy + win->_yoffset;
 
     for (i = 0, m = begy + win->_yoffset;
-       i <= win->_maxy && m <= newscr->_maxy;
-       i++, m++) {
+        i <= win->_maxy && m <= newscr->_maxy;
+        i++, m++) {
        register struct ldat *nline = &newscr->_line[m];
        register struct ldat *oline = &win->_line[i];
 
        register struct ldat *nline = &newscr->_line[m];
        register struct ldat *oline = &win->_line[i];
 
@@ -144,7 +148,7 @@ wnoutrefresh(WINDOW *win)
                last = limit_x;
 
            for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
                last = limit_x;
 
            for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
-               if (oline->text[j] != nline->text[n]) {
+               if (!CharEq(oline->text[j], nline->text[n])) {
                    nline->text[n] = oline->text[j];
                    CHANGED_CELL(nline, n);
                }
                    nline->text[n] = oline->text[j];
                    CHANGED_CELL(nline, n);
                }
index 831e3255d8420e4f456f75de89963910db61d42a..31da4b7cb897271672e696cee4160a8a25760389 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -47,9 +47,9 @@
 
 #include <term.h>              /* lines, columns, cur_term */
 
 
 #include <term.h>              /* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_restart.c,v 1.3 2000/09/02 18:09:44 tom Exp $")
+MODULE_ID("$Id: lib_restart.c,v 1.5 2002/08/31 22:30:10 Philippe.Blain Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
 {
     int saveecho = SP->_echo;
 restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
 {
     int saveecho = SP->_echo;
@@ -59,7 +59,8 @@ restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
 
     T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
 
 
     T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
 
-    setupterm(termp, filenum, errret);
+    if (setupterm(termp, filenum, errret) != OK)
+       returnCode(ERR);
 
     if (saveecho)
        echo();
 
     if (saveecho)
        echo();
index cc66613ff52f0495f2a99e8280e904bb830e06ab..b8a5a227a1a9929a8be2232ee754c17ac46d84e9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,8 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 /*
 **     lib_scanw.c
 **
 /*
 **     lib_scanw.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_scanw.c,v 1.8 1998/04/11 22:54:18 tom Exp $")
-
-#if !HAVE_VSSCANF
-#if defined(__QNX__)
-extern int vsscanf(const char *str, const char *format, __va_list __arg);
-#else
-extern int vsscanf(const char *str, const char *format, ...);
-#endif
-#endif
+MODULE_ID("$Id: lib_scanw.c,v 1.11 2001/06/30 23:39:41 tom Exp $")
 
 
-int vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
+NCURSES_EXPORT(int)
+vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
 {
 {
-char buf[BUFSIZ];
+    char buf[BUFSIZ];
 
 
-       if (wgetnstr(win, buf, sizeof(buf)-1) == ERR)
-           return(ERR);
+    if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR)
+       return (ERR);
 
 
-       return(vsscanf(buf, fmt, argp));
+    return (vsscanf(buf, fmt, argp));
 }
 
 }
 
-int scanw(NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+scanw(NCURSES_CONST char *fmt,...)
 {
 {
-int code;
-va_list ap;
+    int code;
+    va_list ap;
 
 
-       T(("scanw(\"%s\",...) called", fmt));
+    T(("scanw(\"%s\",...) called", fmt));
 
 
-       va_start(ap, fmt);
-       code = vwscanw(stdscr, fmt, ap);
-       va_end(ap);
-       return (code);
+    va_start(ap, fmt);
+    code = vwscanw(stdscr, fmt, ap);
+    va_end(ap);
+    return (code);
 }
 
 }
 
-int wscanw(WINDOW *win, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+wscanw(WINDOW *win, NCURSES_CONST char *fmt,...)
 {
 {
-int code;
-va_list ap;
+    int code;
+    va_list ap;
 
 
-       T(("wscanw(%p,\"%s\",...) called", win, fmt));
+    T(("wscanw(%p,\"%s\",...) called", win, fmt));
 
 
-       va_start(ap, fmt);
-       code = vwscanw(win, fmt, ap);
-       va_end(ap);
-       return (code);
+    va_start(ap, fmt);
+    code = vwscanw(win, fmt, ap);
+    va_end(ap);
+    return (code);
 }
 
 }
 
-int mvscanw(int y, int x, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+mvscanw(int y, int x, NCURSES_CONST char *fmt,...)
 {
 {
-int code;
-va_list ap;
+    int code;
+    va_list ap;
 
 
-       va_start(ap, fmt);
-       code = (move(y, x) == OK) ? vwscanw(stdscr, fmt, ap) : ERR;
-       va_end(ap);
-       return (code);
+    va_start(ap, fmt);
+    code = (move(y, x) == OK) ? vwscanw(stdscr, fmt, ap) : ERR;
+    va_end(ap);
+    return (code);
 }
 
 }
 
-int mvwscanw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt, ...)
+NCURSES_EXPORT(int)
+mvwscanw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...)
 {
 {
-int code;
-va_list ap;
+    int code;
+    va_list ap;
 
 
-       va_start(ap, fmt);
-       code = (wmove(win, y, x) == OK) ? vwscanw(win, fmt, ap) : ERR;
-       va_end(ap);
-       return (code);
+    va_start(ap, fmt);
+    code = (wmove(win, y, x) == OK) ? vwscanw(win, fmt, ap) : ERR;
+    va_end(ap);
+    return (code);
 }
 }
index 3038393c226676bb3957f43c7a72642a3794e61e..43f848d8a64df6e9683f0a962c1abd705754a1d8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  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 <curses.priv.h>
 
-#include <sys/stat.h>
-#include <time.h>
-#include <term.h>      /* exit_ca_mode, non_rev_rmcup */
-
-MODULE_ID("$Id: lib_screen.c,v 1.15 1999/07/24 20:05:29 tom Exp $")
-
-static time_t  dumptime;
+MODULE_ID("$Id: lib_screen.c,v 1.28 2002/09/14 23:30:41 tom Exp $")
 
 
-WINDOW *getwin(FILE *filep)
+NCURSES_EXPORT(WINDOW *)
+getwin(FILE * filep)
 {
 {
-       WINDOW  tmp, *nwin;
-       int     n;
+    WINDOW tmp, *nwin;
+    int n;
 
 
-       T((T_CALLED("getwin(%p)"), filep));
+    T((T_CALLED("getwin(%p)"), filep));
 
 
-       (void) fread(&tmp, sizeof(WINDOW), 1, filep);
-       if (ferror(filep))
-               returnWin(0);
+    clearerr(filep);
+    (void) fread(&tmp, sizeof(WINDOW), 1, filep);
+    if (ferror(filep))
+       returnWin(0);
 
 
-       if ((nwin = newwin(tmp._maxy+1, tmp._maxx+1, 0, 0)) == 0)
-               returnWin(0);
+    if (tmp._flags & _ISPAD) {
+       nwin = newpad(tmp._maxy + 1, tmp._maxx + 1);
+    } else {
+       nwin = newwin(tmp._maxy + 1, tmp._maxx + 1, 0, 0);
+    }
 
 
-       /*
-        * We deliberately do not restore the _parx, _pary, or _parent
-        * fields, because the window hierarchy within which they
-        * made sense is probably gone.
-        */
-       nwin->_curx       = tmp._curx;
-       nwin->_cury       = tmp._cury;
-       nwin->_maxy       = tmp._maxy;
-       nwin->_maxx       = tmp._maxx;
-       nwin->_begy       = tmp._begy;
-       nwin->_begx       = tmp._begx;
-       nwin->_yoffset    = tmp._yoffset;
-       nwin->_flags      = tmp._flags & ~(_SUBWIN|_ISPAD);
-
-       nwin->_attrs      = tmp._attrs;
-       nwin->_bkgd       = tmp._bkgd;
-
-       nwin->_clear      = tmp._clear;
-       nwin->_scroll     = tmp._scroll;
-       nwin->_leaveok    = tmp._leaveok;
+    /*
+     * We deliberately do not restore the _parx, _pary, or _parent
+     * fields, because the window hierarchy within which they
+     * made sense is probably gone.
+     */
+    if (nwin != 0) {
+       nwin->_curx = tmp._curx;
+       nwin->_cury = tmp._cury;
+       nwin->_maxy = tmp._maxy;
+       nwin->_maxx = tmp._maxx;
+       nwin->_begy = tmp._begy;
+       nwin->_begx = tmp._begx;
+       nwin->_yoffset = tmp._yoffset;
+       nwin->_flags = tmp._flags & ~(_SUBWIN);
+
+       nwin->_attrs = tmp._attrs;
+       nwin->_nc_bkgd = tmp._nc_bkgd;
+
+       nwin->_notimeout = tmp._notimeout;
+       nwin->_clear = tmp._clear;
+       nwin->_leaveok = tmp._leaveok;
+       nwin->_idlok = tmp._idlok;
+       nwin->_idcok = tmp._idcok;
+       nwin->_immed = tmp._immed;
+       nwin->_scroll = tmp._scroll;
+       nwin->_sync = tmp._sync;
        nwin->_use_keypad = tmp._use_keypad;
        nwin->_use_keypad = tmp._use_keypad;
-       nwin->_delay      = tmp._delay;
-       nwin->_immed      = tmp._immed;
-       nwin->_sync       = tmp._sync;
-
-       nwin->_regtop     = tmp._regtop;
-       nwin->_regbottom  = tmp._regbottom;
-
-       for (n = 0; n < nwin->_maxy + 1; n++)
-       {
-               (void) fread(nwin->_line[n].text,
-                             sizeof(chtype), (size_t)(nwin->_maxx + 1), filep);
-               if (ferror(filep))
-               {
-                       delwin(nwin);
-                       returnWin(0);
-               }
+       nwin->_delay = tmp._delay;
+
+       nwin->_regtop = tmp._regtop;
+       nwin->_regbottom = tmp._regbottom;
+
+       if (tmp._flags & _ISPAD)
+           nwin->_pad = tmp._pad;
+
+       for (n = 0; n <= nwin->_maxy; n++) {
+           clearerr(filep);
+           (void) fread(nwin->_line[n].text,
+                        sizeof(NCURSES_CH_T),
+                        (size_t) (nwin->_maxx + 1),
+                        filep);
+           if (ferror(filep)) {
+               delwin(nwin);
+               returnWin(0);
+           }
        }
        touchwin(nwin);
        }
        touchwin(nwin);
-
-       returnWin(nwin);
+    }
+    returnWin(nwin);
 }
 
 }
 
-int putwin(WINDOW *win, FILE *filep)
+NCURSES_EXPORT(int)
+putwin(WINDOW *win, FILE * filep)
 {
 {
-        int code = ERR; 
-       int n;
+    int code = ERR;
+    int n;
+
+    T((T_CALLED("putwin(%p,%p)"), win, filep));
 
 
-       T((T_CALLED("putwin(%p,%p)"), win, filep));
+    if (win != 0) {
+       size_t len = (win->_maxx + 1);
 
 
-       if (win) {
-         (void) fwrite(win, sizeof(WINDOW), 1, filep);
-         if (ferror(filep))
-           returnCode(code);
+       clearerr(filep);
+       if (fwrite(win, sizeof(WINDOW), 1, filep) != 1
+           || ferror(filep))
+             returnCode(code);
 
 
-         for (n = 0; n < win->_maxy + 1; n++)
-           {
-             (void) fwrite(win->_line[n].text,
-                           sizeof(chtype), (size_t)(win->_maxx + 1), filep);
-             if (ferror(filep))
+       for (n = 0; n <= win->_maxy; n++) {
+           if (fwrite(win->_line[n].text,
+                      sizeof(NCURSES_CH_T), len, filep) != len
+               || ferror(filep)) {
                returnCode(code);
            }
                returnCode(code);
            }
-         code = OK;
        }
        }
-       returnCode(code);
+       code = OK;
+    }
+    returnCode(code);
 }
 
 }
 
-int scr_restore(const char *file)
+NCURSES_EXPORT(int)
+scr_restore(const char *file)
 {
 {
-       FILE    *fp = 0;
-
-       T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file)));
-
-       if (_nc_access(file, R_OK) < 0
-        || (fp = fopen(file, "rb")) == 0)
-           returnCode(ERR);
-       else
-       {
-           delwin(newscr);
-           newscr = getwin(fp);
-           (void) fclose(fp);
-           returnCode(OK);
-       }
+    FILE *fp = 0;
+
+    T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file)));
+
+    if (_nc_access(file, R_OK) < 0
+       || (fp = fopen(file, "rb")) == 0) {
+       returnCode(ERR);
+    } else {
+       delwin(newscr);
+       SP->_newscr = newscr = getwin(fp);
+       (void) fclose(fp);
+       returnCode(OK);
+    }
 }
 
 }
 
-int scr_dump(const char *file)
+NCURSES_EXPORT(int)
+scr_dump(const char *file)
 {
 {
-       FILE    *fp = 0;
-
-       T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file)));
-
-       if (_nc_access(file, W_OK) < 0
-        || (fp = fopen(file, "wb")) == 0)
-           returnCode(ERR);
-       else
-       {
-           (void) putwin(newscr, fp);
-           (void) fclose(fp);
-           dumptime = time((time_t *)0);
-           returnCode(OK);
-       }
+    FILE *fp = 0;
+
+    T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file)));
+
+    if (_nc_access(file, W_OK) < 0
+       || (fp = fopen(file, "wb")) == 0) {
+       returnCode(ERR);
+    } else {
+       (void) putwin(newscr, fp);
+       (void) fclose(fp);
+       returnCode(OK);
+    }
 }
 
 }
 
-int scr_init(const char *file)
+NCURSES_EXPORT(int)
+scr_init(const char *file)
 {
 {
-       FILE    *fp = 0;
-       struct stat     stb;
-
-       T((T_CALLED("scr_init(%s)"), _nc_visbuf(file)));
-
-       if (exit_ca_mode && non_rev_rmcup)
-           returnCode(ERR);
-
-       if (_nc_access(file, R_OK) < 0
-        || (fp = fopen(file, "rb")) == 0)
-           returnCode(ERR);
-       else if (fstat(STDOUT_FILENO, &stb) || stb.st_mtime > dumptime)
-           returnCode(ERR);
-       else
-       {
-           delwin(curscr);
-           curscr = getwin(fp);
-           (void) fclose(fp);
-           returnCode(OK);
-       }
+    FILE *fp = 0;
+
+    T((T_CALLED("scr_init(%s)"), _nc_visbuf(file)));
+
+    if (exit_ca_mode && non_rev_rmcup)
+       returnCode(ERR);
+
+    if (_nc_access(file, R_OK) < 0
+       || (fp = fopen(file, "rb")) == 0) {
+       returnCode(ERR);
+    } else {
+       delwin(curscr);
+       SP->_curscr = curscr = getwin(fp);
+       (void) fclose(fp);
+       returnCode(OK);
+    }
 }
 
 }
 
-int scr_set(const char *file)
+NCURSES_EXPORT(int)
+scr_set(const char *file)
 {
     T((T_CALLED("scr_set(%s)"), _nc_visbuf(file)));
 
 {
     T((T_CALLED("scr_set(%s)"), _nc_visbuf(file)));
 
-    if (scr_init(file) == ERR)
+    if (scr_init(file) == ERR) {
        returnCode(ERR);
        returnCode(ERR);
-    else
-    {
+    } else {
        delwin(newscr);
        delwin(newscr);
-       newscr = dupwin(curscr);
+       SP->_newscr = newscr = dupwin(curscr);
        returnCode(OK);
     }
 }
        returnCode(OK);
     }
 }
index c2e3831da2550ace967a7a0432cc05cab973c8a1..39c62d0850e58b3964071e8556c9b88e50a40400 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+ *  Author: Thomas E. Dickey 1996-2001                                      *
+ *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_scroll.c,v 1.17 2000/04/29 21:10:51 tom Exp $")
+MODULE_ID("$Id: lib_scroll.c,v 1.23 2001/12/19 01:06:55 tom Exp $")
 
 
-void
+NCURSES_EXPORT(void)
 _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
 _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
-    NCURSES_SIZE_T const bottom, chtype blank)
+                 NCURSES_SIZE_T const bottom, NCURSES_CH_T blank)
 {
 {
-    int line, j;
-    size_t to_copy = (size_t) (sizeof(chtype) * (win->_maxx + 1));
+    int limit;
+    int line;
+    int j;
+    size_t to_copy = (size_t) (sizeof(NCURSES_CH_T) * (win->_maxx + 1));
 
     TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %d, %d)", win, n, top, bottom));
 
 
     TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %d, %d)", win, n, top, bottom));
 
+    if (top < 0
+       || bottom < top
+       || bottom > win->_maxy) {
+       TR(TRACE_MOVE, ("nothing to scroll"));
+       return;
+    }
+
     /*
      * This used to do a line-text pointer-shuffle instead of text copies.
      * That (a) doesn't work when the window is derived and doesn't have
     /*
      * This used to do a line-text pointer-shuffle instead of text copies.
      * That (a) doesn't work when the window is derived and doesn't have
@@ -66,14 +76,26 @@ _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
 
     /* shift n lines downwards */
     if (n < 0) {
 
     /* shift n lines downwards */
     if (n < 0) {
-       for (line = bottom; line >= top - n; line--) {
-           memcpy(win->_line[line].text,
-               win->_line[line + n].text,
-               to_copy);
-           if_USE_SCROLL_HINTS(win->_line[line].oldindex = win->_line[line
-                   + n].oldindex);
+       limit = top - n;
+       if (limit > win->_maxy)
+           limit = win->_maxy;
+       for (line = bottom; line >= limit; line--) {
+           if (line + n >= 0) {
+               TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
+               memcpy(win->_line[line].text,
+                      win->_line[line + n].text,
+                      to_copy);
+               if_USE_SCROLL_HINTS(win->_line[line].oldindex =
+                                   win->_line[line + n].oldindex);
+           } else {
+               TR(TRACE_MOVE, ("...filling %d", line));
+               for (j = 0; j <= win->_maxx; j++)
+                   win->_line[line].text[j] = blank;
+               if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
+           }
        }
        }
-       for (line = top; line < top - n; line++) {
+       for (line = top; line < limit; line++) {
+           TR(TRACE_MOVE, ("...filling %d", line));
            for (j = 0; j <= win->_maxx; j++)
                win->_line[line].text[j] = blank;
            if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
            for (j = 0; j <= win->_maxx; j++)
                win->_line[line].text[j] = blank;
            if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
@@ -82,14 +104,26 @@ _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
 
     /* shift n lines upwards */
     if (n > 0) {
 
     /* shift n lines upwards */
     if (n > 0) {
-       for (line = top; line <= bottom - n; line++) {
-           memcpy(win->_line[line].text,
-               win->_line[line + n].text,
-               to_copy);
-           if_USE_SCROLL_HINTS(win->_line[line].oldindex = win->_line[line
-                   + n].oldindex);
+       limit = bottom - n;
+       if (limit < 0)
+           limit = 0;
+       for (line = top; line <= limit; line++) {
+           if (line + n <= win->_maxy) {
+               TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
+               memcpy(win->_line[line].text,
+                      win->_line[line + n].text,
+                      to_copy);
+               if_USE_SCROLL_HINTS(win->_line[line].oldindex =
+                                   win->_line[line + n].oldindex);
+           } else {
+               TR(TRACE_MOVE, ("...filling %d", line));
+               for (j = 0; j <= win->_maxx; j++)
+                   win->_line[line].text[j] = blank;
+               if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
+           }
        }
        }
-       for (line = bottom; line > bottom - n; line--) {
+       for (line = bottom; line > limit; line--) {
+           TR(TRACE_MOVE, ("...filling %d", line));
            for (j = 0; j <= win->_maxx; j++)
                win->_line[line].text[j] = blank;
            if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
            for (j = 0; j <= win->_maxx; j++)
                win->_line[line].text[j] = blank;
            if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
@@ -98,22 +132,20 @@ _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
     touchline(win, top, bottom - top + 1);
 }
 
     touchline(win, top, bottom - top + 1);
 }
 
-int
+NCURSES_EXPORT(int)
 wscrl(WINDOW *win, int n)
 {
     T((T_CALLED("wscrl(%p,%d)"), win, n));
 
 wscrl(WINDOW *win, int n)
 {
     T((T_CALLED("wscrl(%p,%d)"), win, n));
 
-    if (!win || !win->_scroll)
+    if (!win || !win->_scroll) {
+       TR(TRACE_MOVE, ("...scrollok is false"));
        returnCode(ERR);
        returnCode(ERR);
+    }
 
     if (n == 0)
        returnCode(OK);
 
 
     if (n == 0)
        returnCode(OK);
 
-    if ((n > (win->_regbottom - win->_regtop)) ||
-       (-n > (win->_regbottom - win->_regtop)))
-       returnCode(ERR);
-
-    _nc_scroll_window(win, n, win->_regtop, win->_regbottom, _nc_background(win));
+    _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd);
 
     _nc_synchook(win);
     returnCode(OK);
 
     _nc_synchook(win);
     returnCode(OK);
index f24eb8ebb0c61531592be9f482e9394788bed2bd..f6b30259be733cee0d86193bc2dde82eecb6688b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_scrollok.c
 **
 /*
 **     lib_scrollok.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_scrollok.c,v 1.2 1998/02/11 12:14:01 tom Exp $")
+MODULE_ID("$Id: lib_scrollok.c,v 1.4 2000/12/10 02:43:27 tom Exp $")
 
 
-int scrollok(WINDOW *win, bool flag)
+NCURSES_EXPORT(int)
+scrollok(WINDOW *win, bool flag)
 {
 {
-       T((T_CALLED("scrollok(%p,%d)"), win, flag));
+    T((T_CALLED("scrollok(%p,%d)"), win, flag));
 
 
-       if (win) {
-         win->_scroll = flag;
-         returnCode(OK);
-       }
-       else
-         returnCode(ERR);
+    if (win) {
+       win->_scroll = flag;
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index b47c047f4623604d8f8af9a7319f0ca910778147..c85d60f1164d819b17ede0955dd70ee6f82fa338 100644 (file)
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_scrreg.c,v 1.8 2000/04/29 21:13:04 tom Exp $")
+MODULE_ID("$Id: lib_scrreg.c,v 1.10 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wsetscrreg(WINDOW *win, int top, int bottom)
 {
     T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom));
 wsetscrreg(WINDOW *win, int top, int bottom)
 {
     T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom));
index 15dd6d3f505db05c0b52fd72bb555f20d3e55f23..ac24ce07878ac3dd876196b222371f70f394ec1b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -43,9 +43,9 @@
 #include <term.h>              /* cur_term */
 #include <tic.h>
 
 #include <term.h>              /* cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_set_term.c,v 1.58 2000/10/04 22:05:48 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.71 2002/09/14 22:48:00 tom Exp $")
 
 
-SCREEN *
+NCURSES_EXPORT(SCREEN *)
 set_term(SCREEN * screenp)
 {
     SCREEN *oldSP;
 set_term(SCREEN * screenp)
 {
     SCREEN *oldSP;
@@ -61,7 +61,7 @@ set_term(SCREEN * screenp)
     stdscr = SP->_stdscr;
     COLORS = SP->_color_count;
     COLOR_PAIRS = SP->_pair_count;
     stdscr = SP->_stdscr;
     COLORS = SP->_color_count;
     COLOR_PAIRS = SP->_pair_count;
-    memcpy(acs_map, SP->_acs_map, sizeof(chtype) * ACS_LEN);
+    memcpy(acs_map, SP->_acs_map, sizeof(SP->_acs_map[0]) * ACS_LEN);
 
     T((T_RETURN("%p"), oldSP));
     return (oldSP);
 
     T((T_RETURN("%p"), oldSP));
     return (oldSP);
@@ -80,7 +80,7 @@ _nc_free_keytry(struct tries *kt)
 /*
  * Free the storage associated with the given SCREEN sp.
  */
 /*
  * Free the storage associated with the given SCREEN sp.
  */
-void
+NCURSES_EXPORT(void)
 delscreen(SCREEN * sp)
 {
     SCREEN **scan = &_nc_screen_chain;
 delscreen(SCREEN * sp)
 {
     SCREEN **scan = &_nc_screen_chain;
@@ -95,17 +95,29 @@ delscreen(SCREEN * sp)
        scan = &(*scan)->_next_screen;
     }
 
        scan = &(*scan)->_next_screen;
     }
 
-    _nc_freewin(sp->_curscr);
-    _nc_freewin(sp->_newscr);
-    _nc_freewin(sp->_stdscr);
+    (void) _nc_freewin(sp->_curscr);
+    (void) _nc_freewin(sp->_newscr);
+    (void) _nc_freewin(sp->_stdscr);
+
+    if (sp->_slk != 0) {
+       FreeIfNeeded(sp->_slk->ent);
+       FreeIfNeeded(sp->_slk->buffer);
+       free(sp->_slk);
+       sp->_slk = 0;
+    }
+
     _nc_free_keytry(sp->_keytry);
     _nc_free_keytry(sp->_keytry);
+    sp->_keytry = 0;
+
     _nc_free_keytry(sp->_key_ok);
     _nc_free_keytry(sp->_key_ok);
+    sp->_key_ok = 0;
 
     FreeIfNeeded(sp->_color_table);
     FreeIfNeeded(sp->_color_pairs);
 
     FreeIfNeeded(sp->oldhash);
     FreeIfNeeded(sp->newhash);
 
     FreeIfNeeded(sp->_color_table);
     FreeIfNeeded(sp->_color_pairs);
 
     FreeIfNeeded(sp->oldhash);
     FreeIfNeeded(sp->newhash);
+    FreeIfNeeded(sp->hashtab);
 
     del_curterm(sp->_term);
 
 
     del_curterm(sp->_term);
 
@@ -141,7 +153,7 @@ delscreen(SCREEN * sp)
 
 static ripoff_t rippedoff[5];
 static ripoff_t *rsp = rippedoff;
 
 static ripoff_t rippedoff[5];
 static ripoff_t *rsp = rippedoff;
-#define N_RIPS SIZEOF(rippedoff)
+#define N_RIPS SIZEOF(SP->_rippedoff)
 
 static bool
 no_mouse_event(SCREEN * sp GCC_UNUSED)
 
 static bool
 no_mouse_event(SCREEN * sp GCC_UNUSED)
@@ -181,7 +193,7 @@ extract_fgbg(char *src, int *result)
     if (dst == 0) {
        dst = src;
     } else if (value >= 0) {
     if (dst == 0) {
        dst = src;
     } else if (value >= 0) {
-       *result = value % max_colors;
+       *result = value;
     }
     while (*dst != 0 && *dst != ';')
        dst++;
     }
     while (*dst != 0 && *dst != ';')
        dst++;
@@ -191,16 +203,17 @@ extract_fgbg(char *src, int *result)
 }
 #endif
 
 }
 #endif
 
-int
+NCURSES_EXPORT(int)
 _nc_setupscreen(short slines, short const scolumns, FILE * output)
 /* OS-independent screen initializations */
 {
     int bottom_stolen = 0;
     size_t i;
 
 _nc_setupscreen(short slines, short const scolumns, FILE * output)
 /* OS-independent screen initializations */
 {
     int bottom_stolen = 0;
     size_t i;
 
+    T((T_CALLED("_nc_setupscreen(%d, %d, %p)"), slines, scolumns, output));
     assert(SP == 0);           /* has been reset in newterm() ! */
     if (!_nc_alloc_screen())
     assert(SP == 0);           /* has been reset in newterm() ! */
     if (!_nc_alloc_screen())
-       return ERR;
+       returnCode(ERR);
 
     SP->_next_screen = _nc_screen_chain;
     _nc_screen_chain = SP;
 
     SP->_next_screen = _nc_screen_chain;
     _nc_screen_chain = SP;
@@ -224,7 +237,7 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
 #if NCURSES_NO_PADDING
     SP->_no_padding = getenv("NCURSES_NO_PADDING") != 0;
     TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used",
 #if NCURSES_NO_PADDING
     SP->_no_padding = getenv("NCURSES_NO_PADDING") != 0;
     TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used",
-           SP->_no_padding ? " not" : ""));
+                                   SP->_no_padding ? " not" : ""));
 #endif
 
 #if NCURSES_EXT_FUNCS
 #endif
 
 #if NCURSES_EXT_FUNCS
@@ -258,6 +271,26 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
     SP->_default_bg = C_MASK;
 #endif
 
     SP->_default_bg = C_MASK;
 #endif
 
+    /*
+     * Allow those assumed/default color assumptions to be overridden at
+     * runtime:
+     */
+    if (getenv("NCURSES_ASSUMED_COLORS") != 0) {
+       char *p = getenv("NCURSES_ASSUMED_COLORS");
+       int fg, bg;
+       char sep1, sep2;
+       int count = sscanf(p, "%d%c%d%c", &fg, &sep1, &bg, &sep2);
+       if (count >= 1) {
+           SP->_default_fg = (fg >= 0 && fg < max_colors) ? fg : C_MASK;
+           if (count >= 3) {
+               SP->_default_bg = (bg >= 0 && bg < max_colors) ? bg : C_MASK;
+           }
+           TR(TRACE_CHARPUT | TRACE_MOVE,
+              ("from environment assumed fg=%d, bg=%d",
+               SP->_default_fg,
+               SP->_default_bg));
+       }
+    }
 #if USE_COLORFGBG
     /*
      * If rxvt's $COLORFGBG variable is set, use it to specify the assumed
 #if USE_COLORFGBG
     /*
      * If rxvt's $COLORFGBG variable is set, use it to specify the assumed
@@ -267,8 +300,29 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
      */
     if (getenv("COLORFGBG") != 0) {
        char *p = getenv("COLORFGBG");
      */
     if (getenv("COLORFGBG") != 0) {
        char *p = getenv("COLORFGBG");
+       TR(TRACE_CHARPUT | TRACE_MOVE, ("decoding COLORFGBG %s", p));
        p = extract_fgbg(p, &(SP->_default_fg));
        p = extract_fgbg(p, &(SP->_default_bg));
        p = extract_fgbg(p, &(SP->_default_fg));
        p = extract_fgbg(p, &(SP->_default_bg));
+       if (*p)                 /* assume rxvt was compiled with xpm support */
+           p = extract_fgbg(p, &(SP->_default_bg));
+       TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d",
+                                       SP->_default_fg, SP->_default_bg));
+       if (SP->_default_fg >= max_colors) {
+           if (set_a_foreground != ABSENT_STRING
+               && !strcmp(set_a_foreground, "\033[3%p1%dm")) {
+               set_a_foreground = "\033[3%?%p1%{8}%>%t9%e%p1%d%;m";
+           } else {
+               SP->_default_fg %= max_colors;
+           }
+       }
+       if (SP->_default_bg >= max_colors) {
+           if (set_a_background != ABSENT_STRING
+               && !strcmp(set_a_background, "\033[4%p1%dm")) {
+               set_a_background = "\033[4%?%p1%{8}%>%t9%e%p1%d%;m";
+           } else {
+               SP->_default_bg %= max_colors;
+           }
+       }
     }
 #endif
 #endif /* NCURSES_EXT_FUNCS */
     }
 #endif
 #endif /* NCURSES_EXT_FUNCS */
@@ -295,14 +349,14 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
     if (magic_cookie_glitch > 0) {
 
        SP->_xmc_triggers = termattrs() & (
     if (magic_cookie_glitch > 0) {
 
        SP->_xmc_triggers = termattrs() & (
-           A_ALTCHARSET |
-           A_BLINK |
-           A_BOLD |
-           A_REVERSE |
-           A_STANDOUT |
-           A_UNDERLINE
+                                             A_ALTCHARSET |
+                                             A_BLINK |
+                                             A_BOLD |
+                                             A_REVERSE |
+                                             A_STANDOUT |
+                                             A_UNDERLINE
            );
            );
-       SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~ (A_BOLD);
+       SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~(A_BOLD);
 
        T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress)));
 #if USE_XMC_SUPPORT
 
        T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress)));
 #if USE_XMC_SUPPORT
@@ -318,7 +372,12 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
        acs_chars = 0;
 #endif
     }
        acs_chars = 0;
 #endif
     }
+
+    /* initialize normal acs before wide, since we use mapping in the latter */
     _nc_init_acs();
     _nc_init_acs();
+#if USE_WIDEC_SUPPORT
+    _nc_init_wacs();
+#endif
     memcpy(SP->_acs_map, acs_map, sizeof(chtype) * ACS_LEN);
 
     _nc_idcok = TRUE;
     memcpy(SP->_acs_map, acs_map, sizeof(chtype) * ACS_LEN);
 
     _nc_idcok = TRUE;
@@ -331,11 +390,11 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
 
     T(("creating newscr"));
     if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
 
     T(("creating newscr"));
     if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
-       return ERR;
+       returnCode(ERR);
 
     T(("creating curscr"));
     if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
 
     T(("creating curscr"));
     if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
-       return ERR;
+       returnCode(ERR);
 
     SP->_newscr = newscr;
     SP->_curscr = curscr;
 
     SP->_newscr = newscr;
     SP->_curscr = curscr;
@@ -346,68 +405,69 @@ _nc_setupscreen(short slines, short const scolumns, FILE * output)
     newscr->_clear = TRUE;
     curscr->_clear = FALSE;
 
     newscr->_clear = TRUE;
     curscr->_clear = FALSE;
 
+    def_shell_mode();
+    def_prog_mode();
+
     for (i = 0, rsp = rippedoff; rsp->line && (i < N_RIPS); rsp++, i++) {
     for (i = 0, rsp = rippedoff; rsp->line && (i < N_RIPS); rsp++, i++) {
+       T(("ripping off line %d at %s", i, rsp->line < 0 ? "bottom" : "top"));
+       SP->_rippedoff[i] = rippedoff[i];
        if (rsp->hook) {
        if (rsp->hook) {
-           WINDOW *w;
            int count = (rsp->line < 0) ? -rsp->line : rsp->line;
 
            int count = (rsp->line < 0) ? -rsp->line : rsp->line;
 
-           if (rsp->line < 0) {
-               w = newwin(count, scolumns, SP->_lines_avail - count, 0);
-               if (w) {
-                   rsp->w = w;
-                   rsp->hook(w, scolumns);
-                   bottom_stolen += count;
-               } else
-                   return ERR;
-           } else {
-               w = newwin(count, scolumns, 0, 0);
-               if (w) {
-                   rsp->w = w;
-                   rsp->hook(w, scolumns);
-                   SP->_topstolen += count;
-               } else
-                   return ERR;
-           }
+           SP->_rippedoff[i].w = newwin(count,
+                                        scolumns,
+                                        ((rsp->line < 0)
+                                         ? SP->_lines_avail - count
+                                         : 0),
+                                        0);
+           if (SP->_rippedoff[i].w != 0)
+               SP->_rippedoff[i].hook(SP->_rippedoff[i].w, scolumns);
+           else
+               returnCode(ERR);
+           if (rsp->line < 0)
+               bottom_stolen += count;
+           else
+               SP->_topstolen += count;
            SP->_lines_avail -= count;
        }
        rsp->line = 0;
     }
            SP->_lines_avail -= count;
        }
        rsp->line = 0;
     }
+    SP->_rip_count = i;
     /* reset the stack */
     rsp = rippedoff;
 
     T(("creating stdscr"));
     assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
     if ((stdscr = newwin(LINES = SP->_lines_avail, scolumns, 0, 0)) == 0)
     /* reset the stack */
     rsp = rippedoff;
 
     T(("creating stdscr"));
     assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
     if ((stdscr = newwin(LINES = SP->_lines_avail, scolumns, 0, 0)) == 0)
-       return ERR;
+       returnCode(ERR);
     SP->_stdscr = stdscr;
 
     SP->_stdscr = stdscr;
 
-    def_shell_mode();
-    def_prog_mode();
-
-    return OK;
+    returnCode(OK);
 }
 
 /* The internal implementation interprets line as the number of
    lines to rip off from the top or bottom.
    */
 }
 
 /* The internal implementation interprets line as the number of
    lines to rip off from the top or bottom.
    */
-int
+NCURSES_EXPORT(int)
 _nc_ripoffline(int line, int (*init) (WINDOW *, int))
 {
 _nc_ripoffline(int line, int (*init) (WINDOW *, int))
 {
-    if (line == 0)
-       return (OK);
+    T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init));
+
+    if (line != 0) {
 
 
-    if (rsp >= rippedoff + N_RIPS)
-       return (ERR);
+       if (rsp >= rippedoff + N_RIPS)
+           returnCode(ERR);
 
 
-    rsp->line = line;
-    rsp->hook = init;
-    rsp->w = 0;
-    rsp++;
+       rsp->line = line;
+       rsp->hook = init;
+       rsp->w = 0;
+       rsp++;
+    }
 
 
-    return (OK);
+    returnCode(OK);
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 ripoffline(int line, int (*init) (WINDOW *, int))
 {
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
 ripoffline(int line, int (*init) (WINDOW *, int))
 {
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
index 21eae687c67f5a3745da3e6579650fe15b8954fa..72fff96d9b3153238bb04812e17b7c64b57f8bc1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 #include <curses.priv.h>
 
 #include <ctype.h>
-#include <term.h>      /* num_labels, label_*, plab_norm */
+#include <term.h>              /* num_labels, label_*, plab_norm */
 
 
-MODULE_ID("$Id: lib_slk.c,v 1.17 1999/10/30 23:00:16 tom Exp $")
+MODULE_ID("$Id: lib_slk.c,v 1.24 2002/09/28 17:46:40 tom Exp $")
 
 /*
  * We'd like to move these into the screen context structure, but cannot,
  * because slk_init() is called before initscr()/newterm().
  */
 
 /*
  * We'd like to move these into the screen context structure, but cannot,
  * because slk_init() is called before initscr()/newterm().
  */
-int _nc_slk_format = 0;  /* one more than format specified in slk_init() */
+NCURSES_EXPORT_VAR(int)
+_nc_slk_format = 0;            /* one more than format specified in slk_init() */
 
 /*
  * Paint the info line for the PC style SLK emulation.
 
 /*
  * Paint the info line for the PC style SLK emulation.
@@ -56,26 +57,15 @@ int _nc_slk_format = 0;  /* one more than format specified in slk_init() */
 static void
 slk_paint_info(WINDOW *win)
 {
 static void
 slk_paint_info(WINDOW *win)
 {
-  if (win && SP->slk_format==4)
-    {
-      int i;
-
-      mvwhline (win,0,0,0,getmaxx(win));
-      wmove (win,0,0);
-
-      for (i = 0; i < SP->_slk->maxlab; i++) {
-       if (win && SP->slk_format==4)
-         {
-           mvwaddch(win,0,SP->_slk->ent[i].x,'F');
-           if (i<9)
-             waddch(win,'1'+i);
-           else
-             {
-               waddch(win,'1');
-               waddch(win,'0' + (i-9));
-             }
-         }
-      }
+    if (win && SP->slk_format == 4) {
+       int i;
+
+       mvwhline(win, 0, 0, 0, getmaxx(win));
+       wmove(win, 0, 0);
+
+       for (i = 0; i < SP->_slk->maxlab; i++) {
+           mvwprintw(win, 0, SP->_slk->ent[i].x, "F%d", i + 1);
+       }
     }
 }
 
     }
 }
 
@@ -83,132 +73,129 @@ slk_paint_info(WINDOW *win)
  * Initialize soft labels.
  * Called from newterm()
  */
  * Initialize soft labels.
  * Called from newterm()
  */
-int
+NCURSES_EXPORT(int)
 _nc_slk_initialize(WINDOW *stwin, int cols)
 {
 _nc_slk_initialize(WINDOW *stwin, int cols)
 {
-int i, x;
-int res = OK;
-char *p;
-
-       T(("slk_initialize()"));
-
-       if (SP->_slk)
-         { /* we did this already, so simply return */
-           return(OK);
-         }
-       else
-         if ((SP->_slk = typeCalloc(SLK, 1)) == 0)
-           return(ERR);
-
-       SP->_slk->ent    = NULL;
-       SP->_slk->buffer = NULL;
-       SP->_slk->attr   = A_STANDOUT;
-
-       SP->_slk->maxlab = (num_labels > 0) ?
-         num_labels : MAX_SKEY(_nc_slk_format);
-       SP->_slk->maxlen = (num_labels > 0) ?
-         label_width * label_height : MAX_SKEY_LEN(_nc_slk_format);
-       SP->_slk->labcnt = (SP->_slk->maxlab < MAX_SKEY(_nc_slk_format)) ? 
-         MAX_SKEY(_nc_slk_format) : SP->_slk->maxlab;
-
-       SP->_slk->ent = typeCalloc(slk_ent, SP->_slk->labcnt);
-       if (SP->_slk->ent == NULL)
-         goto exception;
-
-       p = SP->_slk->buffer = (char*) calloc(2*SP->_slk->labcnt,(1+SP->_slk->maxlen));
-       if (SP->_slk->buffer == NULL)
-         goto exception;
-
-       for (i = 0; i < SP->_slk->labcnt; i++) {
-               SP->_slk->ent[i].text = p;
-               p += (1 + SP->_slk->maxlen);
-               SP->_slk->ent[i].form_text = p;
-               p += (1 + SP->_slk->maxlen);
-               memset(SP->_slk->ent[i].form_text, ' ', (unsigned)(SP->_slk->maxlen));
-               SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
-       }
-       if (_nc_slk_format >= 3) /* PC style */
-         {
-           int gap = (cols - 3 * (3 + 4*SP->_slk->maxlen))/2;
+    int i, x;
+    int res = OK;
+    char *p;
+    unsigned max_length;
+
+    T(("slk_initialize()"));
+
+    if (SP->_slk) {            /* we did this already, so simply return */
+       return (OK);
+    } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0)
+       return (ERR);
+
+    SP->_slk->ent = NULL;
+    SP->_slk->buffer = NULL;
+    SP->_slk->attr = A_STANDOUT;
+
+    SP->_slk->maxlab = ((num_labels > 0)
+                       ? num_labels
+                       : MAX_SKEY(_nc_slk_format));
+    SP->_slk->maxlen = ((num_labels > 0)
+                       ? label_width * label_height
+                       : MAX_SKEY_LEN(_nc_slk_format));
+    SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_slk_format))
+                       ? MAX_SKEY(_nc_slk_format)
+                       : SP->_slk->maxlab);
+
+    if (SP->_slk->maxlen <= 0
+       || SP->_slk->labcnt <= 0
+       || (SP->_slk->ent = typeCalloc(slk_ent,
+                                      (unsigned) SP->_slk->labcnt)) == NULL)
+       goto exception;
+
+    max_length = SP->_slk->maxlen;
+    p = SP->_slk->buffer = (char *) calloc((unsigned) (2 * SP->_slk->labcnt),
+                                          (1 + max_length));
+    if (SP->_slk->buffer == NULL)
+       goto exception;
+
+    for (i = 0; i < SP->_slk->labcnt; i++) {
+       SP->_slk->ent[i].text = p;
+       p += (1 + max_length);
+       SP->_slk->ent[i].form_text = p;
+       p += (1 + max_length);
+       memset(SP->_slk->ent[i].form_text, ' ', max_length);
+       SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
+    }
+    if (_nc_slk_format >= 3) { /* PC style */
+       int gap = (cols - 3 * (3 + 4 * max_length)) / 2;
 
 
-           if (gap < 1)
-             gap = 1;
+       if (gap < 1)
+           gap = 1;
 
 
-           for (i = x = 0; i < SP->_slk->maxlab; i++) {
-             SP->_slk->ent[i].x = x;
-             x += SP->_slk->maxlen;
-             x += (i==3 || i==7) ? gap : 1;
-           }
-           if (_nc_slk_format == 4)
-             slk_paint_info (stwin);
-         }
-       else {
-         if (_nc_slk_format == 2) {    /* 4-4 */
-           int gap = cols - (SP->_slk->maxlab * SP->_slk->maxlen) - 6;
+       for (i = x = 0; i < SP->_slk->maxlab; i++) {
+           SP->_slk->ent[i].x = x;
+           x += max_length;
+           x += (i == 3 || i == 7) ? gap : 1;
+       }
+       slk_paint_info(stwin);
+    } else {
+       if (_nc_slk_format == 2) {      /* 4-4 */
+           int gap = cols - (SP->_slk->maxlab * max_length) - 6;
 
            if (gap < 1)
 
            if (gap < 1)
-                       gap = 1;
+               gap = 1;
            for (i = x = 0; i < SP->_slk->maxlab; i++) {
            for (i = x = 0; i < SP->_slk->maxlab; i++) {
-             SP->_slk->ent[i].x = x;
-             x += SP->_slk->maxlen;
-             x += (i == 3) ? gap : 1;
+               SP->_slk->ent[i].x = x;
+               x += max_length;
+               x += (i == 3) ? gap : 1;
            }
            }
-         }
-         else
-           {
-             if (_nc_slk_format == 1) { /* 1 -> 3-2-3 */
-               int gap = (cols - (SP->_slk->maxlab * SP->_slk->maxlen) - 5) / 2;
+       } else {
+           if (_nc_slk_format == 1) {  /* 1 -> 3-2-3 */
+               int gap = (cols - (SP->_slk->maxlab * max_length) - 5)
+               / 2;
 
                if (gap < 1)
 
                if (gap < 1)
-                 gap = 1;
+                   gap = 1;
                for (i = x = 0; i < SP->_slk->maxlab; i++) {
                for (i = x = 0; i < SP->_slk->maxlab; i++) {
-                 SP->_slk->ent[i].x = x;
-                 x += SP->_slk->maxlen;
-                 x += (i == 2 || i == 4) ? gap : 1;
+                   SP->_slk->ent[i].x = x;
+                   x += max_length;
+                   x += (i == 2 || i == 4) ? gap : 1;
                }
                }
-             }
-             else
+           } else
                goto exception;
                goto exception;
-           }
        }
        }
-       SP->_slk->dirty = TRUE;
-       if ((SP->_slk->win = stwin) == NULL)
-       {
-       exception:
-               if (SP->_slk)
-               {
-                  FreeIfNeeded(SP->_slk->buffer);
-                  FreeIfNeeded(SP->_slk->ent);
-                  free(SP->_slk);
-                  SP->_slk = (SLK*)0;
-                  res = (ERR);
-               }
+    }
+    SP->_slk->dirty = TRUE;
+    if ((SP->_slk->win = stwin) == NULL) {
+      exception:
+       if (SP->_slk) {
+           FreeIfNeeded(SP->_slk->buffer);
+           FreeIfNeeded(SP->_slk->ent);
+           free(SP->_slk);
+           SP->_slk = (SLK *) 0;
+           res = (ERR);
        }
        }
+    }
 
 
-       /* We now reset the format so that the next newterm has again
-        * per default no SLK keys and may call slk_init again to
-        * define a new layout. (juergen 03-Mar-1999)
-        */
-       SP->slk_format = _nc_slk_format;
-       _nc_slk_format = 0;
-       return(res);
+    /* We now reset the format so that the next newterm has again
+     * per default no SLK keys and may call slk_init again to
+     * define a new layout. (juergen 03-Mar-1999)
+     */
+    SP->slk_format = _nc_slk_format;
+    _nc_slk_format = 0;
+    return (res);
 }
 
 }
 
-
 /*
  * Restore the soft labels on the screen.
  */
 /*
  * Restore the soft labels on the screen.
  */
-int
+NCURSES_EXPORT(int)
 slk_restore(void)
 {
 slk_restore(void)
 {
-       T((T_CALLED("slk_restore()")));
+    T((T_CALLED("slk_restore()")));
 
 
-       if (SP->_slk == NULL)
-               return(ERR);
-       SP->_slk->hidden = FALSE;
-       SP->_slk->dirty = TRUE;
-       /* we have to repaint info line eventually */
-       slk_paint_info(SP->_slk->win);
+    if (SP->_slk == NULL)
+       return (ERR);
+    SP->_slk->hidden = FALSE;
+    SP->_slk->dirty = TRUE;
+    /* we have to repaint info line eventually */
+    slk_paint_info(SP->_slk->win);
 
 
-       returnCode(slk_refresh());
+    returnCode(slk_refresh());
 }
 }
index 0695d186bb5d97b061bb2148ce3c5809128ab832..ec09fddff4f34789b67848fbc745b0b44c93d66c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1998                  *
+ *  Author:  Juergen Pfeifer, 1998                                          *
+ *  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
  */
 #include <curses.priv.h>
 
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatr_set.c,v 1.3 1999/05/16 17:13:59 juergen Exp $")
+MODULE_ID("$Id: lib_slkatr_set.c,v 1.6 2002/07/06 22:47:23 juergen Exp $")
 
 
-int
-slk_attr_set(const attr_t attr, short color_pair_number, void* opts)
+NCURSES_EXPORT(int)
+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));
+    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));
-      returnCode(OK);
-    }
-  else
-    returnCode(ERR);
+    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));
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 5e4f5f5593a37e54a84afd11396d08aa40d1c4a7..c271c342101a908b145399d7d02da23dee11f871 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrof.c,v 1.4 1998/03/11 19:26:07 juergen Exp $")
+MODULE_ID("$Id: lib_slkatrof.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_attroff(const chtype attr)
 {
 slk_attroff(const chtype attr)
 {
-  T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
 
 
-  if (SP!=0 && SP->_slk!=0)
-    {
-      toggle_attr_off(SP->_slk->attr,attr);
-      returnCode(OK);
-    }
-  else
-    returnCode(ERR);
+    if (SP != 0 && SP->_slk != 0) {
+       toggle_attr_off(SP->_slk->attr, attr);
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index a24886522cde6f29b6544447771ee2a9083b337e..d174b0394926469272b56071dd4b287f90b58c78 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatron.c,v 1.4 1998/03/11 19:26:07 juergen Exp $")
+MODULE_ID("$Id: lib_slkatron.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_attron(const chtype attr)
 {
 slk_attron(const chtype attr)
 {
-  T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
 
 
-  if (SP!=0 && SP->_slk!=0)
-    {
-      toggle_attr_on(SP->_slk->attr,attr);
-      returnCode(OK);
-    }
-  else
-    returnCode(ERR);
+    if (SP != 0 && SP->_slk != 0) {
+       toggle_attr_on(SP->_slk->attr, attr);
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 391c7ffe8cb7eebb7f71d5056349ac835586d030..cda74cad42d0948e2cc7d953f66f760fd2d101c0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrset.c,v 1.4 1998/03/11 19:26:01 juergen Exp $")
+MODULE_ID("$Id: lib_slkatrset.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_attrset(const chtype attr)
 {
 slk_attrset(const chtype attr)
 {
-  T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
 
 
-  if (SP!=0 && SP->_slk!=0)
-    {
-      SP->_slk->attr = attr;
-      returnCode(OK);
-    }
-  else
-    returnCode(ERR);
+    if (SP != 0 && SP->_slk != 0) {
+       SP->_slk->attr = attr;
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index a13240324e5136c53bdbb0ed3584ad78be767ff3..5044a08d727adf644fa243b1965665d3f0ee8701 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkattr.c,v 1.3 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_slkattr.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
 
 
-attr_t
+NCURSES_EXPORT(attr_t)
 slk_attr(void)
 {
 slk_attr(void)
 {
-  T((T_CALLED("slk_attr()")));
+    T((T_CALLED("slk_attr()")));
 
 
-  if (SP!=0 && SP->_slk!=0)
-    {
-      returnAttr(SP->_slk->attr);
-    }
-  else
-    returnAttr(0);
+    if (SP != 0 && SP->_slk != 0) {
+       returnAttr(SP->_slk->attr);
+    } else
+       returnAttr(0);
 }
 }
index ac6e414beaa26bc5228e565ba91a71188fdde10a..03e6721cbb29c9ee6092edbd3ec334bdf1fcf657 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkclear.c,v 1.4 1999/03/03 23:44:22 juergen Exp $")
+MODULE_ID("$Id: lib_slkclear.c,v 1.8 2001/12/19 01:07:01 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_clear(void)
 {
 slk_clear(void)
 {
-       T((T_CALLED("slk_clear()")));
+    T((T_CALLED("slk_clear()")));
 
 
-       if (SP == NULL || SP->_slk == NULL)
-               returnCode(ERR);
-       SP->_slk->hidden = TRUE;
-       /* For simulated SLK's it's looks much more natural to
-          inherit those attributes from the standard screen */
-       SP->_slk->win->_bkgd  = stdscr->_bkgd;
-       SP->_slk->win->_attrs = stdscr->_attrs;
-        if (SP->_slk->win == stdscr) {
-          returnCode(OK);
-        }
-       else {
-         werase(SP->_slk->win);
-         returnCode(wrefresh(SP->_slk->win));
-       }
+    if (SP == NULL || SP->_slk == NULL)
+       returnCode(ERR);
+    SP->_slk->hidden = TRUE;
+    /* For simulated SLK's it's looks much more natural to
+       inherit those attributes from the standard screen */
+    SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
+    SP->_slk->win->_attrs = stdscr->_attrs;
+    if (SP->_slk->win == stdscr) {
+       returnCode(OK);
+    } else {
+       werase(SP->_slk->win);
+       returnCode(wrefresh(SP->_slk->win));
+    }
 }
 }
index 3728808f9b6c16820347959a2fdd3ac5288289a8..b6032b4dde7d9bc60fb7f6a811c0ab596a0a6d79 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <juergen.pfeifer@gmx.net> 1998                  *
+ *  Author:  Juergen Pfeifer, 1998                                          *
+ *  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en              *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
  */
 #include <curses.priv.h>
 
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkcolor.c,v 1.5 1999/05/16 17:14:13 juergen Exp $")
+MODULE_ID("$Id: lib_slkcolor.c,v 1.8 2002/07/06 22:49:22 juergen Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_color(short color_pair_number)
 {
 slk_color(short color_pair_number)
 {
-  T((T_CALLED("slk_color(%d)"), color_pair_number));
+    T((T_CALLED("slk_color(%d)"), 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));
-      returnCode(OK);
-    }
-  else
-    returnCode(ERR);
+    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));
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 708442604d910d7130d203709501d1e897d7ab08..f003b5f033f084f0afdbc8e1064b742bb38ac8d7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkinit.c,v 1.3 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_slkinit.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_init(int format)
 {
 slk_init(int format)
 {
-       T((T_CALLED("slk_init(%d)"), format));
-       if (format < 0 || format > 3)
-               returnCode(ERR);
-       _nc_slk_format = 1 + format;
-       returnCode(OK);
+    T((T_CALLED("slk_init(%d)"), format));
+    if (format < 0 || format > 3)
+       returnCode(ERR);
+    _nc_slk_format = 1 + format;
+    returnCode(OK);
 }
 }
index 03039ad696cae1c46a8a95308a0eeb6e1105ee2f..0224e9b0c8632dd3daad87d1050ff569adde577a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slklab.c,v 1.4 1998/02/11 12:13:54 tom Exp $")
+MODULE_ID("$Id: lib_slklab.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
 
 
-char*
+NCURSES_EXPORT(char *)
 slk_label(int n)
 {
 slk_label(int n)
 {
-       T((T_CALLED("slk_label(%d)"), n));
+    T((T_CALLED("slk_label(%d)"), n));
 
 
-       if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt)
-               returnPtr(0);
-       returnPtr(SP->_slk->ent[n-1].text);
+    if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt)
+       returnPtr(0);
+    returnPtr(SP->_slk->ent[n - 1].text);
 }
 }
index ee3c91dbee6710d6faeeee0bbdedbe88e46d35d4..18e5b0c1c2f73b53733b403968f05844eff6135c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     Write SLK window to the (virtual) screen.
  */
 #include <curses.priv.h>
  *     Write SLK window to the (virtual) screen.
  */
 #include <curses.priv.h>
-#include <term.h>        /* num_labels, label_*, plab_norm */
+#include <term.h>              /* num_labels, label_*, plab_norm */
 
 
-MODULE_ID("$Id: lib_slkrefr.c,v 1.8 1999/03/14 00:10:27 Alexander.V.Lukyanov Exp $")
+MODULE_ID("$Id: lib_slkrefr.c,v 1.10 2000/12/10 02:43:27 tom Exp $")
 
 /*
  * Write the soft labels to the soft-key window.
  */
 static void
 
 /*
  * Write the soft labels to the soft-key window.
  */
 static void
-slk_intern_refresh(SLK *slk)
+slk_intern_refresh(SLK * slk)
 {
 {
-int i;
-int fmt = SP->slk_format;
+    int i;
+    int fmt = SP->slk_format;
 
 
-       for (i = 0; i < slk->labcnt; i++) {
-               if (slk->dirty || slk->ent[i].dirty) {
-                       if (slk->ent[i].visible) {
-                               if (num_labels > 0 && SLK_STDFMT(fmt))
-                               {
-                                 if (i < num_labels) {
-                                   TPUTS_TRACE("plab_norm");
-                                   putp(tparm(plab_norm, i+1, slk->ent[i].form_text));
-                                 }
-                               }
-                               else
-                               {
-                                       wmove(slk->win,SLK_LINES(fmt)-1,slk->ent[i].x);
-                                       if (SP && SP->_slk)
-                                         wattrset(slk->win,SP->_slk->attr);
-                                       waddnstr(slk->win,slk->ent[i].form_text,
-                                                MAX_SKEY_LEN(fmt));
-                                       /* if we simulate SLK's, it's looking much more
-                                          natural to use the current ATTRIBUTE also
-                                          for the label window */
-                                       wattrset(slk->win,stdscr->_attrs);
-                               }
-                       }
-                       slk->ent[i].dirty = FALSE;
+    for (i = 0; i < slk->labcnt; i++) {
+       if (slk->dirty || slk->ent[i].dirty) {
+           if (slk->ent[i].visible) {
+               if (num_labels > 0 && SLK_STDFMT(fmt)) {
+                   if (i < num_labels) {
+                       TPUTS_TRACE("plab_norm");
+                       putp(tparm(plab_norm, i + 1, slk->ent[i].form_text));
+                   }
+               } else {
+                   wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].x);
+                   if (SP && SP->_slk)
+                       wattrset(slk->win, SP->_slk->attr);
+                   waddnstr(slk->win, slk->ent[i].form_text,
+                            MAX_SKEY_LEN(fmt));
+                   /* if we simulate SLK's, it's looking much more
+                      natural to use the current ATTRIBUTE also
+                      for the label window */
+                   wattrset(slk->win, stdscr->_attrs);
                }
                }
+           }
+           slk->ent[i].dirty = FALSE;
        }
        }
-       slk->dirty = FALSE;
+    }
+    slk->dirty = FALSE;
 
 
-       if (num_labels > 0) {
-           if (slk->hidden)
-           {
-               TPUTS_TRACE("label_off");
-               putp(label_off);
-           }
-           else
-           {
-               TPUTS_TRACE("label_on");
-               putp(label_on);
-           }
+    if (num_labels > 0) {
+       if (slk->hidden) {
+           TPUTS_TRACE("label_off");
+           putp(label_off);
+       } else {
+           TPUTS_TRACE("label_on");
+           putp(label_on);
        }
        }
+    }
 }
 
 /*
  * Refresh the soft labels.
  */
 }
 
 /*
  * Refresh the soft labels.
  */
-int
+NCURSES_EXPORT(int)
 slk_noutrefresh(void)
 {
 slk_noutrefresh(void)
 {
-       T((T_CALLED("slk_noutrefresh()")));
+    T((T_CALLED("slk_noutrefresh()")));
 
 
-       if (SP == NULL || SP->_slk == NULL)
-               returnCode(ERR);
-       if (SP->_slk->hidden)
-               returnCode(OK);
-       slk_intern_refresh(SP->_slk);
+    if (SP == NULL || SP->_slk == NULL)
+       returnCode(ERR);
+    if (SP->_slk->hidden)
+       returnCode(OK);
+    slk_intern_refresh(SP->_slk);
 
 
-       returnCode(wnoutrefresh(SP->_slk->win));
+    returnCode(wnoutrefresh(SP->_slk->win));
 }
 
 /*
  * Refresh the soft labels.
  */
 }
 
 /*
  * Refresh the soft labels.
  */
-int
+NCURSES_EXPORT(int)
 slk_refresh(void)
 {
 slk_refresh(void)
 {
-       T((T_CALLED("slk_refresh()")));
+    T((T_CALLED("slk_refresh()")));
 
 
-       if (SP == NULL || SP->_slk == NULL)
-               returnCode(ERR);
-       if (SP->_slk->hidden)
-               returnCode(OK);
-       slk_intern_refresh(SP->_slk);
+    if (SP == NULL || SP->_slk == NULL)
+       returnCode(ERR);
+    if (SP->_slk->hidden)
+       returnCode(OK);
+    slk_intern_refresh(SP->_slk);
 
 
-       returnCode(wrefresh(SP->_slk->win));
+    returnCode(wrefresh(SP->_slk->win));
 }
 }
index 27471add77fa97c3f07788f654f34305b1b4b815..d15002f17dba7205046dce6e0d58678db569b2be 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_slkset.c,v 1.3 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_slkset.c,v 1.7 2001/06/02 22:50:29 skimo Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_set(int i, const char *astr, int format)
 {
 slk_set(int i, const char *astr, int format)
 {
-SLK *slk = SP->_slk;
-size_t len;
-const char *str = astr;
-const char *p;
+    SLK *slk = SP->_slk;
+    size_t len;
+    const char *str = astr;
+    const char *p;
 
 
-       T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
+    T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
 
 
-       if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
-               returnCode(ERR);
-       if (str == NULL)
-               str = "";
+    if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
+       returnCode(ERR);
+    if (str == NULL)
+       str = "";
 
 
-       while (isspace(*str)) str++; /* skip over leading spaces  */
-       p = str;
-       while (isprint(*p)) p++;     /* The first non-print stops */
+    while (isspace(UChar(*str)))
+       str++;                  /* skip over leading spaces  */
+    p = str;
+    while (isprint(UChar(*p)))
+       p++;                    /* The first non-print stops */
 
 
-       --i; /* Adjust numbering of labels */
+    --i;                       /* Adjust numbering of labels */
 
 
-       len = (size_t)(p - str);
-       if (len > (unsigned)slk->maxlen)
-         len = slk->maxlen;
-       if (len==0)
-         slk->ent[i].text[0] = 0;
-       else
-         (void) strncpy(slk->ent[i].text, str, len);
-       memset(slk->ent[i].form_text,' ', (unsigned)slk->maxlen);
-       slk->ent[i].text[slk->maxlen] = 0;
-       /* len = strlen(slk->ent[i].text); */
+    len = (size_t) (p - str);
+    if (len > (unsigned) slk->maxlen)
+       len = slk->maxlen;
+    if (len == 0)
+       slk->ent[i].text[0] = 0;
+    else
+       (void) strncpy(slk->ent[i].text, str, len);
+    memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen);
+    slk->ent[i].text[slk->maxlen] = 0;
+    /* len = strlen(slk->ent[i].text); */
 
 
-       switch(format) {
-       case 0: /* left-justified */
-               memcpy(slk->ent[i].form_text,
-                      slk->ent[i].text,
-                      len);
-               break;
-       case 1: /* centered */
-               memcpy(slk->ent[i].form_text+(slk->maxlen - len)/2,
-                      slk->ent[i].text,
-                      len);
-               break;
-       case 2: /* right-justified */
-               memcpy(slk->ent[i].form_text+ slk->maxlen - len,
-                      slk->ent[i].text,
-                      len);
-               break;
-       }
-       slk->ent[i].form_text[slk->maxlen] = 0;
-       slk->ent[i].dirty = TRUE;
-       returnCode(OK);
+    switch (format) {
+    case 0:                    /* left-justified */
+       memcpy(slk->ent[i].form_text,
+              slk->ent[i].text,
+              len);
+       break;
+    case 1:                    /* centered */
+       memcpy(slk->ent[i].form_text + (slk->maxlen - len) / 2,
+              slk->ent[i].text,
+              len);
+       break;
+    case 2:                    /* right-justified */
+       memcpy(slk->ent[i].form_text + slk->maxlen - len,
+              slk->ent[i].text,
+              len);
+       break;
+    }
+    slk->ent[i].form_text[slk->maxlen] = 0;
+    slk->ent[i].dirty = TRUE;
+    returnCode(OK);
 }
 }
index c2829aed0e183a7a7fd2e9b7ce1ecdb4ef5ffdb6..5eb5df385b82c02aba1ca720d9d47616fa9af3da 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_slktouch.c,v 1.3 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_slktouch.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 slk_touch(void)
 {
 slk_touch(void)
 {
-       T((T_CALLED("slk_touch()")));
+    T((T_CALLED("slk_touch()")));
 
 
-       if (SP == NULL || SP->_slk == NULL)
-               returnCode(ERR);
-       SP->_slk->dirty = TRUE;
+    if (SP == NULL || SP->_slk == NULL)
+       returnCode(ERR);
+    SP->_slk->dirty = TRUE;
 
 
-       returnCode(OK);
+    returnCode(OK);
 }
 }
index 7ce863d06f104ce295a840c9621db836ea51c49f..2ac21f2e0d1f34b01a81a48613ec32e8245cea14 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_touch.c,v 1.6 1998/04/11 22:55:02 tom Exp $")
+MODULE_ID("$Id: lib_touch.c,v 1.9 2000/12/10 02:43:27 tom Exp $")
 
 
-bool is_linetouched(WINDOW *win, int line)
+NCURSES_EXPORT(bool)
+is_linetouched(WINDOW *win, int line)
 {
 {
-       T((T_CALLED("is_linetouched(%p,%d)"), win, line));
+    T((T_CALLED("is_linetouched(%p,%d)"), win, line));
 
 
-       /* XSI doesn't define any error */
-       if (!win || (line > win->_maxy) || (line < 0))
-               returnCode(ERR);
+    /* XSI doesn't define any error */
+    if (!win || (line > win->_maxy) || (line < 0))
+       returnCode((bool) ERR);
 
 
-       returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE);
+    returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE);
 }
 
 }
 
-bool is_wintouched(WINDOW *win)
+NCURSES_EXPORT(bool)
+is_wintouched(WINDOW *win)
 {
 {
-int i;
+    int i;
 
 
-       T((T_CALLED("is_wintouched(%p)"), win));
+    T((T_CALLED("is_wintouched(%p)"), win));
 
 
-       if (win)
-               for (i = 0; i <= win->_maxy; i++)
-                       if (win->_line[i].firstchar != _NOCHANGE)
-                               returnCode(TRUE);
-       returnCode(FALSE);
+    if (win)
+       for (i = 0; i <= win->_maxy; i++)
+           if (win->_line[i].firstchar != _NOCHANGE)
+               returnCode(TRUE);
+    returnCode(FALSE);
 }
 
 }
 
-int wtouchln(WINDOW *win, int y, int n, int changed)
+NCURSES_EXPORT(int)
+wtouchln(WINDOW *win, int y, int n, int changed)
 {
 {
-int i;
+    int i;
 
 
-       T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed));
+    T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed));
 
 
-       if (!win || (n<0) || (y<0) || (y>win->_maxy))
-         returnCode(ERR);
+    if (!win || (n < 0) || (y < 0) || (y > win->_maxy))
+       returnCode(ERR);
 
 
-       for (i = y; i < y+n; i++) {
-               if (i>win->_maxy) break;
-               win->_line[i].firstchar = changed ? 0 : _NOCHANGE;
-               win->_line[i].lastchar = changed ? win->_maxx : _NOCHANGE;
-       }
-       returnCode(OK);
+    for (i = y; i < y + n; i++) {
+       if (i > win->_maxy)
+           break;
+       win->_line[i].firstchar = changed ? 0 : _NOCHANGE;
+       win->_line[i].lastchar = changed ? win->_maxx : _NOCHANGE;
+    }
+    returnCode(OK);
 }
 }
index 5fdfb47d490f0e9c7c21d34751e0fac56fa303a9..a6164df5edc1c48c2f4246afdba8f67cbe83cd16 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_ungetch.c,v 1.2 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_ungetch.c,v 1.8 2002/08/24 22:08:48 tom Exp $")
 
 #include <fifo_defs.h>
 
 #ifdef TRACE
 
 #include <fifo_defs.h>
 
 #ifdef TRACE
-void _nc_fifo_dump(void)
+NCURSES_EXPORT(void)
+_nc_fifo_dump(void)
 {
 {
-int i;
-       T(("head = %d, tail = %d, peek = %d", head, tail, peek));
-       for (i = 0; i < 10; i++)
-               T(("char %d = %s", i, _trace_key(SP->_fifo[i])));
+    int i;
+    T(("head = %d, tail = %d, peek = %d", head, tail, peek));
+    for (i = 0; i < 10; i++)
+       T(("char %d = %s", i, _tracechar(SP->_fifo[i])));
 }
 #endif /* TRACE */
 
 }
 #endif /* TRACE */
 
-int ungetch(int ch)
+NCURSES_EXPORT(int)
+ungetch(int ch)
 {
 {
-       if (tail == -1)
-               return ERR;
-       if (head == -1) {
-               head = 0;
-               t_inc()
-               peek = tail; /* no raw keys */
-       } else
-               h_dec();
+    T((T_CALLED("ungetch(%s)"), _tracechar(ch)));
 
 
-       SP->_fifo[head] = ch;
-       T(("ungetch %#x ok", ch));
+    if (tail == -1)
+       returnCode(ERR);
+    if (head == -1) {
+       head = 0;
+       t_inc()
+           peek = tail;        /* no raw keys */
+    } else
+       h_dec();
+
+    SP->_fifo[head] = ch;
+    T(("ungetch %s ok", _tracechar(ch)));
 #ifdef TRACE
 #ifdef TRACE
-       if (_nc_tracing & TRACE_IEVENT) _nc_fifo_dump();
+    if (_nc_tracing & TRACE_IEVENT)
+       _nc_fifo_dump();
 #endif
 #endif
-       return OK;
+    returnCode(OK);
 }
 }
index e48b864f497da09fafdaf9e5c2274ec10053e2e7..c19570b66265cec3a1d356254f78e63a7a5433fe 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,9 +40,9 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_vline.c,v 1.5 2000/04/29 21:14:11 tom Exp $")
+MODULE_ID("$Id: lib_vline.c,v 1.9 2001/06/03 00:39:24 skimo Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 wvline(WINDOW *win, chtype ch, int n)
 {
     int code = ERR;
 wvline(WINDOW *win, chtype ch, int n)
 {
     int code = ERR;
@@ -52,6 +52,7 @@ wvline(WINDOW *win, chtype ch, int n)
     T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n));
 
     if (win) {
     T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n));
 
     if (win) {
+       NCURSES_CH_T wch;
        row = win->_cury;
        col = win->_curx;
        end = row + n - 1;
        row = win->_cury;
        col = win->_curx;
        end = row + n - 1;
@@ -59,12 +60,14 @@ wvline(WINDOW *win, chtype ch, int n)
            end = win->_maxy;
 
        if (ch == 0)
            end = win->_maxy;
 
        if (ch == 0)
-           ch = ACS_VLINE;
-       ch = _nc_render(win, ch);
+           SetChar(wch, ChCharOf(ACS_VLINE), ChAttrOf(ACS_VLINE));
+       else
+           SetChar(wch, ChCharOf(ch), ChAttrOf(ch));
+       wch = _nc_render(win, wch);
 
        while (end >= row) {
            struct ldat *line = &(win->_line[end]);
 
        while (end >= row) {
            struct ldat *line = &(win->_line[end]);
-           line->text[col] = ch;
+           line->text[col] = wch;
            CHANGED_CELL(line, col);
            end--;
        }
            CHANGED_CELL(line, col);
            end--;
        }
index a6c9f0f1804e1daf540eb008c3d59d9f85e943ac..2cfe6947cc82921f4c9c405766d8c163b8368fe3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_wattroff.c,v 1.4 1998/05/10 12:02:11 tom Exp $")
+MODULE_ID("$Id: lib_wattroff.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
 
 
-int wattr_off(WINDOW *win, NCURSES_CONST attr_t at, void *opts GCC_UNUSED)
+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)));
-               toggle_attr_off(win->_attrs,at);
-               returnCode(OK);
-       } else
-               returnCode(ERR);
+    T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at)));
+    if (win) {
+       T(("... current %s", _traceattr(win->_attrs)));
+       toggle_attr_off(win->_attrs, at);
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index a951c576fa4491babaa74d91589b6546f05485fc..5d1a6a9d22b9de12ebae144afae987bdc1a4933e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_wattron.c,v 1.4 1998/05/10 12:02:28 tom Exp $")
+MODULE_ID("$Id: lib_wattron.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
 
 
-int wattr_on(WINDOW *win, NCURSES_CONST attr_t at, void *opts GCC_UNUSED)
+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)));
-               toggle_attr_on(win->_attrs,at);
-               returnCode(OK);
-       } else
-               returnCode(ERR);
+    T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at)));
+    if (win) {
+       T(("... current %s", _traceattr(win->_attrs)));
+       toggle_attr_on(win->_attrs, at);
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 }
index 765220799a50689851b80164e658f10ad367cb3a..18da9c594945d18ed4b0750f4fa3122afff9a08f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_winch.c,v 1.2 2000/07/29 16:41:44 tom Exp $")
+MODULE_ID("$Id: lib_winch.c,v 1.5 2001/06/02 23:42:08 skimo Exp $")
 
 
-chtype
+NCURSES_EXPORT(chtype)
 winch(WINDOW *win)
 {
     T((T_CALLED("winch(%p)"), win));
     if (win != 0) {
 winch(WINDOW *win)
 {
     T((T_CALLED("winch(%p)"), win));
     if (win != 0) {
-       returnChar(win->_line[win->_cury].text[win->_curx]);
+       returnChar(CharOf(win->_line[win->_cury].text[win->_curx]) |
+                  AttrOf(win->_line[win->_cury].text[win->_curx]));
     } else {
        returnChar(0);
     }
     } else {
        returnChar(0);
     }
index 5eae9b1a57fb197dfc6ed1a9f01a6ca8a308dfe1..25101673044e90235ae81d823af12ab0ba6c1a5b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_window.c,v 1.13 1998/06/28 00:10:59 tom Exp $")
+MODULE_ID("$Id: lib_window.c,v 1.21 2002/09/14 23:28:02 tom Exp $")
 
 
-void _nc_synchook(WINDOW *win)
+NCURSES_EXPORT(void)
+_nc_synchook(WINDOW *win)
 /* hook to be called after each window change */
 {
 /* hook to be called after each window change */
 {
-       if (win->_immed) wrefresh(win);
-       if (win->_sync) wsyncup(win);
+    if (win->_immed)
+       wrefresh(win);
+    if (win->_sync)
+       wsyncup(win);
 }
 
 }
 
-int mvderwin(WINDOW *win, int y, int x)
+NCURSES_EXPORT(int)
+mvderwin(WINDOW *win, int y, int x)
 /* move a derived window */
 {
 /* move a derived window */
 {
-   WINDOW *orig;
-   int i;
-
-   T((T_CALLED("mvderwin(%p,%d,%d)"), win, y, x));
-
-   if (win && (orig = win->_parent))
-   {
-      if (win->_parx==x && win->_pary==y)
-       returnCode(OK);
-      if (x<0 || y<0)
+    WINDOW *orig;
+    int i;
+
+    T((T_CALLED("mvderwin(%p,%d,%d)"), win, y, x));
+
+    if (win && (orig = win->_parent)) {
+       if (win->_parx == x && win->_pary == y)
+           returnCode(OK);
+       if (x < 0 || y < 0)
+           returnCode(ERR);
+       if ((x + getmaxx(win) > getmaxx(orig)) ||
+           (y + getmaxy(win) > getmaxy(orig)))
+           returnCode(ERR);
+    } else
        returnCode(ERR);
        returnCode(ERR);
-      if ( (x+getmaxx(win) > getmaxx(orig)) ||
-           (y+getmaxy(win) > getmaxy(orig)) )
-        returnCode(ERR);
-   }
-   else
-      returnCode(ERR);
-   wsyncup(win);
-   win->_parx = x;
-   win->_pary = y;
-   for(i=0;i<getmaxy(win);i++)
-     win->_line[i].text = &(orig->_line[y++].text[x]);
-   returnCode(OK);
+    wsyncup(win);
+    win->_parx = x;
+    win->_pary = y;
+    for (i = 0; i < getmaxy(win); i++)
+       win->_line[i].text = &(orig->_line[y++].text[x]);
+    returnCode(OK);
 }
 
 }
 
-int syncok(WINDOW *win, bool bf)
+NCURSES_EXPORT(int)
+syncok(WINDOW *win, bool bf)
 /* enable/disable automatic wsyncup() on each change to window */
 {
 /* enable/disable automatic wsyncup() on each change to window */
 {
-       T((T_CALLED("syncok(%p,%d)"), win, bf));
+    T((T_CALLED("syncok(%p,%d)"), win, bf));
 
 
-       if (win) {
-               win->_sync = bf;
-               returnCode(OK);
-       } else
-               returnCode(ERR);
+    if (win) {
+       win->_sync = bf;
+       returnCode(OK);
+    } else
+       returnCode(ERR);
 }
 
 }
 
-void wsyncup(WINDOW *win)
+NCURSES_EXPORT(void)
+wsyncup(WINDOW *win)
 /* mark changed every cell in win's ancestors that is changed in win */
 /* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...)      */
 {
 /* mark changed every cell in win's ancestors that is changed in win */
 /* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...)      */
 {
-  WINDOW       *wp;
-
-  if (win && win->_parent)
-    for (wp = win; wp->_parent; wp = wp->_parent)
-      {
-       int y;
-       WINDOW *pp = wp->_parent;
-
-       assert((wp->_pary <= pp->_maxy) &&
-              ((wp->_pary+wp->_maxy) <= pp->_maxy));
-
-       for (y = 0; y <= wp->_maxy; y++)
-         {
-           int left = wp->_line[y].firstchar;
-           if (left >= 0) /* line is touched */
-             {
-               struct ldat *line = &(pp->_line[wp->_pary + y]);
-               /* left & right character in parent window coordinates */
-               int right = wp->_line[y].lastchar + wp->_parx;
-               left += wp->_parx;
-
-               CHANGED_RANGE(line, left, right);
-             }
-         }
-      }
+    WINDOW *wp;
+
+    T((T_CALLED("wsyncup(%p)"), win));
+    if (win && win->_parent) {
+       for (wp = win; wp->_parent; wp = wp->_parent) {
+           int y;
+           WINDOW *pp = wp->_parent;
+
+           assert((wp->_pary <= pp->_maxy) &&
+                  ((wp->_pary + wp->_maxy) <= pp->_maxy));
+
+           for (y = 0; y <= wp->_maxy; y++) {
+               int left = wp->_line[y].firstchar;
+               if (left >= 0) {        /* line is touched */
+                   struct ldat *line = &(pp->_line[wp->_pary + y]);
+                   /* left & right character in parent window coordinates */
+                   int right = wp->_line[y].lastchar + wp->_parx;
+                   left += wp->_parx;
+
+                   CHANGED_RANGE(line, left, right);
+               }
+           }
+       }
+    }
+    returnVoid;
 }
 
 }
 
-void wsyncdown(WINDOW *win)
+NCURSES_EXPORT(void)
+wsyncdown(WINDOW *win)
 /* mark changed every cell in win that is changed in any of its ancestors */
 /* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...)           */
 {
 /* mark changed every cell in win that is changed in any of its ancestors */
 /* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...)           */
 {
-  if (win && win->_parent)
-    {
-      WINDOW *pp = win->_parent;
-      int y;
-
-      /* This recursion guarantees, that the changes are propagated down-
-        wards from the root to our direct parent. */
-      wsyncdown(pp);
-
-      /* and now we only have to propagate the changes from our direct
-        parent, if there are any. */
-      assert((win->_pary <= pp->_maxy) &&
-            ((win->_pary + win->_maxy) <= pp->_maxy));
-
-      for (y = 0; y <= win->_maxy; y++)
-       {
-         if (pp->_line[win->_pary + y].firstchar >= 0) /* parent changed */
-           {
-             struct ldat *line = &(win->_line[y]);
-             /* left and right character in child coordinates */
-             int left  = pp->_line[win->_pary + y].firstchar - win->_parx;
-             int right = pp->_line[win->_pary + y].lastchar  - win->_parx;
-             /* The change maybe outside the childs range */
-             if (left<0)
-               left = 0;
-             if (right > win->_maxx)
-               right = win->_maxx;
-             CHANGED_RANGE(line, left, right);
+    T((T_CALLED("wsyncdown(%p)"), win));
+
+    if (win && win->_parent) {
+       WINDOW *pp = win->_parent;
+       int y;
+
+       /* This recursion guarantees, that the changes are propagated down-
+          wards from the root to our direct parent. */
+       wsyncdown(pp);
+
+       /* and now we only have to propagate the changes from our direct
+          parent, if there are any. */
+       assert((win->_pary <= pp->_maxy) &&
+              ((win->_pary + win->_maxy) <= pp->_maxy));
+
+       for (y = 0; y <= win->_maxy; y++) {
+           if (pp->_line[win->_pary + y].firstchar >= 0) {     /* parent changed */
+               struct ldat *line = &(win->_line[y]);
+               /* left and right character in child coordinates */
+               int left = pp->_line[win->_pary + y].firstchar - win->_parx;
+               int right = pp->_line[win->_pary + y].lastchar - win->_parx;
+               /* The change maybe outside the childs range */
+               if (left < 0)
+                   left = 0;
+               if (right > win->_maxx)
+                   right = win->_maxx;
+               CHANGED_RANGE(line, left, right);
            }
        }
     }
            }
        }
     }
+    returnVoid;
 }
 
 }
 
-void wcursyncup(WINDOW *win)
+NCURSES_EXPORT(void)
+wcursyncup(WINDOW *win)
 /* sync the cursor in all derived windows to its value in the base window */
 {
 /* sync the cursor in all derived windows to its value in the base window */
 {
-   WINDOW *wp;
-   for( wp = win; wp && wp->_parent; wp = wp->_parent ) {
-      wmove( wp->_parent, wp->_pary + wp->_cury, wp->_parx + wp->_curx );
-   }
+    WINDOW *wp;
+
+    T((T_CALLED("wcursyncup(%p)"), win));
+    for (wp = win; wp && wp->_parent; wp = wp->_parent) {
+       wmove(wp->_parent, wp->_pary + wp->_cury, wp->_parx + wp->_curx);
+    }
+    returnVoid;
 }
 
 }
 
-WINDOW *dupwin(WINDOW *win)
+NCURSES_EXPORT(WINDOW *)
+dupwin(WINDOW *win)
 /* make an exact duplicate of the given window */
 {
 /* make an exact duplicate of the given window */
 {
-WINDOW *nwin;
-size_t linesize;
-int i;
-
-       T((T_CALLED("dupwin(%p)"), win));
-
-       if ((win==NULL) ||
-           ((nwin = newwin(win->_maxy + 1, win->_maxx + 1, win->_begy, win->_begx)) == NULL))
-         returnWin(0);
-       
-       nwin->_curx        = win->_curx;
-       nwin->_cury        = win->_cury;
-       nwin->_maxy        = win->_maxy;
-       nwin->_maxx        = win->_maxx;
-       nwin->_begy        = win->_begy;
-       nwin->_begx        = win->_begx;
-       nwin->_yoffset     = win->_yoffset;
-
-       nwin->_flags       = win->_flags & ~_SUBWIN;
-       /* Due to the use of newwin(), the clone is not a subwindow.
-        * The text is really copied into the clone.
-        */
-
-       nwin->_attrs       = win->_attrs;
-       nwin->_bkgd        = win->_bkgd;
-
-       nwin->_clear       = win->_clear;
-       nwin->_scroll      = win->_scroll;
-       nwin->_leaveok     = win->_leaveok;
-       nwin->_use_keypad  = win->_use_keypad;
-       nwin->_delay       = win->_delay;
-       nwin->_immed       = win->_immed;
-       nwin->_sync        = win->_sync;
-
-       nwin->_parx        = 0;
-       nwin->_pary        = 0;
-       nwin->_parent      = (WINDOW*)0; 
-       /* See above: the clone isn't a subwindow! */
-
-       nwin->_regtop      = win->_regtop;
-       nwin->_regbottom   = win->_regbottom;
-
-       linesize = (win->_maxx + 1) * sizeof(chtype);
-       for (i = 0; i <= nwin->_maxy; i++) {
+    WINDOW *nwin = 0;
+    size_t linesize;
+    int i;
+
+    T((T_CALLED("dupwin(%p)"), win));
+
+    if (win != 0) {
+
+       if (win->_flags & _ISPAD) {
+           nwin = newpad(win->_maxy + 1,
+                         win->_maxx + 1);
+       } else {
+           nwin = newwin(win->_maxy + 1,
+                         win->_maxx + 1,
+                         win->_begy,
+                         win->_begx);
+       }
+
+       if (nwin != 0) {
+
+           nwin->_curx = win->_curx;
+           nwin->_cury = win->_cury;
+           nwin->_maxy = win->_maxy;
+           nwin->_maxx = win->_maxx;
+           nwin->_begy = win->_begy;
+           nwin->_begx = win->_begx;
+           nwin->_yoffset = win->_yoffset;
+
+           nwin->_flags = win->_flags & ~_SUBWIN;
+           /* Due to the use of newwin(), the clone is not a subwindow.
+            * The text is really copied into the clone.
+            */
+
+           nwin->_attrs = win->_attrs;
+           nwin->_nc_bkgd = win->_nc_bkgd;
+
+           nwin->_notimeout = win->_notimeout;
+           nwin->_clear = win->_clear;
+           nwin->_leaveok = win->_leaveok;
+           nwin->_scroll = win->_scroll;
+           nwin->_idlok = win->_idlok;
+           nwin->_idcok = win->_idcok;
+           nwin->_immed = win->_immed;
+           nwin->_sync = win->_sync;
+           nwin->_use_keypad = win->_use_keypad;
+           nwin->_delay = win->_delay;
+
+           nwin->_parx = 0;
+           nwin->_pary = 0;
+           nwin->_parent = (WINDOW *) 0;
+           /* See above: the clone isn't a subwindow! */
+
+           nwin->_regtop = win->_regtop;
+           nwin->_regbottom = win->_regbottom;
+
+           if (win->_flags & _ISPAD)
+               nwin->_pad = win->_pad;
+
+           linesize = (win->_maxx + 1) * sizeof(NCURSES_CH_T);
+           for (i = 0; i <= nwin->_maxy; i++) {
                memcpy(nwin->_line[i].text, win->_line[i].text, linesize);
                memcpy(nwin->_line[i].text, win->_line[i].text, linesize);
-               nwin->_line[i].firstchar  = win->_line[i].firstchar;
+               nwin->_line[i].firstchar = win->_line[i].firstchar;
                nwin->_line[i].lastchar = win->_line[i].lastchar;
                nwin->_line[i].lastchar = win->_line[i].lastchar;
+           }
        }
        }
-
-       returnWin(nwin);
+    }
+    returnWin(nwin);
 }
 }
index 55a410632f9805546d58e3e0ccdc9c2cc2b592e3..4fafc4cda9d89c56824ea32c9a9e2cbd5312b4c0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: memmove.c,v 1.2 1999/02/27 19:55:57 tom Exp $")
+MODULE_ID("$Id: memmove.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
 
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
 
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
@@ -37,27 +37,33 @@ MODULE_ID("$Id: memmove.c,v 1.2 1999/02/27 19:55:57 tom Exp $")
 #if USE_MY_MEMMOVE
 #define DST ((char *)s1)
 #define SRC ((const char *)s2)
 #if USE_MY_MEMMOVE
 #define DST ((char *)s1)
 #define SRC ((const char *)s2)
-void * _nc_memmove(void * s1, const void * s2, size_t n)
+NCURSES_EXPORT(void *)
+_nc_memmove(void *s1, const void *s2, size_t n)
 {
 {
-       if (n != 0) {
-               if ((DST+n > SRC) && (SRC+n > DST)) {
-                       static  char    *bfr;
-                       static  size_t  length;
-                       register size_t j;
-                       if (length < n) {
-                               length = (n * 3) / 2;
-                               bfr = typeRealloc(char,length,bfr);
-                       }
-                       for (j = 0; j < n; j++)
-                               bfr[j] = SRC[j];
-                       SRC = bfr;
-               }
-               while (n-- != 0)
-                       DST[n] = SRC[n];
+    if (n != 0) {
+       if ((DST + n > SRC) && (SRC + n > DST)) {
+           static char *bfr;
+           static size_t length;
+           register size_t j;
+           if (length < n) {
+               length = (n * 3) / 2;
+               bfr = typeRealloc(char, length, bfr);
+           }
+           for (j = 0; j < n; j++)
+               bfr[j] = SRC[j];
+           SRC = bfr;
        }
        }
-       return s1;
+       while (n-- != 0)
+           DST[n] = SRC[n];
+    }
+    return s1;
 }
 #else
 }
 #else
-extern void _nc_memmove(void); /* quiet's gcc warning */
-void _nc_memmove(void) { } /* nonempty for strict ANSI compilers */
+extern
+NCURSES_EXPORT(void)
+_nc_memmove(void);             /* quiet's gcc warning */
+NCURSES_EXPORT(void)
+_nc_memmove(void)
+{
+}                              /* nonempty for strict ANSI compilers */
 #endif /* USE_MY_MEMMOVE */
 #endif /* USE_MY_MEMMOVE */
index 536aab385dfd49e880abeac97a00ba039e5fd562..59bfbbe86ef6d0172796a6228f8808ec4d4a6507 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: nc_panel.c,v 1.2 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: nc_panel.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
 
 
-struct panelhook*
+NCURSES_EXPORT(struct panelhook *)
 _nc_panelhook(void)
 {
 _nc_panelhook(void)
 {
-  return (SP ? &(SP->_panelHook) : NULL);
+    return (SP ? &(SP->_panelHook) : NULL);
 }
 }
index 860355024cc39e67e9de31671fab3f0f7df22e1a..9cc8081b9115ef48de76a567706d89feb6491978 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission 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,1997                   *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: resizeterm.c,v 1.7 1998/09/19 19:27:43 Alexander.V.Lukyanov Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.14 2002/07/13 21:32:57 tom Exp $")
+
+#define stolen_lines (screen_lines - SP->_lines_avail)
+
+NCURSES_EXPORT(bool)
+is_term_resized(int ToLines, int ToCols)
+{
+    return (ToLines != screen_lines
+           || ToCols != screen_columns);
+}
+
+/*
+ * Return the number of levels of child-windows under the current window.
+ */
+static int
+child_depth(WINDOW *cmp)
+{
+    int depth = 0;
+
+    if (cmp != 0) {
+       WINDOWLIST *wp;
+
+       for (wp = _nc_windows; wp != 0; wp = wp->next) {
+           WINDOW *tst = &(wp->win);
+           if (tst->_parent == cmp) {
+               depth = 1 + child_depth(tst);
+               break;
+           }
+       }
+    }
+    return depth;
+}
+
+/*
+ * Return the number of levels of parent-windows above the current window.
+ */
+static int
+parent_depth(WINDOW *cmp)
+{
+    int depth = 0;
+
+    if (cmp != 0) {
+       WINDOW *tst;
+       while ((tst = cmp->_parent) != 0) {
+           ++depth;
+           cmp = tst;
+       }
+    }
+    return depth;
+}
+
+/*
+ * FIXME: must adjust position so it's within the parent!
+ */
+static int
+adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen)
+{
+    int result;
+    int bottom = screen_lines + SP->_topstolen - stolen;
+    int myLines = win->_maxy + 1;
+    int myCols = win->_maxx + 1;
+
+    T((T_CALLED("adjust_window(%p,%d,%d) currently %dx%d at %d,%d"),
+       win, ToLines, ToCols,
+       getmaxy(win), getmaxx(win),
+       getbegy(win), getbegx(win)));
+
+    if (win->_begy >= bottom) {
+       win->_begy += (ToLines - screen_lines);
+    } else {
+       if (myLines == screen_lines - stolen
+           && ToLines != screen_lines)
+           myLines = ToLines - stolen;
+       else if (myLines == screen_lines
+                && ToLines != screen_lines)
+           myLines = ToLines;
+    }
+
+    if (myLines > ToLines)
+       myLines = ToLines;
+
+    if (myCols > ToCols)
+       myCols = ToCols;
+
+    if (myLines == screen_lines
+       && ToLines != screen_lines)
+       myCols = ToLines;
+
+    if (myCols == screen_columns
+       && ToCols != screen_columns)
+       myCols = ToCols;
+
+    result = wresize(win, myLines, myCols);
+    returnCode(result);
+}
+
+/*
+ * If we're decreasing size, recursively search for windows that have no
+ * children, decrease those to fit, then decrease the containing window, etc.
+ */
+static int
+decrease_size(int ToLines, int ToCols, int stolen)
+{
+    bool found;
+    int depth = 0;
+    WINDOWLIST *wp;
+
+    T((T_CALLED("decrease_size(%d, %d)"), ToLines, ToCols));
+
+    do {
+       found = FALSE;
+       TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d",
+                         ToLines, ToCols, depth));
+       for (wp = _nc_windows; wp != 0; wp = wp->next) {
+           WINDOW *win = &(wp->win);
+
+           if (!(win->_flags & _ISPAD)) {
+               if (child_depth(win) == depth) {
+                   if (adjust_window(win, ToLines, ToCols, stolen) != OK)
+                       returnCode(ERR);
+               }
+           }
+       }
+       ++depth;
+    } while (found);
+    returnCode(OK);
+}
+
+/*
+ * If we're increasing size, recursively search for windows that have no
+ * parent, increase those to fit, then increase the contained window, etc.
+ */
+static int
+increase_size(int ToLines, int ToCols, int stolen)
+{
+    bool found;
+    int depth = 0;
+    WINDOWLIST *wp;
+
+    T((T_CALLED("increase_size(%d, %d)"), ToLines, ToCols));
+
+    do {
+       found = FALSE;
+       TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d",
+                         ToLines, ToCols, depth));
+       for (wp = _nc_windows; wp != 0; wp = wp->next) {
+           WINDOW *win = &(wp->win);
+
+           if (!(win->_flags & _ISPAD)) {
+               if (parent_depth(win) == depth) {
+                   if (adjust_window(win, ToLines, ToCols, stolen) != OK)
+                       returnCode(ERR);
+               }
+           }
+       }
+       ++depth;
+    } while (found);
+    returnCode(OK);
+}
+
+/*
+ * This function reallocates NCURSES window structures, with no side-effects
+ * such as ungetch().
+ */
+NCURSES_EXPORT(int)
+resize_term(int ToLines, int ToCols)
+{
+    int result = OK;
+    int was_stolen = (screen_lines - SP->_lines_avail);
+
+    T((T_CALLED("resize_term(%d,%d) old(%d,%d)"),
+       ToLines, ToCols,
+       screen_lines, screen_columns));
+
+    if (is_term_resized(ToLines, ToCols)) {
+       int myLines = screen_lines;
+       int myCols = screen_columns;
+
+       if (ToLines > screen_lines) {
+           increase_size(myLines = ToLines, myCols, was_stolen);
+       }
+
+       if (ToCols > screen_columns) {
+           increase_size(myLines, myCols = ToCols, was_stolen);
+       }
+
+       if (ToLines < myLines ||
+           ToCols < myCols) {
+           decrease_size(ToLines, ToCols, was_stolen);
+       }
+
+       screen_lines = lines = ToLines;
+       screen_columns = columns = ToCols;
+
+       SP->_lines_avail = lines - was_stolen;
+
+       if (SP->oldhash) {
+           FreeAndNull(SP->oldhash);
+       }
+       if (SP->newhash) {
+           FreeAndNull(SP->newhash);
+       }
+    }
+
+    /*
+     * Always update LINES, to allow for call from lib_doupdate.c which
+     * needs to have the count adjusted by the stolen (ripped off) lines.
+     */
+    LINES = ToLines - was_stolen;
+    COLS = ToCols;
+
+    returnCode(result);
+}
 
 /*
  * This function reallocates NCURSES window structures.  It is invoked in
 
 /*
  * This function reallocates NCURSES window structures.  It is invoked in
@@ -51,71 +263,26 @@ MODULE_ID("$Id: resizeterm.c,v 1.7 1998/09/19 19:27:43 Alexander.V.Lukyanov Exp
  * Because this performs memory allocation, it should not (in general) be
  * invoked directly from the signal handler.
  */
  * Because this performs memory allocation, it should not (in general) be
  * invoked directly from the signal handler.
  */
-int
+NCURSES_EXPORT(int)
 resizeterm(int ToLines, int ToCols)
 {
 resizeterm(int ToLines, int ToCols)
 {
-       int stolen = screen_lines - SP->_lines_avail;
-       int bottom = screen_lines + SP->_topstolen - stolen;
+    int result = OK;
 
 
-       T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
-               ToLines, ToCols,
-               screen_lines, screen_columns));
+    SP->_sig_winch = FALSE;
 
 
-       SP->_sig_winch = FALSE;
+    T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
+       ToLines, ToCols,
+       screen_lines, screen_columns));
 
 
-       if (ToLines != screen_lines
-        || ToCols  != screen_columns) {
-               WINDOWLIST *wp;
+    if (is_term_resized(ToLines, ToCols)) {
 
 #if USE_SIGWINCH
 
 #if USE_SIGWINCH
-               ungetch(KEY_RESIZE);    /* so application can know this */
-               clearok(curscr, TRUE);  /* screen contents are unknown */
+       ungetch(KEY_RESIZE);    /* so application can know this */
+       clearok(curscr, TRUE);  /* screen contents are unknown */
 #endif
 
 #endif
 
-               for (wp = _nc_windows; wp != 0; wp = wp->next) {
-                       WINDOW *win = wp->win;
-                       int myLines = win->_maxy + 1;
-                       int myCols  = win->_maxx + 1;
-
-                       /* pads aren't treated this way */
-                       if (win->_flags & _ISPAD)
-                               continue;
-
-                       if (win->_begy >= bottom) {
-                               win->_begy += (ToLines - screen_lines);
-                       } else {
-                               if (myLines == screen_lines - stolen
-                                && ToLines != screen_lines)
-                                       myLines = ToLines - stolen;
-                               else
-                               if (myLines == screen_lines
-                                && ToLines != screen_lines)
-                                       myLines = ToLines;
-                       }
-
-                       if (myCols  == screen_columns
-                        && ToCols  != screen_columns)
-                               myCols = ToCols;
-
-                       if (wresize(win, myLines, myCols) != OK)
-                               returnCode(ERR);
-               }
-
-               screen_lines   = lines    = ToLines;
-               screen_columns = columns  = ToCols;
-
-               SP->_lines_avail = lines - stolen;
-
-               if (SP->oldhash) { FreeAndNull(SP->oldhash); }
-               if (SP->newhash) { FreeAndNull(SP->newhash); }
-       }
-
-       /*
-        * Always update LINES, to allow for call from lib_doupdate.c which
-        * needs to have the count adjusted by the stolen (ripped off) lines.
-        */
-       LINES = ToLines - stolen;
-       COLS  = ToCols;
+       result = resize_term(ToLines, ToCols);
+    }
 
 
-       returnCode(OK);
+    returnCode(result);
 }
 }
index e4d525272627b7c153c99d4bdb036b21e6965254..cb48365f7f51074571dd196b8dfebae1161409b7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: safe_sprintf.c,v 1.11 1999/09/11 18:03:27 tom Exp $")
+MODULE_ID("$Id: safe_sprintf.c,v 1.14 2001/07/08 00:58:34 tom Exp $")
 
 #if USE_SAFE_SPRINTF
 
 
 #if USE_SAFE_SPRINTF
 
-typedef enum { Flags, Width, Prec, Type, Format } PRINTF;
+typedef enum {
+    Flags, Width, Prec, Type, Format
+} PRINTF;
 
 #define VA_INTGR(type) ival = va_arg(ap, type)
 #define VA_FLOAT(type) fval = va_arg(ap, type)
 
 #define VA_INTGR(type) ival = va_arg(ap, type)
 #define VA_FLOAT(type) fval = va_arg(ap, type)
@@ -50,190 +52,193 @@ typedef enum { Flags, Width, Prec, Type, Format } PRINTF;
 static int
 _nc_printf_length(const char *fmt, va_list ap)
 {
 static int
 _nc_printf_length(const char *fmt, va_list ap)
 {
-       size_t length = BUFSIZ;
-       char *buffer;
-       char *format;
-       int len = 0;
-
-       if (fmt == 0 || *fmt == '\0')
-               return -1;
-       if ((format = typeMalloc(char, strlen(fmt)+1)) == 0)
-               return -1;
-       if ((buffer = typeMalloc(char, length)) == 0) {
-               free(format);
-               return -1;
-       }
-
-       while (*fmt != '\0') {
-               if (*fmt == '%') {
-                       static char dummy[] = "";
-                       PRINTF state = Flags;
-                       char *pval   = dummy;   /* avoid const-cast */
-                       double fval  = 0.0;
-                       int done     = FALSE;
-                       int ival     = 0;
-                       int prec     = -1;
-                       int type     = 0;
-                       int used     = 0;
-                       int width    = -1;
-                       size_t f     = 0;
-
-                       format[f++] = *fmt;
-                       while (*++fmt != '\0' && len >= 0 && !done) {
-                               format[f++] = *fmt;
-
-                               if (isdigit(*fmt)) {
-                                       int num = *fmt - '0';
-                                       if (state == Flags && num != 0)
-                                               state = Width;
-                                       if (state == Width) {
-                                               if (width < 0)
-                                                       width = 0;
-                                               width = (width * 10) + num;
-                                       } else if (state == Prec) {
-                                               if (prec < 0)
-                                                       prec = 0;
-                                               prec = (prec * 10) + num;
-                                       }
-                               } else if (*fmt == '*') {
-                                       VA_INTGR(int);
-                                       if (state == Flags)
-                                               state = Width;
-                                       if (state == Width) {
-                                               width = ival;
-                                       } else if (state == Prec) {
-                                               prec = ival;
-                                       }
-                                       sprintf(&format[--f], "%d", ival);
-                                       f = strlen(format);
-                               } else if (isalpha(*fmt)) {
-                                       done = TRUE;
-                                       switch (*fmt) {
-                                       case 'Z': /* FALLTHRU */
-                                       case 'h': /* FALLTHRU */
-                                       case 'l': /* FALLTHRU */
-                                               done = FALSE;
-                                               type = *fmt;
-                                               break;
-                                       case 'i': /* FALLTHRU */
-                                       case 'd': /* FALLTHRU */
-                                       case 'u': /* FALLTHRU */
-                                       case 'x': /* FALLTHRU */
-                                       case 'X': /* FALLTHRU */
-                                               if (type == 'l')
-                                                       VA_INTGR(long);
-                                               else if (type == 'Z')
-                                                       VA_INTGR(size_t);
-                                               else
-                                                       VA_INTGR(int);
-                                               used = 'i';
-                                               break;
-                                       case 'f': /* FALLTHRU */
-                                       case 'e': /* FALLTHRU */
-                                       case 'E': /* FALLTHRU */
-                                       case 'g': /* FALLTHRU */
-                                       case 'G': /* FALLTHRU */
-                                               VA_FLOAT(double);
-                                               used = 'f';
-                                               break;
-                                       case 'c':
-                                               VA_INTGR(int);
-                                               used = 'i';
-                                               break;
-                                       case 's':
-                                               VA_POINT(char *);
-                                               if (prec < 0)
-                                                       prec = strlen(pval);
-                                               if (prec > (int)length) {
-                                                       length = length + prec;
-                                                       buffer = typeRealloc(char, length, buffer);
-                                                       if (buffer == 0) {
-                                                               free(format);
-                                                               return -1;
-                                                       }
-                                               }
-                                               used = 'p';
-                                               break;
-                                       case 'p':
-                                               VA_POINT(void *);
-                                               used = 'p';
-                                               break;
-                                       case 'n':
-                                               VA_POINT(int *);
-                                               used = 0;
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } else if (*fmt == '.') {
-                                       state = Prec;
-                               } else if (*fmt == '%') {
-                                       done = TRUE;
-                                       used = 'p';
-                               }
-                       }
-                       format[f] = '\0';
-                       switch (used) {
-                       case 'i':
-                               sprintf(buffer, format, ival);
-                               break;
-                       case 'f':
-                               sprintf(buffer, format, fval);
-                               break;
-                       default:
-                               sprintf(buffer, format, pval);
-                               break;
+    size_t length = BUFSIZ;
+    char *buffer;
+    char *format;
+    int len = 0;
+
+    if (fmt == 0 || *fmt == '\0')
+       return -1;
+    if ((format = typeMalloc(char, strlen(fmt) + 1)) == 0)
+         return -1;
+    if ((buffer = typeMalloc(char, length)) == 0) {
+       free(format);
+       return -1;
+    }
+
+    while (*fmt != '\0') {
+       if (*fmt == '%') {
+           static char dummy[] = "";
+           PRINTF state = Flags;
+           char *pval = dummy; /* avoid const-cast */
+           double fval = 0.0;
+           int done = FALSE;
+           int ival = 0;
+           int prec = -1;
+           int type = 0;
+           int used = 0;
+           int width = -1;
+           size_t f = 0;
+
+           format[f++] = *fmt;
+           while (*++fmt != '\0' && len >= 0 && !done) {
+               format[f++] = *fmt;
+
+               if (isdigit(UChar(*fmt))) {
+                   int num = *fmt - '0';
+                   if (state == Flags && num != 0)
+                       state = Width;
+                   if (state == Width) {
+                       if (width < 0)
+                           width = 0;
+                       width = (width * 10) + num;
+                   } else if (state == Prec) {
+                       if (prec < 0)
+                           prec = 0;
+                       prec = (prec * 10) + num;
+                   }
+               } else if (*fmt == '*') {
+                   VA_INTGR(int);
+                   if (state == Flags)
+                       state = Width;
+                   if (state == Width) {
+                       width = ival;
+                   } else if (state == Prec) {
+                       prec = ival;
+                   }
+                   sprintf(&format[--f], "%d", ival);
+                   f = strlen(format);
+               } else if (isalpha(UChar(*fmt))) {
+                   done = TRUE;
+                   switch (*fmt) {
+                   case 'Z':   /* FALLTHRU */
+                   case 'h':   /* FALLTHRU */
+                   case 'l':   /* FALLTHRU */
+                       done = FALSE;
+                       type = *fmt;
+                       break;
+                   case 'i':   /* FALLTHRU */
+                   case 'd':   /* FALLTHRU */
+                   case 'u':   /* FALLTHRU */
+                   case 'x':   /* FALLTHRU */
+                   case 'X':   /* FALLTHRU */
+                       if (type == 'l')
+                           VA_INTGR(long);
+                       else if (type == 'Z')
+                           VA_INTGR(size_t);
+                       else
+                           VA_INTGR(int);
+                       used = 'i';
+                       break;
+                   case 'f':   /* FALLTHRU */
+                   case 'e':   /* FALLTHRU */
+                   case 'E':   /* FALLTHRU */
+                   case 'g':   /* FALLTHRU */
+                   case 'G':   /* FALLTHRU */
+                       VA_FLOAT(double);
+                       used = 'f';
+                       break;
+                   case 'c':
+                       VA_INTGR(int);
+                       used = 'i';
+                       break;
+                   case 's':
+                       VA_POINT(char *);
+                       if (prec < 0)
+                           prec = strlen(pval);
+                       if (prec > (int) length) {
+                           length = length + prec;
+                           buffer = typeRealloc(char, length, buffer);
+                           if (buffer == 0) {
+                               free(format);
+                               return -1;
+                           }
                        }
                        }
-                       len += (int)strlen(buffer);
-               } else {
-                       fmt++;
-                       len++;
+                       used = 'p';
+                       break;
+                   case 'p':
+                       VA_POINT(void *);
+                       used = 'p';
+                       break;
+                   case 'n':
+                       VA_POINT(int *);
+                       used = 0;
+                       break;
+                   default:
+                       break;
+                   }
+               } else if (*fmt == '.') {
+                   state = Prec;
+               } else if (*fmt == '%') {
+                   done = TRUE;
+                   used = 'p';
                }
                }
+           }
+           format[f] = '\0';
+           switch (used) {
+           case 'i':
+               sprintf(buffer, format, ival);
+               break;
+           case 'f':
+               sprintf(buffer, format, fval);
+               break;
+           default:
+               sprintf(buffer, format, pval);
+               break;
+           }
+           len += (int) strlen(buffer);
+       } else {
+           fmt++;
+           len++;
        }
        }
+    }
 
 
-       free(buffer);
-       free(format);
-       return len;
+    free(buffer);
+    free(format);
+    return len;
 }
 #endif
 
 /*
  * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
  */
 }
 #endif
 
 /*
  * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
  */
-char *
-_nc_printf_string(const char *fmt, va_list ap)
+NCURSES_EXPORT(char *)
+_nc_printf_string
+(const char *fmt, va_list ap)
 {
 #if USE_SAFE_SPRINTF
 {
 #if USE_SAFE_SPRINTF
-       char *buf = 0;
-       int len = _nc_printf_length(fmt, ap);
-
-       if (len > 0) {
-               if ((buf = typeMalloc(char, len+1)) == 0)
-                       return(0);
-               vsprintf(buf, fmt, ap);
-       }
+    char *buf = 0;
+    int len = _nc_printf_length(fmt, ap);
+
+    if (len > 0) {
+       if ((buf = typeMalloc(char, len + 1)) == 0)
+             return (0);
+       vsprintf(buf, fmt, ap);
+    }
 #else
 #else
-       static int rows, cols;
-       static char *buf;
-       static size_t len;
-
-       if (screen_lines > rows || screen_columns > cols) {
-               if (screen_lines   > rows) rows = screen_lines;
-               if (screen_columns > cols) cols = screen_columns;
-               len = (rows * (cols + 1)) + 1;
-               buf = typeRealloc(char, len, buf);
-               if (buf == 0) {
-                       return(0);
-               }
+    static int rows, cols;
+    static char *buf;
+    static size_t len;
+
+    if (screen_lines > rows || screen_columns > cols) {
+       if (screen_lines > rows)
+           rows = screen_lines;
+       if (screen_columns > cols)
+           cols = screen_columns;
+       len = (rows * (cols + 1)) + 1;
+       buf = typeRealloc(char, len, buf);
+       if (buf == 0) {
+           return (0);
        }
        }
+    }
 
 
-       if (buf != 0) {
+    if (buf != 0) {
 # if HAVE_VSNPRINTF
 # if HAVE_VSNPRINTF
-               vsnprintf(buf, len, fmt, ap);   /* GNU extension */
+       vsnprintf(buf, len, fmt, ap);   /* GNU extension */
 # else
 # else
-               vsprintf(buf, fmt, ap);         /* ANSI */
+       vsprintf(buf, fmt, ap); /* ANSI */
 # endif
 # endif
-       }
+    }
 #endif
 #endif
-       return buf;
+    return buf;
 }
 }
index ab1e569fae6a8cb5053388306ba3c69c6def47c0..8ba8629a4f509dea884c15631354a6dc818bdd55 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,6 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-#include <signal.h>
 #include <SigAction.h>
 
 /* This file provides sigaction() emulation using sigvec() */
 #include <SigAction.h>
 
 /* This file provides sigaction() emulation using sigvec() */
 
 #if !HAVE_SIGACTION && HAVE_SIGVEC
 
 
 #if !HAVE_SIGACTION && HAVE_SIGVEC
 
-MODULE_ID("$Id: sigaction.c,v 1.9 1999/06/19 23:05:16 tom Exp $")
+MODULE_ID("$Id: sigaction.c,v 1.13 2002/05/18 19:56:26 tom Exp $")
 
 
-int
-sigaction (int sig, sigaction_t * sigact, sigaction_t * osigact)
+NCURSES_EXPORT(int)
+sigaction
+(int sig, sigaction_t * sigact, sigaction_t * osigact)
 {
 {
-  return sigvec(sig, sigact, osigact);
+    return sigvec(sig, sigact, osigact);
 }
 
 }
 
-int
-sigemptyset (sigset_t * mask)
+NCURSES_EXPORT(int)
+sigemptyset
+(sigset_t * mask)
 {
 {
-  *mask = 0;
-  return 0;
+    *mask = 0;
+    return 0;
 }
 
 }
 
-int
-sigprocmask (int mode, sigset_t * mask, sigset_t * omask)
+NCURSES_EXPORT(int)
+sigprocmask
+(int mode, sigset_t * mask, sigset_t * omask)
 {
 {
-   sigset_t current = sigsetmask(0);
+    sigset_t current = sigsetmask(0);
 
 
-   if (omask) *omask = current;
+    if (omask)
+       *omask = current;
 
 
-   if (mode==SIG_BLOCK)
-      current |= *mask;
-   else if (mode==SIG_UNBLOCK)
-      current &= ~*mask;
-   else if (mode==SIG_SETMASK)
-      current = *mask;
+    if (mode == SIG_BLOCK)
+       current |= *mask;
+    else if (mode == SIG_UNBLOCK)
+       current &= ~*mask;
+    else if (mode == SIG_SETMASK)
+       current = *mask;
 
 
-   sigsetmask(current);
-   return 0;
+    sigsetmask(current);
+    return 0;
 }
 
 }
 
-int
-sigsuspend (sigset_t * mask)
+NCURSES_EXPORT(int)
+sigsuspend(sigset_t * mask)
 {
 {
-  return sigpause (*mask);
+    return sigpause(*mask);
 }
 
 }
 
-int
-sigdelset (sigset_t * mask, int sig)
+NCURSES_EXPORT(int)
+sigdelset
+(sigset_t * mask, int sig)
 {
 {
-  *mask &= ~sigmask (sig);
-  return 0;
+    *mask &= ~sigmask(sig);
+    return 0;
 }
 
 }
 
-int
-sigaddset (sigset_t * mask, int sig)
+NCURSES_EXPORT(int)
+sigaddset
+(sigset_t * mask, int sig)
 {
 {
-  *mask |= sigmask (sig);
-  return 0;
+    *mask |= sigmask(sig);
+    return 0;
 }
 
 }
 
-int
-sigismember (sigset_t * mask, int sig)
+NCURSES_EXPORT(int)
+sigismember
+(sigset_t * mask, int sig)
 {
 {
-  return (*mask & sigmask (sig)) != 0;
+    return (*mask & sigmask(sig)) != 0;
 }
 
 #else
 }
 
 #else
-extern void _nc_sigaction(void);       /* quiet's gcc warning */
-void _nc_sigaction(void) { } /* nonempty for strict ANSI compilers */
+extern
+NCURSES_EXPORT(void)
+_nc_sigaction(void);           /* quiet's gcc warning */
+NCURSES_EXPORT(void)
+_nc_sigaction(void)
+{
+}                              /* nonempty for strict ANSI compilers */
 #endif
 #endif
index 3c396529d6545c224f99d0a687686347468b16f4..fe7d93ed5e1012e730ea2c58c3936ed03ba84ee8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: tries.c,v 1.12 1999/03/01 23:23:59 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.15 2001/12/16 00:50:40 tom Exp $")
 
 /*
  * Expand a keycode into the string that it corresponds to, returning null if
  * no match was found, otherwise allocating a string of the result.
  */
 
 /*
  * Expand a keycode into the string that it corresponds to, returning null if
  * no match was found, otherwise allocating a string of the result.
  */
-char *_nc_expand_try(struct tries *tree, unsigned short code, int *count, size_t len)
+NCURSES_EXPORT(char *)
+_nc_expand_try
+(struct tries *tree, unsigned short code, int *count, size_t len)
 {
 {
-       struct tries *ptr = tree;
-       char *result = 0;
+    struct tries *ptr = tree;
+    char *result = 0;
 
 
-       if (code != 0) {
-               while (ptr != 0) {
-                       if ((result = _nc_expand_try(ptr->child, code, count, len + 1)) != 0) {
-                               break;
-                       }
-                       if (ptr->value == code) {
-                               *count -= 1;
-                               if (*count == -1) {
-                                       result = typeCalloc(char, len+2);
-                                       break;
-                               }
-                       }
-                       ptr = ptr->sibling;
+    if (code != 0) {
+       while (ptr != 0) {
+           if ((result = _nc_expand_try(ptr->child, code, count, len + 1))
+               != 0) {
+               break;
+           }
+           if (ptr->value == code) {
+               *count -= 1;
+               if (*count == -1) {
+                   result = typeCalloc(char, len + 2);
+                   break;
                }
                }
+           }
+           ptr = ptr->sibling;
        }
        }
-       if (result != 0) {
-               if ((result[len] = ptr->ch) == 0)
-                       *((unsigned char *)(result+len)) = 128;
+    }
+    if (result != 0) {
+       if ((result[len] = ptr->ch) == 0)
+           *((unsigned char *) (result + len)) = 128;
 #ifdef TRACE
 #ifdef TRACE
-               if (len == 0)
-                       _tracef("expand_key %s %s", _trace_key(code), _nc_visbuf(result));
+       if (len == 0)
+           _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
 #endif
 #endif
-       }
-       return result;
+    }
+    return result;
 }
 
 /*
  * Remove a code from the specified tree, freeing the unused nodes.  Returns
  * true if the code was found/removed.
  */
 }
 
 /*
  * Remove a code from the specified tree, freeing the unused nodes.  Returns
  * true if the code was found/removed.
  */
-int _nc_remove_key(struct tries **tree, unsigned short code)
+NCURSES_EXPORT(int)
+_nc_remove_key
+(struct tries **tree, unsigned short code)
 {
 {
-       T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code));
+    T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code));
 
 
-       if (code == 0)
-               returnCode(FALSE);
-               
-       while (*tree != 0) {
-               if (_nc_remove_key(&(*tree)->child, code)) {
-                       returnCode(TRUE);
-               }
-               if ((*tree)->value == code) {
-                       if((*tree)->child) {
-                               /* don't cut the whole sub-tree */
-                               (*tree)->value = 0;
-                       } else {
-                               struct tries *to_free = *tree;
-                               *tree = (*tree)->sibling;
-                               free(to_free);
-                       }
-                       returnCode(TRUE);
-               }
-               tree = &(*tree)->sibling;
-       }
+    if (code == 0)
        returnCode(FALSE);
        returnCode(FALSE);
+
+    while (*tree != 0) {
+       if (_nc_remove_key(&(*tree)->child, code)) {
+           returnCode(TRUE);
+       }
+       if ((*tree)->value == code) {
+           if ((*tree)->child) {
+               /* don't cut the whole sub-tree */
+               (*tree)->value = 0;
+           } else {
+               struct tries *to_free = *tree;
+               *tree = (*tree)->sibling;
+               free(to_free);
+           }
+           returnCode(TRUE);
+       }
+       tree = &(*tree)->sibling;
+    }
+    returnCode(FALSE);
 }
 
 /*
  * Remove a string from the specified tree, freeing the unused nodes.  Returns
  * true if the string was found/removed.
  */
 }
 
 /*
  * Remove a string from the specified tree, freeing the unused nodes.  Returns
  * true if the string was found/removed.
  */
-int _nc_remove_string(struct tries **tree, char *string)
+NCURSES_EXPORT(int)
+_nc_remove_string(struct tries **tree, char *string)
 {
 {
-       T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string)));
+    T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string)));
 
 
-       if (string == 0 || *string == 0)
-               returnCode(FALSE);
-               
-       while (*tree != 0) {
-               if ((unsigned char)(*tree)->ch == (unsigned char)*string) {
-                       if (string[1] != 0)
-                               returnCode(_nc_remove_string(&(*tree)->child, string+1));
-                       if((*tree)->child) {
-                               /* don't cut the whole sub-tree */
-                               (*tree)->value = 0;
-                       } else {
-                               struct tries *to_free = *tree;
-                               *tree = (*tree)->sibling;
-                               free(to_free);
-                       }
-                       returnCode(TRUE);
-               }
-               tree = &(*tree)->sibling;
-       }
+    if (string == 0 || *string == 0)
        returnCode(FALSE);
        returnCode(FALSE);
+
+    while (*tree != 0) {
+       if ((unsigned char) (*tree)->ch == (unsigned char) *string) {
+           if (string[1] != 0)
+               returnCode(_nc_remove_string(&(*tree)->child, string + 1));
+           if ((*tree)->child) {
+               /* don't cut the whole sub-tree */
+               (*tree)->value = 0;
+           } else {
+               struct tries *to_free = *tree;
+               *tree = (*tree)->sibling;
+               free(to_free);
+           }
+           returnCode(TRUE);
+       }
+       tree = &(*tree)->sibling;
+    }
+    returnCode(FALSE);
 }
 }
index a2fe4d86d650c54bf25004d90ded65fe364cc41b..b78c99d00e056b172a5a182ea1113d590b57af62 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: version.c,v 1.2 1999/12/04 21:27:23 tom Exp $")
+MODULE_ID("$Id: version.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
 
 
-const char *
+NCURSES_EXPORT(const char *)
 curses_version(void)
 {
     static char my_version[80];
 
     T((T_CALLED("curses_version()")));
     sprintf(my_version, "ncurses %s.%d",
 curses_version(void)
 {
     static char my_version[80];
 
     T((T_CALLED("curses_version()")));
     sprintf(my_version, "ncurses %s.%d",
-       NCURSES_VERSION,
-       NCURSES_VERSION_PATCH);
+           NCURSES_VERSION,
+           NCURSES_VERSION_PATCH);
     returnPtr(my_version);
 }
     returnPtr(my_version);
 }
index ac2bf9f2e783dc411092f919d9dcd48e13ab37c5..12df4aa3c15d4c9c3170650896852d9aada658e9 100644 (file)
@@ -1,3 +1,35 @@
+/****************************************************************************
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "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.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  State-machine fallback written by Thomas E. Dickey 2002                 *
+ ****************************************************************************/
+
 /*
  * This function is needed to support vwscanw
  */
 /*
  * This function is needed to support vwscanw
  */
 
 #if !HAVE_VSSCANF
 
 
 #if !HAVE_VSSCANF
 
-MODULE_ID("$Id: vsscanf.c,v 1.10 1996/12/21 14:24:06 tom Exp $")
+MODULE_ID("$Id: vsscanf.c,v 1.16 2002/09/07 17:27:56 tom Exp $")
+
+#if !(HAVE_VFSCANF || HAVE__DOSCAN)
+
+#include <ctype.h>
+
+#define L_SQUARE '['
+#define R_SQUARE ']'
+
+typedef enum {
+    cUnknown
+    ,cError                    /* anything that isn't ANSI */
+    ,cAssigned
+    ,cChar
+    ,cInt
+    ,cFloat
+    ,cDouble
+    ,cPointer
+    ,cLong
+    ,cShort
+    ,cRange
+    ,cString
+} ChunkType;
+
+typedef enum {
+    oUnknown
+    ,oShort
+    ,oLong
+} OtherType;
+
+typedef enum {
+    sUnknown
+    ,sPercent                  /* last was '%' beginning a format */
+    ,sNormal                   /* ...somewhere in the middle */
+    ,sLeft                     /* last was left square bracket beginning a range */
+    ,sRange                    /* ...somewhere in the middle */
+    ,sFinal                    /* last finished a format */
+} ScanState;
+
+static ChunkType
+final_ch(int ch, OtherType other)
+{
+    ChunkType result = cUnknown;
+
+    switch (ch) {
+    case 'c':
+       if (other == oUnknown)
+           result = cChar;
+       else
+           result = cError;
+       break;
+    case 'd':
+    case 'i':
+    case 'X':
+    case 'x':
+       switch (other) {
+       case oUnknown:
+           result = cInt;
+           break;
+       case oShort:
+           result = cShort;
+           break;
+       case oLong:
+           result = cLong;
+           break;
+       }
+       break;
+    case 'E':
+    case 'e':
+    case 'f':
+    case 'g':
+       switch (other) {
+       case oUnknown:
+           result = cFloat;
+           break;
+       case oShort:
+           result = cError;
+           break;
+       case oLong:
+           result = cDouble;
+           break;
+       }
+       break;
+    case 'n':
+       if (other == oUnknown)
+           result = cAssigned;
+       else
+           result = cError;
+       break;
+    case 'p':
+       if (other == oUnknown)
+           result = cPointer;
+       else
+           result = cError;
+       break;
+    case 's':
+       if (other == oUnknown)
+           result = cString;
+       else
+           result = cError;
+       break;
+    }
+    return result;
+}
+
+static OtherType
+other_ch(int ch)
+{
+    OtherType result = oUnknown;
+    switch (ch) {
+    case 'h':
+       result = oShort;
+       break;
+    case 'l':
+       result = oLong;
+       break;
+    }
+    return result;
+}
+#endif
 
 
-#if defined(_IOREAD) && defined(_NFILE)
 /*VARARGS2*/
 /*VARARGS2*/
-int vsscanf(const char *str, const char *format, va_list ap)
+NCURSES_EXPORT(int)
+vsscanf(const char *str, const char *format, va_list ap)
 {
 {
-       /*
-        * This code should work on anything descended from AT&T SVr1.
-        */
-       FILE    strbuf;
+#if HAVE_VFSCANF || HAVE__DOSCAN
+    /*
+     * This code should work on anything descended from AT&T SVr1.
+     */
+    FILE strbuf;
 
 
-       strbuf._flag = _IOREAD;
-       strbuf._ptr = strbuf._base = (unsigned char*)str;
-       strbuf._cnt = strlen(str);
-       strbuf._file = _NFILE;
+    strbuf._flag = _IOREAD;
+    strbuf._ptr = strbuf._base = (unsigned char *) str;
+    strbuf._cnt = strlen(str);
+    strbuf._file = _NFILE;
 
 #if HAVE_VFSCANF
 
 #if HAVE_VFSCANF
-       return(vfscanf(&strbuf, format, ap));
+    return (vfscanf(&strbuf, format, ap));
 #else
 #else
-       return(_doscan(&strbuf, format, ap));
+    return (_doscan(&strbuf, format, ap));
 #endif
 #endif
-}
 #else
 #else
-/*VARARGS2*/
-int vsscanf(const char *str, const char *format, va_list ap)
-{
-       /*
-        * You don't have a native vsscanf(3), and you don't have System-V
-        * compatible stdio internals.  You're probably using a BSD
-        * older than 4.4 or a really old Linux.  You lose.  Upgrade
-        * to a current C library to win.
-        */
-       return -1;      /* not implemented */
-}
+    static int can_convert = -1;
+
+    int assigned = 0;
+    int consumed = 0;
+
+    T((T_CALLED("vsscanf(%s,%s,...)"),
+       _nc_visbuf2(1, str),
+       _nc_visbuf2(2, format)));
+
+    /*
+     * This relies on having a working "%n" format conversion.  Check if it
+     * works.  Only very old C libraries do not support it.
+     *
+     * FIXME: move this check into the configure script.
+     */
+    if (can_convert < 0) {
+       int check1;
+       int check2;
+       if (sscanf("123", "%d%n", &check1, &check2) > 0
+           && check1 == 123
+           && check2 == 3) {
+           can_convert = 1;
+       } else {
+           can_convert = 0;
+       }
+    }
+
+    if (can_convert) {
+       size_t len_fmt = strlen(format) + 32;
+       char *my_fmt = malloc(len_fmt);
+       ChunkType chunk, ctest;
+       OtherType other, otest;
+       ScanState state;
+       unsigned n;
+       int eaten;
+       void *pointer;
+
+       if (my_fmt != 0) {
+           /*
+            * Split the original format into chunks, adding a "%n" to the end
+            * of each (except of course if it used %n), and use that
+            * information to decide where to start scanning the next chunk.
+            *
+            * FIXME:  does %n count bytes or characters?  If the latter, this
+            * will require further work for multibyte strings.
+            */
+           while (*format != '\0') {
+               /* find a chunk */
+               state = sUnknown;
+               chunk = cUnknown;
+               other = cUnknown;
+               pointer = 0;
+               for (n = 0; format[n] != 0 && state != sFinal; ++n) {
+                   my_fmt[n] = format[n];
+                   switch (state) {
+                   case sUnknown:
+                       if (format[n] == '%')
+                           state = sPercent;
+                       break;
+                   case sPercent:
+                       if (format[n] == '%') {
+                           state = sUnknown;
+                       } else if (format[n] == L_SQUARE) {
+                           state = sLeft;
+                       } else {
+                           state = sNormal;
+                           --n;
+                       }
+                       break;
+                   case sLeft:
+                       state = sRange;
+                       if (format[n] == '^') {
+                           ++n;
+                           my_fmt[n] = format[n];
+                       }
+                       break;
+                   case sRange:
+                       if (format[n] == R_SQUARE) {
+                           state = sFinal;
+                           chunk = cRange;
+                       }
+                       break;
+                   case sNormal:
+                       if (format[n] == '*') {
+                           state = sUnknown;
+                       } else {
+                           if ((ctest = final_ch(format[n], other)) != cUnknown) {
+                               state = sFinal;
+                               chunk = ctest;
+                           } else if ((otest = other_ch(format[n])) != oUnknown) {
+                               other = otest;
+                           } else if (isalpha(format[n])) {
+                               state = sFinal;
+                               chunk = cError;
+                           }
+                       }
+                       break;
+                   case sFinal:
+                       break;
+                   }
+               }
+               my_fmt[n] = '\0';
+               format += n;
+
+               if (chunk == cUnknown
+                   || chunk == cError) {
+                   if (assigned == 0)
+                       assigned = EOF;
+                   break;
+               }
+
+               /* add %n, if the format was not that */
+               if (chunk != cAssigned) {
+                   strcat(my_fmt, "%n");
+               }
+
+               switch (chunk) {
+               case cAssigned:
+                   strcat(my_fmt, "%n");
+                   pointer = &eaten;
+                   break;
+               case cInt:
+                   pointer = va_arg(ap, int *);
+                   break;
+               case cShort:
+                   pointer = va_arg(ap, short *);
+                   break;
+               case cFloat:
+                   pointer = va_arg(ap, float *);
+                   break;
+               case cDouble:
+                   pointer = va_arg(ap, double *);
+                   break;
+               case cLong:
+                   pointer = va_arg(ap, long *);
+                   break;
+               case cPointer:
+                   pointer = va_arg(ap, void *);
+                   break;
+               case cChar:
+               case cRange:
+               case cString:
+                   pointer = va_arg(ap, char *);
+                   break;
+               case cError:
+               case cUnknown:
+                   break;
+               }
+               /* do the conversion */
+               T(("...converting chunk #%d type %d(%s,%s)",
+                  assigned + 1, chunk,
+                  _nc_visbuf2(1, str + consumed),
+                  _nc_visbuf2(2, my_fmt)));
+               if (sscanf(str + consumed, my_fmt, pointer, &eaten) > 0)
+                   consumed += eaten;
+               else
+                   break;
+               ++assigned;
+           }
+           free(my_fmt);
+       }
+    }
+    returnCode(assigned);
 #endif
 #endif
+}
 #else
 #else
-extern void _nc_vsscanf(void); /* quiet's gcc warning */
-void _nc_vsscanf(void) { } /* nonempty for strict ANSI compilers */
+extern
+NCURSES_EXPORT(void)
+_nc_vsscanf(void);             /* quiet's gcc warning */
+NCURSES_EXPORT(void)
+_nc_vsscanf(void)
+{
+}                              /* nonempty for strict ANSI compilers */
 #endif /* !HAVE_VSSCANF */
 #endif /* !HAVE_VSSCANF */
index 8121ff154dd58085c1d567821d9d12e104043700..a61742a57c6d00e05946919d7a0588c7f8d8e5e8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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                   *
+ *  Author: Thomas E. Dickey 1996-2002                                      *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: wresize.c,v 1.16 2000/03/05 00:14:35 tom Exp $")
+MODULE_ID("$Id: wresize.c,v 1.23 2002/09/28 15:15:51 tom Exp $")
+
+static int
+cleanup_lines(struct ldat *data, int length)
+{
+    while (--length >= 0)
+       free(data->text);
+    free(data);
+    return ERR;
+}
+
+/*
+ * If we have reallocated the ldat structs, we will have to repair pointers
+ * used in subwindows.
+ */
+static void
+repair_subwindows(WINDOW *cmp)
+{
+    WINDOWLIST *wp;
+    struct ldat *pline = cmp->_line;
+    int row;
+
+    for (wp = _nc_windows; wp != 0; wp = wp->next) {
+       WINDOW *tst = &(wp->win);
+
+       if (tst->_parent == cmp) {
+
+           if (tst->_pary > cmp->_maxy)
+               tst->_pary = cmp->_maxy;
+           if (tst->_parx > cmp->_maxx)
+               tst->_parx = cmp->_maxx;
+
+           if (tst->_maxy + tst->_pary > cmp->_maxy)
+               tst->_maxy = cmp->_maxy - tst->_pary;
+           if (tst->_maxx + tst->_parx > cmp->_maxx)
+               tst->_maxx = cmp->_maxx - tst->_parx;
+
+           for (row = 0; row <= tst->_maxy; ++row) {
+               tst->_line[row].text = &pline[tst->_pary + row].text[tst->_parx];
+           }
+           repair_subwindows(tst);
+       }
+    }
+}
 
 /*
  * Reallocate a curses WINDOW struct to either shrink or grow to the specified
  * new lines/columns.  If it grows, the new character cells are filled with
  * blanks.  The application is responsible for repainting the blank area.
  */
 
 /*
  * Reallocate a curses WINDOW struct to either shrink or grow to the specified
  * new lines/columns.  If it grows, the new character cells are filled with
  * blanks.  The application is responsible for repainting the blank area.
  */
-
-#define DOALLOC(p,t,n)  typeRealloc(t, n, p)
-#define        ld_ALLOC(p,n)   DOALLOC(p,struct ldat,n)
-#define        c_ALLOC(p,n)    DOALLOC(p,chtype,n)
-
-int
+NCURSES_EXPORT(int)
 wresize(WINDOW *win, int ToLines, int ToCols)
 {
 wresize(WINDOW *win, int ToLines, int ToCols)
 {
-    register int row;
-    int size_x, size_y;
+    int col, row, size_x, size_y;
     struct ldat *pline;
     struct ldat *pline;
-    chtype blank;
+    struct ldat *new_lines = 0;
 
 #ifdef TRACE
     T((T_CALLED("wresize(%p,%d,%d)"), win, ToLines, ToCols));
     if (win) {
        TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)",
 
 #ifdef TRACE
     T((T_CALLED("wresize(%p,%d,%d)"), win, ToLines, ToCols));
     if (win) {
        TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)",
-               win->_begy, win->_begx,
-               win->_maxy, win->_maxx,
-               win->_regtop, win->_regbottom));
+                         win->_begy, win->_begx,
+                         win->_maxy, win->_maxx,
+                         win->_regtop, win->_regbottom));
        if (_nc_tracing & TRACE_UPDATE)
            _tracedump("...before", win);
     }
        if (_nc_tracing & TRACE_UPDATE)
            _tracedump("...before", win);
     }
@@ -90,65 +127,82 @@ wresize(WINDOW *win, int ToLines, int ToCols)
     }
 
     /*
     }
 
     /*
-     * If the number of lines has changed, adjust the size of the overall
-     * vector:
+     * Allocate new memory as needed.  Do the allocations without modifying
+     * the original window, in case an allocation fails.  Always allocate
+     * (at least temporarily) the array pointing to the individual lines.
+     */
+    new_lines = typeCalloc(struct ldat, (unsigned) (ToLines + 1));
+    if (new_lines == 0)
+       returnCode(ERR);
+
+    /*
+     * For each line in the target, allocate or adjust pointers for the
+     * corresponding text, depending on whether this is a window or a
+     * subwindow.
      */
      */
-    if (ToLines != size_y) {
+    for (row = 0; row <= ToLines; ++row) {
+       int begin = (row > size_y) ? 0 : (size_x + 1);
+       int end = ToCols;
+       NCURSES_CH_T *s;
+
        if (!(win->_flags & _SUBWIN)) {
        if (!(win->_flags & _SUBWIN)) {
-           for (row = ToLines + 1; row <= size_y; row++)
-               free((char *) (win->_line[row].text));
+           if (row <= size_y) {
+               if (ToCols != size_x) {
+                   if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0)
+                       returnCode(cleanup_lines(new_lines, row));
+                   for (col = 0; col <= ToCols; ++col) {
+                       s[col] = (col <= size_x
+                                 ? win->_line[row].text[col]
+                                 : win->_nc_bkgd);
+                   }
+               } else {
+                   s = win->_line[row].text;
+               }
+           } else {
+               if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0)
+                   returnCode(cleanup_lines(new_lines, row));
+               for (col = 0; col <= ToCols; ++col)
+                   s[col] = win->_nc_bkgd;
+           }
+       } else {
+           s = &pline[win->_pary + row].text[win->_parx];
        }
 
        }
 
-       win->_line = ld_ALLOC(win->_line, ToLines + 1);
-       if (win->_line == 0)
-           returnCode(ERR);
-
-       for (row = size_y + 1; row <= ToLines; row++) {
-           win->_line[row].text = 0;
-           win->_line[row].firstchar = 0;
-           win->_line[row].lastchar = ToCols;
-           if ((win->_flags & _SUBWIN)) {
-               win->_line[row].text =
-                   &pline[win->_pary + row].text[win->_parx];
+       if_USE_SCROLL_HINTS(new_lines[row].oldindex = row);
+       if (row <= size_y) {
+           new_lines[row].firstchar = win->_line[row].firstchar;
+           new_lines[row].lastchar = win->_line[row].lastchar;
+       }
+       if ((ToCols != size_x) || (row > size_y)) {
+           if (end >= begin) { /* growing */
+               if (new_lines[row].firstchar < begin)
+                   new_lines[row].firstchar = begin;
+           } else {            /* shrinking */
+               new_lines[row].firstchar = 0;
            }
            }
+           new_lines[row].lastchar = ToCols;
        }
        }
+       new_lines[row].text = s;
     }
 
     /*
     }
 
     /*
-     * Adjust the width of the columns:
+     * Dispose of unwanted memory.
      */
      */
-    blank = _nc_background(win);
-    for (row = 0; row <= ToLines; row++) {
-       chtype *s = win->_line[row].text;
-       int begin = (s == 0) ? 0 : size_x + 1;
-       int end = ToCols;
-
-       if_USE_SCROLL_HINTS(win->_line[row].oldindex = row);
-
-       if (ToCols != size_x || s == 0) {
-           if (!(win->_flags & _SUBWIN)) {
-               win->_line[row].text = s = c_ALLOC(s, ToCols + 1);
-               if (win->_line[row].text == 0)
-                   returnCode(ERR);
-           } else if (s == 0) {
-               win->_line[row].text = s =
-                   &pline[win->_pary + row].text[win->_parx];
+    if (!(win->_flags & _SUBWIN)) {
+       if (ToCols == size_x) {
+           for (row = ToLines + 1; row <= size_y; row++) {
+               free(win->_line[row].text);
            }
            }
-
-           if (end >= begin) { /* growing */
-               if (win->_line[row].firstchar < begin)
-                   win->_line[row].firstchar = begin;
-               win->_line[row].lastchar = ToCols;
-               do {
-                   s[end] = blank;
-               } while (--end >= begin);
-           } else {            /* shrinking */
-               win->_line[row].firstchar = 0;
-               win->_line[row].lastchar = ToCols;
+       } else {
+           for (row = 0; row <= size_y; row++) {
+               free(win->_line[row].text);
            }
        }
     }
 
            }
        }
     }
 
+    free(win->_line);
+    win->_line = new_lines;
+
     /*
      * Finally, adjust the parameters showing screen size and cursor
      * position:
     /*
      * Finally, adjust the parameters showing screen size and cursor
      * position:
@@ -167,11 +221,17 @@ wresize(WINDOW *win, int ToLines, int ToCols)
     if (win->_cury > win->_maxy)
        win->_cury = win->_maxy;
 
     if (win->_cury > win->_maxy)
        win->_cury = win->_maxy;
 
+    /*
+     * Check for subwindows of this one, and readjust pointers to our text,
+     * if needed.
+     */
+    repair_subwindows(win);
+
 #ifdef TRACE
     TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)",
 #ifdef TRACE
     TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)",
-           win->_begy, win->_begx,
-           win->_maxy, win->_maxx,
-           win->_regtop, win->_regbottom));
+                     win->_begy, win->_begx,
+                     win->_maxy, win->_maxx,
+                     win->_regtop, win->_regbottom));
     if (_nc_tracing & TRACE_UPDATE)
        _tracedump("...after:", win);
 #endif
     if (_nc_tracing & TRACE_UPDATE)
        _tracedump("...after:", win);
 #endif
index d82e3aad752a2efa26e9b7ebda40a1699308ed1c..403cf50d0a16340d8247b728009d44392ae10073 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 1996-2002                                      *
  ****************************************************************************/
 
 
 /*
  ****************************************************************************/
 
 
 /*
- * $Id: curses.priv.h,v 1.168 2000/10/08 01:24:59 tom Exp $
+ * $Id: curses.priv.h,v 1.228 2002/10/12 15:49:10 tom Exp $
  *
  *     curses.priv.h
  *
  *
  *     curses.priv.h
  *
@@ -45,6 +46,8 @@
 #ifndef CURSES_PRIV_H
 #define CURSES_PRIV_H 1
 
 #ifndef CURSES_PRIV_H
 #define CURSES_PRIV_H 1
 
+#include <ncurses_dll.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -108,6 +111,9 @@ extern int errno;
 #define USE_FUNC_POLL 0
 #endif
 
 #define USE_FUNC_POLL 0
 #endif
 
+/* include signal.h before curses.h to work-around defect in glibc 2.1.3 */
+#include <signal.h>
+
 /* Alessandro Rubini's GPM (general-purpose mouse) */
 #if HAVE_LIBGPM && HAVE_GPM_H
 #define USE_GPM_SUPPORT 1
 /* Alessandro Rubini's GPM (general-purpose mouse) */
 #if HAVE_LIBGPM && HAVE_GPM_H
 #define USE_GPM_SUPPORT 1
@@ -136,12 +142,15 @@ extern int errno;
  */
 #if !NCURSES_EXT_FUNCS
 #undef HAVE_SIZECHANGE
  */
 #if !NCURSES_EXT_FUNCS
 #undef HAVE_SIZECHANGE
+#define HAVE_SIZECHANGE 0
 #endif
 
 #endif
 
-#if HAVE_SIZECHANGE
+#if HAVE_SIZECHANGE && defined(SIGWINCH)
 #define USE_SIZECHANGE 1
 #else
 #define USE_SIZECHANGE 1
 #else
+#define USE_SIZECHANGE 0
 #undef USE_SIGWINCH
 #undef USE_SIGWINCH
+#define USE_SIGWINCH 0
 #endif
 
 /*
 #endif
 
 /*
@@ -152,7 +161,7 @@ extern int errno;
 #define use_terminfo_vars() 1
 #else
 #define use_terminfo_vars() _nc_env_access()
 #define use_terminfo_vars() 1
 #else
 #define use_terminfo_vars() _nc_env_access()
-extern int _nc_env_access(void);
+extern NCURSES_EXPORT(int) _nc_env_access (void);
 #endif
 
 /*
 #endif
 
 /*
@@ -163,7 +172,7 @@ extern int _nc_env_access(void);
 #define memmove(d,s,n) bcopy(s,d,n)
 #elif USE_MY_MEMMOVE
 #define memmove(d,s,n) _nc_memmove(d,s,n)
 #define memmove(d,s,n) bcopy(s,d,n)
 #elif USE_MY_MEMMOVE
 #define memmove(d,s,n) _nc_memmove(d,s,n)
-extern void * _nc_memmove(void *, const void *, size_t);
+extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t);
 #endif
 
 /*
 #endif
 
 /*
@@ -212,6 +221,9 @@ struct tries {
 #define L_BRACE '{'
 #define R_BRACE '}'
 #define S_QUOTE '\''
 #define L_BRACE '{'
 #define R_BRACE '}'
 #define S_QUOTE '\''
+#define D_QUOTE '"'
+
+#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"
 
 /*
  * Structure for palette tables
 
 /*
  * Structure for palette tables
@@ -219,7 +231,9 @@ struct tries {
 
 typedef struct
 {
 
 typedef struct
 {
-    short red, green, blue;
+    short red, green, blue;    /* what color_content() returns */
+    short r, g, b;             /* params to init_color() */
+    int init;                  /* true if we called init_color() */
 }
 color_t;
 
 }
 color_t;
 
@@ -231,7 +245,25 @@ color_t;
 
 #define WINDOWLIST struct _win_list
 
 
 #define WINDOWLIST struct _win_list
 
+#if USE_WIDEC_SUPPORT
+#define _nc_bkgd    _bkgrnd
+#else
+#undef _XOPEN_SOURCE_EXTENDED
+#define _nc_bkgd    _bkgd
+#define wgetbkgrnd(win, wch)   *wch = win->_bkgd
+#define wbkgrnd            wbkgd
+#endif
+
 #include <curses.h>    /* we'll use -Ipath directive to get the right one! */
 #include <curses.h>    /* we'll use -Ipath directive to get the right one! */
+#include <term.h>
+
+struct ldat
+{
+       NCURSES_CH_T    *text;          /* text of the line */
+       NCURSES_SIZE_T  firstchar;      /* first changed character in the line */
+       NCURSES_SIZE_T  lastchar;       /* last changed character in the line */
+       NCURSES_SIZE_T  oldindex;       /* index of the line at last update */
+};
 
 /*
  * Structure for soft labels.
 
 /*
  * Structure for soft labels.
@@ -249,7 +281,7 @@ typedef struct
 typedef struct {
        char dirty;             /* all labels have changed */
        char hidden;            /* soft labels are hidden */
 typedef struct {
        char dirty;             /* all labels have changed */
        char hidden;            /* soft labels are hidden */
-       struct _win_st *win;
+       WINDOW *win;
        slk_ent *ent;
        char*  buffer;           /* buffer for labels */
        short  maxlab;           /* number of available labels */
        slk_ent *ent;
        char*  buffer;           /* buffer for labels */
        short  maxlab;           /* number of available labels */
@@ -258,6 +290,18 @@ typedef struct {
         chtype attr;             /* soft label attribute */
 } SLK;
 
         chtype attr;             /* soft label attribute */
 } SLK;
 
+typedef struct {
+       unsigned long hashval;
+       int oldcount, newcount;
+       int oldindex, newindex;
+} HASHMAP;
+
+typedef        struct {
+       int     line;           /* lines to take, < 0 => from bottom*/
+       int     (*hook)(WINDOW *, int); /* callback for user        */
+       WINDOW *w;              /* maybe we need this for cleanup   */
+} ripoff_t;
+
 struct screen {
        int             _ifd;           /* input file ptr for screen        */
        FILE            *_ofp;          /* output file ptr for screen       */
 struct screen {
        int             _ifd;           /* input file ptr for screen        */
        FILE            *_ofp;          /* output file ptr for screen       */
@@ -267,8 +311,11 @@ struct screen {
        struct term     *_term;         /* terminal type information        */
        short           _lines;         /* screen lines                     */
        short           _columns;       /* screen columns                   */
        struct term     *_term;         /* terminal type information        */
        short           _lines;         /* screen lines                     */
        short           _columns;       /* screen columns                   */
+
        short           _lines_avail;   /* lines available for stdscr       */
        short           _topstolen;     /* lines stolen from top            */
        short           _lines_avail;   /* lines available for stdscr       */
        short           _topstolen;     /* lines stolen from top            */
+       ripoff_t        _rippedoff[5];  /* list of lines stolen             */
+       int             _rip_count;     /* ...and total lines stolen        */
 
        WINDOW          *_curscr;       /* current screen                   */
        WINDOW          *_newscr;       /* virtual screen to be updated to  */
 
        WINDOW          *_curscr;       /* current screen                   */
        WINDOW          *_newscr;       /* virtual screen to be updated to  */
@@ -276,17 +323,19 @@ struct screen {
 
        struct tries    *_keytry;       /* "Try" for use with keypad mode   */
        struct tries    *_key_ok;       /* Disabled keys via keyok(,FALSE)  */
 
        struct tries    *_keytry;       /* "Try" for use with keypad mode   */
        struct tries    *_key_ok;       /* Disabled keys via keyok(,FALSE)  */
-       int             _tried;         /* keypad mode was initialized      */
+       bool            _tried;         /* keypad mode was initialized      */
+       bool            _keypad_on;     /* keypad mode is currently on      */
 
 
-       unsigned 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?       */
        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?       */
-       unsigned long   _current_attr;  /* terminal attribute current set   */
+       attr_t          _current_attr;  /* terminal attribute current set   */
        int             _coloron;       /* is color enabled?                */
        int             _coloron;       /* is color enabled?                */
+       int             _color_defs;    /* are colors modified              */
        int             _cursor;        /* visibility of the cursor         */
        int             _cursrow;       /* physical cursor row              */
        int             _curscol;       /* physical cursor column           */
        int             _cursor;        /* visibility of the cursor         */
        int             _cursrow;       /* physical cursor row              */
        int             _curscol;       /* physical cursor column           */
@@ -409,28 +458,34 @@ struct screen {
 
        /* hashes for old and new lines */
        unsigned long   *oldhash, *newhash;
 
        /* hashes for old and new lines */
        unsigned long   *oldhash, *newhash;
+       HASHMAP         *hashtab;
+       int             hashtab_len;
 
        bool            _cleanup;       /* cleanup after int/quit signal */
        int             (*_outch)(int); /* output handler if not putc */
 };
 
 
        bool            _cleanup;       /* cleanup after int/quit signal */
        int             (*_outch)(int); /* output handler if not putc */
 };
 
-extern SCREEN *_nc_screen_chain;
+extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 
 #if NCURSES_NOMACROS
 #include <nomacros.h>
 #endif
 
 
 #if NCURSES_NOMACROS
 #include <nomacros.h>
 #endif
 
+/*
+ * The margins are used in resizeterm() to retain the original layout after
+ * resizing.
+ */
        WINDOWLIST {
        WINDOWLIST *next;
        WINDOWLIST {
        WINDOWLIST *next;
-       WINDOW  *win;
+#if HAVE_RESIZETERM
+       int     l_margin;
+       int     r_margin;
+       int     t_margin;
+       int     b_margin;
+#endif
+       WINDOW  win;
 };
 
 };
 
-typedef        struct {
-       int     line;                   /* lines to take, < 0 => from bottom*/
-       int     (*hook)(struct _win_st *, int); /* callback for user        */
-       struct _win_st *w;              /* maybe we need this for cleanup   */
-} ripoff_t;
-
 /* The terminfo source is assumed to be 7-bit ASCII */
 #define is7bits(c)     ((unsigned)(c) < 128)
 
 /* The terminfo source is assumed to be 7-bit ASCII */
 #define is7bits(c)     ((unsigned)(c) < 128)
 
@@ -484,10 +539,89 @@ typedef   struct {
 #define O_BINARY 0
 #endif
 
 #define O_BINARY 0
 #endif
 
-#define TextOf(c)    ((c) & (chtype)A_CHARTEXT)
-#define AttrOf(c)    ((c) & (chtype)A_ATTRIBUTES)
-
-#define BLANK        (' '|A_NORMAL)
+#define UChar(c)       ((unsigned char)(c))
+#define ChCharOf(c)    ((c) & (chtype)A_CHARTEXT)
+#define ChAttrOf(c)     ((c) & (chtype)A_ATTRIBUTES)
+
+#if USE_WIDEC_SUPPORT /* { */
+#define CharOf(c)      ((c).chars[0])
+#define AttrOf(c)      ((c).attr)
+#define AddAttr(c,a)   (c).attr |= a
+#define RemAttr(c,a)   (c).attr &= ~(a)
+#define SetAttr(c,a)   (c).attr = a
+#define NewChar(ch)    { ChAttrOf(ch), { ChCharOf(ch) } }
+#define NewChar2(c,a)  { a, { c } }
+#define CharEq(a,b)    (!memcmp(&a, &b, sizeof(a)))
+#define SetChar(ch,c,a)        do {                                                        \
+                           NCURSES_CH_T *_cp = &ch;                                \
+                           memset(_cp,0,sizeof(ch)); _cp->chars[0] = c; _cp->attr = a; \
+                       } while (0)
+#define CHREF(wch)     (&wch)
+#define CHDEREF(wch)   (*wch)
+#define ARG_CH_T       NCURSES_CH_T *
+#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(ch,b)     do { if(!isnac(ch)) {                                       \
+                           memset (&PUT_st, '\0', sizeof (PUT_st));                \
+                           PUTC_i = 0;                                             \
+                           do {                                                    \
+                               PUTC_ch = PUTC_i < CCHARW_MAX ?                     \
+                                           (ch).chars[PUTC_i] : L'\0';             \
+                               PUTC_n = wcrtomb(PUTC_buf,                          \
+                                                (ch).chars[PUTC_i], &PUT_st);      \
+                               if (PUTC_ch == L'\0')                               \
+                                   --PUTC_n;                                       \
+                               if (PUTC_n <= 0)                                    \
+                                   break;                                          \
+                               fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b);          \
+                               ++PUTC_i;                                           \
+                           } while (PUTC_ch != L'\0');                             \
+                       } } while (0)
+
+#define BLANK          { WA_NORMAL, ' ' }
+#define ISBLANK(ch)    ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
+
+#define WA_NAC         1
+#define isnac(ch)      (AttrOf(ch) & WA_NAC)
+#define if_WIDEC(code)  code
+#define Charable(ch)   (!isnac(ch) &&                                  \
+                        (ch).chars[1] == L'\0' &&                      \
+                         (wctob(CharOf(ch)) == (char)CharOf(ch)))
+
+#define L(ch)          L ## ch
+#else /* }{ */
+#define CharOf(c)      ChCharOf(c)
+#define AttrOf(c)      ChAttrOf(c)
+#define AddAttr(c,a)   c |= a
+#define RemAttr(c,a)   c &= ~(a & A_ATTRIBUTES)
+#define SetAttr(c,a)   c = (c & ~A_ATTRIBUTES) | a
+#define NewChar(ch)    (ch)
+#define NewChar2(c,a)  (c | a)
+#define CharEq(a,b)    (a == b)
+#define SetChar(ch,c,a)        ch = c | a
+#define CHREF(wch)     wch
+#define CHDEREF(wch)   wch
+#define ARG_CH_T       NCURSES_CH_T
+#define CARG_CH_T      NCURSES_CH_T
+#define PUTC_DATA      int data = 0
+#define PUTC(a,b)      do { data = CharOf(ch); putc(data,b); } while (0)
+
+#define BLANK          (' '|A_NORMAL)
+#define ISBLANK(ch)    (CharOf(ch) == ' ')
+
+#define isnac(ch)      (0)
+#define if_WIDEC(code) /* nothing */
+
+#define L(ch)          ch
+#endif /* } */
+
+#define AttrOfD(ch)    AttrOf(CHDEREF(ch))
+#define CharOfD(ch)    CharOf(CHDEREF(ch))
+#define SetChar2(wch,ch)    SetChar(wch,ChCharOf(ch),ChAttrOf(ch))
+
+#define BLANK_ATTR     A_NORMAL
+#define BLANK_TEXT     L(' ')
 
 #define CHANGED     -1
 
 
 #define CHANGED     -1
 
@@ -529,52 +663,89 @@ typedef   struct {
  * instrument the public functions so that the traces can be easily transformed
  * into regression scripts.
  */
  * instrument the public functions so that the traces can be easily transformed
  * into regression scripts.
  */
-#define T_CALLED(fmt) "called " fmt
-#define T_CREATE(fmt) "create " fmt
-#define T_RETURN(fmt) "return " fmt
+#define T_CALLED(fmt) "called {" fmt
+#define T_CREATE(fmt) "create :" fmt
+#define T_RETURN(fmt) "return }" fmt
 
 #ifdef TRACE
 
 #ifdef TRACE
+
+#define START_TRACE() \
+       if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \
+           int t = _nc_getenv_num("NCURSES_TRACE"); \
+           if (t >= 0) \
+               trace((unsigned) t); \
+       }
+
 #define TR(n, a)       if (_nc_tracing & (n)) _tracef a
 #define T(a)           TR(TRACE_CALLS, a)
 #define TPUTS_TRACE(s) _nc_tputs_trace = s;
 #define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
 #define TR(n, a)       if (_nc_tracing & (n)) _tracef a
 #define T(a)           TR(TRACE_CALLS, a)
 #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 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 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 returnVoid       T((T_RETURN(""))); return
 #define returnWin(code)  TRACE_RETURN(code,win)
-extern WINDOW * _nc_retrace_win(WINDOW *);
-extern attr_t _nc_retrace_attr_t(attr_t);
-extern attr_t _nc_retrace_chtype(chtype);
-extern char *_nc_retrace_ptr(char *);
-extern const char *_nc_tputs_trace;
-extern int _nc_retrace_int(int);
-extern long _nc_outchars;
-extern void _nc_fifo_dump(void);
-#else
+
+extern NCURSES_EXPORT(NCURSES_BOOL)     _nc_retrace_bool (NCURSES_BOOL);
+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);
+extern NCURSES_EXPORT(char *)           _nc_retrace_ptr (char *);
+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(int)              _nc_retrace_int (int);
+extern NCURSES_EXPORT(unsigned)         _nc_retrace_unsigned (unsigned);
+extern NCURSES_EXPORT(void)             _nc_fifo_dump (void);
+extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
+extern NCURSES_EXPORT_VAR(long)         _nc_outchars;
+extern NCURSES_EXPORT_VAR(unsigned)     _nc_tracing;
+
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *);
+extern NCURSES_EXPORT(const char *) _nc_viswbufn (const wchar_t *, int);
+extern NCURSES_EXPORT(const char *) _nc_viscbuf2 (int, const cchar_t *, int);
+extern NCURSES_EXPORT(const char *) _nc_viscbuf (const cchar_t *, int);
+#endif
+
+#else /* !TRACE */
+
+#define START_TRACE() /* nothing */
+
 #define T(a)
 #define TR(n, a)
 #define TPUTS_TRACE(s)
 #define T(a)
 #define TR(n, a)
 #define TPUTS_TRACE(s)
+
 #define returnAttr(code) return code
 #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 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 returnVoid       return
 #define returnWin(code)  return code
-#endif
 
 
-extern unsigned _nc_tracing;
-extern const char *_nc_visbuf2(int, const char *);
+#endif /* TRACE/!TRACE */
 
 
-#define _trace_key(ch) ((ch > KEY_MIN) ? keyname(ch) : _tracechar((unsigned char)ch))
+extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
+extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int);
+
+#define empty_module(name) \
+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_BOLD|A_DIM|A_BLINK)
 #define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
 
 
 #define ALL_BUT_COLOR ((chtype)~(A_COLOR))
 #define IGNORE_COLOR_OFF FALSE
 #define NONBLANK_ATTR (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)\
       (S) = ((S) & ALL_BUT_COLOR) | (at);\
 #define toggle_attr_on(S,at) {\
    if (PAIR_NUMBER(at) > 0)\
       (S) = ((S) & ALL_BUT_COLOR) | (at);\
@@ -614,13 +785,12 @@ extern const char *_nc_visbuf2(int, const char *);
                    : INFINITY)))
 
 #if USE_XMC_SUPPORT
                    : INFINITY)))
 
 #if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (SP->_current_attr != AttrOf(c)) { \
+#define UpdateAttrs(a) if (SP->_current_attr != (a)) { \
                                attr_t chg = SP->_current_attr; \
                                attr_t chg = SP->_current_attr; \
-                               vidattr(AttrOf(c)); \
+                               vidattr((a)); \
                                if (magic_cookie_glitch > 0 \
                                 && XMC_CHANGES((chg ^ SP->_current_attr))) { \
                                if (magic_cookie_glitch > 0 \
                                 && XMC_CHANGES((chg ^ SP->_current_attr))) { \
-                                       TR(TRACE_ATTRS, \
-                                               ("%s @%d before glitch %d,%d", \
+                                       T(("%s @%d before glitch %d,%d", \
                                                __FILE__, __LINE__, \
                                                SP->_cursrow, \
                                                SP->_curscol)); \
                                                __FILE__, __LINE__, \
                                                SP->_cursrow, \
                                                SP->_curscol)); \
@@ -628,35 +798,48 @@ extern const char *_nc_visbuf2(int, const char *);
                                } \
                        }
 #else
                                } \
                        }
 #else
-#define UpdateAttrs(c) if (SP->_current_attr != AttrOf(c)) \
-                               vidattr(AttrOf(c))
+#define UpdateAttrs(a) if (SP->_current_attr != (a)) \
+                               vidattr((a));
+#endif
+
+/*
+ * Macros to make additional parameter to implement wgetch_events()
+ */
+#ifdef NCURSES_WGETCH_EVENTS
+#define EVENTLIST_0th(param) param
+#define EVENTLIST_1st(param) param
+#define EVENTLIST_2nd(param) , param
+#else
+#define EVENTLIST_0th(param) void
+#define EVENTLIST_1st(param) /* nothing */
+#define EVENTLIST_2nd(param) /* nothing */
 #endif
 
 #if NCURSES_EXPANDED && NCURSES_EXT_FUNCS
 
 #undef  toggle_attr_on
 #define toggle_attr_on(S,at) _nc_toggle_attr_on(&(S), at)
 #endif
 
 #if NCURSES_EXPANDED && NCURSES_EXT_FUNCS
 
 #undef  toggle_attr_on
 #define toggle_attr_on(S,at) _nc_toggle_attr_on(&(S), at)
-extern void _nc_toggle_attr_on(attr_t *, attr_t);
+extern NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *, attr_t);
 
 #undef  toggle_attr_off
 #define toggle_attr_off(S,at) _nc_toggle_attr_off(&(S), at)
 
 #undef  toggle_attr_off
 #define toggle_attr_off(S,at) _nc_toggle_attr_off(&(S), at)
-extern void _nc_toggle_attr_off(attr_t *, attr_t);
+extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t);
 
 #undef  DelCharCost
 #define DelCharCost(count) _nc_DelCharCost(count)
 
 #undef  DelCharCost
 #define DelCharCost(count) _nc_DelCharCost(count)
-extern int _nc_DelCharCost(int);
+extern NCURSES_EXPORT(int) _nc_DelCharCost (int);
 
 #undef  InsCharCost
 #define InsCharCost(count) _nc_InsCharCost(count)
 
 #undef  InsCharCost
 #define InsCharCost(count) _nc_InsCharCost(count)
-extern int _nc_InsCharCost(int);
+extern NCURSES_EXPORT(int) _nc_InsCharCost (int);
 
 #undef  UpdateAttrs
 #define UpdateAttrs(c) _nc_UpdateAttrs(c)
 
 #undef  UpdateAttrs
 #define UpdateAttrs(c) _nc_UpdateAttrs(c)
-extern void _nc_UpdateAttrs(chtype);
+extern NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype);
 
 #else
 
 
 #else
 
-extern void _nc_expanded(void);
+extern NCURSES_EXPORT(void) _nc_expanded (void);
 
 #endif
 
 
 #endif
 
@@ -666,37 +849,53 @@ extern void _nc_expanded(void);
 
 /* doupdate.c */
 #if USE_XMC_SUPPORT
 
 /* doupdate.c */
 #if USE_XMC_SUPPORT
-extern void _nc_do_xmc_glitch(attr_t);
+extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);
 #endif
 
 /* hardscroll.c */
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
 #endif
 
 /* hardscroll.c */
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-extern void _nc_linedump(void);
+extern NCURSES_EXPORT(void) _nc_linedump (void);
 #endif
 
 /* lib_acs.c */
 #endif
 
 /* lib_acs.c */
-extern void _nc_init_acs(void);        /* corresponds to traditional 'init_acs()' */
-extern int _nc_msec_cost(const char *const, int);  /* used by 'tack' program */
+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 */
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *);
+#endif
+
+/* lib_color.c */
+extern NCURSES_EXPORT(bool) _nc_reset_colors(void);
+
+/* lib_getch.c */
+extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));
 
 /* lib_mvcur.c */
 #define INFINITY       1000000 /* cost: too high to use */
 
 
 /* lib_mvcur.c */
 #define INFINITY       1000000 /* cost: too high to use */
 
-extern void _nc_mvcur_init(void);
-extern void _nc_mvcur_resume(void);
-extern void _nc_mvcur_wrap(void);
+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 int _nc_scrolln(int, int, int, int);
+extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
 
 
-extern void _nc_screen_init(void);
-extern void _nc_screen_resume(void);
-extern void _nc_screen_wrap(void);
+extern NCURSES_EXPORT(void) _nc_screen_init (void);
+extern NCURSES_EXPORT(void) _nc_screen_resume (void);
+extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
 
 /* lib_mouse.c */
 
 /* lib_mouse.c */
-extern int _nc_has_mouse(void);
+extern NCURSES_EXPORT(int) _nc_has_mouse (void);
 
 /* lib_mvcur.c */
 #define INFINITY       1000000 /* cost: too high to use */
 
 
 /* lib_mvcur.c */
 #define INFINITY       1000000 /* cost: too high to use */
 
+/* lib_wacs.c */
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(void) _nc_init_wacs(void);
+#endif
+
 typedef struct {
     char *s_head;
     char *s_tail;
 typedef struct {
     char *s_head;
     char *s_tail;
@@ -704,78 +903,93 @@ typedef struct {
 } string_desc;
 
 /* strings.c */
 } string_desc;
 
 /* strings.c */
-extern string_desc *_nc_str_init(string_desc * dst, char *src, size_t len);
-extern string_desc *_nc_str_null(string_desc * dst, size_t len);
-extern string_desc *_nc_str_copy(string_desc * dst, string_desc * src);
-extern bool _nc_safe_strcat(string_desc * dst, const char *src);
-extern bool _nc_safe_strcpy(string_desc * dst, const char *src);
+extern NCURSES_EXPORT(string_desc *) _nc_str_init (string_desc *, char *, size_t);
+extern NCURSES_EXPORT(string_desc *) _nc_str_null (string_desc *, size_t);
+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 void _nc_mvcur_init(void);
-extern void _nc_mvcur_resume(void);
-extern void _nc_mvcur_wrap(void);
+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 int _nc_scrolln(int, int, int, int);
+extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
 
 
-extern void _nc_screen_init(void);
-extern void _nc_screen_resume(void);
-extern void _nc_screen_wrap(void);
+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
 
 #if !HAVE_STRSTR
 #define strstr _nc_strstr
-extern char *_nc_strstr(const char *, const char *);
+extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *);
 #endif
 
 /* safe_sprintf.c */
 #endif
 
 /* safe_sprintf.c */
-extern char * _nc_printf_string(const char *fmt, va_list ap);
+extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list);
 
 /* tries.c */
 
 /* tries.c */
-extern void _nc_add_to_try(struct tries **tree, const char *str, unsigned short code);
-extern char *_nc_expand_try(struct tries *tree, unsigned short code, int *count, size_t len);
-extern int _nc_remove_key(struct tries **tree, unsigned short code);
-extern int _nc_remove_string(struct tries **tree, char *string);
+extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned short);
+extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned short, int *, size_t);
+extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned short);
+extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, char *);
 
 /* elsewhere ... */
 
 /* elsewhere ... */
-extern WINDOW *_nc_makenew(int, int, int, int, int);
-extern char *_nc_home_terminfo(void);
-extern char *_nc_trace_buf(int, size_t);
-extern chtype _nc_background(WINDOW *);
-extern chtype _nc_render(WINDOW *, chtype);
-extern int _nc_access(const char *, int);
-extern int _nc_baudrate(int);
-extern int _nc_getenv_num(const char *);
-extern int _nc_keypad(bool);
-extern int _nc_ospeed(int);
-extern int _nc_outch(int);
-extern int _nc_setupscreen(short, short const, FILE *);
-extern int _nc_timed_wait(int, int, int *);
-extern int _nc_waddch_nosync(WINDOW *, const chtype);
-extern void _nc_do_color(int, int, bool, int (*)(int));
-extern void _nc_freeall(void);
-extern void _nc_freewin(WINDOW *win);
-extern void _nc_hash_map(void);
-extern void _nc_init_keytry(void);
-extern void _nc_keep_tic_dir(const char *);
-extern void _nc_make_oldhash(int i);
-extern void _nc_flush(void);
-extern void _nc_outstr(const char *str);
-extern void _nc_scroll_oldhash(int n, int top, int bot);
-extern void _nc_scroll_optimize(void);
-extern void _nc_scroll_window(WINDOW *, int const, short const, short const, chtype);
-extern void _nc_set_buffer(FILE *, bool);
-extern void _nc_signal_handler(bool);
-extern void _nc_synchook(WINDOW *win);
-extern void _nc_trace_tries(struct tries *tree);
+extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
+extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
+extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
+extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+extern NCURSES_EXPORT(int)  _nc_access (const char *, int);
+extern NCURSES_EXPORT(int) _nc_baudrate (int);
+extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
+extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
+extern NCURSES_EXPORT(int) _nc_keypad (bool);
+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_freeall (void);
+extern NCURSES_EXPORT(void) _nc_hash_map (void);
+extern NCURSES_EXPORT(void) _nc_init_keytry (void);
+extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);
+extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
+extern NCURSES_EXPORT(void) _nc_outstr (const char *str);
+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 USE_SIZECHANGE
 
 #if USE_SIZECHANGE
-extern void _nc_update_screensize(void);
+extern NCURSES_EXPORT(void) _nc_update_screensize (void);
 #endif
 
 #endif
 
-#if USE_WIDEC_SUPPORT
-extern int _nc_utf8_outch(int);
+#if HAVE_RESIZETERM
+extern NCURSES_EXPORT(void) _nc_resize_margins (WINDOW *);
+#else
+#define _nc_resize_margins(wp) /* nothing */
+#endif
+
+#ifdef NCURSES_WGETCH_EVENTS
+extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *);
+#else
+#define wgetch_events(win, evl) wgetch(win)
+#define wgetnstr_events(win, str, maxlen, evl) wgetnstr(win, str, maxlen)
+#endif
+
+/*
+ * Not everyone has vsscanf(), but we'd like to use it for scanw().
+ */
+#if !HAVE_VSSCANF
+extern int vsscanf(const char *str, const char *format, va_list __arg);
 #endif
 
 /* scroll indices */
 #endif
 
 /* scroll indices */
-extern int *_nc_oldnums;
+extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;
 
 #define USE_SETBUF_0 0
 
 
 #define USE_SETBUF_0 0
 
@@ -791,27 +1005,26 @@ extern int *_nc_oldnums;
  */
 #if BROKEN_LINKER
 #define SP _nc_screen()
  */
 #if BROKEN_LINKER
 #define SP _nc_screen()
-extern SCREEN *_nc_screen(void);
-extern int _nc_alloc_screen(void);
-extern void _nc_set_screen(SCREEN *);
+extern NCURSES_EXPORT(SCREEN *) _nc_screen (void);
+extern NCURSES_EXPORT(int) _nc_alloc_screen (void);
+extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *);
 #else
 /* current screen is private data; avoid possible linking conflicts too */
 #else
 /* current screen is private data; avoid possible linking conflicts too */
-extern SCREEN *SP;
+extern NCURSES_EXPORT_VAR(SCREEN *) SP;
 #define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)
 #define _nc_set_screen(sp) SP = sp
 #endif
 
 /*
 #define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)
 #define _nc_set_screen(sp) SP = sp
 #endif
 
 /*
- * We don't want to use the lines or columns capabilities internally,
- * because if the application is running multiple screens under
- * X windows, it's quite possible they could all have type xterm
- * but have different sizes!  So...
+ * We don't want to use the lines or columns capabilities internally, because
+ * if the application is running multiple screens under X, it's quite possible
+ * they could all have type xterm but have different sizes!  So...
  */
 #define screen_lines   SP->_lines
 #define screen_columns SP->_columns
 
  */
 #define screen_lines   SP->_lines
 #define screen_columns SP->_columns
 
-extern int _nc_slk_format;  /* != 0 if slk_init() called */
-extern int _nc_slk_initialize(WINDOW *, int);
+extern NCURSES_EXPORT_VAR(int) _nc_slk_format;  /* != 0 if slk_init() called */
+extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);
 
 /*
  * Some constants related to SLK's
 
 /*
  * Some constants related to SLK's
@@ -829,7 +1042,13 @@ extern int _nc_slk_initialize(WINDOW *, int);
 #define MAX_SKEY(fmt)     (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC)
 #define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC)
 
 #define MAX_SKEY(fmt)     (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC)
 #define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC)
 
-extern int _nc_ripoffline(int line, int (*init)(WINDOW *,int));
+extern NCURSES_EXPORT(int) _nc_ripoffline (int line, int (*init)(WINDOW *,int));
+
+/*
+ * Common error messages
+ */
+#define MSG_NO_MEMORY "Out of memory"
+#define MSG_NO_INPUTS "Premature EOF"
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }
index f4dd7be324f5af882ace62ace931c0d592b7c1cf..67799577aeadabfe268a7ce373dfca867b882a97 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 /*
  * Common macros for lib_getch.c, lib_ungetch.c
  *
 /*
  * Common macros for lib_getch.c, lib_ungetch.c
  *
- * $Id: fifo_defs.h,v 1.2 1998/02/11 12:13:56 tom Exp $
+ * $Id: fifo_defs.h,v 1.4 2002/03/16 20:47:50 tom Exp $
  */
 
 #ifndef FIFO_DEFS_H
  */
 
 #ifndef FIFO_DEFS_H
 #define peek   SP->_fifopeek
 
 #define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
 #define peek   SP->_fifopeek
 
 #define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
-#define h_dec() { head == 0 ?  head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
+#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
 #define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
 #define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
-#define t_dec() { tail == 0 ?  tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();}
+#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();}
 #define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
 
 #define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
 
-#define cooked_key_in_fifo()   (head!=-1 && peek!=head)
-#define raw_key_in_fifo()      (head!=-1 && peek!=tail)
+#define cooked_key_in_fifo()   ((head != -1) && (peek != head))
+#define raw_key_in_fifo()      ((head != -1) && (peek != tail))
 
 #undef HIDE_EINTR
 
 
 #undef HIDE_EINTR
 
index 280325ace2c55350b50c474138604eef79754b38..1a378196b560f086882793c083f9b6fa1483bb83 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission 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-2000                   *
+ *  Author: Thomas E. Dickey 1996-2001,2002                                 *
  ****************************************************************************/
 /* LINTLIBRARY */
 
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -48,16 +48,6 @@ void _nc_linedump(void)
 
 /* ./tty/hashmap.c */
 
 
 /* ./tty/hashmap.c */
 
-#include <term.h>
-
-typedef struct
-{
-    unsigned long      hashval;
-    int                oldcount, newcount;
-    int                oldindex, newindex;
-}
-    sym;
-
 #undef _nc_hash_map
 void   _nc_hash_map(void)
                { /* void */ }
 #undef _nc_hash_map
 void   _nc_hash_map(void)
                { /* void */ }
@@ -78,11 +68,6 @@ void _nc_scroll_oldhash(
 
 #include <ctype.h>
 
 
 #include <ctype.h>
 
-#undef _nc_background
-chtype _nc_background(
-               WINDOW  *win)
-               { return(*(chtype *)0); }
-
 #undef _nc_render
 chtype _nc_render(
                WINDOW  *win, 
 #undef _nc_render
 chtype _nc_render(
                WINDOW  *win, 
@@ -112,14 +97,14 @@ int        wechochar(
 #undef waddnstr
 int    waddnstr(
                WINDOW  *win, 
 #undef waddnstr
 int    waddnstr(
                WINDOW  *win, 
-               const char *const astr, 
+               const char *astr, 
                int     n)
                { return(*(int *)0); }
 
 #undef waddchnstr
 int    waddchnstr(
                WINDOW  *win, 
                int     n)
                { return(*(int *)0); }
 
 #undef waddchnstr
 int    waddchnstr(
                WINDOW  *win, 
-               const chtype *const astr, 
+               const chtype *astr, 
                int     n)
                { return(*(int *)0); }
 
                int     n)
                { return(*(int *)0); }
 
@@ -140,7 +125,7 @@ void        wbkgdset(
 #undef wbkgd
 int    wbkgd(
                WINDOW  *win, 
 #undef wbkgd
 int    wbkgd(
                WINDOW  *win, 
-               const chtype ch)
+               chtype  ch)
                { return(*(int *)0); }
 
 /* ./base/lib_box.c */
                { return(*(int *)0); }
 
 /* ./base/lib_box.c */
@@ -181,7 +166,7 @@ int wclear(
 #undef clearok
 int    clearok(
                WINDOW  *win, 
 #undef clearok
 int    clearok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./base/lib_clrbot.c */
                { return(*(int *)0); }
 
 /* ./base/lib_clrbot.c */
@@ -227,12 +212,12 @@ int       init_color(
                { return(*(int *)0); }
 
 #undef can_change_color
                { return(*(int *)0); }
 
 #undef can_change_color
-bool   can_change_color(void)
-               { return(*(bool *)0); }
+NCURSES_BOOL can_change_color(void)
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef has_colors
 
 #undef has_colors
-bool   has_colors(void)
-               { return(*(bool *)0); }
+NCURSES_BOOL has_colors(void)
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef color_content
 int    color_content(
 
 #undef color_content
 int    color_content(
@@ -253,7 +238,7 @@ int pair_content(
 void   _nc_do_color(
                int     old_pair, 
                int     pair, 
 void   _nc_do_color(
                int     old_pair, 
                int     pair, 
-               bool    reverse, 
+               NCURSES_BOOL reverse, 
                int     (*outc)(
                int     p1))
                { /* void */ }
                int     (*outc)(
                int     p1))
                { /* void */ }
@@ -1027,11 +1012,11 @@ int     wstandend(
                { return(*(int *)0); }
 
 #undef mouse_trafo
                { return(*(int *)0); }
 
 #undef mouse_trafo
-bool   mouse_trafo(
+NCURSES_BOOL mouse_trafo(
                int     *a1, 
                int     *a2, 
                int     *a1, 
                int     *a2, 
-               bool    z)
-               { return(*(bool *)0); }
+               NCURSES_BOOL z)
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./base/lib_getch.c */
 
 
 /* ./base/lib_getch.c */
 
@@ -1040,6 +1025,13 @@ bool     mouse_trafo(
 #undef ESCDELAY
 int    ESCDELAY;
 
 #undef ESCDELAY
 int    ESCDELAY;
 
+#undef _nc_wgetch
+int    _nc_wgetch(
+               WINDOW  *win, 
+               unsigned long *result, 
+               int     use_meta)
+               { return(*(int *)0); }
+
 #undef wgetch
 int    wgetch(
                WINDOW  *win)
 #undef wgetch
 int    wgetch(
                WINDOW  *win)
@@ -1068,7 +1060,7 @@ int       whline(
 #undef immedok
 void   immedok(
                WINDOW  *win, 
 #undef immedok
 void   immedok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { /* void */ }
 
 /* ./base/lib_inchstr.c */
                { /* void */ }
 
 /* ./base/lib_inchstr.c */
@@ -1123,15 +1115,15 @@ int     winnstr(
 /* ./base/lib_isendwin.c */
 
 #undef isendwin
 /* ./base/lib_isendwin.c */
 
 #undef isendwin
-bool   isendwin(void)
-               { return(*(bool *)0); }
+NCURSES_BOOL isendwin(void)
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./base/lib_leaveok.c */
 
 #undef leaveok
 int    leaveok(
                WINDOW  *win, 
 
 /* ./base/lib_leaveok.c */
 
 #undef leaveok
 int    leaveok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./base/lib_mouse.c */
                { return(*(int *)0); }
 
 /* ./base/lib_mouse.c */
@@ -1153,11 +1145,11 @@ mmask_t mousemask(
                { return(*(mmask_t *)0); }
 
 #undef wenclose
                { return(*(mmask_t *)0); }
 
 #undef wenclose
-bool   wenclose(
+NCURSES_BOOL wenclose(
                const WINDOW *win, 
                int     y, 
                int     x)
                const WINDOW *win, 
                int     y, 
                int     x)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef mouseinterval
 int    mouseinterval(
 
 #undef mouseinterval
 int    mouseinterval(
@@ -1169,12 +1161,12 @@ int     _nc_has_mouse(void)
                { return(*(int *)0); }
 
 #undef wmouse_trafo
                { return(*(int *)0); }
 
 #undef wmouse_trafo
-bool   wmouse_trafo(
+NCURSES_BOOL wmouse_trafo(
                const WINDOW *win, 
                int     *pY, 
                int     *pX, 
                const WINDOW *win, 
                int     *pY, 
                int     *pX, 
-               bool    to_screen)
-               { return(*(bool *)0); }
+               NCURSES_BOOL to_screen)
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./base/lib_move.c */
 
 
 /* ./base/lib_move.c */
 
@@ -1241,9 +1233,9 @@ SCREEN    *newterm(
 /* ./base/lib_newwin.c */
 
 #undef _nc_freewin
 /* ./base/lib_newwin.c */
 
 #undef _nc_freewin
-void   _nc_freewin(
+int    _nc_freewin(
                WINDOW  *win)
                WINDOW  *win)
-               { /* void */ }
+               { return(*(int *)0); }
 
 #undef newwin
 WINDOW *newwin(
 
 #undef newwin
 WINDOW *newwin(
@@ -1472,9 +1464,6 @@ int       mvwscanw(
 
 /* ./base/lib_screen.c */
 
 
 /* ./base/lib_screen.c */
 
-#include <sys/stat.h>
-#include <time.h>
-
 #undef getwin
 WINDOW *getwin(
                FILE    *filep)
 #undef getwin
 WINDOW *getwin(
                FILE    *filep)
@@ -1528,7 +1517,7 @@ int       wscrl(
 #undef scrollok
 int    scrollok(
                WINDOW  *win, 
 #undef scrollok
 int    scrollok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./base/lib_scrreg.c */
                { return(*(int *)0); }
 
 /* ./base/lib_scrreg.c */
@@ -1681,15 +1670,15 @@ int     slk_touch(void)
 /* ./base/lib_touch.c */
 
 #undef is_linetouched
 /* ./base/lib_touch.c */
 
 #undef is_linetouched
-bool   is_linetouched(
+NCURSES_BOOL is_linetouched(
                WINDOW  *win, 
                int     line)
                WINDOW  *win, 
                int     line)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef is_wintouched
 
 #undef is_wintouched
-bool   is_wintouched(
+NCURSES_BOOL is_wintouched(
                WINDOW  *win)
                WINDOW  *win)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef wtouchln
 int    wtouchln(
 
 #undef wtouchln
 int    wtouchln(
@@ -1717,6 +1706,12 @@ attr_t   _nc_retrace_attr_t(
                attr_t  code)
                { return(*(attr_t *)0); }
 
                attr_t  code)
                { return(*(attr_t *)0); }
 
+#undef _nc_altcharset_name
+const char *_nc_altcharset_name(
+               attr_t  attr, 
+               chtype  ch)
+               { return(*(const char **)0); }
+
 #undef _tracechtype2
 char   *_tracechtype2(
                int     bufnum, 
 #undef _tracechtype2
 char   *_tracechtype2(
                int     bufnum, 
@@ -1750,12 +1745,11 @@ char    *_tracemouse(
 
 /* ./tty/lib_tstp.c */
 
 
 /* ./tty/lib_tstp.c */
 
-#include <signal.h>
 #include <SigAction.h>
 
 #undef _nc_signal_handler
 void   _nc_signal_handler(
 #include <SigAction.h>
 
 #undef _nc_signal_handler
 void   _nc_signal_handler(
-               bool    enable)
+               NCURSES_BOOL enable)
                { /* void */ }
 
 /* ./base/lib_ungetch.c */
                { /* void */ }
 
 /* ./base/lib_ungetch.c */
@@ -1773,14 +1767,14 @@ int     ungetch(
 
 #undef vidputs
 int    vidputs(
 
 #undef vidputs
 int    vidputs(
-               attr_t  newmode, 
+               chtype  newmode, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
 
 #undef vidattr
 int    vidattr(
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
 
 #undef vidattr
 int    vidattr(
-               attr_t  newmode)
+               chtype  newmode)
                { return(*(int *)0); }
 
 #undef termattrs
                { return(*(int *)0); }
 
 #undef termattrs
@@ -1838,7 +1832,7 @@ int       mvderwin(
 #undef syncok
 int    syncok(
                WINDOW  *win, 
 #undef syncok
 int    syncok(
                WINDOW  *win, 
-               bool    bf)
+               NCURSES_BOOL bf)
                { return(*(int *)0); }
 
 #undef wsyncup
                { return(*(int *)0); }
 
 #undef wsyncup
@@ -1914,6 +1908,18 @@ void     _nc_do_xmc_glitch(
                attr_t  previous)
                { /* void */ }
 
                attr_t  previous)
                { /* void */ }
 
+/* ./trace/varargs.c */
+
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
+#undef _nc_varargs
+char   *_nc_varargs(
+               const char *fmt, 
+               va_list ap)
+               { return(*(char **)0); }
+
 /* ./base/memmove.c */
 
 #undef _nc_memmove
 /* ./base/memmove.c */
 
 #undef _nc_memmove
@@ -1982,7 +1988,7 @@ char      *keybound(
 #undef keyok
 int    keyok(
                int     c, 
 #undef keyok
 int    keyok(
                int     c, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./base/lib_dft_fgbg.c */
                { return(*(int *)0); }
 
 /* ./base/lib_dft_fgbg.c */
@@ -2015,6 +2021,18 @@ int      mcprint(
 
 /* ./base/resizeterm.c */
 
 
 /* ./base/resizeterm.c */
 
+#undef is_term_resized
+NCURSES_BOOL is_term_resized(
+               int     ToLines, 
+               int     ToCols)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef resize_term
+int    resize_term(
+               int     ToLines, 
+               int     ToCols)
+               { return(*(int *)0); }
+
 #undef resizeterm
 int    resizeterm(
                int     ToLines, 
 #undef resizeterm
 int    resizeterm(
                int     ToLines, 
@@ -2067,6 +2085,11 @@ int      wresize(
 
 /* ./tinfo/access.c */
 
 
 /* ./tinfo/access.c */
 
+#undef _nc_rootname
+char   *_nc_rootname(
+               char    *path)
+               { return(*(char **)0); }
+
 #undef _nc_basename
 char   *_nc_basename(
                char    *path)
 #undef _nc_basename
 char   *_nc_basename(
                char    *path)
@@ -2110,7 +2133,8 @@ char      *_nc_save_str(
 
 #undef _nc_wrap_entry
 void   _nc_wrap_entry(
 
 #undef _nc_wrap_entry
 void   _nc_wrap_entry(
-               ENTRY   *const ep)
+               ENTRY   *const ep, 
+               NCURSES_BOOL copy_strings)
                { /* void */ }
 
 #undef _nc_merge_entry
                { /* void */ }
 
 #undef _nc_merge_entry
@@ -2137,15 +2161,15 @@ void    _nc_copy_termtype(
 
 #undef _nc_captoinfo
 char   *_nc_captoinfo(
 
 #undef _nc_captoinfo
 char   *_nc_captoinfo(
-                const char *cap, 
-                const char *s, 
+               const char *cap, 
+               const char *s, 
                int const parametrized)
                { return(*(char **)0); }
 
 #undef _nc_infotocap
 char   *_nc_infotocap(
                int const parametrized)
                { return(*(char **)0); }
 
 #undef _nc_infotocap
 char   *_nc_infotocap(
-                const char *cap, 
-                const char *str, 
+               const char *cap, 
+               const char *str, 
                int const parametrized)
                { return(*(char **)0); }
 
                int const parametrized)
                { return(*(char **)0); }
 
@@ -2173,18 +2197,18 @@ const struct alias _nc_infoalias_table[] = {0};
 
 #undef _nc_get_table
 const struct name_table_entry *_nc_get_table(
 
 #undef _nc_get_table
 const struct name_table_entry *_nc_get_table(
-               bool    termcap)
+               NCURSES_BOOL termcap)
                { return(*(const struct name_table_entry **)0); }
 
 #undef _nc_get_hash_table
 const struct name_table_entry *const *_nc_get_hash_table(
                { return(*(const struct name_table_entry **)0); }
 
 #undef _nc_get_hash_table
 const struct name_table_entry *const *_nc_get_hash_table(
-               bool    termcap)
+               NCURSES_BOOL termcap)
                { return(*(const struct name_table_entry **)0); }
 
 /* ./tinfo/comp_error.c */
 
 #undef _nc_suppress_warnings
                { return(*(const struct name_table_entry **)0); }
 
 /* ./tinfo/comp_error.c */
 
 #undef _nc_suppress_warnings
-bool   _nc_suppress_warnings;
+NCURSES_BOOL _nc_suppress_warnings;
 #undef _nc_curr_line
 int    _nc_curr_line;
 #undef _nc_curr_col
 #undef _nc_curr_line
 int    _nc_curr_line;
 #undef _nc_curr_col
@@ -2228,7 +2252,7 @@ void      _nc_syserr_abort(
 #undef _nc_tic_expand
 char   *_nc_tic_expand(
                const char *srcp, 
 #undef _nc_tic_expand
 char   *_nc_tic_expand(
                const char *srcp, 
-               bool    tic_format, 
+               NCURSES_BOOL tic_format, 
                int     numbers)
                { return(*(char **)0); }
 
                int     numbers)
                { return(*(char **)0); }
 
@@ -2265,24 +2289,24 @@ void    _nc_free_entries(
                { /* void */ }
 
 #undef _nc_entry_match
                { /* void */ }
 
 #undef _nc_entry_match
-bool   _nc_entry_match(
+NCURSES_BOOL _nc_entry_match(
                char    *n1, 
                char    *n2)
                char    *n1, 
                char    *n2)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_read_entry_source
 void   _nc_read_entry_source(
                FILE    *fp, 
                char    *buf, 
                int     literal, 
 
 #undef _nc_read_entry_source
 void   _nc_read_entry_source(
                FILE    *fp, 
                char    *buf, 
                int     literal, 
-               bool    silent, 
-               bool    (*hook)(
+               NCURSES_BOOL silent, 
+               NCURSES_BOOL (*hook)(
                ENTRY   *p1))
                { /* void */ }
 
 #undef _nc_resolve_uses
 int    _nc_resolve_uses(
                ENTRY   *p1))
                { /* void */ }
 
 #undef _nc_resolve_uses
 int    _nc_resolve_uses(
-               bool    fullresolve)
+               NCURSES_BOOL fullresolve)
                { return(*(int *)0); }
 
 /* ./tinfo/comp_scan.c */
                { return(*(int *)0); }
 
 /* ./tinfo/comp_scan.c */
@@ -2300,10 +2324,11 @@ long    _nc_start_line;
 #undef _nc_curr_token
 struct token _nc_curr_token;
 #undef _nc_disable_period
 #undef _nc_curr_token
 struct token _nc_curr_token;
 #undef _nc_disable_period
-bool   _nc_disable_period;
+NCURSES_BOOL _nc_disable_period;
 
 #undef _nc_get_token
 
 #undef _nc_get_token
-int    _nc_get_token(void)
+int    _nc_get_token(
+               NCURSES_BOOL silent)
                { return(*(int *)0); }
 
 #undef _nc_trans_string
                { return(*(int *)0); }
 
 #undef _nc_trans_string
@@ -2351,11 +2376,11 @@ void    _nc_free_termtype(
                { /* void */ }
 
 #undef _nc_user_definable
                { /* void */ }
 
 #undef _nc_user_definable
-bool   _nc_user_definable;
+NCURSES_BOOL _nc_user_definable;
 
 #undef use_extended_names
 int    use_extended_names(
 
 #undef use_extended_names
 int    use_extended_names(
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./tinfo/getenv_num.c */
                { return(*(int *)0); }
 
 /* ./tinfo/getenv_num.c */
@@ -2400,8 +2425,8 @@ void      _nc_init_acs(void)
 #include <termcap.h>
 
 struct speed {
 #include <termcap.h>
 
 struct speed {
-    int s;     
-    int sp;    
+    int s;                     
+    int sp;                    
 };
 
 #undef _nc_baudrate
 };
 
 #undef _nc_baudrate
@@ -2449,12 +2474,12 @@ SCREEN  *SP;
 /* ./tinfo/lib_has_cap.c */
 
 #undef has_ic
 /* ./tinfo/lib_has_cap.c */
 
 #undef has_ic
-bool   has_ic(void)
-               { return(*(bool *)0); }
+NCURSES_BOOL has_ic(void)
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef has_il
 
 #undef has_il
-bool   has_il(void)
-               { return(*(bool *)0); }
+NCURSES_BOOL has_il(void)
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./tinfo/lib_kernel.c */
 
 
 /* ./tinfo/lib_kernel.c */
 
@@ -2472,10 +2497,6 @@ int      flushinp(void)
 
 /* ./lib_keyname.c */
 
 
 /* ./lib_keyname.c */
 
-#include <stdlib.h>
-#include <string.h>
-#include <curses.h>
-
 #undef _nc_key_names
 const struct kn _nc_key_names[] = {0};
 
 #undef _nc_key_names
 const struct kn _nc_key_names[] = {0};
 
@@ -2492,6 +2513,8 @@ char      *longname(void)
 
 /* ./tinfo/lib_napms.c */
 
 
 /* ./tinfo/lib_napms.c */
 
+#include <time.h>
+
 #undef napms
 int    napms(
                int     ms)
 #undef napms
 int    napms(
                int     ms)
@@ -2502,13 +2525,13 @@ int     napms(
 #undef idlok
 int    idlok(
                WINDOW  *win, 
 #undef idlok
 int    idlok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef idcok
 void   idcok(
                WINDOW  *win, 
                { return(*(int *)0); }
 
 #undef idcok
 void   idcok(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { /* void */ }
 
 #undef halfdelay
                { /* void */ }
 
 #undef halfdelay
@@ -2519,13 +2542,13 @@ int     halfdelay(
 #undef nodelay
 int    nodelay(
                WINDOW  *win, 
 #undef nodelay
 int    nodelay(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef notimeout
 int    notimeout(
                WINDOW  *win, 
                { return(*(int *)0); }
 
 #undef notimeout
 int    notimeout(
                WINDOW  *win, 
-               bool    f)
+               NCURSES_BOOL f)
                { return(*(int *)0); }
 
 #undef wtimeout
                { return(*(int *)0); }
 
 #undef wtimeout
@@ -2537,13 +2560,13 @@ void    wtimeout(
 #undef keypad
 int    keypad(
                WINDOW  *win, 
 #undef keypad
 int    keypad(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef meta
 int    meta(
                WINDOW  *win, 
                { return(*(int *)0); }
 
 #undef meta
 int    meta(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef curs_set
                { return(*(int *)0); }
 
 #undef curs_set
@@ -2563,7 +2586,7 @@ int       has_key(
 
 #undef _nc_keypad
 int    _nc_keypad(
 
 #undef _nc_keypad
 int    _nc_keypad(
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./tinfo/lib_raw.c */
                { return(*(int *)0); }
 
 /* ./tinfo/lib_raw.c */
@@ -2595,7 +2618,7 @@ void      noqiflush(void)
 #undef intrflush
 int    intrflush(
                WINDOW  *win, 
 #undef intrflush
 int    intrflush(
                WINDOW  *win, 
-               bool    flag)
+               NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 /* ./tinfo/lib_setup.c */
                { return(*(int *)0); }
 
 /* ./tinfo/lib_setup.c */
@@ -2604,7 +2627,7 @@ int       intrflush(
 
 #undef use_env
 void   use_env(
 
 #undef use_env
 void   use_env(
-               bool    f)
+               NCURSES_BOOL f)
                { /* void */ }
 
 #undef LINES
                { /* void */ }
 
 #undef LINES
@@ -2699,12 +2722,15 @@ char    *tigetstr(
 
 typedef struct {
     union {
 
 typedef struct {
     union {
-       unsigned int num;
+       int num;
        char *str;
     } data;
        char *str;
     } data;
-    bool num_type;
+    NCURSES_BOOL  num_type;
 } stack_frame;
 
 } stack_frame;
 
+#undef _nc_tparm_err
+int    _nc_tparm_err;
+
 #undef tparm
 char   *tparm(
                char    *string, 
 #undef tparm
 char   *tparm(
                char    *string, 
@@ -2716,7 +2742,7 @@ char      *tparm(
 #undef PC
 char   PC;
 #undef ospeed
 #undef PC
 char   PC;
 #undef ospeed
-short  ospeed;
+NCURSES_OSPEED ospeed;
 #undef _nc_nulls_sent
 int    _nc_nulls_sent;
 
 #undef _nc_nulls_sent
 int    _nc_nulls_sent;
 
@@ -2761,17 +2787,6 @@ void     trace(
                const unsigned int tracelevel)
                { /* void */ }
 
                const unsigned int tracelevel)
                { /* void */ }
 
-#undef _nc_visbuf2
-const char *_nc_visbuf2(
-               int     bufnum, 
-               const char *buf)
-               { return(*(const char **)0); }
-
-#undef _nc_visbuf
-const char *_nc_visbuf(
-               const char *buf)
-               { return(*(const char **)0); }
-
 #undef _tracef
 void   _tracef(
                const char *fmt, 
 #undef _tracef
 void   _tracef(
                const char *fmt, 
@@ -2788,6 +2803,11 @@ char     *_nc_retrace_ptr(
                char    *code)
                { return(*(char **)0); }
 
                char    *code)
                { return(*(char **)0); }
 
+#undef _nc_retrace_sp
+SCREEN *_nc_retrace_sp(
+               SCREEN  *code)
+               { return(*(SCREEN **)0); }
+
 #undef _nc_retrace_win
 WINDOW *_nc_retrace_win(
                WINDOW  *code)
 #undef _nc_retrace_win
 WINDOW *_nc_retrace_win(
                WINDOW  *code)
@@ -2800,6 +2820,11 @@ typedef struct {
     const char *name;
 } BITNAMES;
 
     const char *name;
 } BITNAMES;
 
+#undef _nc_trace_ttymode
+char   *_nc_trace_ttymode(
+               struct termios *tty)
+               { return(*(char **)0); }
+
 #undef _nc_tracebits
 char   *_nc_tracebits(void)
                { return(*(char **)0); }
 #undef _nc_tracebits
 char   *_nc_tracebits(void)
                { return(*(char **)0); }
@@ -2808,7 +2833,7 @@ char      *_nc_tracebits(void)
 
 #undef _tracechar
 char   *_tracechar(
 
 #undef _tracechar
 char   *_tracechar(
-               const unsigned char ch)
+               int     ch)
                { return(*(char **)0); }
 
 /* ./tinfo/lib_ttyflags.c */
                { return(*(char **)0); }
 
 /* ./tinfo/lib_ttyflags.c */
@@ -2891,7 +2916,7 @@ char      *const strfnames[] = {0};
 int    _nc_parse_entry(
                struct entry *entryp, 
                int     literal, 
 int    _nc_parse_entry(
                struct entry *entryp, 
                int     literal, 
-               bool    silent)
+               NCURSES_BOOL silent)
                { return(*(int *)0); }
 
 #undef _nc_capcmp
                { return(*(int *)0); }
 
 #undef _nc_capcmp
@@ -2932,16 +2957,18 @@ int     _nc_read_entry(
 
 /* ./tinfo/read_termcap.c */
 
 
 /* ./tinfo/read_termcap.c */
 
-#undef _nc_read_termcap
-void   _nc_read_termcap(void)
-               { /* void */ }
+#undef _nc_read_termcap_entry
+int    _nc_read_termcap_entry(
+               const char *const tn, 
+               TERMTYPE *const tp)
+               { return(*(int *)0); }
 
 /* ./tinfo/setbuf.c */
 
 #undef _nc_set_buffer
 void   _nc_set_buffer(
                FILE    *ofp, 
 
 /* ./tinfo/setbuf.c */
 
 #undef _nc_set_buffer
 void   _nc_set_buffer(
                FILE    *ofp, 
-               bool    buffered)
+               NCURSES_BOOL buffered)
                { /* void */ }
 
 /* ./tinfo/strings.c */
                { /* void */ }
 
 /* ./tinfo/strings.c */
@@ -2966,22 +2993,22 @@ string_desc *_nc_str_copy(
                { return(*(string_desc **)0); }
 
 #undef _nc_safe_strcat
                { return(*(string_desc **)0); }
 
 #undef _nc_safe_strcat
-bool   _nc_safe_strcat(
+NCURSES_BOOL _nc_safe_strcat(
                string_desc *dst, 
                const char *src)
                string_desc *dst, 
                const char *src)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_safe_strcpy
 
 #undef _nc_safe_strcpy
-bool   _nc_safe_strcpy(
+NCURSES_BOOL _nc_safe_strcpy(
                string_desc *dst, 
                const char *src)
                string_desc *dst, 
                const char *src)
-               { return(*(bool *)0); }
+               { return(*(NCURSES_BOOL *)0); }
 
 /* ./trace/trace_buf.c */
 
 typedef struct {
 
 /* ./trace/trace_buf.c */
 
 typedef struct {
-       char *text;
-       size_t size;
+    char *text;
+    size_t size;
 } LIST;
 
 #undef _nc_trace_buf
 } LIST;
 
 #undef _nc_trace_buf
@@ -3004,6 +3031,19 @@ char     *unctrl(
                 chtype ch)
                { return(*(char **)0); }
 
                 chtype ch)
                { return(*(char **)0); }
 
+/* ./trace/visbuf.c */
+
+#undef _nc_visbuf2
+const char *_nc_visbuf2(
+               int     bufnum, 
+               const char *buf)
+               { return(*(const char **)0); }
+
+#undef _nc_visbuf
+const char *_nc_visbuf(
+               const char *buf)
+               { return(*(const char **)0); }
+
 /* ./tinfo/write_entry.c */
 
 #undef _nc_set_writedir
 /* ./tinfo/write_entry.c */
 
 #undef _nc_set_writedir
diff --git a/ncurses/llib-lncursesw b/ncurses/llib-lncursesw
new file mode 100644 (file)
index 0000000..7256eb9
--- /dev/null
@@ -0,0 +1,3785 @@
+/****************************************************************************
+ * Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "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 2001,2002                                      *
+ ****************************************************************************/
+/* LINTLIBRARY */
+
+/* ./tty/hardscroll.c */
+
+#include <curses.priv.h>
+
+#undef _nc_oldnums
+int    *_nc_oldnums;
+
+#undef _nc_scroll_optimize
+void   _nc_scroll_optimize(void)
+               { /* void */ }
+
+#undef _nc_linedump
+void   _nc_linedump(void)
+               { /* void */ }
+
+/* ./tty/hashmap.c */
+
+#undef _nc_hash_map
+void   _nc_hash_map(void)
+               { /* void */ }
+
+#undef _nc_make_oldhash
+void   _nc_make_oldhash(
+               int     i)
+               { /* void */ }
+
+#undef _nc_scroll_oldhash
+void   _nc_scroll_oldhash(
+               int     n, 
+               int     top, 
+               int     bot)
+               { /* void */ }
+
+/* ./base/lib_addch.c */
+
+#include <ctype.h>
+
+#undef _nc_render
+cchar_t        _nc_render(
+               WINDOW  *win, 
+               cchar_t ch)
+               { return(*(cchar_t *)0); }
+
+#undef _nc_waddch_nosync
+int    _nc_waddch_nosync(
+               WINDOW  *win, 
+               const cchar_t c)
+               { return(*(int *)0); }
+
+#undef waddch
+int    waddch(
+               WINDOW  *win, 
+               const chtype ch)
+               { return(*(int *)0); }
+
+#undef wechochar
+int    wechochar(
+               WINDOW  *win, 
+               const chtype ch)
+               { return(*(int *)0); }
+
+#undef wadd_wch
+int    wadd_wch(
+               WINDOW  *win, 
+               const cchar_t *wch)
+               { return(*(int *)0); }
+
+#undef wecho_wchar
+int    wecho_wchar(
+               WINDOW  *win, 
+               const cchar_t *wch)
+               { return(*(int *)0); }
+
+/* ./base/lib_addstr.c */
+
+#undef waddnstr
+int    waddnstr(
+               WINDOW  *win, 
+               const char *astr, 
+               int     n)
+               { return(*(int *)0); }
+
+#undef waddchnstr
+int    waddchnstr(
+               WINDOW  *win, 
+               const chtype *astr, 
+               int     n)
+               { return(*(int *)0); }
+
+#undef _nc_wchstrlen
+int    _nc_wchstrlen(
+               const cchar_t *s)
+               { return(*(int *)0); }
+
+#undef wadd_wchnstr
+int    wadd_wchnstr(
+               WINDOW  *win, 
+               const cchar_t *const astr, 
+               int     n)
+               { return(*(int *)0); }
+
+#undef waddnwstr
+int    waddnwstr(
+               WINDOW  *win, 
+               const wchar_t *str, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_beep.c */
+
+#undef beep
+int    beep(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_bkgd.c */
+
+#undef wbkgrndset
+void   wbkgrndset(
+               WINDOW  *win, 
+               const cchar_t *ch)
+               { /* void */ }
+
+#undef wbkgdset
+void   wbkgdset(
+               WINDOW  *win, 
+               chtype  ch)
+               { /* void */ }
+
+#undef wbkgrnd
+int    wbkgrnd(
+               WINDOW  *win, 
+               const cchar_t *ch)
+               { return(*(int *)0); }
+
+#undef wbkgd
+int    wbkgd(
+               WINDOW  *win, 
+               chtype  ch)
+               { return(*(int *)0); }
+
+/* ./base/lib_box.c */
+
+#undef wborder
+int    wborder(
+               WINDOW  *win, 
+               chtype  ls, 
+               chtype  rs, 
+               chtype  ts, 
+               chtype  bs, 
+               chtype  tl, 
+               chtype  tr, 
+               chtype  bl, 
+               chtype  br)
+               { return(*(int *)0); }
+
+/* ./base/lib_chgat.c */
+
+#undef wchgat
+int    wchgat(
+               WINDOW  *win, 
+               int     n, 
+               attr_t  attr, 
+               short   color, 
+               const void *opts)
+               { return(*(int *)0); }
+
+/* ./base/lib_clear.c */
+
+#undef wclear
+int    wclear(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_clearok.c */
+
+#undef clearok
+int    clearok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./base/lib_clrbot.c */
+
+#undef wclrtobot
+int    wclrtobot(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_clreol.c */
+
+#undef wclrtoeol
+int    wclrtoeol(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_color.c */
+
+#include <tic.h>
+
+#undef COLOR_PAIRS
+int    COLOR_PAIRS;
+#undef COLORS
+int    COLORS;
+
+#undef start_color
+int    start_color(void)
+               { return(*(int *)0); }
+
+#undef init_pair
+int    init_pair(
+               short   pair, 
+               short   f, 
+               short   b)
+               { return(*(int *)0); }
+
+#undef init_color
+int    init_color(
+               short   color, 
+               short   r, 
+               short   g, 
+               short   b)
+               { return(*(int *)0); }
+
+#undef can_change_color
+NCURSES_BOOL can_change_color(void)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef has_colors
+NCURSES_BOOL has_colors(void)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef color_content
+int    color_content(
+               short   color, 
+               short   *r, 
+               short   *g, 
+               short   *b)
+               { return(*(int *)0); }
+
+#undef pair_content
+int    pair_content(
+               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     (*outc)(
+               int     p1))
+               { /* void */ }
+
+/* ./base/lib_colorset.c */
+
+#undef wcolor_set
+int    wcolor_set(
+               WINDOW  *win, 
+               short   color_pair_number, 
+               void    *opts)
+               { return(*(int *)0); }
+
+/* ./base/lib_delch.c */
+
+#undef wdelch
+int    wdelch(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_delwin.c */
+
+#undef delwin
+int    delwin(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_echo.c */
+
+#undef echo
+int    echo(void)
+               { return(*(int *)0); }
+
+#undef noecho
+int    noecho(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_endwin.c */
+
+#undef endwin
+int    endwin(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_erase.c */
+
+#undef werase
+int    werase(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_flash.c */
+
+#undef flash
+int    flash(void)
+               { return(*(int *)0); }
+
+/* ./lib_gen.c */
+
+#undef addch
+int    addch(
+               const chtype z)
+               { return(*(int *)0); }
+
+#undef addchnstr
+int    addchnstr(
+               const chtype *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef addchstr
+int    addchstr(
+               const chtype *z)
+               { return(*(int *)0); }
+
+#undef addnstr
+int    addnstr(
+               const char *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef addstr
+int    addstr(
+               const char *z)
+               { return(*(int *)0); }
+
+#undef attroff
+int    attroff(
+               NCURSES_ATTR_T  z)
+               { return(*(int *)0); }
+
+#undef attron
+int    attron(
+               NCURSES_ATTR_T  z)
+               { return(*(int *)0); }
+
+#undef attrset
+int    attrset(
+               NCURSES_ATTR_T  z)
+               { return(*(int *)0); }
+
+#undef attr_get
+int    attr_get(
+               attr_t  *a1, 
+               short   *a2, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef attr_off
+int    attr_off(
+               attr_t  a1, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef attr_on
+int    attr_on(
+               attr_t  a1, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef attr_set
+int    attr_set(
+               attr_t  a1, 
+               short   a2, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef bkgd
+int    bkgd(
+               chtype  z)
+               { return(*(int *)0); }
+
+#undef bkgdset
+void   bkgdset(
+               chtype  z)
+               { /* void */ }
+
+#undef border
+int    border(
+               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, 
+               chtype  z)
+               { return(*(int *)0); }
+
+#undef chgat
+int    chgat(
+               int     a1, 
+               attr_t  a2, 
+               short   a3, 
+               const void *z)
+               { return(*(int *)0); }
+
+#undef clear
+int    clear(void)
+               { return(*(int *)0); }
+
+#undef clrtobot
+int    clrtobot(void)
+               { return(*(int *)0); }
+
+#undef clrtoeol
+int    clrtoeol(void)
+               { return(*(int *)0); }
+
+#undef color_set
+int    color_set(
+               short   a1, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef COLOR_PAIR
+int    COLOR_PAIR(
+               int     z)
+               { return(*(int *)0); }
+
+#undef delch
+int    delch(void)
+               { return(*(int *)0); }
+
+#undef deleteln
+int    deleteln(void)
+               { return(*(int *)0); }
+
+#undef echochar
+int    echochar(
+               const chtype z)
+               { return(*(int *)0); }
+
+#undef erase
+int    erase(void)
+               { return(*(int *)0); }
+
+#undef getbkgd
+chtype getbkgd(
+               WINDOW  *z)
+               { return(*(chtype *)0); }
+
+#undef getch
+int    getch(void)
+               { return(*(int *)0); }
+
+#undef getnstr
+int    getnstr(
+               char    *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef getstr
+int    getstr(
+               char    *z)
+               { return(*(int *)0); }
+
+#undef hline
+int    hline(
+               chtype  a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef inch
+chtype inch(void)
+               { return(*(chtype *)0); }
+
+#undef inchnstr
+int    inchnstr(
+               chtype  *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef inchstr
+int    inchstr(
+               chtype  *z)
+               { return(*(int *)0); }
+
+#undef innstr
+int    innstr(
+               char    *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef insch
+int    insch(
+               chtype  z)
+               { return(*(int *)0); }
+
+#undef insdelln
+int    insdelln(
+               int     z)
+               { return(*(int *)0); }
+
+#undef insertln
+int    insertln(void)
+               { return(*(int *)0); }
+
+#undef insnstr
+int    insnstr(
+               const char *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef insstr
+int    insstr(
+               const char *z)
+               { return(*(int *)0); }
+
+#undef instr
+int    instr(
+               char    *z)
+               { return(*(int *)0); }
+
+#undef move
+int    move(
+               int     a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvaddch
+int    mvaddch(
+               int     a1, 
+               int     a2, 
+               const chtype z)
+               { return(*(int *)0); }
+
+#undef mvaddchnstr
+int    mvaddchnstr(
+               int     a1, 
+               int     a2, 
+               const chtype *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvaddchstr
+int    mvaddchstr(
+               int     a1, 
+               int     a2, 
+               const chtype *z)
+               { return(*(int *)0); }
+
+#undef mvaddnstr
+int    mvaddnstr(
+               int     a1, 
+               int     a2, 
+               const char *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvaddstr
+int    mvaddstr(
+               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, 
+               const void *z)
+               { return(*(int *)0); }
+
+#undef mvdelch
+int    mvdelch(
+               int     a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvgetch
+int    mvgetch(
+               int     a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvgetnstr
+int    mvgetnstr(
+               int     a1, 
+               int     a2, 
+               char    *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvgetstr
+int    mvgetstr(
+               int     a1, 
+               int     a2, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef mvhline
+int    mvhline(
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvinch
+chtype mvinch(
+               int     a1, 
+               int     z)
+               { return(*(chtype *)0); }
+
+#undef mvinchnstr
+int    mvinchnstr(
+               int     a1, 
+               int     a2, 
+               chtype  *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvinchstr
+int    mvinchstr(
+               int     a1, 
+               int     a2, 
+               chtype  *z)
+               { return(*(int *)0); }
+
+#undef mvinnstr
+int    mvinnstr(
+               int     a1, 
+               int     a2, 
+               char    *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvinsch
+int    mvinsch(
+               int     a1, 
+               int     a2, 
+               chtype  z)
+               { return(*(int *)0); }
+
+#undef mvinsnstr
+int    mvinsnstr(
+               int     a1, 
+               int     a2, 
+               const char *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvinsstr
+int    mvinsstr(
+               int     a1, 
+               int     a2, 
+               const char *z)
+               { return(*(int *)0); }
+
+#undef mvinstr
+int    mvinstr(
+               int     a1, 
+               int     a2, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef mvvline
+int    mvvline(
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwaddch
+int    mvwaddch(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwaddchstr
+int    mvwaddchstr(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwaddstr
+int    mvwaddstr(
+               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, 
+               const void *z)
+               { return(*(int *)0); }
+
+#undef mvwdelch
+int    mvwdelch(
+               WINDOW  *a1, 
+               int     a2, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwgetch
+int    mvwgetch(
+               WINDOW  *a1, 
+               int     a2, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwgetnstr
+int    mvwgetnstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwgetstr
+int    mvwgetstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef mvwhline
+int    mvwhline(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwinch
+chtype mvwinch(
+               WINDOW  *a1, 
+               int     a2, 
+               int     z)
+               { return(*(chtype *)0); }
+
+#undef mvwinchnstr
+int    mvwinchnstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  *a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwinchstr
+int    mvwinchstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  *z)
+               { return(*(int *)0); }
+
+#undef mvwinnstr
+int    mvwinnstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwinsch
+int    mvwinsch(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  z)
+               { return(*(int *)0); }
+
+#undef mvwinsnstr
+int    mvwinsnstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwinsstr
+int    mvwinsstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *z)
+               { return(*(int *)0); }
+
+#undef mvwinstr
+int    mvwinstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef mvwvline
+int    mvwvline(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef PAIR_NUMBER
+int    PAIR_NUMBER(
+               int     z)
+               { return(*(int *)0); }
+
+#undef redrawwin
+int    redrawwin(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef refresh
+int    refresh(void)
+               { return(*(int *)0); }
+
+#undef scrl
+int    scrl(
+               int     z)
+               { return(*(int *)0); }
+
+#undef scroll
+int    scroll(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef setscrreg
+int    setscrreg(
+               int     a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef slk_attr_off
+int    slk_attr_off(
+               const attr_t a1, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef slk_attr_on
+int    slk_attr_on(
+               attr_t  a1, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef standout
+int    standout(void)
+               { return(*(int *)0); }
+
+#undef standend
+int    standend(void)
+               { return(*(int *)0); }
+
+#undef timeout
+void   timeout(
+               int     z)
+               { /* void */ }
+
+#undef touchline
+int    touchline(
+               WINDOW  *a1, 
+               int     a2, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef touchwin
+int    touchwin(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef untouchwin
+int    untouchwin(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef vline
+int    vline(
+               chtype  a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef vw_printw
+int    vw_printw(
+               WINDOW  *a1, 
+               char    *a2, 
+               va_list z)
+               { return(*(int *)0); }
+
+#undef vw_scanw
+int    vw_scanw(
+               WINDOW  *a1, 
+               char    *a2, 
+               va_list z)
+               { return(*(int *)0); }
+
+#undef waddchstr
+int    waddchstr(
+               WINDOW  *a1, 
+               const chtype *z)
+               { return(*(int *)0); }
+
+#undef waddstr
+int    waddstr(
+               WINDOW  *a1, 
+               const char *z)
+               { return(*(int *)0); }
+
+#undef wattron
+int    wattron(
+               WINDOW  *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef wattroff
+int    wattroff(
+               WINDOW  *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef wattrset
+int    wattrset(
+               WINDOW  *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef wattr_get
+int    wattr_get(
+               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, 
+               void    *z)
+               { return(*(int *)0); }
+
+#undef wdeleteln
+int    wdeleteln(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef wgetstr
+int    wgetstr(
+               WINDOW  *a1, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef winchstr
+int    winchstr(
+               WINDOW  *a1, 
+               chtype  *z)
+               { return(*(int *)0); }
+
+#undef winsertln
+int    winsertln(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef winsstr
+int    winsstr(
+               WINDOW  *a1, 
+               const char *z)
+               { return(*(int *)0); }
+
+#undef winstr
+int    winstr(
+               WINDOW  *a1, 
+               char    *z)
+               { return(*(int *)0); }
+
+#undef wstandout
+int    wstandout(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef wstandend
+int    wstandend(
+               WINDOW  *z)
+               { return(*(int *)0); }
+
+#undef add_wch
+int    add_wch(
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef add_wchnstr
+int    add_wchnstr(
+               const cchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef add_wchstr
+int    add_wchstr(
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef addnwstr
+int    addnwstr(
+               const wchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef addwstr
+int    addwstr(
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef bkgrnd
+int    bkgrnd(
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef bkgrndset
+void   bkgrndset(
+               const cchar_t *z)
+               { /* void */ }
+
+#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 *z)
+               { return(*(int *)0); }
+
+#undef box_set
+int    box_set(
+               WINDOW  *a1, 
+               const cchar_t *a2, 
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef echo_wchar
+int    echo_wchar(
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef get_wch
+int    get_wch(
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef get_wstr
+int    get_wstr(
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef getbkgrnd
+int    getbkgrnd(
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef getn_wstr
+int    getn_wstr(
+               wint_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef hline_set
+int    hline_set(
+               const cchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef in_wch
+int    in_wch(
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef in_wchnstr
+int    in_wchnstr(
+               cchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef in_wchstr
+int    in_wchstr(
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef innwstr
+int    innwstr(
+               wchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef ins_nwstr
+int    ins_nwstr(
+               const wchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef ins_wch
+int    ins_wch(
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef ins_wstr
+int    ins_wstr(
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef inwstr
+int    inwstr(
+               wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvadd_wch
+int    mvadd_wch(
+               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     z)
+               { return(*(int *)0); }
+
+#undef mvadd_wchstr
+int    mvadd_wchstr(
+               int     a1, 
+               int     a2, 
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvaddnwstr
+int    mvaddnwstr(
+               int     a1, 
+               int     a2, 
+               const wchar_t *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvaddwstr
+int    mvaddwstr(
+               int     a1, 
+               int     a2, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvget_wch
+int    mvget_wch(
+               int     a1, 
+               int     a2, 
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef mvget_wstr
+int    mvget_wstr(
+               int     a1, 
+               int     a2, 
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef mvgetn_wstr
+int    mvgetn_wstr(
+               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     z)
+               { return(*(int *)0); }
+
+#undef mvin_wch
+int    mvin_wch(
+               int     a1, 
+               int     a2, 
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvin_wchnstr
+int    mvin_wchnstr(
+               int     a1, 
+               int     a2, 
+               cchar_t *a3, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvin_wchstr
+int    mvin_wchstr(
+               int     a1, 
+               int     a2, 
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvinnwstr
+int    mvinnwstr(
+               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     z)
+               { return(*(int *)0); }
+
+#undef mvins_wch
+int    mvins_wch(
+               int     a1, 
+               int     a2, 
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvins_wstr
+int    mvins_wstr(
+               int     a1, 
+               int     a2, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvinwstr
+int    mvinwstr(
+               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     z)
+               { return(*(int *)0); }
+
+#undef mvwadd_wch
+int    mvwadd_wch(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwadd_wchstr
+int    mvwadd_wchstr(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwaddwstr
+int    mvwaddwstr(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvwget_wch
+int    mvwget_wch(
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef mvwget_wstr
+int    mvwget_wstr(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwhline_set
+int    mvwhline_set(
+               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, 
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvwin_wchnstr
+int    mvwin_wchnstr(
+               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, 
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvwinnwstr
+int    mvwinnwstr(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef mvwins_wch
+int    mvwins_wch(
+               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, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mvwinwstr
+int    mvwinwstr(
+               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, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef vline_set
+int    vline_set(
+               const cchar_t *a1, 
+               int     z)
+               { return(*(int *)0); }
+
+#undef wadd_wchstr
+int    wadd_wchstr(
+               WINDOW  *a1, 
+               const cchar_t *z)
+               { return(*(int *)0); }
+
+#undef waddwstr
+int    waddwstr(
+               WINDOW  *a1, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef wget_wstr
+int    wget_wstr(
+               WINDOW  *a1, 
+               wint_t *z)
+               { return(*(int *)0); }
+
+#undef win_wchstr
+int    win_wchstr(
+               WINDOW  *a1, 
+               cchar_t *z)
+               { return(*(int *)0); }
+
+#undef wins_wstr
+int    wins_wstr(
+               WINDOW  *a1, 
+               const wchar_t *z)
+               { return(*(int *)0); }
+
+#undef mouse_trafo
+NCURSES_BOOL mouse_trafo(
+               int     *a1, 
+               int     *a2, 
+               NCURSES_BOOL z)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_getch.c */
+
+#include <fifo_defs.h>
+
+#undef ESCDELAY
+int    ESCDELAY;
+
+#undef _nc_wgetch
+int    _nc_wgetch(
+               WINDOW  *win, 
+               unsigned long *result, 
+               int     use_meta)
+               { return(*(int *)0); }
+
+#undef wgetch
+int    wgetch(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_getstr.c */
+
+#undef wgetnstr
+int    wgetnstr(
+               WINDOW  *win, 
+               char    *str, 
+               int     maxlen)
+               { return(*(int *)0); }
+
+/* ./base/lib_hline.c */
+
+#undef whline
+int    whline(
+               WINDOW  *win, 
+               chtype  ch, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_immedok.c */
+
+#undef immedok
+void   immedok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { /* void */ }
+
+/* ./base/lib_inchstr.c */
+
+#undef winchnstr
+int    winchnstr(
+               WINDOW  *win, 
+               chtype  *str, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_initscr.c */
+
+#undef initscr
+WINDOW *initscr(void)
+               { return(*(WINDOW **)0); }
+
+/* ./base/lib_insch.c */
+
+#undef winsch
+int    winsch(
+               WINDOW  *win, 
+               chtype  c)
+               { return(*(int *)0); }
+
+/* ./base/lib_insdel.c */
+
+#undef winsdelln
+int    winsdelln(
+               WINDOW  *win, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_insstr.c */
+
+#undef winsnstr
+int    winsnstr(
+               WINDOW  *win, 
+               const char *s, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_instr.c */
+
+#undef winnstr
+int    winnstr(
+               WINDOW  *win, 
+               char    *str, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_isendwin.c */
+
+#undef isendwin
+NCURSES_BOOL isendwin(void)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_leaveok.c */
+
+#undef leaveok
+int    leaveok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./base/lib_mouse.c */
+
+#undef getmouse
+int    getmouse(
+               MEVENT  *aevent)
+               { return(*(int *)0); }
+
+#undef ungetmouse
+int    ungetmouse(
+               MEVENT  *aevent)
+               { return(*(int *)0); }
+
+#undef mousemask
+mmask_t        mousemask(
+               mmask_t newmask, 
+               mmask_t *oldmask)
+               { return(*(mmask_t *)0); }
+
+#undef wenclose
+NCURSES_BOOL wenclose(
+               const WINDOW *win, 
+               int     y, 
+               int     x)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef mouseinterval
+int    mouseinterval(
+               int     maxclick)
+               { return(*(int *)0); }
+
+#undef _nc_has_mouse
+int    _nc_has_mouse(void)
+               { return(*(int *)0); }
+
+#undef wmouse_trafo
+NCURSES_BOOL wmouse_trafo(
+               const WINDOW *win, 
+               int     *pY, 
+               int     *pX, 
+               NCURSES_BOOL to_screen)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_move.c */
+
+#undef wmove
+int    wmove(
+               WINDOW  *win, 
+               int     y, 
+               int     x)
+               { return(*(int *)0); }
+
+/* ./tty/lib_mvcur.c */
+
+#undef _nc_msec_cost
+int    _nc_msec_cost(
+               const char *const cap, 
+               int     affcnt)
+               { return(*(int *)0); }
+
+#undef _nc_mvcur_resume
+void   _nc_mvcur_resume(void)
+               { /* void */ }
+
+#undef _nc_mvcur_init
+void   _nc_mvcur_init(void)
+               { /* void */ }
+
+#undef _nc_mvcur_wrap
+void   _nc_mvcur_wrap(void)
+               { /* void */ }
+
+#undef mvcur
+int    mvcur(
+               int     yold, 
+               int     xold, 
+               int     ynew, 
+               int     xnew)
+               { return(*(int *)0); }
+
+#undef _nc_optimize_enable
+int    _nc_optimize_enable;
+
+/* ./base/lib_mvwin.c */
+
+#undef mvwin
+int    mvwin(
+               WINDOW  *win, 
+               int     by, 
+               int     bx)
+               { return(*(int *)0); }
+
+/* ./base/lib_newterm.c */
+
+#undef filter
+void   filter(void)
+               { /* void */ }
+
+#undef newterm
+SCREEN *newterm(
+               char    *name, 
+               FILE    *ofp, 
+               FILE    *ifp)
+               { return(*(SCREEN **)0); }
+
+/* ./base/lib_newwin.c */
+
+#undef _nc_freewin
+int    _nc_freewin(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef newwin
+WINDOW *newwin(
+               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, 
+               int     begx)
+               { return(*(WINDOW **)0); }
+
+#undef subwin
+WINDOW *subwin(
+               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     flags)
+               { return(*(WINDOW **)0); }
+
+/* ./base/lib_nl.c */
+
+#undef nl
+int    nl(void)
+               { return(*(int *)0); }
+
+#undef nonl
+int    nonl(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_overlay.c */
+
+#undef overlay
+int    overlay(
+               const WINDOW *win1, 
+               WINDOW  *win2)
+               { return(*(int *)0); }
+
+#undef overwrite
+int    overwrite(
+               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, 
+               int     over)
+               { return(*(int *)0); }
+
+/* ./base/lib_pad.c */
+
+#undef newpad
+WINDOW *newpad(
+               int     l, 
+               int     c)
+               { return(*(WINDOW **)0); }
+
+#undef subpad
+WINDOW *subpad(
+               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, 
+               int     smaxcol)
+               { return(*(int *)0); }
+
+#undef pnoutrefresh
+int    pnoutrefresh(
+               WINDOW  *win, 
+               int     pminrow, 
+               int     pmincol, 
+               int     sminrow, 
+               int     smincol, 
+               int     smaxrow, 
+               int     smaxcol)
+               { return(*(int *)0); }
+
+#undef pechochar
+int    pechochar(
+               WINDOW  *pad, 
+               const chtype ch)
+               { return(*(int *)0); }
+
+/* ./base/lib_printw.c */
+
+#undef printw
+int    printw(
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef wprintw
+int    wprintw(
+               WINDOW  *win, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef mvprintw
+int    mvprintw(
+               int     y, 
+               int     x, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef mvwprintw
+int    mvwprintw(
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef vwprintw
+int    vwprintw(
+               WINDOW  *win, 
+               char    *fmt, 
+               va_list argp)
+               { return(*(int *)0); }
+
+/* ./base/lib_redrawln.c */
+
+#undef wredrawln
+int    wredrawln(
+               WINDOW  *win, 
+               int     beg, 
+               int     num)
+               { return(*(int *)0); }
+
+/* ./base/lib_refresh.c */
+
+#undef wrefresh
+int    wrefresh(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+#undef wnoutrefresh
+int    wnoutrefresh(
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./base/lib_restart.c */
+
+#undef restartterm
+int    restartterm(
+               char    *termp, 
+               int     filenum, 
+               int     *errret)
+               { return(*(int *)0); }
+
+/* ./base/lib_scanw.c */
+
+#undef vwscanw
+int    vwscanw(
+               WINDOW  *win, 
+               char    *fmt, 
+               va_list argp)
+               { return(*(int *)0); }
+
+#undef scanw
+int    scanw(
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef wscanw
+int    wscanw(
+               WINDOW  *win, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef mvscanw
+int    mvscanw(
+               int     y, 
+               int     x, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+#undef mvwscanw
+int    mvwscanw(
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               char    *fmt, 
+               ...)
+               { return(*(int *)0); }
+
+/* ./base/lib_screen.c */
+
+#undef getwin
+WINDOW *getwin(
+               FILE    *filep)
+               { return(*(WINDOW **)0); }
+
+#undef putwin
+int    putwin(
+               WINDOW  *win, 
+               FILE    *filep)
+               { return(*(int *)0); }
+
+#undef scr_restore
+int    scr_restore(
+               const char *file)
+               { return(*(int *)0); }
+
+#undef scr_dump
+int    scr_dump(
+               const char *file)
+               { return(*(int *)0); }
+
+#undef scr_init
+int    scr_init(
+               const char *file)
+               { return(*(int *)0); }
+
+#undef scr_set
+int    scr_set(
+               const char *file)
+               { return(*(int *)0); }
+
+/* ./base/lib_scroll.c */
+
+#undef _nc_scroll_window
+void   _nc_scroll_window(
+               WINDOW  *win, 
+               int const n, 
+               short const top, 
+               short const bottom, 
+               cchar_t blank)
+               { /* void */ }
+
+#undef wscrl
+int    wscrl(
+               WINDOW  *win, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_scrollok.c */
+
+#undef scrollok
+int    scrollok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./base/lib_scrreg.c */
+
+#undef wsetscrreg
+int    wsetscrreg(
+               WINDOW  *win, 
+               int     top, 
+               int     bottom)
+               { return(*(int *)0); }
+
+/* ./base/lib_set_term.c */
+
+#undef set_term
+SCREEN *set_term(
+               SCREEN  *screenp)
+               { return(*(SCREEN **)0); }
+
+#undef delscreen
+void   delscreen(
+               SCREEN  *sp)
+               { /* void */ }
+
+#undef _nc_setupscreen
+int    _nc_setupscreen(
+               short   slines, 
+               short const scolumns, 
+               FILE    *output)
+               { return(*(int *)0); }
+
+#undef _nc_ripoffline
+int    _nc_ripoffline(
+               int     line, 
+               int     (*init)(
+               WINDOW  *p1, 
+               int     p2))
+               { return(*(int *)0); }
+
+#undef ripoffline
+int    ripoffline(
+               int     line, 
+               int     (*init)(
+               WINDOW  *p1, 
+               int     p2))
+               { return(*(int *)0); }
+
+/* ./base/lib_slk.c */
+
+#undef _nc_slk_format
+int    _nc_slk_format;
+
+#undef _nc_slk_initialize
+int    _nc_slk_initialize(
+               WINDOW  *stwin, 
+               int     cols)
+               { return(*(int *)0); }
+
+#undef slk_restore
+int    slk_restore(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkatr_set.c */
+
+#undef slk_attr_set
+int    slk_attr_set(
+               const attr_t attr, 
+               short   color_pair_number, 
+               void    *opts)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkatrof.c */
+
+#undef slk_attroff
+int    slk_attroff(
+               const chtype attr)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkatron.c */
+
+#undef slk_attron
+int    slk_attron(
+               const chtype attr)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkatrset.c */
+
+#undef slk_attrset
+int    slk_attrset(
+               const chtype attr)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkattr.c */
+
+#undef slk_attr
+attr_t slk_attr(void)
+               { return(*(attr_t *)0); }
+
+/* ./base/lib_slkclear.c */
+
+#undef slk_clear
+int    slk_clear(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkcolor.c */
+
+#undef slk_color
+int    slk_color(
+               short   color_pair_number)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkinit.c */
+
+#undef slk_init
+int    slk_init(
+               int     format)
+               { return(*(int *)0); }
+
+/* ./base/lib_slklab.c */
+
+#undef slk_label
+char   *slk_label(
+               int     n)
+               { return(*(char **)0); }
+
+/* ./base/lib_slkrefr.c */
+
+#undef slk_noutrefresh
+int    slk_noutrefresh(void)
+               { return(*(int *)0); }
+
+#undef slk_refresh
+int    slk_refresh(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_slkset.c */
+
+#undef slk_set
+int    slk_set(
+               int     i, 
+               const char *astr, 
+               int     format)
+               { return(*(int *)0); }
+
+/* ./base/lib_slktouch.c */
+
+#undef slk_touch
+int    slk_touch(void)
+               { return(*(int *)0); }
+
+/* ./base/lib_touch.c */
+
+#undef is_linetouched
+NCURSES_BOOL is_linetouched(
+               WINDOW  *win, 
+               int     line)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef is_wintouched
+NCURSES_BOOL is_wintouched(
+               WINDOW  *win)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef wtouchln
+int    wtouchln(
+               WINDOW  *win, 
+               int     y, 
+               int     n, 
+               int     changed)
+               { return(*(int *)0); }
+
+/* ./trace/lib_traceatr.c */
+
+#undef _traceattr2
+char   *_traceattr2(
+               int     bufnum, 
+               attr_t  newmode)
+               { return(*(char **)0); }
+
+#undef _traceattr
+char   *_traceattr(
+               attr_t  newmode)
+               { return(*(char **)0); }
+
+#undef _nc_retrace_attr_t
+attr_t _nc_retrace_attr_t(
+               attr_t  code)
+               { return(*(attr_t *)0); }
+
+#undef _nc_altcharset_name
+const char *_nc_altcharset_name(
+               attr_t  attr, 
+               chtype  ch)
+               { return(*(const char **)0); }
+
+#undef _tracechtype2
+char   *_tracechtype2(
+               int     bufnum, 
+               chtype  ch)
+               { return(*(char **)0); }
+
+#undef _tracechtype
+char   *_tracechtype(
+               chtype  ch)
+               { return(*(char **)0); }
+
+#undef _nc_retrace_chtype
+attr_t _nc_retrace_chtype(
+               attr_t  code)
+               { return(*(attr_t *)0); }
+
+#undef _tracecchar_t2
+char   *_tracecchar_t2(
+               int     bufnum, 
+               const cchar_t *ch)
+               { return(*(char **)0); }
+
+#undef _tracecchar_t
+char   *_tracecchar_t(
+               const cchar_t *ch)
+               { return(*(char **)0); }
+
+/* ./trace/lib_tracedmp.c */
+
+#undef _tracedump
+void   _tracedump(
+               const char *name, 
+               WINDOW  *win)
+               { /* void */ }
+
+/* ./trace/lib_tracemse.c */
+
+#undef _tracemouse
+char   *_tracemouse(
+               MEVENT const *ep)
+               { return(*(char **)0); }
+
+/* ./tty/lib_tstp.c */
+
+#include <SigAction.h>
+
+#undef _nc_signal_handler
+void   _nc_signal_handler(
+               NCURSES_BOOL enable)
+               { /* void */ }
+
+/* ./base/lib_ungetch.c */
+
+#undef _nc_fifo_dump
+void   _nc_fifo_dump(void)
+               { /* void */ }
+
+#undef ungetch
+int    ungetch(
+               int     ch)
+               { return(*(int *)0); }
+
+/* ./tty/lib_vidattr.c */
+
+#undef vidputs
+int    vidputs(
+               chtype  newmode, 
+               int     (*outc)(
+               int     p1))
+               { return(*(int *)0); }
+
+#undef vidattr
+int    vidattr(
+               chtype  newmode)
+               { return(*(int *)0); }
+
+#undef termattrs
+chtype termattrs(void)
+               { return(*(chtype *)0); }
+
+/* ./base/lib_vline.c */
+
+#undef wvline
+int    wvline(
+               WINDOW  *win, 
+               chtype  ch, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_wattroff.c */
+
+#undef wattr_off
+int    wattr_off(
+               WINDOW  *win, 
+               attr_t  at, 
+               void    *opts)
+               { return(*(int *)0); }
+
+/* ./base/lib_wattron.c */
+
+#undef wattr_on
+int    wattr_on(
+               WINDOW  *win, 
+               attr_t  at, 
+               void    *opts)
+               { return(*(int *)0); }
+
+/* ./base/lib_winch.c */
+
+#undef winch
+chtype winch(
+               WINDOW  *win)
+               { return(*(chtype *)0); }
+
+/* ./base/lib_window.c */
+
+#undef _nc_synchook
+void   _nc_synchook(
+               WINDOW  *win)
+               { /* void */ }
+
+#undef mvderwin
+int    mvderwin(
+               WINDOW  *win, 
+               int     y, 
+               int     x)
+               { return(*(int *)0); }
+
+#undef syncok
+int    syncok(
+               WINDOW  *win, 
+               NCURSES_BOOL bf)
+               { return(*(int *)0); }
+
+#undef wsyncup
+void   wsyncup(
+               WINDOW  *win)
+               { /* void */ }
+
+#undef wsyncdown
+void   wsyncdown(
+               WINDOW  *win)
+               { /* void */ }
+
+#undef wcursyncup
+void   wcursyncup(
+               WINDOW  *win)
+               { /* void */ }
+
+#undef dupwin
+WINDOW *dupwin(
+               WINDOW  *win)
+               { return(*(WINDOW **)0); }
+
+/* ./base/nc_panel.c */
+
+#undef _nc_panelhook
+struct panelhook *_nc_panelhook(void)
+               { return(*(struct panelhook **)0); }
+
+/* ./base/safe_sprintf.c */
+
+#undef _nc_printf_string
+char   *_nc_printf_string(
+               const char *fmt, 
+               va_list ap)
+               { return(*(char **)0); }
+
+/* ./tty/tty_update.c */
+
+#include <sys/time.h>
+#include <sys/times.h>
+
+#undef doupdate
+int    doupdate(void)
+               { return(*(int *)0); }
+
+#undef _nc_outstr
+void   _nc_outstr(
+               const char *str)
+               { /* void */ }
+
+#undef _nc_scrolln
+int    _nc_scrolln(
+               int     n, 
+               int     top, 
+               int     bot, 
+               int     maxy)
+               { return(*(int *)0); }
+
+#undef _nc_screen_resume
+void   _nc_screen_resume(void)
+               { /* void */ }
+
+#undef _nc_screen_init
+void   _nc_screen_init(void)
+               { /* void */ }
+
+#undef _nc_screen_wrap
+void   _nc_screen_wrap(void)
+               { /* void */ }
+
+#undef _nc_do_xmc_glitch
+void   _nc_do_xmc_glitch(
+               attr_t  previous)
+               { /* void */ }
+
+/* ./trace/varargs.c */
+
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
+#undef _nc_varargs
+char   *_nc_varargs(
+               const char *fmt, 
+               va_list ap)
+               { return(*(char **)0); }
+
+/* ./base/memmove.c */
+
+#undef _nc_memmove
+void   _nc_memmove(void)
+               { /* void */ }
+
+/* ./base/sigaction.c */
+
+#undef _nc_sigaction
+void   _nc_sigaction(void)
+               { /* void */ }
+
+/* ./base/vsscanf.c */
+
+#undef _nc_vsscanf
+void   _nc_vsscanf(void)
+               { /* void */ }
+
+/* ./widechar/lib_box_set.c */
+
+#undef wborder_set
+int    wborder_set(
+               WINDOW  *win, 
+               const cchar_t *ls, 
+               const cchar_t *rs, 
+               const cchar_t *ts, 
+               const cchar_t *bs, 
+               const cchar_t *tl, 
+               const cchar_t *tr, 
+               const cchar_t *bl, 
+               const cchar_t *br)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_cchar.c */
+
+#undef setcchar
+int    setcchar(
+               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, 
+               void    *opts)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_get_wch.c */
+
+#undef wget_wch
+int    wget_wch(
+               WINDOW  *win, 
+               wint_t *result)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_erasewchar.c */
+
+#undef erasewchar
+int    erasewchar(
+               wchar_t *wch)
+               { return(*(int *)0); }
+
+#undef killwchar
+int    killwchar(
+               wchar_t *wch)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_get_wstr.c */
+
+#undef wgetn_wstr
+int    wgetn_wstr(
+               WINDOW  *win, 
+               wint_t *str, 
+               int     maxlen)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_hline_set.c */
+
+#undef whline_set
+int    whline_set(
+               WINDOW  *win, 
+               const cchar_t *ch, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_in_wch.c */
+
+#undef win_wch
+int    win_wch(
+               WINDOW  *win, 
+               cchar_t *wcval)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_in_wchnstr.c */
+
+#undef win_wchnstr
+int    win_wchnstr(
+               WINDOW  *win, 
+               cchar_t *wchstr, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_ins_nwstr.c */
+
+#undef wins_nwstr
+int    wins_nwstr(
+               WINDOW  *win, 
+               const wchar_t *wstr, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_ins_wch.c */
+
+#undef wins_wch
+int    wins_wch(
+               WINDOW  *win, 
+               const cchar_t *wch)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_inwstr.c */
+
+#undef winnwstr
+int    winnwstr(
+               WINDOW  *win, 
+               wchar_t *wstr, 
+               int     n)
+               { return(*(int *)0); }
+
+#undef winwstr
+int    winwstr(
+               WINDOW  *win, 
+               wchar_t *wstr)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_unget_wch.c */
+
+#undef unget_wch
+int    unget_wch(
+               const wchar_t wch)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_vid_attr.c */
+
+#undef vid_puts
+int    vid_puts(
+               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, 
+               void    *opts)
+               { return(*(int *)0); }
+
+#undef term_attrs
+attr_t term_attrs(void)
+               { return(*(attr_t *)0); }
+
+/* ./widechar/lib_vline_set.c */
+
+#undef wvline_set
+int    wvline_set(
+               WINDOW  *win, 
+               const cchar_t *ch, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./widechar/lib_wacs.c */
+
+#undef _nc_wacs
+cchar_t        *_nc_wacs;
+
+#undef _nc_init_wacs
+void   _nc_init_wacs(void)
+               { /* void */ }
+
+/* ./widechar/lib_wunctrl.c */
+
+#undef wunctrl
+wchar_t *wunctrl(
+               cchar_t *wc)
+               { return(*(wchar_t **)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int    define_key(
+               char    *str, 
+               int     keycode)
+               { return(*(int *)0); }
+
+/* ./expanded.c */
+
+#undef _nc_toggle_attr_on
+void   _nc_toggle_attr_on(
+               attr_t  *S, 
+               attr_t  at)
+               { /* void */ }
+
+#undef _nc_toggle_attr_off
+void   _nc_toggle_attr_off(
+               attr_t  *S, 
+               attr_t  at)
+               { /* void */ }
+
+#undef _nc_DelCharCost
+int    _nc_DelCharCost(
+               int     count)
+               { return(*(int *)0); }
+
+#undef _nc_InsCharCost
+int    _nc_InsCharCost(
+               int     count)
+               { return(*(int *)0); }
+
+#undef _nc_UpdateAttrs
+void   _nc_UpdateAttrs(
+               chtype  c)
+               { /* void */ }
+
+/* ./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
+int    use_default_colors(void)
+               { return(*(int *)0); }
+
+#undef assume_default_colors
+int    assume_default_colors(
+               int     fg, 
+               int     bg)
+               { return(*(int *)0); }
+
+/* ./base/lib_freeall.c */
+
+#include <term_entry.h>
+
+#undef _nc_freeall
+void   _nc_freeall(void)
+               { /* void */ }
+
+/* ./tinfo/lib_print.c */
+
+#undef mcprint
+int    mcprint(
+               char    *data, 
+               int     len)
+               { return(*(int *)0); }
+
+/* ./base/resizeterm.c */
+
+#undef is_term_resized
+NCURSES_BOOL is_term_resized(
+               int     ToLines, 
+               int     ToCols)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef resize_term
+int    resize_term(
+               int     ToLines, 
+               int     ToCols)
+               { return(*(int *)0); }
+
+#undef resizeterm
+int    resizeterm(
+               int     ToLines, 
+               int     ToCols)
+               { return(*(int *)0); }
+
+/* ./trace/trace_xnames.c */
+
+#undef _nc_trace_xnames
+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, 
+               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, 
+               int     ToCols)
+               { return(*(int *)0); }
+
+/* ./tinfo/access.c */
+
+#undef _nc_rootname
+char   *_nc_rootname(
+               char    *path)
+               { return(*(char **)0); }
+
+#undef _nc_basename
+char   *_nc_basename(
+               char    *path)
+               { return(*(char **)0); }
+
+#undef _nc_access
+int    _nc_access(
+               const char *path, 
+               int     mode)
+               { return(*(int *)0); }
+
+#undef _nc_env_access
+int    _nc_env_access(void)
+               { return(*(int *)0); }
+
+/* ./tinfo/add_tries.c */
+
+#undef _nc_add_to_try
+void   _nc_add_to_try(
+               struct tries **tree, 
+               const char *str, 
+               unsigned short code)
+               { /* void */ }
+
+/* ./tinfo/alloc_entry.c */
+
+#undef _nc_init_entry
+void   _nc_init_entry(
+               TERMTYPE *const tp)
+               { /* void */ }
+
+#undef _nc_copy_entry
+ENTRY  *_nc_copy_entry(
+               ENTRY   *oldp)
+               { return(*(ENTRY **)0); }
+
+#undef _nc_save_str
+char   *_nc_save_str(
+               const char *const string)
+               { return(*(char **)0); }
+
+#undef _nc_wrap_entry
+void   _nc_wrap_entry(
+               ENTRY   *const ep, 
+               NCURSES_BOOL copy_strings)
+               { /* void */ }
+
+#undef _nc_merge_entry
+void   _nc_merge_entry(
+               TERMTYPE *const to, 
+               TERMTYPE *const from)
+               { /* void */ }
+
+/* ./tinfo/alloc_ttype.c */
+
+#undef _nc_align_termtype
+void   _nc_align_termtype(
+               TERMTYPE *to, 
+               TERMTYPE *from)
+               { /* void */ }
+
+#undef _nc_copy_termtype
+void   _nc_copy_termtype(
+               TERMTYPE *dst, 
+               TERMTYPE *src)
+               { /* void */ }
+
+/* ./tinfo/captoinfo.c */
+
+#undef _nc_captoinfo
+char   *_nc_captoinfo(
+               const char *cap, 
+               const char *s, 
+               int const parametrized)
+               { return(*(char **)0); }
+
+#undef _nc_infotocap
+char   *_nc_infotocap(
+               const char *cap, 
+               const char *str, 
+               int const parametrized)
+               { return(*(char **)0); }
+
+/* ./codes.c */
+
+#undef boolcodes
+char   *const boolcodes[] = {0};
+#undef numcodes
+char   *const numcodes[] = {0};
+#undef strcodes
+char   *const strcodes[] = {0};
+
+/* ./comp_captab.c */
+
+#include <ncurses_cfg.h>
+
+#undef _nc_info_hash_table
+const struct name_table_entry *const _nc_info_hash_table[995] = {0};
+#undef _nc_cap_hash_table
+const struct name_table_entry *const _nc_cap_hash_table[995] = {0};
+#undef _nc_capalias_table
+const struct alias _nc_capalias_table[] = {0};
+#undef _nc_infoalias_table
+const struct alias _nc_infoalias_table[] = {0};
+
+#undef _nc_get_table
+const struct name_table_entry *_nc_get_table(
+               NCURSES_BOOL termcap)
+               { return(*(const struct name_table_entry **)0); }
+
+#undef _nc_get_hash_table
+const struct name_table_entry *const *_nc_get_hash_table(
+               NCURSES_BOOL termcap)
+               { return(*(const struct name_table_entry **)0); }
+
+/* ./tinfo/comp_error.c */
+
+#undef _nc_suppress_warnings
+NCURSES_BOOL _nc_suppress_warnings;
+#undef _nc_curr_line
+int    _nc_curr_line;
+#undef _nc_curr_col
+int    _nc_curr_col;
+
+#undef _nc_set_source
+void   _nc_set_source(
+               const char *const name)
+               { /* void */ }
+
+#undef _nc_set_type
+void   _nc_set_type(
+               const char *const name)
+               { /* void */ }
+
+#undef _nc_get_type
+void   _nc_get_type(
+               char    *name)
+               { /* void */ }
+
+#undef _nc_warning
+void   _nc_warning(
+               const char *const fmt, 
+               ...)
+               { /* void */ }
+
+#undef _nc_err_abort
+void   _nc_err_abort(
+               const char *const fmt, 
+               ...)
+               { /* void */ }
+
+#undef _nc_syserr_abort
+void   _nc_syserr_abort(
+               const char *const fmt, 
+               ...)
+               { /* void */ }
+
+/* ./tinfo/comp_expand.c */
+
+#undef _nc_tic_expand
+char   *_nc_tic_expand(
+               const char *srcp, 
+               NCURSES_BOOL tic_format, 
+               int     numbers)
+               { return(*(char **)0); }
+
+/* ./tinfo/comp_hash.c */
+
+#include <hashsize.h>
+
+#undef _nc_find_entry
+struct name_table_entry const *_nc_find_entry(
+               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 struct name_table_entry *table)
+               { return(*(struct name_table_entry const **)0); }
+
+/* ./tinfo/comp_parse.c */
+
+#undef _nc_check_termtype
+void   (*_nc_check_termtype)(
+               TERMTYPE *p1);
+#undef _nc_head
+ENTRY  *_nc_head;
+#undef _nc_tail
+ENTRY  *_nc_tail;
+
+#undef _nc_free_entries
+void   _nc_free_entries(
+               ENTRY   *headp)
+               { /* void */ }
+
+#undef _nc_entry_match
+NCURSES_BOOL _nc_entry_match(
+               char    *n1, 
+               char    *n2)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_read_entry_source
+void   _nc_read_entry_source(
+               FILE    *fp, 
+               char    *buf, 
+               int     literal, 
+               NCURSES_BOOL silent, 
+               NCURSES_BOOL (*hook)(
+               ENTRY   *p1))
+               { /* void */ }
+
+#undef _nc_resolve_uses
+int    _nc_resolve_uses(
+               NCURSES_BOOL fullresolve)
+               { return(*(int *)0); }
+
+/* ./tinfo/comp_scan.c */
+
+#undef _nc_syntax
+int    _nc_syntax;
+#undef _nc_curr_file_pos
+long   _nc_curr_file_pos;
+#undef _nc_comment_start
+long   _nc_comment_start;
+#undef _nc_comment_end
+long   _nc_comment_end;
+#undef _nc_start_line
+long   _nc_start_line;
+#undef _nc_curr_token
+struct token _nc_curr_token;
+#undef _nc_disable_period
+NCURSES_BOOL _nc_disable_period;
+
+#undef _nc_get_token
+int    _nc_get_token(
+               NCURSES_BOOL silent)
+               { return(*(int *)0); }
+
+#undef _nc_trans_string
+char   _nc_trans_string(
+               char    *ptr, 
+               char    *last)
+               { return(*(char *)0); }
+
+#undef _nc_push_token
+void   _nc_push_token(
+               int     tokclass)
+               { /* void */ }
+
+#undef _nc_panic_mode
+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, 
+               size_t  amount)
+               { return(*(void **)0); }
+
+/* ./fallback.c */
+
+#undef _nc_fallback
+const TERMTYPE *_nc_fallback(
+               const char *name)
+               { return(*(const TERMTYPE **)0); }
+
+/* ./tinfo/free_ttype.c */
+
+#undef _nc_free_termtype
+void   _nc_free_termtype(
+               TERMTYPE *ptr)
+               { /* void */ }
+
+#undef _nc_user_definable
+NCURSES_BOOL _nc_user_definable;
+
+#undef use_extended_names
+int    use_extended_names(
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./tinfo/getenv_num.c */
+
+#undef _nc_getenv_num
+int    _nc_getenv_num(
+               const char *name)
+               { return(*(int *)0); }
+
+/* ./tinfo/home_terminfo.c */
+
+#undef _nc_home_terminfo
+char   *_nc_home_terminfo(void)
+               { return(*(char **)0); }
+
+/* ./tinfo/init_keytry.c */
+
+#if 0
+
+#include <init_keytry.h>
+
+#undef _nc_tinfo_fkeys
+struct tinfo_fkeys _nc_tinfo_fkeys[];
+
+#endif
+
+#undef _nc_init_keytry
+void   _nc_init_keytry(void)
+               { /* void */ }
+
+/* ./tinfo/lib_acs.c */
+
+#undef acs_map
+chtype acs_map[128 ];
+
+#undef _nc_init_acs
+void   _nc_init_acs(void)
+               { /* void */ }
+
+/* ./tinfo/lib_baudrate.c */
+
+#include <termcap.h>
+
+struct speed {
+    int s;                     
+    int sp;                    
+};
+
+#undef _nc_baudrate
+int    _nc_baudrate(
+               int     OSpeed)
+               { return(*(int *)0); }
+
+#undef _nc_ospeed
+int    _nc_ospeed(
+               int     BaudRate)
+               { return(*(int *)0); }
+
+#undef baudrate
+int    baudrate(void)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_cur_term.c */
+
+#undef cur_term
+TERMINAL *cur_term;
+
+#undef set_curterm
+TERMINAL *set_curterm(
+               TERMINAL *termp)
+               { return(*(TERMINAL **)0); }
+
+#undef del_curterm
+int    del_curterm(
+               TERMINAL *termp)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_data.c */
+
+#undef stdscr
+WINDOW *stdscr;
+#undef curscr
+WINDOW *curscr;
+#undef newscr
+WINDOW *newscr;
+#undef _nc_screen_chain
+SCREEN *_nc_screen_chain;
+#undef SP
+SCREEN *SP;
+
+/* ./tinfo/lib_has_cap.c */
+
+#undef has_ic
+NCURSES_BOOL has_ic(void)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef has_il
+NCURSES_BOOL has_il(void)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./tinfo/lib_kernel.c */
+
+#undef erasechar
+char   erasechar(void)
+               { return(*(char *)0); }
+
+#undef killchar
+char   killchar(void)
+               { return(*(char *)0); }
+
+#undef flushinp
+int    flushinp(void)
+               { return(*(int *)0); }
+
+/* ./lib_keyname.c */
+
+#undef _nc_key_names
+const struct kn _nc_key_names[] = {0};
+
+#undef keyname
+char   *keyname(
+               int     c)
+               { return(*(char **)0); }
+
+#undef key_name
+char   *key_name(
+               wchar_t c)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_longname.c */
+
+#undef longname
+char   *longname(void)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_napms.c */
+
+#include <time.h>
+
+#undef napms
+int    napms(
+               int     ms)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_options.c */
+
+#undef idlok
+int    idlok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+#undef idcok
+void   idcok(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { /* void */ }
+
+#undef halfdelay
+int    halfdelay(
+               int     t)
+               { return(*(int *)0); }
+
+#undef nodelay
+int    nodelay(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+#undef notimeout
+int    notimeout(
+               WINDOW  *win, 
+               NCURSES_BOOL f)
+               { return(*(int *)0); }
+
+#undef wtimeout
+void   wtimeout(
+               WINDOW  *win, 
+               int     delay)
+               { /* void */ }
+
+#undef keypad
+int    keypad(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+#undef meta
+int    meta(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+#undef curs_set
+int    curs_set(
+               int     vis)
+               { return(*(int *)0); }
+
+#undef typeahead
+int    typeahead(
+               int     fd)
+               { return(*(int *)0); }
+
+#undef has_key
+int    has_key(
+               int     keycode)
+               { return(*(int *)0); }
+
+#undef _nc_keypad
+int    _nc_keypad(
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_raw.c */
+
+#undef raw
+int    raw(void)
+               { return(*(int *)0); }
+
+#undef cbreak
+int    cbreak(void)
+               { return(*(int *)0); }
+
+#undef qiflush
+void   qiflush(void)
+               { /* void */ }
+
+#undef noraw
+int    noraw(void)
+               { return(*(int *)0); }
+
+#undef nocbreak
+int    nocbreak(void)
+               { return(*(int *)0); }
+
+#undef noqiflush
+void   noqiflush(void)
+               { /* void */ }
+
+#undef intrflush
+int    intrflush(
+               WINDOW  *win, 
+               NCURSES_BOOL flag)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_setup.c */
+
+#include <sys/ioctl.h>
+
+#undef use_env
+void   use_env(
+               NCURSES_BOOL f)
+               { /* void */ }
+
+#undef LINES
+int    LINES;
+#undef COLS
+int    COLS;
+#undef TABSIZE
+int    TABSIZE;
+
+#undef _nc_update_screensize
+void   _nc_update_screensize(void)
+               { /* void */ }
+
+#undef ttytype
+char   ttytype[256 ];
+
+#undef setupterm
+int    setupterm(
+               char    *tname, 
+               int     Filedes, 
+               int     *errret)
+               { return(*(int *)0); }
+
+/* ./tinfo/lib_termcap.c */
+
+#undef UP
+char   *UP;
+#undef BC
+char   *BC;
+
+#undef tgetent
+int    tgetent(
+               char    *bufp, 
+               const char *name)
+               { return(*(int *)0); }
+
+#if 0
+
+#include <capdefaults.c>
+
+#endif
+
+#undef tgetflag
+int    tgetflag(
+               char    *id)
+               { return(*(int *)0); }
+
+#undef tgetnum
+int    tgetnum(
+               char    *id)
+               { return(*(int *)0); }
+
+#undef tgetstr
+char   *tgetstr(
+               char    *id, 
+               char    **area)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_termname.c */
+
+#undef termname
+char   *termname(void)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_tgoto.c */
+
+#undef tgoto
+char   *tgoto(
+               const char *string, 
+               int     x, 
+               int     y)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_ti.c */
+
+#undef tigetflag
+int    tigetflag(
+               char    *str)
+               { return(*(int *)0); }
+
+#undef tigetnum
+int    tigetnum(
+               char    *str)
+               { return(*(int *)0); }
+
+#undef tigetstr
+char   *tigetstr(
+               char    *str)
+               { return(*(char **)0); }
+
+/* ./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 tparm
+char   *tparm(
+               char    *string, 
+               ...)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_tputs.c */
+
+#undef PC
+char   PC;
+#undef ospeed
+short  ospeed;
+#undef _nc_nulls_sent
+int    _nc_nulls_sent;
+
+#undef delay_output
+int    delay_output(
+               int     ms)
+               { return(*(int *)0); }
+
+#undef _nc_flush
+void   _nc_flush(void)
+               { /* void */ }
+
+#undef _nc_outch
+int    _nc_outch(
+               int     ch)
+               { return(*(int *)0); }
+
+#undef putp
+int    putp(
+               const char *string)
+               { return(*(int *)0); }
+
+#undef tputs
+int    tputs(
+               const char *string, 
+               int     affcnt, 
+               int     (*outc)(
+               int     p1))
+               { return(*(int *)0); }
+
+/* ./trace/lib_trace.c */
+
+#undef _nc_tracing
+unsigned _nc_tracing;
+#undef _nc_tputs_trace
+const char *_nc_tputs_trace = {0};
+#undef _nc_outchars
+long   _nc_outchars;
+
+#undef trace
+void   trace(
+               const unsigned int tracelevel)
+               { /* void */ }
+
+#undef _tracef
+void   _tracef(
+               const char *fmt, 
+               ...)
+               { /* void */ }
+
+#undef _nc_retrace_int
+int    _nc_retrace_int(
+               int     code)
+               { return(*(int *)0); }
+
+#undef _nc_retrace_ptr
+char   *_nc_retrace_ptr(
+               char    *code)
+               { return(*(char **)0); }
+
+#undef _nc_retrace_sp
+SCREEN *_nc_retrace_sp(
+               SCREEN  *code)
+               { return(*(SCREEN **)0); }
+
+#undef _nc_retrace_win
+WINDOW *_nc_retrace_win(
+               WINDOW  *code)
+               { return(*(WINDOW **)0); }
+
+/* ./trace/lib_tracebits.c */
+
+typedef struct {
+    unsigned int val;
+    const char *name;
+} BITNAMES;
+
+#undef _nc_trace_ttymode
+char   *_nc_trace_ttymode(
+               struct termios *tty)
+               { return(*(char **)0); }
+
+#undef _nc_tracebits
+char   *_nc_tracebits(void)
+               { return(*(char **)0); }
+
+/* ./trace/lib_tracechr.c */
+
+#undef _tracechar
+char   *_tracechar(
+               int     ch)
+               { return(*(char **)0); }
+
+/* ./tinfo/lib_ttyflags.c */
+
+#undef _nc_get_tty_mode
+int    _nc_get_tty_mode(
+               struct termios *buf)
+               { return(*(int *)0); }
+
+#undef _nc_set_tty_mode
+int    _nc_set_tty_mode(
+               struct termios *buf)
+               { return(*(int *)0); }
+
+#undef def_shell_mode
+int    def_shell_mode(void)
+               { return(*(int *)0); }
+
+#undef def_prog_mode
+int    def_prog_mode(void)
+               { return(*(int *)0); }
+
+#undef reset_prog_mode
+int    reset_prog_mode(void)
+               { return(*(int *)0); }
+
+#undef reset_shell_mode
+int    reset_shell_mode(void)
+               { return(*(int *)0); }
+
+#undef savetty
+int    savetty(void)
+               { return(*(int *)0); }
+
+#undef resetty
+int    resetty(void)
+               { return(*(int *)0); }
+
+/* ./tty/lib_twait.c */
+
+#undef _nc_timed_wait
+int    _nc_timed_wait(
+               int     mode, 
+               int     milliseconds, 
+               int     *timeleft)
+               { return(*(int *)0); }
+
+/* ./tinfo/name_match.c */
+
+#undef _nc_first_name
+char   *_nc_first_name(
+               const char *const sp)
+               { return(*(char **)0); }
+
+#undef _nc_name_match
+int    _nc_name_match(
+               const char *const namelst, 
+               const char *const name, 
+               const char *const delim)
+               { return(*(int *)0); }
+
+/* ./names.c */
+
+#undef boolnames
+char   *const boolnames[] = {0};
+#undef boolfnames
+char   *const boolfnames[] = {0};
+#undef numnames
+char   *const numnames[] = {0};
+#undef numfnames
+char   *const numfnames[] = {0};
+#undef strnames
+char   *const strnames[] = {0};
+#undef strfnames
+char   *const strfnames[] = {0};
+
+/* ./tinfo/parse_entry.c */
+
+#undef _nc_parse_entry
+int    _nc_parse_entry(
+               struct entry *entryp, 
+               int     literal, 
+               NCURSES_BOOL silent)
+               { return(*(int *)0); }
+
+#undef _nc_capcmp
+int    _nc_capcmp(
+               const char *s, 
+               const char *t)
+               { return(*(int *)0); }
+
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
+/* ./tinfo/read_entry.c */
+
+#undef _nc_tic_dir
+const char *_nc_tic_dir(
+               const char *path)
+               { return(*(const char **)0); }
+
+#undef _nc_keep_tic_dir
+void   _nc_keep_tic_dir(
+               const char *path)
+               { /* void */ }
+
+#undef _nc_read_file_entry
+int    _nc_read_file_entry(
+               const char *const filename, 
+               TERMTYPE *ptr)
+               { return(*(int *)0); }
+
+#undef _nc_read_entry
+int    _nc_read_entry(
+               const char *const tn, 
+               char    *const filename, 
+               TERMTYPE *const tp)
+               { return(*(int *)0); }
+
+/* ./tinfo/read_termcap.c */
+
+#undef _nc_read_termcap_entry
+int    _nc_read_termcap_entry(
+               const char *const tn, 
+               TERMTYPE *const tp)
+               { return(*(int *)0); }
+
+/* ./tinfo/setbuf.c */
+
+#undef _nc_set_buffer
+void   _nc_set_buffer(
+               FILE    *ofp, 
+               NCURSES_BOOL buffered)
+               { /* void */ }
+
+/* ./tinfo/strings.c */
+
+#undef _nc_str_init
+string_desc *_nc_str_init(
+               string_desc *dst, 
+               char    *src, 
+               size_t  len)
+               { return(*(string_desc **)0); }
+
+#undef _nc_str_null
+string_desc *_nc_str_null(
+               string_desc *dst, 
+               size_t  len)
+               { return(*(string_desc **)0); }
+
+#undef _nc_str_copy
+string_desc *_nc_str_copy(
+               string_desc *dst, 
+               string_desc *src)
+               { return(*(string_desc **)0); }
+
+#undef _nc_safe_strcat
+NCURSES_BOOL _nc_safe_strcat(
+               string_desc *dst, 
+               const char *src)
+               { return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_safe_strcpy
+NCURSES_BOOL _nc_safe_strcpy(
+               string_desc *dst, 
+               const char *src)
+               { return(*(NCURSES_BOOL *)0); }
+
+/* ./trace/trace_buf.c */
+
+typedef struct {
+    char *text;
+    size_t size;
+} LIST;
+
+#undef _nc_trace_buf
+char   *_nc_trace_buf(
+               int     bufnum, 
+               size_t  want)
+               { return(*(char **)0); }
+
+/* ./trace/trace_tries.c */
+
+#undef _nc_trace_tries
+void   _nc_trace_tries(
+               struct tries *tree)
+               { /* void */ }
+
+/* ./unctrl.c */
+
+#undef unctrl
+char   *unctrl(
+                chtype ch)
+               { return(*(char **)0); }
+
+/* ./trace/visbuf.c */
+
+#undef _nc_visbuf2
+const char *_nc_visbuf2(
+               int     bufnum, 
+               const char *buf)
+               { return(*(const char **)0); }
+
+#undef _nc_visbuf
+const char *_nc_visbuf(
+               const char *buf)
+               { return(*(const char **)0); }
+
+#undef _nc_viswbuf2
+const char *_nc_viswbuf2(
+               int     bufnum, 
+               const wchar_t *buf)
+               { return(*(const char **)0); }
+
+#undef _nc_viswbuf
+const char *_nc_viswbuf(
+               const wchar_t *buf)
+               { return(*(const char **)0); }
+
+#undef _nc_viscbuf2
+const char *_nc_viscbuf2(
+               int     bufnum, 
+               const cchar_t *buf, 
+               int     len)
+               { return(*(const char **)0); }
+
+#undef _nc_viscbuf
+const char *_nc_viscbuf(
+               const cchar_t *buf, 
+               int     len)
+               { return(*(const char **)0); }
+
+/* ./tinfo/write_entry.c */
+
+#undef _nc_set_writedir
+void   _nc_set_writedir(
+               char    *dir)
+               { /* void */ }
+
+#undef _nc_write_entry
+void   _nc_write_entry(
+               TERMTYPE *const tp)
+               { /* void */ }
+
+#undef _nc_tic_written
+int    _nc_tic_written(void)
+               { return(*(int *)0); }
index eb84a07e51f08419d8a84f59b5797cc89cbf8561..541df6f2493c172a6585846f933372cb6400e962 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.74 2000/10/03 08:51:18 tom Exp $
+# $Id: modules,v 1.90 2002/05/11 20:14:41 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996-1998
+# Author: Thomas E. Dickey <dickey@clark.net> 1996-1998, etc.
 #
 
 @ base
 #
 
 @ base
@@ -109,15 +109,36 @@ lib_wattroff      lib             $(base)
 lib_wattron    lib             $(base)
 lib_winch      lib             $(base)
 lib_window     lib             $(base)
 lib_wattron    lib             $(base)
 lib_winch      lib             $(base)
 lib_window     lib             $(base)
+link_test      lib             .               ../include/curses.h
 nc_panel       lib             $(base)
 safe_sprintf   lib             $(base)
 tty_update     lib             $(serial)       ../include/term.h
 nc_panel       lib             $(base)
 safe_sprintf   lib             $(base)
 tty_update     lib             $(serial)       ../include/term.h
+varargs                lib             $(trace)
 
 # Modules for porting
 memmove                lib             $(base)
 sigaction      lib             $(base)
 vsscanf        lib             $(base)
 
 
 # Modules for porting
 memmove                lib             $(base)
 sigaction      lib             $(base)
 vsscanf        lib             $(base)
 
+# XSI extensions to the base library (wide-character)
+@ widechar
+lib_box_set    lib             $(wide)
+lib_cchar      lib             $(wide)
+lib_get_wch    lib             $(wide)
+lib_erasewchar lib             $(wide)
+lib_get_wstr   lib             $(wide)
+lib_hline_set  lib             $(wide)
+lib_in_wch     lib             $(wide)
+lib_in_wchnstr lib             $(wide)
+lib_ins_nwstr  lib             $(wide)
+lib_ins_wch    lib             $(wide)
+lib_inwstr     lib             $(wide)
+lib_unget_wch  lib             $(wide)
+lib_vid_attr   lib             $(wide)         ../include/term.h
+lib_vline_set  lib             $(wide)
+lib_wacs       lib             $(wide)
+lib_wunctrl    lib             $(wide)
+
 # Extensions to the base library
 @ ext_funcs
 define_key     lib             $(base)
 # Extensions to the base library
 @ ext_funcs
 define_key     lib             $(base)
@@ -186,4 +207,5 @@ strings             lib             $(tinfo)
 trace_buf      lib             $(trace)
 trace_tries    lib             $(trace)
 unctrl         lib             .
 trace_buf      lib             $(trace)
 trace_tries    lib             $(trace)
 unctrl         lib             .
+visbuf         lib             $(trace)        $(INCDIR)/tic.h
 write_entry    lib             $(tinfo)        ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 write_entry    lib             $(tinfo)        ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
index 910af94b7a48dfbc6b02e226a9dcf896da430995..ff9601ba62c5ce409a9123a9bafee995214f11ed 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
 #!/bin/sh
-# $Id: MKcaptab.awk,v 1.11 1999/01/24 02:46:42 Jeffrey.C.Honig Exp $
+# $Id: MKcaptab.awk,v 1.12 2000/12/10 00:14:12 tom Exp $
 AWK=${1-awk}
 DATA=${2-../include/Caps}
 
 AWK=${1-awk}
 DATA=${2-../include/Caps}
 
@@ -11,6 +11,7 @@ cat <<'EOF'
  */
 
 #include <ncurses_cfg.h>
  */
 
 #include <ncurses_cfg.h>
+#include <curses.priv.h>
 #include <tic.h>
 #include <term.h>
 
 #include <tic.h>
 #include <term.h>
 
@@ -58,12 +59,12 @@ cat <<'EOF'
        {(char *)NULL, (char *)NULL, (char *)NULL}
 };
 
        {(char *)NULL, (char *)NULL, (char *)NULL}
 };
 
-const struct name_table_entry *_nc_get_table(bool termcap)
+NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
 {
        return termcap ? _nc_cap_table: _nc_info_table ;
 }
 
 {
        return termcap ? _nc_cap_table: _nc_info_table ;
 }
 
-const struct name_table_entry * const * _nc_get_hash_table(bool termcap)
+NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool termcap)
 {
        return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
 }
 {
        return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
 }
index 2a76f6239b2b755f680b746c3b7afcc5897155b9..d1abcd2eed3f85d1f9c3f80c3ac786612e3c370e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
 #!/bin/sh
-# $Id: MKfallback.sh,v 1.9 1999/06/15 22:57:45 tom Exp $
+# $Id: MKfallback.sh,v 1.11 2001/12/02 01:55:30 tom Exp $
 #
 # MKfallback.sh -- create fallback table for entry reads
 #
 #
 # MKfallback.sh -- create fallback table for entry reads
 #
@@ -8,6 +8,28 @@
 # from an on-disk terminfo tree) tries to match the type with one of a
 # specified list of types generated in.
 #
 # from an on-disk terminfo tree) tries to match the type with one of a
 # specified list of types generated in.
 #
+
+terminfo_dir=$1
+shift
+
+terminfo_src=$1
+shift
+
+if test $# != 0 ; then
+       tmp_info=tmp_info
+       echo creating temporary terminfo directory... >&2
+
+       TERMINFO=`pwd`/$tmp_info
+       export TERMINFO
+
+       TERMINFO_DIRS=$TERMINFO:$terminfo_dir
+       export TERMINFO_DIRS
+
+       tic $terminfo_src >&2
+else
+       tmp_info=
+fi
+
 cat <<EOF
 /*
  * DO NOT EDIT THIS FILE BY HAND!  It is generated by MKfallback.sh.
 cat <<EOF
 /*
  * DO NOT EDIT THIS FILE BY HAND!  It is generated by MKfallback.sh.
@@ -50,7 +72,7 @@ EOF
 fi
 
 cat <<EOF
 fi
 
 cat <<EOF
-const TERMTYPE *_nc_fallback(const char *name GCC_UNUSED)
+NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *name GCC_UNUSED)
 {
 EOF
 
 {
 EOF
 
@@ -73,3 +95,8 @@ cat <<EOF
        return((TERMTYPE *)0);
 }
 EOF
        return((TERMTYPE *)0);
 }
 EOF
+
+if test -n "$tmp_info" ; then
+       echo removing temporary terminfo directory... >&2
+       rm -rf $tmp_info
+fi
diff --git a/ncurses/tinfo/MKkeys_list.sh b/ncurses/tinfo/MKkeys_list.sh
new file mode 100755 (executable)
index 0000000..98d5b13
--- /dev/null
@@ -0,0 +1,62 @@
+#! /bin/sh
+# $Id: MKkeys_list.sh,v 1.2 2001/06/16 16:50:35 tom Exp $
+##############################################################################
+# Copyright (c) 2001 Free Software 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.                                                             #
+##############################################################################
+#
+# MKkey_defs.sh -- generate list of function-keys for terminfo database
+#
+# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2001
+#
+# Extract function-key names from the Caps file
+#
+: ${AWK-awk}
+DATA=${1-../../include/Caps}
+
+data=data$$
+trap 'rm -f $data' 0 1 2 5 15
+sed -e 's/[    ]\+/    /g' < $DATA >$data
+
+cat <<EOF
+# These definitions were generated by $0 $DATA
+KEY_BREAK
+KEY_SRESET
+KEY_RESET
+KEY_RESIZE
+EOF
+
+${AWK-awk} <$data '
+/^#/           {next;}
+/^capalias/    {next;}
+/^infoalias/   {next;}
+
+$5 != "-" {
+               if (substr($5, 1, 4) == "KEY_" ) {
+                       printf "%s      %s\n", $5, $1
+       }
+}
+'
index b97eccc15e389e83ef2dace6d3875f4732c6e415..455efc01dea3465acf6979b2ac092700f062e3cf 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: MKnames.awk,v 1.10 1999/01/16 23:36:34 tom Exp $
+# $Id: MKnames.awk,v 1.11 2000/12/09 23:46:13 tom Exp $
 BEGIN          {
                        print  "/* This file was generated by MKnames.awk */" > "namehdr"
                        print  ""                               > "namehdr"
 BEGIN          {
                        print  "/* This file was generated by MKnames.awk */" > "namehdr"
                        print  ""                               > "namehdr"
@@ -10,7 +10,7 @@ BEGIN         {
                        print  "#include <term.h>"              > "namehdr"
                        print  "#define DCL(it) static IT data##it[]" > "namehdr"
                        print  "#else"                          > "namehdr"
                        print  "#include <term.h>"              > "namehdr"
                        print  "#define DCL(it) static IT data##it[]" > "namehdr"
                        print  "#else"                          > "namehdr"
-                       print  "#define DCL(it) IT it[]"        > "namehdr"
+                       print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"    > "namehdr"
                        print  "#endif"                         > "namehdr"
                        print  ""                               > "namehdr"
                        print  "/*"                             > "boolnames"
                        print  "#endif"                         > "namehdr"
                        print  ""                               > "namehdr"
                        print  "/*"                             > "boolnames"
@@ -80,7 +80,7 @@ END           {
                        print  "};"                             > "strcodes"
                        print  ""                               > "strcodes"
                        print  "#if BROKEN_LINKER"              > "nameftr"
                        print  "};"                             > "strcodes"
                        print  ""                               > "strcodes"
                        print  "#if BROKEN_LINKER"              > "nameftr"
-                       print  "#define FIX(it) IT *_nc_##it(void) { return data##it; }" > "nameftr"
+                       print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "nameftr"
                        print  "FIX(boolnames)"                 > "nameftr"
                        print  "FIX(boolfnames)"                > "nameftr"
                        print  "FIX(numnames)"                  > "nameftr"
                        print  "FIX(boolnames)"                 > "nameftr"
                        print  "FIX(boolfnames)"                > "nameftr"
                        print  "FIX(numnames)"                  > "nameftr"
@@ -90,7 +90,7 @@ END           {
                        print  "#endif /* BROKEN_LINKER */"     > "nameftr"
                        print  ""                               > "codeftr"
                        print  "#if BROKEN_LINKER"              > "codeftr"
                        print  "#endif /* BROKEN_LINKER */"     > "nameftr"
                        print  ""                               > "codeftr"
                        print  "#if BROKEN_LINKER"              > "codeftr"
-                       print  "#define FIX(it) IT *_nc_##it(void) { return data##it; }" > "codeftr"
+                       print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "codeftr"
                        print  "FIX(boolcodes)"                 > "codeftr"
                        print  "FIX(numcodes)"                  > "codeftr"
                        print  "FIX(strcodes)"                  > "codeftr"
                        print  "FIX(boolcodes)"                 > "codeftr"
                        print  "FIX(numcodes)"                  > "codeftr"
                        print  "FIX(strcodes)"                  > "codeftr"
index 6fbe9217604556aec637c048d8d66825c20b1100..f5240c121c26bf2003a5a1c2423b62140b1e177a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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> 1998,2000                   *
+ *  Author: Thomas E. Dickey <dickey@clark.net> 1998,2000,2001              *
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <tic.h>
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <tic.h>
+#include <nc_alloc.h>
 
 
-MODULE_ID("$Id: access.c,v 1.4 2000/10/08 01:25:06 tom Exp $")
+MODULE_ID("$Id: access.c,v 1.9 2001/06/23 22:11:49 tom Exp $")
 
 
-char *
+#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+
+NCURSES_EXPORT(char *)
+_nc_rootname(char *path)
+{
+    char *result = _nc_basename(path);
+#if !defined(MIXEDCASE_FILENAMES) || defined(PROG_EXT)
+    static char *temp;
+    char *s;
+
+    temp = strdup(result);
+    result = temp;
+#if !defined(MIXEDCASE_FILENAMES)
+    int n;
+    for (s = result; *s != '\0'; ++s) {
+       *s = LOWERCASE(*s);
+    }
+#endif
+#if defined(PROG_EXT)
+    if ((s = strrchr(result, '.')) != 0) {
+       if (!strcmp(s, PROG_EXT))
+           *s = '\0';
+    }
+#endif
+#endif
+    return result;
+}
+
+NCURSES_EXPORT(char *)
 _nc_basename(char *path)
 {
     char *result = strrchr(path, '/');
 _nc_basename(char *path)
 {
     char *result = strrchr(path, '/');
@@ -50,7 +79,7 @@ _nc_basename(char *path)
     return result;
 }
 
     return result;
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_access(const char *path, int mode)
 {
     if (access(path, mode) < 0) {
 _nc_access(const char *path, int mode)
 {
     if (access(path, mode) < 0) {
@@ -78,7 +107,7 @@ _nc_access(const char *path, int mode)
  * Returns true if we allow application to use environment variables that are
  * used for searching lists of directories, etc.
  */
  * Returns true if we allow application to use environment variables that are
  * used for searching lists of directories, etc.
  */
-int
+NCURSES_EXPORT(int)
 _nc_env_access(void)
 {
 #if HAVE_ISSETUGID
 _nc_env_access(void)
 {
 #if HAVE_ISSETUGID
@@ -86,9 +115,9 @@ _nc_env_access(void)
        return FALSE;
 #elif HAVE_GETEUID && HAVE_GETEGID
     if (getuid() != geteuid()
        return FALSE;
 #elif HAVE_GETEUID && HAVE_GETEGID
     if (getuid() != geteuid()
-     || getgid() != getegid())
+       || getgid() != getegid())
        return FALSE;
 #endif
        return FALSE;
 #endif
-    return getuid() != 0;      /* ...finally, disallow root */
+    return getuid() != 0 && geteuid() != 0;    /* ...finally, disallow root */
 }
 #endif
 }
 #endif
index 601fb663b7b6f7a0d491dd334b7f775352c47061..f83249ccf01a7025fe5f8ccb45379c4d520c9a07 100644 (file)
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: add_tries.c,v 1.2 2000/03/18 22:23:56 tom Exp $")
+MODULE_ID("$Id: add_tries.c,v 1.4 2000/12/10 02:55:07 tom Exp $")
 
 #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
 #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
 
 
 #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
 #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
 
-void
+NCURSES_EXPORT(void)
 _nc_add_to_try(struct tries **tree, const char *str, unsigned short code)
 {
     static bool out_of_memory = FALSE;
 _nc_add_to_try(struct tries **tree, const char *str, unsigned short code)
 {
     static bool out_of_memory = FALSE;
@@ -61,7 +61,7 @@ _nc_add_to_try(struct tries **tree, const char *str, unsigned short code)
            unsigned char cmp = *txt;
 
            while (!CMP_TRY(ptr->ch, cmp)
            unsigned char cmp = *txt;
 
            while (!CMP_TRY(ptr->ch, cmp)
-               && ptr->sibling != 0)
+                  && ptr->sibling != 0)
                ptr = ptr->sibling;
 
            if (CMP_TRY(ptr->ch, cmp)) {
                ptr = ptr->sibling;
 
            if (CMP_TRY(ptr->ch, cmp)) {
index 17489372e46437534585f040a9b95aaafc980f2a..16f04f8d50cdd7c425b886c9fb7d50a4ef548ee4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: alloc_entry.c,v 1.32 2000/03/12 00:16:31 tom Exp $")
+MODULE_ID("$Id: alloc_entry.c,v 1.37 2002/09/07 20:04:15 tom Exp $")
 
 #define ABSENT_OFFSET    -1
 #define CANCELLED_OFFSET -2
 
 #define MAX_STRTAB     4096    /* documented maximum entry size */
 
 
 #define ABSENT_OFFSET    -1
 #define CANCELLED_OFFSET -2
 
 #define MAX_STRTAB     4096    /* documented maximum entry size */
 
-static char stringbuf[MAX_STRTAB];     /* buffer for string capabilities */
+static char *stringbuf;                /* buffer for string capabilities */
 static size_t next_free;       /* next free character in stringbuf */
 
 static size_t next_free;       /* next free character in stringbuf */
 
-void
+NCURSES_EXPORT(void)
 _nc_init_entry(TERMTYPE * const tp)
 /* initialize a terminal type data block */
 {
     int i;
 
 _nc_init_entry(TERMTYPE * const tp)
 /* initialize a terminal type data block */
 {
     int i;
 
+    if (stringbuf == 0)
+       stringbuf = malloc(MAX_STRTAB);
+
 #if NCURSES_XNAMES
     tp->num_Booleans = BOOLCOUNT;
     tp->num_Numbers = NUMCOUNT;
 #if NCURSES_XNAMES
     tp->num_Booleans = BOOLCOUNT;
     tp->num_Numbers = NUMCOUNT;
@@ -90,7 +93,7 @@ _nc_init_entry(TERMTYPE * const tp)
     next_free = 0;
 }
 
     next_free = 0;
 }
 
-ENTRY *
+NCURSES_EXPORT(ENTRY *)
 _nc_copy_entry(ENTRY * oldp)
 {
     ENTRY *newp = typeCalloc(ENTRY, 1);
 _nc_copy_entry(ENTRY * oldp)
 {
     ENTRY *newp = typeCalloc(ENTRY, 1);
@@ -102,7 +105,7 @@ _nc_copy_entry(ENTRY * oldp)
     return newp;
 }
 
     return newp;
 }
 
-char *
+NCURSES_EXPORT(char *)
 _nc_save_str(const char *const string)
 /* save a copy of string in the string buffer */
 {
 _nc_save_str(const char *const string)
 /* save a copy of string in the string buffer */
 {
@@ -118,14 +121,35 @@ _nc_save_str(const char *const string)
     return (stringbuf + old_next_free);
 }
 
     return (stringbuf + old_next_free);
 }
 
-void
-_nc_wrap_entry(ENTRY * const ep)
+NCURSES_EXPORT(void)
+_nc_wrap_entry(ENTRY * const ep, bool copy_strings)
 /* copy the string parts to allocated storage, preserving pointers to it */
 {
     int offsets[MAX_ENTRY_SIZE / 2], useoffsets[MAX_USES];
     int i, n;
     TERMTYPE *tp = &(ep->tterm);
 
 /* copy the string parts to allocated storage, preserving pointers to it */
 {
     int offsets[MAX_ENTRY_SIZE / 2], useoffsets[MAX_USES];
     int i, n;
     TERMTYPE *tp = &(ep->tterm);
 
+    if (copy_strings) {
+       next_free = 0;          /* clear static storage */
+
+       /* copy term_names, Strings, uses */
+       tp->term_names = _nc_save_str(tp->term_names);
+       for_each_string(i, tp) {
+           if (tp->Strings[i] != ABSENT_STRING &&
+               tp->Strings[i] != CANCELLED_STRING) {
+               tp->Strings[i] = _nc_save_str(tp->Strings[i]);
+           }
+       }
+
+       for (i = 0; i < ep->nuses; i++) {
+           if (ep->uses[i].name == 0) {
+               ep->uses[i].name = _nc_save_str(ep->uses[i].name);
+           }
+       }
+
+       free(tp->str_table);
+    }
+
     n = tp->term_names - stringbuf;
     for_each_string(i, &(ep->tterm)) {
        if (tp->Strings[i] == ABSENT_STRING)
     n = tp->term_names - stringbuf;
     for_each_string(i, &(ep->tterm)) {
        if (tp->Strings[i] == ABSENT_STRING)
@@ -144,7 +168,7 @@ _nc_wrap_entry(ENTRY * const ep)
     }
 
     if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
     }
 
     if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
-         _nc_err_abort("Out of memory");
+         _nc_err_abort(MSG_NO_MEMORY);
     (void) memcpy(tp->str_table, stringbuf, next_free);
 
     tp->term_names = tp->str_table + n;
     (void) memcpy(tp->str_table, stringbuf, next_free);
 
     tp->term_names = tp->str_table + n;
@@ -158,18 +182,20 @@ _nc_wrap_entry(ENTRY * const ep)
     }
 
 #if NCURSES_XNAMES
     }
 
 #if NCURSES_XNAMES
-    if ((n = NUM_EXT_NAMES(tp)) != 0) {
-       unsigned length = 0;
-       for (i = 0; i < n; i++) {
-           length += strlen(tp->ext_Names[i]) + 1;
-           offsets[i] = tp->ext_Names[i] - stringbuf;
-       }
-       if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
-             _nc_err_abort("Out of memory");
-       for (i = 0, length = 0; i < n; i++) {
-           tp->ext_Names[i] = tp->ext_str_table + length;
-           strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
-           length += strlen(tp->ext_Names[i]) + 1;
+    if (!copy_strings) {
+       if ((n = NUM_EXT_NAMES(tp)) != 0) {
+           unsigned length = 0;
+           for (i = 0; i < n; i++) {
+               length += strlen(tp->ext_Names[i]) + 1;
+               offsets[i] = tp->ext_Names[i] - stringbuf;
+           }
+           if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
+                 _nc_err_abort(MSG_NO_MEMORY);
+           for (i = 0, length = 0; i < n; i++) {
+               tp->ext_Names[i] = tp->ext_str_table + length;
+               strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
+               length += strlen(tp->ext_Names[i]) + 1;
+           }
        }
     }
 #endif
        }
     }
 #endif
@@ -182,8 +208,9 @@ _nc_wrap_entry(ENTRY * const ep)
     }
 }
 
     }
 }
 
-void
-_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
+NCURSES_EXPORT(void)
+_nc_merge_entry
+(TERMTYPE * const to, TERMTYPE * const from)
 /* merge capabilities from `from' entry into `to' entry */
 {
     int i;
 /* merge capabilities from `from' entry into `to' entry */
 {
     int i;
index eac7c80f0328e458042394b9056aea957d25622e..bbc850e8c646d7e671e73cff5f429b754a15114f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -43,7 +43,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: alloc_ttype.c,v 1.10 2000/08/12 21:56:24 tom Exp $")
+MODULE_ID("$Id: alloc_ttype.c,v 1.13 2002/09/28 15:28:43 tom Exp $")
 
 #if NCURSES_XNAMES
 /*
 
 #if NCURSES_XNAMES
 /*
@@ -291,7 +291,7 @@ _nc_ins_ext_name(TERMTYPE * tp, char *name, int token_type)
        int cmp = strcmp(name, tp->ext_Names[j]);
        if (cmp == 0)
            /* already present */
        int cmp = strcmp(name, tp->ext_Names[j]);
        if (cmp == 0)
            /* already present */
-           return _nc_ext_data_index(tp, j, token_type);
+           return _nc_ext_data_index(tp, (int) j, token_type);
        if (cmp < 0) {
            break;
        }
        if (cmp < 0) {
            break;
        }
@@ -301,7 +301,7 @@ _nc_ins_ext_name(TERMTYPE * tp, char *name, int token_type)
     for (k = total - 1; k > j; k--)
        tp->ext_Names[k] = tp->ext_Names[k - 1];
     tp->ext_Names[j] = name;
     for (k = total - 1; k > j; k--)
        tp->ext_Names[k] = tp->ext_Names[k - 1];
     tp->ext_Names[j] = name;
-    j = _nc_ext_data_index(tp, j, token_type);
+    j = _nc_ext_data_index(tp, (int) j, token_type);
 
     switch (token_type) {
     case BOOLEAN:
 
     switch (token_type) {
     case BOOLEAN:
@@ -370,8 +370,9 @@ adjust_cancels(TERMTYPE * to, TERMTYPE * from)
     }
 }
 
     }
 }
 
-void
-_nc_align_termtype(TERMTYPE * to, TERMTYPE * from)
+NCURSES_EXPORT(void)
+_nc_align_termtype
+(TERMTYPE * to, TERMTYPE * from)
 {
     int na = NUM_EXT_NAMES(to);
     int nb = NUM_EXT_NAMES(from);
 {
     int na = NUM_EXT_NAMES(to);
     int nb = NUM_EXT_NAMES(from);
@@ -455,8 +456,9 @@ _nc_align_termtype(TERMTYPE * to, TERMTYPE * from)
 }
 #endif
 
 }
 #endif
 
-void
-_nc_copy_termtype(TERMTYPE * dst, TERMTYPE * src)
+NCURSES_EXPORT(void)
+_nc_copy_termtype
+(TERMTYPE * dst, TERMTYPE * src)
 {
     int i;
 
 {
     int i;
 
index da1382683942a21be51a1aaf6cb5cdab925659cb..e1b50b7b4f2e621b72aa32cacd7cd4cfdbcf8e3b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 @@
  *
  *     There is just one entry point:
  *
  *
  *     There is just one entry point:
  *
- *     char *captoinfo(n, s, parametrized)
+ *     char *_nc_captoinfo(n, s, parametrized)
  *
  *     Convert value s for termcap string capability named n into terminfo
  *     format.
  *
  *     Convert value s for termcap string capability named n into terminfo
  *     format.
@@ -92,7 +92,7 @@
 #include <ctype.h>
 #include <tic.h>
 
 #include <ctype.h>
 #include <tic.h>
 
-MODULE_ID("$Id: captoinfo.c,v 1.37 2000/04/01 20:07:34 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.43 2002/09/28 16:38:59 tom Exp $")
 
 #define MAX_PUSHED     16      /* max # args we can push onto the stack */
 
 
 #define MAX_PUSHED     16      /* max # args we can push onto the stack */
 
@@ -115,7 +115,7 @@ init_string(void)
     if (my_string == 0)
        my_string = typeMalloc(char, my_length = 256);
     if (my_string == 0)
     if (my_string == 0)
        my_string = typeMalloc(char, my_length = 256);
     if (my_string == 0)
-       _nc_err_abort("Out of memory");
+       _nc_err_abort(MSG_NO_MEMORY);
 
     *my_string = '\0';
     return my_string;
 
     *my_string = '\0';
     return my_string;
@@ -129,7 +129,7 @@ save_string(char *d, const char *const s)
     if (need > my_length) {
        my_string = (char *) realloc(my_string, my_length = (need + need));
        if (my_string == 0)
     if (need > my_length) {
        my_string = (char *) realloc(my_string, my_length = (need + need));
        if (my_string == 0)
-           _nc_err_abort("Out of memory");
+           _nc_err_abort(MSG_NO_MEMORY);
        d = my_string + have;
     }
     (void) strcpy(d, s);
        d = my_string + have;
     }
     (void) strcpy(d, s);
@@ -137,10 +137,10 @@ save_string(char *d, const char *const s)
 }
 
 static inline char *
 }
 
 static inline char *
-save_char(char *s, char c)
+save_char(char *s, int c)
 {
     static char temp[2];
 {
     static char temp[2];
-    temp[0] = c;
+    temp[0] = (char) c;
     return save_string(s, temp);
 }
 
     return save_string(s, temp);
 }
 
@@ -194,7 +194,7 @@ cvtchar(register const char *sp)
        case '2':
        case '3':
            len = 1;
        case '2':
        case '3':
            len = 1;
-           while (isdigit(*sp)) {
+           while (isdigit(UChar(*sp))) {
                c = 8 * c + (*sp++ - '0');
                len++;
            }
                c = 8 * c + (*sp++ - '0');
                len++;
            }
@@ -268,13 +268,16 @@ getparm(int parm, int n)
     }
 }
 
     }
 }
 
+/*
+ * Convert a termcap string to terminfo format.
+ * 'cap' is the relevant terminfo capability index.
+ * 's' is the string value of the capability.
+ * 'parametrized' tells what type of translations to do:
+ *     % translations if 1
+ *     pad translations if >=0
+ */
 char *
 char *
-_nc_captoinfo(
-/* convert a termcap string to terminfo format */
-    register const char *cap,  /* relevant terminfo capability index */
-    register const char *s,    /* string value of the capability */
-    int const parametrized     /* do % translations if 1, pad translations if >=0 */
-)
+_nc_captoinfo(const char *cap, const char *s, int const parametrized)
 {
     const char *capstart;
 
 {
     const char *capstart;
 
@@ -291,9 +294,9 @@ _nc_captoinfo(
     capstart = 0;
     if (s == 0)
        s = "";
     capstart = 0;
     if (s == 0)
        s = "";
-    if (parametrized >= 0 && isdigit(*s))
+    if (parametrized >= 0 && isdigit(UChar(*s)))
        for (capstart = s;; s++)
        for (capstart = s;; s++)
-           if (!(isdigit(*s) || *s == '*' || *s == '.'))
+           if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.'))
                break;
 
     while (*s != '\0') {
                break;
 
     while (*s != '\0') {
@@ -349,7 +352,7 @@ _nc_captoinfo(
                break;
            case 'a':
                if ((*s == '=' || *s == '+' || *s == '-'
                break;
            case 'a':
                if ((*s == '=' || *s == '+' || *s == '-'
-                       || *s == '*' || *s == '/')
+                    || *s == '*' || *s == '/')
                    && (s[1] == 'p' || s[1] == 'c')
                    && s[2] != '\0') {
                    int l;
                    && (s[1] == 'p' || s[1] == 'c')
                    && s[2] != '\0') {
                    int l;
@@ -461,7 +464,7 @@ _nc_captoinfo(
                dp = save_char(dp, '%');
                s--;
                _nc_warning("unknown %% code %s (%#x) in %s",
                dp = save_char(dp, '%');
                s--;
                _nc_warning("unknown %% code %s (%#x) in %s",
-                   unctrl(*s), (*s) & 0xff, cap);
+                           unctrl((chtype) *s), UChar(*s), cap);
                break;
            }
            break;
                break;
            }
            break;
@@ -542,7 +545,7 @@ _nc_captoinfo(
     if (capstart) {
        dp = save_string(dp, "$<");
        for (s = capstart;; s++)
     if (capstart) {
        dp = save_string(dp, "$<");
        for (s = capstart;; s++)
-           if (isdigit(*s) || *s == '*' || *s == '.')
+           if (isdigit(UChar(*s)) || *s == '*' || *s == '.')
                dp = save_char(dp, *s);
            else
                break;
                dp = save_char(dp, *s);
            else
                break;
@@ -566,8 +569,8 @@ bcd_expression(const char *str)
     char ch1, ch2;
 
     if (sscanf(str, fmt, &ch1, &ch2) == 2
     char ch1, ch2;
 
     if (sscanf(str, fmt, &ch1, &ch2) == 2
-       && isdigit(ch1)
-       && isdigit(ch2)
+       && isdigit(UChar(ch1))
+       && isdigit(UChar(ch2))
        && (ch1 == ch2)) {
        len = 28;
 #ifndef NDEBUG
        && (ch1 == ch2)) {
        len = 28;
 #ifndef NDEBUG
@@ -594,7 +597,7 @@ save_tc_char(char *bufptr, int c1)
        bufptr = save_char(bufptr, c1);
     } else {
        if (c1 == (c1 & 0x1f))  /* iscntrl() returns T on 255 */
        bufptr = save_char(bufptr, c1);
     } else {
        if (c1 == (c1 & 0x1f))  /* iscntrl() returns T on 255 */
-           (void) strcpy(temp, unctrl(c1));
+           (void) strcpy(temp, unctrl((chtype) c1));
        else
            (void) sprintf(temp, "\\%03o", c1);
        bufptr = save_string(bufptr, temp);
        else
            (void) sprintf(temp, "\\%03o", c1);
        bufptr = save_string(bufptr, temp);
@@ -629,13 +632,12 @@ save_tc_inequality(char *bufptr, int c1, int c2)
  *     %m       exclusive-or all parameters with 0177 (not in 4.4BSD)
  */
 
  *     %m       exclusive-or all parameters with 0177 (not in 4.4BSD)
  */
 
+/*
+ * Convert a terminfo string to termcap format.  Parameters are as in
+ * _nc_captoinfo().
+ */
 char *
 char *
-_nc_infotocap(
-/* convert a terminfo string to termcap format */
-    register const char *cap GCC_UNUSED,       /* relevant termcap capability index */
-    register const char *str,  /* string value of the capability */
-    int const parametrized     /* do % translations if 1, pad translations if >=0 */
-)
+_nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parametrized)
 {
     int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
     const char *padding;
 {
     int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
     const char *padding;
@@ -649,13 +651,13 @@ _nc_infotocap(
     padding = str + strlen(str) - 1;
     if (*padding == '>' && *--padding == '/') {
        --padding;
     padding = str + strlen(str) - 1;
     if (*padding == '>' && *--padding == '/') {
        --padding;
-       while (isdigit(*padding) || *padding == '.' || *padding == '*')
+       while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
            padding--;
        if (*padding == '<' && *--padding == '$')
            trimmed = padding;
        padding += 2;
 
            padding--;
        if (*padding == '<' && *--padding == '$')
            trimmed = padding;
        padding += 2;
 
-       while (isdigit(*padding) || *padding == '.' || *padding == '*')
+       while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
            bufptr = save_char(bufptr, *padding++);
     }
 
            bufptr = save_char(bufptr, *padding++);
     }
 
@@ -667,8 +669,11 @@ _nc_infotocap(
            bufptr = save_char(bufptr, *++str);
        } else if (str[0] == '$' && str[1] == '<') {    /* discard padding */
            str += 2;
            bufptr = save_char(bufptr, *++str);
        } else if (str[0] == '$' && str[1] == '<') {    /* discard padding */
            str += 2;
-           while (isdigit(*str) || *str == '.' || *str == '*' || *str ==
-               '/' || *str == '>')
+           while (isdigit(UChar(*str))
+                  || *str == '.'
+                  || *str == '*'
+                  || *str == '/'
+                  || *str == '>')
                str++;
            --str;
        } else if (str[0] == '%' && str[1] == '%') {    /* escaped '%' */
                str++;
            --str;
        } else if (str[0] == '%' && str[1] == '%') {    /* escaped '%' */
@@ -692,7 +697,7 @@ _nc_infotocap(
            bufptr = save_string(bufptr, "%B");
        } else if ((sscanf(str, "%%{%d}%%+%%c", &c1) == 1
                    || sscanf(str, "%%'%c'%%+%%c", &ch1) == 1)
            bufptr = save_string(bufptr, "%B");
        } else if ((sscanf(str, "%%{%d}%%+%%c", &c1) == 1
                    || sscanf(str, "%%'%c'%%+%%c", &ch1) == 1)
-           && (cp = strchr(str, '+'))) {
+                  && (cp = strchr(str, '+'))) {
            str = cp + 2;
            bufptr = save_string(bufptr, "%+");
 
            str = cp + 2;
            bufptr = save_string(bufptr, "%+");
 
@@ -732,7 +737,7 @@ _nc_infotocap(
            case '8':
            case '9':
                bufptr = save_char(bufptr, '%');
            case '8':
            case '9':
                bufptr = save_char(bufptr, '%');
-               while (isdigit(*str))
+               while (isdigit(UChar(*str)))
                    bufptr = save_char(bufptr, *str++);
                if (strchr("doxX.", *str)) {
                    if (*str != 'd')    /* termcap doesn't have octal, hex */
                    bufptr = save_char(bufptr, *str++);
                if (strchr("doxX.", *str)) {
                    if (*str != 'd')    /* termcap doesn't have octal, hex */
index 3767063da0a6d51664571587798c8b4c521904c5..ce1eaf5669cb9cbb49a5d395b0273ebf056fb7c1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
  *     comp_error.c -- Error message routines
  *
 /*
  *     comp_error.c -- Error message routines
  *
 
 #include <tic.h>
 
 
 #include <tic.h>
 
-MODULE_ID("$Id: comp_error.c,v 1.17 1999/10/30 23:00:16 tom Exp $")
+MODULE_ID("$Id: comp_error.c,v 1.25 2002/09/07 20:05:07 tom Exp $")
 
 
-bool   _nc_suppress_warnings = FALSE;
-int    _nc_curr_line = 0;      /* current line # in input */
-int    _nc_curr_col = 0;       /* current column # in input */
+NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
+NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
+NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
 
 static const char *sourcename;
 
 static const char *sourcename;
-static char termtype[MAX_NAME_SIZE+1];
+static char *termtype;
 
 
-void _nc_set_source(const char *const name)
+NCURSES_EXPORT(void)
+_nc_set_source(const char *const name)
 {
 {
-       sourcename = name;
+    sourcename = name;
 }
 
 }
 
-void _nc_set_type(const char *const name)
+NCURSES_EXPORT(void)
+_nc_set_type(const char *const name)
 {
 {
+    if (termtype == 0)
+       termtype = typeMalloc(char, MAX_NAME_SIZE + 1);
+    if (termtype != 0) {
+       termtype[0] = '\0';
        if (name)
        if (name)
-               strncpy( termtype, name, MAX_NAME_SIZE );
-       else
-               termtype[0] = '\0';
+           strncat(termtype, name, MAX_NAME_SIZE);
+    }
 }
 
 }
 
-void _nc_get_type(char *name)
+NCURSES_EXPORT(void)
+_nc_get_type(char *name)
 {
 {
-       strcpy( name, termtype );
+    strcpy(name, termtype != 0 ? termtype : "");
 }
 
 }
 
-static inline void where_is_problem(void)
+static inline void
+where_is_problem(void)
 {
 {
-       fprintf (stderr, "\"%s\"", sourcename);
-       if (_nc_curr_line >= 0)
-               fprintf (stderr, ", line %d", _nc_curr_line);
-       if (_nc_curr_col >= 0)
-               fprintf (stderr, ", col %d", _nc_curr_col);
-       if (termtype[0])
-               fprintf (stderr, ", terminal '%s'", termtype);
-       fputc(':', stderr);
-       fputc(' ', stderr);
+    fprintf(stderr, "\"%s\"", sourcename);
+    if (_nc_curr_line >= 0)
+       fprintf(stderr, ", line %d", _nc_curr_line);
+    if (_nc_curr_col >= 0)
+       fprintf(stderr, ", col %d", _nc_curr_col);
+    if (termtype != 0 && termtype[0] != '\0')
+       fprintf(stderr, ", terminal '%s'", termtype);
+    fputc(':', stderr);
+    fputc(' ', stderr);
 }
 
 }
 
-void _nc_warning(const char *const fmt, ...)
+NCURSES_EXPORT(void)
+_nc_warning(const char *const fmt,...)
 {
 {
-va_list argp;
+    va_list argp;
 
 
-       if (_nc_suppress_warnings)
-           return;
+    if (_nc_suppress_warnings)
+       return;
 
 
-       where_is_problem();
-       va_start(argp,fmt);
-       vfprintf (stderr, fmt, argp);
-       fprintf (stderr, "\n");
-       va_end(argp);
+    where_is_problem();
+    va_start(argp, fmt);
+    vfprintf(stderr, fmt, argp);
+    fprintf(stderr, "\n");
+    va_end(argp);
 }
 
 }
 
-
-void _nc_err_abort(const char *const fmt, ...)
+NCURSES_EXPORT(void)
+_nc_err_abort(const char *const fmt,...)
 {
 {
-va_list argp;
-
-       where_is_problem();
-       va_start(argp,fmt);
-       vfprintf (stderr, fmt, argp);
-       fprintf (stderr, "\n");
-       va_end(argp);
-       exit(EXIT_FAILURE);
+    va_list argp;
+
+    where_is_problem();
+    va_start(argp, fmt);
+    vfprintf(stderr, fmt, argp);
+    fprintf(stderr, "\n");
+    va_end(argp);
+    exit(EXIT_FAILURE);
 }
 
 }
 
-
-void _nc_syserr_abort(const char *const fmt, ...)
+NCURSES_EXPORT(void)
+_nc_syserr_abort(const char *const fmt,...)
 {
 {
-va_list argp;
+    va_list argp;
 
 
-       where_is_problem();
-       va_start(argp,fmt);
-       vfprintf (stderr, fmt, argp);
-       fprintf (stderr, "\n");
-       va_end(argp);
+    where_is_problem();
+    va_start(argp, fmt);
+    vfprintf(stderr, fmt, argp);
+    fprintf(stderr, "\n");
+    va_end(argp);
 
 
-       /* If we're debugging, try to show where the problem occurred - this
-        * will dump core.
-        */
+    /* If we're debugging, try to show where the problem occurred - this
+     * will dump core.
+     */
 #if defined(TRACE) || !defined(NDEBUG)
 #if defined(TRACE) || !defined(NDEBUG)
-       abort();
+    abort();
 #else
 #else
-       /* Dumping core in production code is not a good idea.
-        */
-       exit(EXIT_FAILURE);
+    /* Dumping core in production code is not a good idea.
+     */
+    exit(EXIT_FAILURE);
 #endif
 }
 #endif
 }
index eb552fadabda0d524ad94d4c949b3ff1ed8c515e..7ba438aff8e265346f480ce9e998605a329e69cd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <ctype.h>
 #include <tic.h>
 
 #include <ctype.h>
 #include <tic.h>
 
-MODULE_ID("$Id: comp_expand.c,v 1.11 1999/03/07 00:51:07 tom Exp $")
+MODULE_ID("$Id: comp_expand.c,v 1.17 2001/09/22 19:16:52 tom Exp $")
 
 
-static int trailing_spaces(const char *src)
+static int
+trailing_spaces(const char *src)
 {
 {
-       while (*src == ' ')
-               src++;
-       return *src == 0;
+    while (*src == ' ')
+       src++;
+    return *src == 0;
 }
 
 /* this deals with differences over whether 0x7f and 0x80..0x9f are controls */
 }
 
 /* this deals with differences over whether 0x7f and 0x80..0x9f are controls */
-#define CHAR_OF(s) (*(unsigned const char *)(s))
-#define REALCTL(s) (CHAR_OF(s) < 127 && iscntrl(CHAR_OF(s)))
-#define REALPRINT(s) (CHAR_OF(s) < 127 && isprint(CHAR_OF(s)))
+#define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s))))
+#define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s))))
 
 
-char *_nc_tic_expand(const char *srcp, bool tic_format, int numbers)
+NCURSES_EXPORT(char *)
+_nc_tic_expand
+(const char *srcp, bool tic_format, int numbers)
 {
 {
-static char *  buffer;
-static size_t  length;
+    static char *buffer;
+    static size_t length;
 
 
-int            bufp;
-const char     *ptr, *str = VALID_STRING(srcp) ? srcp : "";
-bool           islong = (strlen(str) > 3);
-size_t         need = (2 + strlen(str)) * 4;
-int            ch;
+    int bufp;
+    const char *str = VALID_STRING(srcp) ? srcp : "";
+    bool islong = (strlen(str) > 3);
+    size_t need = (2 + strlen(str)) * 4;
+    int ch;
 
 
-       if (buffer == 0 || need > length) {
-               if ((buffer = typeRealloc(char, length = need, buffer)) == 0)
-                       return 0;
-       }
+    if (buffer == 0 || need > length) {
+       if ((buffer = typeRealloc(char, length = need, buffer)) == 0)
+             return 0;
+    }
 
 
-       bufp = 0;
-       ptr = str;
-       while ((ch = (*str & 0xff)) != 0) {
-               if (ch == '%' && REALPRINT(str+1)) {
-                       buffer[bufp++] = *str++;
-                       /*
-                        * Though the character literals are more compact, most
-                        * terminal descriptions use numbers and are not easy
-                        * to read in character-literal form.
-                        */
-                       switch (numbers) {
-                       case -1:
-                           if (str[0] == S_QUOTE
-                            && str[1] != '\\'
-                            && REALPRINT(str+1)
-                            && str[2] == S_QUOTE) {
-                               sprintf(buffer+bufp, "{%d}", str[1]);
-                               bufp += strlen(buffer+bufp);
-                               str += 2;
-                           } else {
-                               buffer[bufp++] = *str;
-                           }
-                           break;
-                       /*
-                        * If we have a "%{number}", try to translate it into
-                        * a "%'char'" form, since that will run a little faster
-                        * when we're interpreting it.  Also, having one form
-                        * for the constant makes it simpler to compare terminal
-                        * descriptions.
-                        */
-                       case 1:
-                           if (str[0] == L_BRACE
-                            && isdigit(str[1])) {
-                               char *dst = 0;
-                               long value = strtol(str+1, &dst, 0);
-                               if (dst != 0
-                                && *dst == R_BRACE
-                                && value < 127
-                                && value != '\\'       /* FIXME */
-                                && isprint((int)value)) {
-                                       ch = (int)value;
-                                       buffer[bufp++] = S_QUOTE;
-                                       if (ch == '\\'
-                                        || ch == S_QUOTE)
-                                               buffer[bufp++] = '\\';
-                                       buffer[bufp++] = ch;
-                                       buffer[bufp++] = S_QUOTE;
-                                       str = dst;
-                               } else {
-                                       buffer[bufp++] = *str;
-                               }
-                           } else {
-                                   buffer[bufp++] = *str;
-                           }
-                           break;
-                       default:
-                           buffer[bufp++] = *str;
-                           break;
-                       }
-               }
-               else if (ch == 128) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = '0';
-               }
-               else if (ch == '\033') {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 'E';
-               }
-               else if (ch == '\\' && tic_format && (str == srcp || str[-1] != '^')) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = '\\';
-               }
-               else if (ch == ' ' && tic_format && (str == srcp || trailing_spaces(str))) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 's';
+    bufp = 0;
+    while ((ch = UChar(*str)) != 0) {
+       if (ch == '%' && REALPRINT(str + 1)) {
+           buffer[bufp++] = *str++;
+           /*
+            * Though the character literals are more compact, most
+            * terminal descriptions use numbers and are not easy
+            * to read in character-literal form.
+            */
+           switch (numbers) {
+           case -1:
+               if (str[0] == S_QUOTE
+                   && str[1] != '\\'
+                   && REALPRINT(str + 1)
+                   && str[2] == S_QUOTE) {
+                   sprintf(buffer + bufp, "{%d}", str[1]);
+                   bufp += strlen(buffer + bufp);
+                   str += 2;
+               } else {
+                   buffer[bufp++] = *str;
                }
                }
-               else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) {
-                       buffer[bufp++] = '\\';
+               break;
+               /*
+                * If we have a "%{number}", try to translate it into
+                * a "%'char'" form, since that will run a little faster
+                * when we're interpreting it.  Also, having one form
+                * for the constant makes it simpler to compare terminal
+                * descriptions.
+                */
+           case 1:
+               if (str[0] == L_BRACE
+                   && isdigit(UChar(str[1]))) {
+                   char *dst = 0;
+                   long value = strtol(str + 1, &dst, 0);
+                   if (dst != 0
+                       && *dst == R_BRACE
+                       && value < 127
+                       && value != '\\'        /* FIXME */
+                       && isprint((int) value)) {
+                       ch = (int) value;
+                       buffer[bufp++] = S_QUOTE;
+                       if (ch == '\\'
+                           || ch == S_QUOTE)
+                           buffer[bufp++] = '\\';
                        buffer[bufp++] = ch;
                        buffer[bufp++] = ch;
+                       buffer[bufp++] = S_QUOTE;
+                       str = dst;
+                   } else {
+                       buffer[bufp++] = *str;
+                   }
+               } else {
+                   buffer[bufp++] = *str;
                }
                }
-               else if (REALPRINT(str) && (ch != ',' && ch != ':' && !(ch == '!' && !tic_format) && ch != '^'))
-                       buffer[bufp++] = ch;
-#if 0          /* FIXME: this would be more readable (in fact the whole 'islong' logic should be removed) */
-               else if (ch == '\b') {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 'b';
-               }
-               else if (ch == '\f') {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 'f';
-               }
-               else if (ch == '\t' && islong) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 't';
-               }
+               break;
+           default:
+               buffer[bufp++] = *str;
+               break;
+           }
+       } else if (ch == 128) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = '0';
+       } else if (ch == '\033') {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 'E';
+       } else if (ch == '\\' && tic_format && (str == srcp || str[-1] != '^')) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = '\\';
+       } else if (ch == ' ' && tic_format && (str == srcp ||
+                                              trailing_spaces(str))) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 's';
+       } else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = ch;
+       } else if (REALPRINT(str)
+                  && (ch != ','
+                      && ch != ':'
+                      && !(ch == '!' && !tic_format)
+                      && ch != '^'))
+           buffer[bufp++] = ch;
+#if 0                          /* FIXME: this would be more readable (in fact the whole 'islong' logic should be removed) */
+       else if (ch == '\b') {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 'b';
+       } else if (ch == '\f') {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 'f';
+       } else if (ch == '\t' && islong) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 't';
+       }
 #endif
 #endif
-               else if (ch == '\r' && (islong || (strlen(srcp) > 2 && str[1] == '\0'))) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 'r';
-               }
-               else if (ch == '\n' && islong) {
-                       buffer[bufp++] = '\\';
-                       buffer[bufp++] = 'n';
-               }
+       else if (ch == '\r' && (islong || (strlen(srcp) > 2 && str[1] == '\0'))) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 'r';
+       } else if (ch == '\n' && islong) {
+           buffer[bufp++] = '\\';
+           buffer[bufp++] = 'n';
+       }
 #define UnCtl(c) ((c) + '@')
 #define UnCtl(c) ((c) + '@')
-               else if (REALCTL(str) && ch != '\\' && (!islong || isdigit(str[1])))
-               {
-                       (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch));
-                       bufp += 2;
-               }
-               else
-               {
-                       (void) sprintf(&buffer[bufp], "\\%03o", ch);
-                       bufp += 4;
-               }
-
-               str++;
+       else if (REALCTL(str) && ch != '\\'
+                && (!islong || isdigit(UChar(str[1])))) {
+           (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch));
+           bufp += 2;
+       } else {
+           (void) sprintf(&buffer[bufp], "\\%03o", ch);
+           bufp += 4;
        }
 
        }
 
-       buffer[bufp] = '\0';
-       return(buffer);
+       str++;
+    }
+
+    buffer[bufp] = '\0';
+    return (buffer);
 }
 }
index 7e0bdd0524fe796cdaa00738d135fb31980fe661..9f2ee71041e4650da7592167774fe32d789e0921 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
  *     comp_hash.c --- Routines to deal with the hashtable of capability
  *                     names.
 /*
  *     comp_hash.c --- Routines to deal with the hashtable of capability
  *                     names.
 #ifdef MAIN_PROGRAM
 #include <ctype.h>
 #undef  DEBUG
 #ifdef MAIN_PROGRAM
 #include <ctype.h>
 #undef  DEBUG
-#define DEBUG(level, params) /*nothing*/
+#define DEBUG(level, params)   /*nothing */
 #endif
 
 #endif
 
-MODULE_ID("$Id: comp_hash.c,v 1.21 1999/06/26 21:25:11 tom Exp $")
+MODULE_ID("$Id: comp_hash.c,v 1.25 2001/06/02 22:50:42 skimo Exp $")
 
 
-static  int hash_function(const char *);
+static int hash_function(const char *);
 
 /*
  *     _nc_make_hash_table()
 
 /*
  *     _nc_make_hash_table()
@@ -65,32 +64,33 @@ static  int hash_function(const char *);
 #ifdef MAIN_PROGRAM
 
 #undef MODULE_ID
 #ifdef MAIN_PROGRAM
 
 #undef MODULE_ID
-#define MODULE_ID(id) /*nothing*/
+#define MODULE_ID(id)          /*nothing */
 #include <tinfo/doalloc.c>
 
 #include <tinfo/doalloc.c>
 
-static void _nc_make_hash_table(struct name_table_entry *table,
-                    struct name_table_entry **hash_table)
+static void
+_nc_make_hash_table(struct name_table_entry *table,
+                   struct name_table_entry **hash_table)
 {
 {
-int    i;
-int    hashvalue;
-int    collisions = 0;
+    int i;
+    int hashvalue;
+    int collisions = 0;
 
 
-       for (i = 0; i < CAPTABSIZE; i++) {
-           hashvalue = hash_function(table[i].nte_name);
+    for (i = 0; i < CAPTABSIZE; i++) {
+       hashvalue = hash_function(table[i].nte_name);
 
 
-           if (hash_table[hashvalue] != (struct name_table_entry *) 0)
-               collisions++;
+       if (hash_table[hashvalue] != (struct name_table_entry *) 0)
+           collisions++;
 
 
-           if (hash_table[hashvalue] != 0)
-               table[i].nte_link = (short)(hash_table[hashvalue] - table);
-           hash_table[hashvalue] = &table[i];
-       }
+       if (hash_table[hashvalue] != 0)
+           table[i].nte_link = (short) (hash_table[hashvalue] - table);
+       hash_table[hashvalue] = &table[i];
+    }
 
 
-       DEBUG(4, ("Hash table complete: %d collisions out of %d entries", collisions, CAPTABSIZE));
+    DEBUG(4, ("Hash table complete: %d collisions out of %d entries",
+             collisions, CAPTABSIZE));
 }
 #endif
 
 }
 #endif
 
-
 /*
  *     int hash_function(string)
  *
 /*
  *     int hash_function(string)
  *
@@ -105,19 +105,18 @@ static
 int
 hash_function(const char *string)
 {
 int
 hash_function(const char *string)
 {
-long   sum = 0;
+    long sum = 0;
 
 
-       DEBUG(9, ("hashing %s", string));
-       while (*string) {
-           sum += (long)(*string + (*(string + 1) << 8));
-           string++;
-       }
+    DEBUG(9, ("hashing %s", string));
+    while (*string) {
+       sum += (long) (*string + (*(string + 1) << 8));
+       string++;
+    }
 
 
-       DEBUG(9, ("sum is %ld", sum));
-       return (int)(sum % HASHTABSIZE);
+    DEBUG(9, ("sum is %ld", sum));
+    return (int) (sum % HASHTABSIZE);
 }
 
 }
 
-
 /*
  *     struct name_table_entry *
  *     find_entry(string)
 /*
  *     struct name_table_entry *
  *     find_entry(string)
@@ -128,23 +127,24 @@ long      sum = 0;
  */
 
 #ifndef MAIN_PROGRAM
  */
 
 #ifndef MAIN_PROGRAM
-struct name_table_entry const *
-_nc_find_entry(const char *string, const struct name_table_entry *const *hash_table)
+NCURSES_EXPORT(struct name_table_entry const *)
+_nc_find_entry
+(const char *string, const struct name_table_entry *const *hash_table)
 {
 {
-int    hashvalue;
-struct name_table_entry        const *ptr;
+    int hashvalue;
+    struct name_table_entry const *ptr;
 
 
-       hashvalue = hash_function(string);
+    hashvalue = hash_function(string);
 
 
-       if ((ptr = hash_table[hashvalue]) != 0) {
-               while (strcmp(ptr->nte_name, string) != 0) {
-                       if (ptr->nte_link < 0)
-                               return 0;
-                       ptr = ptr->nte_link + hash_table[HASHTABSIZE];
-               }
+    if ((ptr = hash_table[hashvalue]) != 0) {
+       while (strcmp(ptr->nte_name, string) != 0) {
+           if (ptr->nte_link < 0)
+               return 0;
+           ptr = ptr->nte_link + hash_table[HASHTABSIZE];
        }
        }
+    }
 
 
-       return (ptr);
+    return (ptr);
 }
 
 /*
 }
 
 /*
@@ -158,19 +158,20 @@ struct name_table_entry   const *ptr;
  *     in the table or 0 if not found.
  */
 
  *     in the table or 0 if not found.
  */
 
-struct name_table_entry const *
-_nc_find_type_entry(const char *string,
-                   int type,
-                   const struct name_table_entry *table)
+NCURSES_EXPORT(struct name_table_entry const *)
+_nc_find_type_entry
+(const char *string,
+ int type,
+ const struct name_table_entry *table)
 {
 {
-struct name_table_entry        const *ptr;
+    struct name_table_entry const *ptr;
 
 
-       for (ptr = table; ptr < table + CAPTABSIZE; ptr++) {
-           if (ptr->nte_type == type && strcmp(string, ptr->nte_name) == 0)
-               return(ptr);
-       }
+    for (ptr = table; ptr < table + CAPTABSIZE; ptr++) {
+       if (ptr->nte_type == type && strcmp(string, ptr->nte_name) == 0)
+           return (ptr);
+    }
 
 
-       return ((struct name_table_entry *)NULL);
+    return ((struct name_table_entry *) NULL);
 }
 #endif
 
 }
 #endif
 
@@ -187,139 +188,144 @@ struct name_table_entry const *ptr;
 
 #define MAX_COLUMNS BUFSIZ     /* this _has_ to be worst-case */
 
 
 #define MAX_COLUMNS BUFSIZ     /* this _has_ to be worst-case */
 
-static char **parse_columns(char *buffer)
+static char **
+parse_columns(char *buffer)
 {
 {
-       static char **list;
-
-       int col = 0;
-
-       if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0)
-               return(0);
-
-       if (*buffer != '#') {
-               while (*buffer != '\0') {
-                       char *s;
-                       for (s = buffer; (*s != '\0') && !isspace(*s); s++)
-                               /*EMPTY*/;
-                       if (s != buffer) {
-                               char mark = *s;
-                               *s = '\0';
-                               if ((s - buffer) > 1
-                                && (*buffer == '"')
-                                && (s[-1] == '"')) {   /* strip the quotes */
-                                       buffer++;
-                                       s[-1] = '\0';
-                               }
-                               list[col] = buffer;
-                               col++;
-                               if (mark == '\0')
-                                       break;
-                               while (*++s && isspace(*s))
-                                       /*EMPTY*/;
-                               buffer = s;
-                       } else
-                               break;
+    static char **list;
+
+    int col = 0;
+
+    if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0)
+         return (0);
+
+    if (*buffer != '#') {
+       while (*buffer != '\0') {
+           char *s;
+           for (s = buffer; (*s != '\0') && !isspace(UChar(*s)); s++)
+               /*EMPTY */ ;
+           if (s != buffer) {
+               char mark = *s;
+               *s = '\0';
+               if ((s - buffer) > 1
+                   && (*buffer == '"')
+                   && (s[-1] == '"')) {        /* strip the quotes */
+                   buffer++;
+                   s[-1] = '\0';
                }
                }
+               list[col] = buffer;
+               col++;
+               if (mark == '\0')
+                   break;
+               while (*++s && isspace(UChar(*s)))
+                   /*EMPTY */ ;
+               buffer = s;
+           } else
+               break;
        }
        }
-       return col ? list : 0;
+    }
+    return col ? list : 0;
 }
 
 }
 
-int main(int argc, char **argv)
+int
+main(int argc, char **argv)
 {
 {
-       struct name_table_entry *name_table = typeCalloc(struct name_table_entry, CAPTABSIZE);
-       struct name_table_entry **hash_table = typeCalloc(struct name_table_entry *, HASHTABSIZE);
-       const char *root_name = "";
-       int  column = 0;
-       int  n;
-       char buffer[BUFSIZ];
-
-       static const char * typenames[] = { "BOOLEAN", "NUMBER", "STRING" };
-
-       short BoolCount = 0;
-       short NumCount  = 0;
-       short StrCount  = 0;
-
-       /* The first argument is the column-number (starting with 0).
-        * The second is the root name of the tables to generate.
-        */
-       if (argc <= 2
-        || (column = atoi(argv[1])) <= 0
-        || (column >= MAX_COLUMNS)
-        || *(root_name = argv[2]) == 0) {
-               fprintf(stderr, "usage: make_hash column root_name\n");
-               exit(EXIT_FAILURE);
+    struct name_table_entry *name_table = typeCalloc(struct
+                                                    name_table_entry, CAPTABSIZE);
+    struct name_table_entry **hash_table = typeCalloc(struct name_table_entry
+                                                     *, HASHTABSIZE);
+    const char *root_name = "";
+    int column = 0;
+    int n;
+    char buffer[BUFSIZ];
+
+    static const char *typenames[] =
+    {"BOOLEAN", "NUMBER", "STRING"};
+
+    short BoolCount = 0;
+    short NumCount = 0;
+    short StrCount = 0;
+
+    /* The first argument is the column-number (starting with 0).
+     * The second is the root name of the tables to generate.
+     */
+    if (argc <= 2
+       || (column = atoi(argv[1])) <= 0
+       || (column >= MAX_COLUMNS)
+       || *(root_name = argv[2]) == 0) {
+       fprintf(stderr, "usage: make_hash column root_name\n");
+       exit(EXIT_FAILURE);
+    }
+
+    /*
+     * Read the table into our arrays.
+     */
+    for (n = 0; (n < CAPTABSIZE) && fgets(buffer, BUFSIZ, stdin);) {
+       char **list, *nlp = strchr(buffer, '\n');
+       if (nlp)
+           *nlp = '\0';
+       list = parse_columns(buffer);
+       if (list == 0)          /* blank or comment */
+           continue;
+       name_table[n].nte_link = -1;    /* end-of-hash */
+       name_table[n].nte_name = strdup(list[column]);
+       if (!strcmp(list[2], "bool")) {
+           name_table[n].nte_type = BOOLEAN;
+           name_table[n].nte_index = BoolCount++;
+       } else if (!strcmp(list[2], "num")) {
+           name_table[n].nte_type = NUMBER;
+           name_table[n].nte_index = NumCount++;
+       } else if (!strcmp(list[2], "str")) {
+           name_table[n].nte_type = STRING;
+           name_table[n].nte_index = StrCount++;
+       } else {
+           fprintf(stderr, "Unknown type: %s\n", list[2]);
+           exit(EXIT_FAILURE);
        }
        }
-
-       /*
-        * Read the table into our arrays.
-        */
-       for (n = 0; (n < CAPTABSIZE) && fgets(buffer, BUFSIZ, stdin); ) {
-               char **list, *nlp = strchr(buffer, '\n');
-               if (nlp)
-                   *nlp = '\0';
-               list = parse_columns(buffer);
-               if (list == 0)  /* blank or comment */
-                   continue;
-               name_table[n].nte_link = -1;    /* end-of-hash */
-               name_table[n].nte_name = strdup(list[column]);
-               if (!strcmp(list[2], "bool")) {
-                       name_table[n].nte_type  = BOOLEAN;
-                       name_table[n].nte_index = BoolCount++;
-               } else if (!strcmp(list[2], "num")) {
-                       name_table[n].nte_type  = NUMBER;
-                       name_table[n].nte_index = NumCount++;
-               } else if (!strcmp(list[2], "str")) {
-                       name_table[n].nte_type  = STRING;
-                       name_table[n].nte_index = StrCount++;
-               } else {
-                       fprintf(stderr, "Unknown type: %s\n", list[2]);
-                       exit(EXIT_FAILURE);
-               }
-               n++;
+       n++;
+    }
+    _nc_make_hash_table(name_table, hash_table);
+
+    /*
+     * Write the compiled tables to standard output
+     */
+    printf("static struct name_table_entry const _nc_%s_table[] =\n",
+          root_name);
+    printf("{\n");
+    for (n = 0; n < CAPTABSIZE; n++) {
+       sprintf(buffer, "\"%s\"",
+               name_table[n].nte_name);
+       printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
+              buffer,
+              typenames[name_table[n].nte_type],
+              name_table[n].nte_index,
+              name_table[n].nte_link,
+              n < CAPTABSIZE - 1 ? ',' : ' ');
+    }
+    printf("};\n\n");
+
+    printf("const struct name_table_entry * const _nc_%s_hash_table[%d] =\n",
+          root_name,
+          HASHTABSIZE + 1);
+    printf("{\n");
+    for (n = 0; n < HASHTABSIZE; n++) {
+       if (hash_table[n] != 0) {
+           sprintf(buffer, "_nc_%s_table + %3ld",
+                   root_name,
+                   (long) (hash_table[n] - name_table));
+       } else {
+           strcpy(buffer, "0");
        }
        }
-       _nc_make_hash_table(name_table, hash_table);
-
-       /*
-        * Write the compiled tables to standard output
-        */
-       printf("static struct name_table_entry const _nc_%s_table[] =\n",
-               root_name);
-       printf("{\n");
-       for (n = 0; n < CAPTABSIZE; n++) {
-               sprintf(buffer, "\"%s\"",
-                       name_table[n].nte_name);
-               printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
-                       buffer,
-                       typenames[name_table[n].nte_type],
-                       name_table[n].nte_index,
-                       name_table[n].nte_link,
-                       n < CAPTABSIZE - 1 ? ',' : ' ');
-       }
-       printf("};\n\n");
-
-       printf("const struct name_table_entry * const _nc_%s_hash_table[%d] =\n",
-               root_name,
-               HASHTABSIZE+1);
-       printf("{\n");
-       for (n = 0; n < HASHTABSIZE; n++) {
-               if (hash_table[n] != 0) {
-                       sprintf(buffer, "_nc_%s_table + %3ld",
-                               root_name,
-                               (long) (hash_table[n] - name_table));
-               } else {
-                       strcpy(buffer, "0");
-               }
-               printf("\t%s,\n", buffer);
-       }
-       printf("\t_nc_%s_table\t/* base-of-table */\n", root_name);
-       printf("};\n\n");
-
-       printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n",
-               BoolCount, NumCount, StrCount);
-       printf("#error\t--> term.h and comp_captab.c disagree about the <--\n");
-       printf("#error\t--> numbers of booleans, numbers and/or strings <--\n");
-       printf("#endif\n\n");
-
-       return EXIT_SUCCESS;
+       printf("\t%s,\n", buffer);
+    }
+    printf("\t_nc_%s_table\t/* base-of-table */\n", root_name);
+    printf("};\n\n");
+
+    printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n",
+          BoolCount, NumCount, StrCount);
+    printf("#error\t--> term.h and comp_captab.c disagree about the <--\n");
+    printf("#error\t--> numbers of booleans, numbers and/or strings <--\n");
+    printf("#endif\n\n");
+
+    return EXIT_SUCCESS;
 }
 #endif
 }
 #endif
index ecb2f5834d834d77b9d44217af736a08c2253eed..a5dc70ce180282b4eb41a8109c8de70508ad567c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: comp_parse.c,v 1.42 2000/10/14 17:50:45 Bernhard.Rosenkraenzer Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.53 2002/09/07 20:01:28 tom Exp $")
 
 static void sanity_check(TERMTYPE *);
 
 static void sanity_check(TERMTYPE *);
-void (*_nc_check_termtype) (TERMTYPE *) = sanity_check;
+NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
 
 /****************************************************************************
  *
 
 /****************************************************************************
  *
@@ -78,7 +78,8 @@ void (*_nc_check_termtype) (TERMTYPE *) = sanity_check;
  *        _nc_head                _nc_tail
  */
 
  *        _nc_head                _nc_tail
  */
 
-ENTRY *_nc_head = 0, *_nc_tail = 0;
+NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
+NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
 
 static void
 enqueue(ENTRY * ep)
 
 static void
 enqueue(ENTRY * ep)
@@ -87,7 +88,7 @@ enqueue(ENTRY * ep)
     ENTRY *newp = _nc_copy_entry(ep);
 
     if (newp == 0)
     ENTRY *newp = _nc_copy_entry(ep);
 
     if (newp == 0)
-       _nc_err_abort("Out of memory");
+       _nc_err_abort(MSG_NO_MEMORY);
 
     newp->last = _nc_tail;
     _nc_tail = newp;
 
     newp->last = _nc_tail;
     _nc_tail = newp;
@@ -97,7 +98,7 @@ enqueue(ENTRY * ep)
        newp->last->next = newp;
 }
 
        newp->last->next = newp;
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_free_entries(ENTRY * headp)
 /* free the allocated storage consumed by list entries */
 {
 _nc_free_entries(ENTRY * headp)
 /* free the allocated storage consumed by list entries */
 {
@@ -136,7 +137,7 @@ force_bar(char *dst, char *src)
     return src;
 }
 
     return src;
 }
 
-bool
+NCURSES_EXPORT(bool)
 _nc_entry_match(char *n1, char *n2)
 /* do any of the aliases in a pair of terminal names match? */
 {
 _nc_entry_match(char *n1, char *n2)
 /* do any of the aliases in a pair of terminal names match? */
 {
@@ -161,10 +162,10 @@ _nc_entry_match(char *n1, char *n2)
  *
  ****************************************************************************/
 
  *
  ****************************************************************************/
 
-void
+NCURSES_EXPORT(void)
 _nc_read_entry_source(FILE * fp, char *buf,
 _nc_read_entry_source(FILE * fp, char *buf,
-    int literal, bool silent,
-    bool(*hook) (ENTRY *))
+                     int literal, bool silent,
+                     bool(*hook) (ENTRY *))
 /* slurp all entries in the given file into core */
 {
     ENTRY thisentry;
 /* slurp all entries in the given file into core */
 {
     ENTRY thisentry;
@@ -179,7 +180,7 @@ _nc_read_entry_source(FILE * fp, char *buf,
        memset(&thisentry, 0, sizeof(thisentry));
        if (_nc_parse_entry(&thisentry, literal, silent) == ERR)
            break;
        memset(&thisentry, 0, sizeof(thisentry));
        if (_nc_parse_entry(&thisentry, literal, silent) == ERR)
            break;
-       if (!isalnum(thisentry.tterm.term_names[0]))
+       if (!isalnum(UChar(thisentry.tterm.term_names[0])))
            _nc_err_abort("terminal names must start with letter or digit");
 
        /*
            _nc_err_abort("terminal names must start with letter or digit");
 
        /*
@@ -209,7 +210,7 @@ _nc_read_entry_source(FILE * fp, char *buf,
     _nc_suppress_warnings = oldsuppress;
 }
 
     _nc_suppress_warnings = oldsuppress;
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_resolve_uses(bool fullresolve)
 /* try to resolve all use capabilities */
 {
 _nc_resolve_uses(bool fullresolve)
 /* try to resolve all use capabilities */
 {
@@ -226,17 +227,18 @@ _nc_resolve_uses(bool fullresolve)
     for_entry_list(qp) {
        int matchcount = 0;
 
     for_entry_list(qp) {
        int matchcount = 0;
 
-       for_entry_list(rp)
+       for_entry_list(rp) {
            if (qp > rp
            if (qp > rp
-           && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
-           matchcount++;
-           if (matchcount == 1) {
-               (void) fprintf(stderr, "Name collision between %s",
-                   _nc_first_name(qp->tterm.term_names));
-               multiples++;
+               && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
+               matchcount++;
+               if (matchcount == 1) {
+                   (void) fprintf(stderr, "Name collision between %s",
+                                  _nc_first_name(qp->tterm.term_names));
+                   multiples++;
+               }
+               if (matchcount >= 1)
+                   (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
            }
            }
-           if (matchcount >= 1)
-               (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
        }
        if (matchcount >= 1)
            (void) putc('\n', stderr);
        }
        if (matchcount >= 1)
            (void) putc('\n', stderr);
@@ -264,14 +266,15 @@ _nc_resolve_uses(bool fullresolve)
            _nc_set_type(child);
 
            /* first, try to resolve from in-core records */
            _nc_set_type(child);
 
            /* first, try to resolve from in-core records */
-           for_entry_list(rp)
+           for_entry_list(rp) {
                if (rp != qp
                if (rp != qp
-               && _nc_name_match(rp->tterm.term_names, lookfor, "|")) {
-               DEBUG(2, ("%s: resolving use=%s (in core)",
-                       child, lookfor));
+                   && _nc_name_match(rp->tterm.term_names, lookfor, "|")) {
+                   DEBUG(2, ("%s: resolving use=%s (in core)",
+                             child, lookfor));
 
 
-               qp->uses[i].link = rp;
-               foundit = TRUE;
+                   qp->uses[i].link = rp;
+                   foundit = TRUE;
+               }
            }
 
            /* if that didn't work, try to merge in a compiled entry */
            }
 
            /* if that didn't work, try to merge in a compiled entry */
@@ -282,11 +285,11 @@ _nc_resolve_uses(bool fullresolve)
                memset(&thisterm, 0, sizeof(thisterm));
                if (_nc_read_entry(lookfor, filename, &thisterm) == 1) {
                    DEBUG(2, ("%s: resolving use=%s (compiled)",
                memset(&thisterm, 0, sizeof(thisterm));
                if (_nc_read_entry(lookfor, filename, &thisterm) == 1) {
                    DEBUG(2, ("%s: resolving use=%s (compiled)",
-                           child, lookfor));
+                             child, lookfor));
 
                    rp = typeMalloc(ENTRY, 1);
                    if (rp == 0)
 
                    rp = typeMalloc(ENTRY, 1);
                    if (rp == 0)
-                       _nc_err_abort("Out of memory");
+                       _nc_err_abort(MSG_NO_MEMORY);
                    rp->tterm = thisterm;
                    rp->nuses = 0;
                    rp->next = lastread;
                    rp->tterm = thisterm;
                    rp->nuses = 0;
                    rp->next = lastread;
@@ -317,8 +320,8 @@ _nc_resolve_uses(bool fullresolve)
     DEBUG(2, ("NAME RESOLUTION COMPLETED OK"));
 
     /*
     DEBUG(2, ("NAME RESOLUTION COMPLETED OK"));
 
     /*
-     * OK, at this point all (char *) references in `name' mwmbers
-     * have been successfully converred to (ENTRY *) pointers in
+     * OK, at this point all (char *) references in `name' members
+     * have been successfully converted to (ENTRY *) pointers in
      * `link' members.  Time to do the actual merges.
      */
     if (fullresolve) {
      * `link' members.  Time to do the actual merges.
      */
     if (fullresolve) {
@@ -330,7 +333,7 @@ _nc_resolve_uses(bool fullresolve)
            for_entry_list(qp) {
                if (qp->nuses > 0) {
                    DEBUG(2, ("%s: attempting merge",
            for_entry_list(qp) {
                if (qp->nuses > 0) {
                    DEBUG(2, ("%s: attempting merge",
-                           _nc_first_name(qp->tterm.term_names)));
+                             _nc_first_name(qp->tterm.term_names)));
                    /*
                     * If any of the use entries we're looking for is
                     * incomplete, punt.  We'll catch this entry on a
                    /*
                     * If any of the use entries we're looking for is
                     * incomplete, punt.  We'll catch this entry on a
@@ -339,7 +342,7 @@ _nc_resolve_uses(bool fullresolve)
                    for (i = 0; i < qp->nuses; i++)
                        if (qp->uses[i].link->nuses) {
                            DEBUG(2, ("%s: use entry %d unresolved",
                    for (i = 0; i < qp->nuses; i++)
                        if (qp->uses[i].link->nuses) {
                            DEBUG(2, ("%s: use entry %d unresolved",
-                                   _nc_first_name(qp->tterm.term_names), i));
+                                     _nc_first_name(qp->tterm.term_names), i));
                            goto incomplete;
                        }
 
                            goto incomplete;
                        }
 
@@ -357,7 +360,7 @@ _nc_resolve_uses(bool fullresolve)
                     */
                    for (; qp->nuses; qp->nuses--)
                        _nc_merge_entry(&merged,
                     */
                    for (; qp->nuses; qp->nuses--)
                        _nc_merge_entry(&merged,
-                           &qp->uses[qp->nuses - 1].link->tterm);
+                                       &qp->uses[qp->nuses - 1].link->tterm);
 
                    /*
                     * Now merge in the original entry.
 
                    /*
                     * Now merge in the original entry.
@@ -371,6 +374,7 @@ _nc_resolve_uses(bool fullresolve)
                    FreeIfNeeded(qp->tterm.Numbers);
                    FreeIfNeeded(qp->tterm.Strings);
                    qp->tterm = merged;
                    FreeIfNeeded(qp->tterm.Numbers);
                    FreeIfNeeded(qp->tterm.Strings);
                    qp->tterm = merged;
+                   _nc_wrap_entry(qp, TRUE);
 
                    /*
                     * We know every entry is resolvable because name resolution
 
                    /*
                     * We know every entry is resolvable because name resolution
@@ -392,15 +396,18 @@ _nc_resolve_uses(bool fullresolve)
         * entry there should be no cancellation markers.
         */
        for_entry_list(qp) {
         * entry there should be no cancellation markers.
         */
        for_entry_list(qp) {
-           for_each_boolean(j, &(qp->tterm))
-               if (qp->tterm.Booleans[j] == CANCELLED_BOOLEAN)
-               qp->tterm.Booleans[j] = ABSENT_BOOLEAN;
-           for_each_number(j, &(qp->tterm))
+           for_each_boolean(j, &(qp->tterm)) {
+               if ((int) qp->tterm.Booleans[j] == CANCELLED_BOOLEAN)
+                   qp->tterm.Booleans[j] = ABSENT_BOOLEAN;
+           }
+           for_each_number(j, &(qp->tterm)) {
                if (qp->tterm.Numbers[j] == CANCELLED_NUMERIC)
                if (qp->tterm.Numbers[j] == CANCELLED_NUMERIC)
-               qp->tterm.Numbers[j] = ABSENT_NUMERIC;
-           for_each_string(j, &(qp->tterm))
+                   qp->tterm.Numbers[j] = ABSENT_NUMERIC;
+           }
+           for_each_string(j, &(qp->tterm)) {
                if (qp->tterm.Strings[j] == CANCELLED_STRING)
                if (qp->tterm.Strings[j] == CANCELLED_STRING)
-               qp->tterm.Strings[j] = ABSENT_STRING;
+                   qp->tterm.Strings[j] = ABSENT_STRING;
+           }
        }
     }
 
        }
     }
 
@@ -444,20 +451,28 @@ sanity_check(TERMTYPE * tp)
        bool terminal_entry = !strchr(tp->term_names, '+');
        if (terminal_entry &&
            (PRESENT(set_attributes)
        bool terminal_entry = !strchr(tp->term_names, '+');
        if (terminal_entry &&
            (PRESENT(set_attributes)
-               || PRESENT(enter_standout_mode)
-               || PRESENT(enter_underline_mode)
-               || PRESENT(enter_blink_mode)
-               || PRESENT(enter_bold_mode)
-               || PRESENT(enter_dim_mode)
-               || PRESENT(enter_secure_mode)
-               || PRESENT(enter_protected_mode)
-               || PRESENT(enter_reverse_mode)))
+            || PRESENT(enter_standout_mode)
+            || PRESENT(enter_underline_mode)
+            || PRESENT(enter_blink_mode)
+            || PRESENT(enter_bold_mode)
+            || PRESENT(enter_dim_mode)
+            || PRESENT(enter_secure_mode)
+            || PRESENT(enter_protected_mode)
+            || PRESENT(enter_reverse_mode)))
            _nc_warning("no exit_attribute_mode");
 #endif /* __UNUSED__ */
            _nc_warning("no exit_attribute_mode");
 #endif /* __UNUSED__ */
-       PAIRED(enter_standout_mode, exit_standout_mode)
-           PAIRED(enter_underline_mode, exit_underline_mode)
+       PAIRED(enter_standout_mode, exit_standout_mode);
+       PAIRED(enter_underline_mode, exit_underline_mode);
     }
 
     }
 
+    /* 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);
+
     /* listed in structure-member order of first argument */
     PAIRED(enter_alt_charset_mode, exit_alt_charset_mode);
     ANDMISSING(enter_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);
@@ -479,6 +494,8 @@ sanity_check(TERMTYPE * tp)
     PAIRED(enter_xon_mode, exit_xon_mode);
     PAIRED(enter_am_mode, exit_am_mode);
     ANDMISSING(label_off, label_on);
     PAIRED(enter_xon_mode, exit_xon_mode);
     PAIRED(enter_am_mode, exit_am_mode);
     ANDMISSING(label_off, label_on);
+#ifdef remove_clock
     PAIRED(display_clock, remove_clock);
     PAIRED(display_clock, remove_clock);
+#endif
     ANDMISSING(set_color_pair, initialize_pair);
 }
     ANDMISSING(set_color_pair, initialize_pair);
 }
index e1118f6f9ea927188f41e6c1c468c4723b9c89eb..2c82b4b90baa16449710802e225b6c125d2cc6bb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -50,7 +50,7 @@
 #include <term_entry.h>
 #include <tic.h>
 
 #include <term_entry.h>
 #include <tic.h>
 
-MODULE_ID("$Id: comp_scan.c,v 1.47 2000/09/24 01:15:17 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.61 2002/09/07 20:04:09 tom Exp $")
 
 /*
  * Maximum length of string capability we'll accept before raising an error.
 
 /*
  * Maximum length of string capability we'll accept before raising an error.
@@ -60,14 +60,22 @@ MODULE_ID("$Id: comp_scan.c,v 1.47 2000/09/24 01:15:17 tom Exp $")
 
 #define iswhite(ch)    (ch == ' '  ||  ch == '\t')
 
 
 #define iswhite(ch)    (ch == ' '  ||  ch == '\t')
 
-int _nc_syntax = 0;            /* termcap or terminfo? */
-long _nc_curr_file_pos = 0;    /* file offset of current line */
-long _nc_comment_start = 0;    /* start of comment range before name */
-long _nc_comment_end = 0;      /* end of comment range before name */
-long _nc_start_line = 0;       /* start line of current entry */
-
-struct token _nc_curr_token =
-{0, 0, 0};
+NCURSES_EXPORT_VAR(int)
+_nc_syntax = 0;                        /* termcap or terminfo? */
+NCURSES_EXPORT_VAR(long)
+_nc_curr_file_pos = 0;         /* file offset of current line */
+NCURSES_EXPORT_VAR(long)
+_nc_comment_start = 0;         /* start of comment range before name */
+NCURSES_EXPORT_VAR(long)
+_nc_comment_end = 0;           /* end of comment range before name */
+NCURSES_EXPORT_VAR(long)
+_nc_start_line = 0;            /* start line of current entry */
+
+NCURSES_EXPORT_VAR(struct token)
+_nc_curr_token =
+{
+    0, 0, 0
+};
 
 /*****************************************************************************
  *
 
 /*****************************************************************************
  *
@@ -78,10 +86,11 @@ struct token _nc_curr_token =
 static bool first_column;      /* See 'next_char()' below */
 static char separator;         /* capability separator */
 static int pushtype;           /* type of pushback token */
 static bool first_column;      /* See 'next_char()' below */
 static char separator;         /* capability separator */
 static int pushtype;           /* type of pushback token */
-static char pushname[MAX_NAME_SIZE + 1];
+static char *pushname;
 
 #if NCURSES_EXT_FUNCS
 
 #if NCURSES_EXT_FUNCS
-bool _nc_disable_period = FALSE;       /* used by tic -a option */
+NCURSES_EXPORT_VAR(bool)
+_nc_disable_period = FALSE;    /* used by tic -a option */
 #endif
 
 static int last_char(void);
 #endif
 
 static int last_char(void);
@@ -133,30 +142,32 @@ eat_escaped_newline(int ch)
  *
  */
 
  *
  */
 
-int
-_nc_get_token(void)
+NCURSES_EXPORT(int)
+_nc_get_token(bool silent)
 {
     static const char terminfo_punct[] = "@%&*!#";
 {
     static const char terminfo_punct[] = "@%&*!#";
-    long number;
-    int type;
-    int ch;
+    static char *buffer;
+
     char *numchk;
     char *numchk;
-    char numbuf[80];
-    unsigned found;
-    static char buffer[MAX_ENTRY_SIZE];
     char *ptr;
     char *ptr;
+    char numbuf[80];
+    int ch;
     int dot_flag = FALSE;
     int dot_flag = FALSE;
+    int type;
+    long number;
     long token_start;
     long token_start;
+    unsigned found;
 
     if (pushtype != NO_PUSHBACK) {
        int retval = pushtype;
 
 
     if (pushtype != NO_PUSHBACK) {
        int retval = pushtype;
 
-       _nc_set_type(pushname);
+       _nc_set_type(pushname != 0 ? pushname : "");
        DEBUG(3, ("pushed-back token: `%s', class %d",
                  _nc_curr_token.tk_name, pushtype));
 
        pushtype = NO_PUSHBACK;
        DEBUG(3, ("pushed-back token: `%s', class %d",
                  _nc_curr_token.tk_name, pushtype));
 
        pushtype = NO_PUSHBACK;
-       pushname[0] = '\0';
+       if (pushname != 0)
+           pushname[0] = '\0';
 
        /* currtok wasn't altered by _nc_push_token() */
        return (retval);
 
        /* currtok wasn't altered by _nc_push_token() */
        return (retval);
@@ -202,12 +213,16 @@ _nc_get_token(void)
            && !(ch == '.' && _nc_disable_period)
 #endif
            && !strchr(terminfo_punct, (char) ch)) {
            && !(ch == '.' && _nc_disable_period)
 #endif
            && !strchr(terminfo_punct, (char) ch)) {
-           _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
-                       terminfo_punct, unctrl(ch));
+           if (!silent)
+               _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
+                           terminfo_punct, unctrl((chtype) ch));
            _nc_panic_mode(separator);
            goto start_token;
        }
 
            _nc_panic_mode(separator);
            goto start_token;
        }
 
+       if (buffer == 0)
+           buffer = typeMalloc(char, MAX_ENTRY_SIZE);
+
        ptr = buffer;
        *(ptr++) = ch;
 
        ptr = buffer;
        *(ptr++) = ch;
 
@@ -221,7 +236,7 @@ _nc_get_token(void)
            _nc_syntax = ERR;
            while ((ch = next_char()) != '\n') {
                if (ch == EOF)
            _nc_syntax = ERR;
            while ((ch = next_char()) != '\n') {
                if (ch == EOF)
-                   _nc_err_abort("premature EOF");
+                   _nc_err_abort(MSG_NO_MEMORY);
                else if (ch == ':' && last_char() != ',') {
                    _nc_syntax = SYN_TERMCAP;
                    separator = ':';
                else if (ch == ':' && last_char() != ',') {
                    _nc_syntax = SYN_TERMCAP;
                    separator = ':';
@@ -230,13 +245,11 @@ _nc_get_token(void)
                    _nc_syntax = SYN_TERMINFO;
                    separator = ',';
                    /*
                    _nc_syntax = SYN_TERMINFO;
                    separator = ',';
                    /*
-                    * Fall-through here is not an accident.
-                    * The idea is that if we see a comma, we
-                    * figure this is terminfo unless we
-                    * subsequently run into a colon -- but
-                    * we don't stop looking for that colon until
-                    * hitting a newline.  This allows commas to
-                    * be embedded in description fields of
+                    * Fall-through here is not an accident.  The idea is that
+                    * if we see a comma, we figure this is terminfo unless we
+                    * subsequently run into a colon -- but we don't stop
+                    * looking for that colon until hitting a newline.  This
+                    * allows commas to be embedded in description fields of
                     * either syntax.
                     */
                    /* FALLTHRU */
                     * either syntax.
                     */
                    /* FALLTHRU */
@@ -248,11 +261,10 @@ _nc_get_token(void)
            ptr[0] = '\0';
            if (_nc_syntax == ERR) {
                /*
            ptr[0] = '\0';
            if (_nc_syntax == ERR) {
                /*
-                * Grrr...what we ought to do here is barf,
-                * complaining that the entry is malformed.
-                * But because a couple of name fields in the
-                * 8.2 termcap file end with |\, we just have
-                * to assume it's termcap syntax.
+                * Grrr...what we ought to do here is barf, complaining that
+                * the entry is malformed.  But because a couple of name fields
+                * in the 8.2 termcap file end with |\, we just have to assume
+                * it's termcap syntax.
                 */
                _nc_syntax = SYN_TERMCAP;
                separator = ':';
                 */
                _nc_syntax = SYN_TERMCAP;
                separator = ':';
@@ -264,8 +276,8 @@ _nc_get_token(void)
            }
 
            /*
            }
 
            /*
-            * This is the soonest we have the terminal name
-            * fetched.  Set up for following warning messages.
+            * This is the soonest we have the terminal name fetched.  Set up
+            * for following warning messages.
             */
            ptr = strchr(buffer, '|');
            if (ptr == (char *) NULL)
             */
            ptr = strchr(buffer, '|');
            if (ptr == (char *) NULL)
@@ -276,11 +288,11 @@ _nc_get_token(void)
            *ptr = ch;
 
            /*
            *ptr = ch;
 
            /*
-            * Compute the boundary between the aliases and the
-            * description field for syntax-checking purposes.
+            * Compute the boundary between the aliases and the description
+            * field for syntax-checking purposes.
             */
            desc = strrchr(buffer, '|');
             */
            desc = strrchr(buffer, '|');
-           if (desc) {
+           if (!silent && desc) {
                if (*desc == '\0')
                    _nc_warning("empty longname field");
                else if (strchr(desc, ' ') == (char *) NULL)
                if (*desc == '\0')
                    _nc_warning("empty longname field");
                else if (strchr(desc, ' ') == (char *) NULL)
@@ -290,20 +302,22 @@ _nc_get_token(void)
                desc = buffer + strlen(buffer);
 
            /*
                desc = buffer + strlen(buffer);
 
            /*
-            * Whitespace in a name field other than the long name
-            * can confuse rdist and some termcap tools.  Slashes
-            * are a no-no.  Other special characters can be
-            * dangerous due to shell expansion.
+            * Whitespace in a name field other than the long name can confuse
+            * rdist and some termcap tools.  Slashes are a no-no.  Other
+            * special characters can be dangerous due to shell expansion.
             */
            for (ptr = buffer; ptr < desc; ptr++) {
             */
            for (ptr = buffer; ptr < desc; ptr++) {
-               if (isspace(*ptr)) {
-                   _nc_warning("whitespace in name or alias field");
+               if (isspace(UChar(*ptr))) {
+                   if (!silent)
+                       _nc_warning("whitespace in name or alias field");
                    break;
                } else if (*ptr == '/') {
                    break;
                } else if (*ptr == '/') {
-                   _nc_warning("slashes aren't allowed in names or aliases");
+                   if (!silent)
+                       _nc_warning("slashes aren't allowed in names or aliases");
                    break;
                } else if (strchr("$[]!*?", *ptr)) {
                    break;
                } else if (strchr("$[]!*?", *ptr)) {
-                   _nc_warning("dubious character `%c' in name or alias field", *ptr);
+                   if (!silent)
+                       _nc_warning("dubious character `%c' in name or alias field", *ptr);
                    break;
                }
            }
                    break;
                }
            }
@@ -336,9 +350,9 @@ _nc_get_token(void)
                type = BOOLEAN;
                break;
            case '@':
                type = BOOLEAN;
                break;
            case '@':
-               if ((ch = next_char()) != separator)
+               if ((ch = next_char()) != separator && !silent)
                    _nc_warning("Missing separator after `%s', have %s",
                    _nc_warning("Missing separator after `%s', have %s",
-                               buffer, unctrl(ch));
+                               buffer, unctrl((chtype) ch));
                _nc_curr_token.tk_name = buffer;
                type = CANCEL;
                break;
                _nc_curr_token.tk_name = buffer;
                type = CANCEL;
                break;
@@ -352,18 +366,20 @@ _nc_get_token(void)
                }
                numbuf[found] = '\0';
                number = strtol(numbuf, &numchk, 0);
                }
                numbuf[found] = '\0';
                number = strtol(numbuf, &numchk, 0);
-               if (numchk == numbuf)
-                   _nc_warning("no value given for `%s'", buffer);
-               if ((*numchk != '\0') || (ch != separator))
-                   _nc_warning("Missing separator");
+               if (!silent) {
+                   if (numchk == numbuf)
+                       _nc_warning("no value given for `%s'", buffer);
+                   if ((*numchk != '\0') || (ch != separator))
+                       _nc_warning("Missing separator");
+               }
                _nc_curr_token.tk_name = buffer;
                _nc_curr_token.tk_valnumber = number;
                type = NUMBER;
                break;
 
            case '=':
                _nc_curr_token.tk_name = buffer;
                _nc_curr_token.tk_valnumber = number;
                type = NUMBER;
                break;
 
            case '=':
-               ch = _nc_trans_string(ptr, buffer + sizeof(buffer));
-               if (ch != separator)
+               ch = _nc_trans_string(ptr, buffer + MAX_ENTRY_SIZE);
+               if (!silent && ch != separator)
                    _nc_warning("Missing separator");
                _nc_curr_token.tk_name = buffer;
                _nc_curr_token.tk_valstring = ptr;
                    _nc_warning("Missing separator");
                _nc_curr_token.tk_name = buffer;
                _nc_curr_token.tk_valstring = ptr;
@@ -376,7 +392,8 @@ _nc_get_token(void)
            default:
                /* just to get rid of the compiler warning */
                type = UNDEF;
            default:
                /* just to get rid of the compiler warning */
                type = UNDEF;
-               _nc_warning("Illegal character - %s", unctrl(ch));
+               if (!silent)
+                   _nc_warning("Illegal character - %s", unctrl((chtype) ch));
            }
        }                       /* end else (first_column == FALSE) */
     }                          /* end else (ch != EOF) */
            }
        }                       /* end else (first_column == FALSE) */
     }                          /* end else (ch != EOF) */
@@ -428,9 +445,12 @@ _nc_get_token(void)
 #endif
 
     if (dot_flag == TRUE)      /* if commented out, use the next one */
 #endif
 
     if (dot_flag == TRUE)      /* if commented out, use the next one */
-       type = _nc_get_token();
+       type = _nc_get_token(silent);
 
 
-    DEBUG(3, ("token: `%s', class %d", _nc_curr_token.tk_name, type));
+    DEBUG(3, ("token: `%s', class %d",
+             _nc_curr_token.tk_name != 0 ? _nc_curr_token.tk_name :
+             "<null>",
+             type));
 
     return (type);
 }
 
     return (type);
 }
@@ -454,11 +474,11 @@ _nc_get_token(void)
  *
  */
 
  *
  */
 
-char
+NCURSES_EXPORT(char)
 _nc_trans_string(char *ptr, char *last)
 {
     int count = 0;
 _nc_trans_string(char *ptr, char *last)
 {
     int count = 0;
-    int number;
+    int number = 0;
     int i, c;
     chtype ch, last_ch = '\0';
     bool ignored = FALSE;
     int i, c;
     chtype ch, last_ch = '\0';
     bool ignored = FALSE;
@@ -472,7 +492,7 @@ _nc_trans_string(char *ptr, char *last)
        if (ch == '^' && last_ch != '%') {
            ch = c = next_char();
            if (c == EOF)
        if (ch == '^' && last_ch != '%') {
            ch = c = next_char();
            if (c == EOF)
-               _nc_err_abort("Premature EOF");
+               _nc_err_abort(MSG_NO_INPUTS);
 
            if (!(is7bits(ch) && isprint(ch))) {
                _nc_warning("Illegal ^ character - %s", unctrl(ch));
 
            if (!(is7bits(ch) && isprint(ch))) {
                _nc_warning("Illegal ^ character - %s", unctrl(ch));
@@ -489,14 +509,14 @@ _nc_trans_string(char *ptr, char *last)
        } else if (ch == '\\') {
            ch = c = next_char();
            if (c == EOF)
        } else if (ch == '\\') {
            ch = c = next_char();
            if (c == EOF)
-               _nc_err_abort("Premature EOF");
+               _nc_err_abort(MSG_NO_INPUTS);
 
            if (ch >= '0' && ch <= '7') {
                number = ch - '0';
                for (i = 0; i < 2; i++) {
                    ch = c = next_char();
                    if (c == EOF)
 
            if (ch >= '0' && ch <= '7') {
                number = ch - '0';
                for (i = 0; i < 2; i++) {
                    ch = c = next_char();
                    if (c == EOF)
-                       _nc_err_abort("Premature EOF");
+                       _nc_err_abort(MSG_NO_INPUTS);
 
                    if (c < '0' || c > '7') {
                        if (isdigit(c)) {
 
                    if (c < '0' || c > '7') {
                        if (isdigit(c)) {
@@ -608,16 +628,18 @@ _nc_trans_string(char *ptr, char *last)
  *     get_token() call.
  */
 
  *     get_token() call.
  */
 
-void
+NCURSES_EXPORT(void)
 _nc_push_token(int tokclass)
 {
     /*
 _nc_push_token(int tokclass)
 {
     /*
-     * This implementation is kind of bogus, it will fail if we ever do
-     * more than one pushback at a time between get_token() calls.  It
-     * relies on the fact that curr_tok is static storage that nothing
-     * but get_token() touches.
+     * This implementation is kind of bogus, it will fail if we ever do more
+     * than one pushback at a time between get_token() calls.  It relies on the
+     * fact that _nc_curr_token is static storage that nothing but
+     * _nc_get_token() touches.
      */
     pushtype = tokclass;
      */
     pushtype = tokclass;
+    if (pushname == 0)
+       pushname = typeMalloc(char, MAX_NAME_SIZE + 1);
     _nc_get_type(pushname);
 
     DEBUG(3, ("pushing token: `%s', class %d",
     _nc_get_type(pushname);
 
     DEBUG(3, ("pushing token: `%s', class %d",
@@ -627,7 +649,7 @@ _nc_push_token(int tokclass)
 /*
  * Panic mode error recovery - skip everything until a "ch" is found.
  */
 /*
  * Panic mode error recovery - skip everything until a "ch" is found.
  */
-void
+NCURSES_EXPORT(void)
 _nc_panic_mode(char ch)
 {
     int c;
 _nc_panic_mode(char ch)
 {
     int c;
@@ -661,11 +683,12 @@ static FILE *yyin;                /* scanner's input file descriptor */
  *     non-null.
  */
 
  *     non-null.
  */
 
-void
+NCURSES_EXPORT(void)
 _nc_reset_input(FILE * fp, char *buf)
 {
     pushtype = NO_PUSHBACK;
 _nc_reset_input(FILE * fp, char *buf)
 {
     pushtype = NO_PUSHBACK;
-    pushname[0] = '\0';
+    if (pushname != 0)
+       pushname[0] = '\0';
     yyin = fp;
     bufstart = bufptr = buf;
     _nc_curr_file_pos = 0L;
     yyin = fp;
     bufstart = bufptr = buf;
     _nc_curr_file_pos = 0L;
@@ -684,7 +707,7 @@ last_char(void)
 {
     size_t len = strlen(bufptr);
     while (len--) {
 {
     size_t len = strlen(bufptr);
     while (len--) {
-       if (!isspace(bufptr[len]))
+       if (!isspace(UChar(bufptr[len])))
            return bufptr[len];
     }
     return 0;
            return bufptr[len];
     }
     return 0;
@@ -708,6 +731,10 @@ static int
 next_char(void)
 {
     if (!yyin) {
 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') {
        if (*bufptr == '\0')
            return (EOF);
        if (*bufptr == '\n') {
@@ -716,52 +743,61 @@ next_char(void)
        }
     } else if (!bufptr || !*bufptr) {
        /*
        }
     } 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.
+        * 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 line[LEXBUFSIZ];
+       static char *result;
+       static size_t allocated;
+       size_t used;
        size_t len;
 
        do {
        size_t len;
 
        do {
-           _nc_curr_file_pos = ftell(yyin);
-
-           if ((bufstart = fgets(line, LEXBUFSIZ, yyin)) != NULL) {
-               _nc_curr_line++;
-               _nc_curr_col = 0;
-           }
-           bufptr = bufstart;
-       } while
-           (bufstart != NULL && line[0] == '#');
-
-       if (bufstart == NULL || *bufstart == 0)
-           return (EOF);
-
-       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';
-           }
-       }
+           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) != NULL) {
+                   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++;
 
 
-       /*
-        * If we don't have a trailing newline, it's because the line is simply
-        * too long.  Give up.  (FIXME:  We could instead reallocate the line
-        * buffer and allow arbitrary-length lines).
-        */
-       if (len == 0 || (bufptr[len - 1] != '\n'))
-           return (EOF);
+                   /*
+                    * 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);
     }
 
     first_column = (bufptr == bufstart);
@@ -793,5 +829,3 @@ end_of_stream(void)
     return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
            ? TRUE : FALSE);
 }
     return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
            ? TRUE : FALSE);
 }
-
-/* comp_scan.c ends here */
index 84471fb6b20cc56df746b7712af3e38f7ea657c3..fe2a009d19b474dbc5b46e28cebcbe9bd18d4ce3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,6 @@
  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
  ****************************************************************************/
 
  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
  ****************************************************************************/
 
-
 /*
  * Wrapper for malloc/realloc.  Standard implementations allow realloc with
  * a null pointer, but older libraries may not (e.g., SunOS).
 /*
  * Wrapper for malloc/realloc.  Standard implementations allow realloc with
  * a null pointer, but older libraries may not (e.g., SunOS).
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: doalloc.c,v 1.5 1999/03/14 12:25:27 tom Exp $")
+MODULE_ID("$Id: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $")
 
 
-void *_nc_doalloc(void *oldp, size_t amount)
+NCURSES_EXPORT(void *)
+_nc_doalloc(void *oldp, size_t amount)
 {
 {
-       void *newp;
+    void *newp;
 
 
-       if (oldp != 0) {
-               if ((newp = realloc(oldp, amount)) == 0) {
-                       free(oldp);
-                       errno = ENOMEM;         /* just in case 'free' reset */
-               }
-       } else {
-               newp = typeMalloc(char, amount);
+    if (oldp != 0) {
+       if ((newp = realloc(oldp, amount)) == 0) {
+           free(oldp);
+           errno = ENOMEM;     /* just in case 'free' reset */
        }
        }
-       return newp;
+    } else {
+       newp = malloc(amount);
+    }
+    return newp;
 }
 
 #if !HAVE_STRDUP
 }
 
 #if !HAVE_STRDUP
-char *_nc_strdup(const char *src)
+NCURSES_EXPORT(char *)
+_nc_strdup(const char *src)
 {
     char *dst;
     if (src != 0) {
        dst = typeMalloc(char, strlen(src) + 1);
        if (dst != 0) {
 {
     char *dst;
     if (src != 0) {
        dst = typeMalloc(char, strlen(src) + 1);
        if (dst != 0) {
-           (void)strcpy(dst, src);
+           (void) strcpy(dst, src);
        }
     } else {
        dst = 0;
        }
     } else {
        dst = 0;
index aba1aeb9d82f0f05f4517be37644d59e6ee79f20..b8b9c592037dae13ff9744a287391a72cc65e8a1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,6 @@
  *  Author: Thomas E. Dickey <dickey@clark.net> 1999                        *
  ****************************************************************************/
 
  *  Author: Thomas E. Dickey <dickey@clark.net> 1999                        *
  ****************************************************************************/
 
-
 /*
  * free_ttype.c -- allocation functions for TERMTYPE
  *
 /*
  * free_ttype.c -- allocation functions for TERMTYPE
  *
 #include <tic.h>
 #include <term_entry.h>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: free_ttype.c,v 1.5 2000/07/08 00:43:58 tom Exp $")
+MODULE_ID("$Id: free_ttype.c,v 1.8 2002/09/01 20:29:03 tom Exp $")
 
 
-void _nc_free_termtype(TERMTYPE *ptr)
+NCURSES_EXPORT(void)
+_nc_free_termtype(TERMTYPE * ptr)
 {
     FreeIfNeeded(ptr->str_table);
 {
     FreeIfNeeded(ptr->str_table);
-    FreeIfNeeded(ptr->term_names);
     FreeIfNeeded(ptr->Booleans);
     FreeIfNeeded(ptr->Numbers);
     FreeIfNeeded(ptr->Strings);
     FreeIfNeeded(ptr->Booleans);
     FreeIfNeeded(ptr->Numbers);
     FreeIfNeeded(ptr->Strings);
@@ -61,9 +60,10 @@ void _nc_free_termtype(TERMTYPE *ptr)
 }
 
 #if NCURSES_XNAMES
 }
 
 #if NCURSES_XNAMES
-bool _nc_user_definable = TRUE;
+NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
 
 
-int use_extended_names(bool flag)
+NCURSES_EXPORT(int)
+use_extended_names(bool flag)
 {
     int oldflag = _nc_user_definable;
     _nc_user_definable = flag;
 {
     int oldflag = _nc_user_definable;
     _nc_user_definable = flag;
index 62944048175ac90024ba7dba1b6d056d372b9e4b..a90cc08d297ca89d61fdd5eebe5c6933f4a2b0bd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: getenv_num.c,v 1.1 1998/09/19 21:30:23 tom Exp $")
+MODULE_ID("$Id: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 _nc_getenv_num(const char *name)
 {
 _nc_getenv_num(const char *name)
 {
-       char *dst = 0;
-       char *src = getenv(name);
-       long value;
+    char *dst = 0;
+    char *src = getenv(name);
+    long value;
 
 
-       if ((src == 0)
-        || (value = strtol(src, &dst, 0)) < 0
-        || (dst == src)
-        || (*dst != '\0')
-        || (int)value < value)
-               value = -1;
+    if ((src == 0)
+       || (value = strtol(src, &dst, 0)) < 0
+       || (dst == src)
+       || (*dst != '\0')
+       || (int) value < value)
+       value = -1;
 
 
-       return (int) value;
+    return (int) value;
 }
 }
index 69b8a96ffcff745a0ce855cf1a54b7869b63312d..ad2f5f6e5bcdceee653a82595ada3aa726580e9a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <tic.h>
 
 #include <curses.priv.h>
 #include <tic.h>
 
-MODULE_ID("$Id: home_terminfo.c,v 1.3 2000/10/04 02:31:53 tom Exp $");
+MODULE_ID("$Id: home_terminfo.c,v 1.7 2002/09/07 20:04:51 tom Exp $")
 
 #define my_length (strlen(home) + sizeof(PRIVATE_INFO))
 
 /* ncurses extension...fall back on user's private directory */
 
 
 #define my_length (strlen(home) + sizeof(PRIVATE_INFO))
 
 /* ncurses extension...fall back on user's private directory */
 
-char *
+NCURSES_EXPORT(char *)
 _nc_home_terminfo(void)
 {
     char *home;
 _nc_home_terminfo(void)
 {
     char *home;
@@ -55,7 +55,7 @@ _nc_home_terminfo(void)
                && my_length <= PATH_MAX) {
                temp = typeMalloc(char, my_length);
                if (temp == 0)
                && my_length <= PATH_MAX) {
                temp = typeMalloc(char, my_length);
                if (temp == 0)
-                   _nc_err_abort("Out of memory");
+                   _nc_err_abort(MSG_NO_MEMORY);
                (void) sprintf(temp, PRIVATE_INFO, home);
            }
        }
                (void) sprintf(temp, PRIVATE_INFO, home);
            }
        }
index 1134480f8def9fc423c0666770ae98ab6471c6c5..cf840e8e93b35dbe0c27bd09d3c02f8f5a94f8e6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-#include <term.h>      /* keypad_xmit, keypad_local, meta_on, meta_off */
+#include <term.h>              /* keypad_xmit, keypad_local, meta_on, meta_off */
                        /* cursor_visible,cursor_normal,cursor_invisible */
                        /* cursor_visible,cursor_normal,cursor_invisible */
-#include <tic.h>       /* struct tinfo_fkeys */
+#include <tic.h>               /* struct tinfo_fkeys */
 
 
-MODULE_ID("$Id: init_keytry.c,v 1.3 2000/03/12 02:55:50 Todd.C.Miller Exp $")
+MODULE_ID("$Id: init_keytry.c,v 1.5 2000/12/10 02:55:07 tom Exp $")
 
 /*
 **      _nc_init_keytry()
 
 /*
 **      _nc_init_keytry()
@@ -52,27 +52,29 @@ MODULE_ID("$Id: init_keytry.c,v 1.3 2000/03/12 02:55:50 Todd.C.Miller Exp $")
 #endif*/
 
 #if    BROKEN_LINKER
 #endif*/
 
 #if    BROKEN_LINKER
-struct tinfo_fkeys *_nc_tinfo_fkeysf(void)
+struct tinfo_fkeys *
+_nc_tinfo_fkeysf(void)
 {
 {
-       return _nc_tinfo_fkeys;
+    return _nc_tinfo_fkeys;
 }
 #endif
 
 }
 #endif
 
-void _nc_init_keytry(void)
+NCURSES_EXPORT(void)
+_nc_init_keytry(void)
 {
 {
-       size_t n;
+    size_t n;
 
 
-       /* The SP->_keytry value is initialized in newterm(), where the SP
-        * structure is created, because we can not tell where keypad() or
-        * mouse_activate() (which will call keyok()) are first called.
-        */
+    /* The SP->_keytry value is initialized in newterm(), where the SP
+     * structure is created, because we can not tell where keypad() or
+     * 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);
+    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);
 #ifdef TRACE
 #ifdef TRACE
-       _nc_trace_tries(SP->_keytry);
+    _nc_trace_tries(SP->_keytry);
 #endif
 }
 #endif
 }
diff --git a/ncurses/tinfo/keys.list b/ncurses/tinfo/keys.list
deleted file mode 100644 (file)
index c11300b..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# $Id: keys.list,v 1.5 1997/10/25 21:05:24 tom Exp $
-# The first column is the #define symbol that is in curses.h
-# The second column is the term.h symbol, for terminfo
-# Not all keycodes have corresponding terminfo capabilities.
-KEY_A1         key_a1 
-KEY_A3         key_a3 
-KEY_B2         key_b2 
-KEY_BACKSPACE  key_backspace 
-KEY_BEG                key_beg 
-KEY_BREAK
-KEY_BTAB       key_btab 
-KEY_C1         key_c1 
-KEY_C3         key_c3 
-KEY_CANCEL     key_cancel 
-KEY_CATAB      key_catab 
-KEY_CLEAR      key_clear 
-KEY_CLOSE      key_close 
-KEY_COMMAND    key_command 
-KEY_COPY       key_copy 
-KEY_CREATE     key_create 
-KEY_CTAB       key_ctab 
-KEY_DC         key_dc 
-KEY_DL         key_dl 
-KEY_DOWN       key_down 
-KEY_EIC                key_eic 
-KEY_END                key_end 
-KEY_ENTER      key_enter 
-KEY_EOL                key_eol 
-KEY_EOS                key_eos 
-KEY_EXIT       key_exit 
-KEY_F(0)       key_f0 
-KEY_F(1)       key_f1 
-KEY_F(10)      key_f10 
-KEY_F(11)      key_f11 
-KEY_F(12)      key_f12 
-KEY_F(13)      key_f13 
-KEY_F(14)      key_f14 
-KEY_F(15)      key_f15 
-KEY_F(16)      key_f16 
-KEY_F(17)      key_f17 
-KEY_F(18)      key_f18 
-KEY_F(19)      key_f19 
-KEY_F(2)       key_f2 
-KEY_F(20)      key_f20 
-KEY_F(21)      key_f21 
-KEY_F(22)      key_f22 
-KEY_F(23)      key_f23 
-KEY_F(24)      key_f24 
-KEY_F(25)      key_f25 
-KEY_F(26)      key_f26 
-KEY_F(27)      key_f27 
-KEY_F(28)      key_f28 
-KEY_F(29)      key_f29 
-KEY_F(3)       key_f3 
-KEY_F(30)      key_f30 
-KEY_F(31)      key_f31 
-KEY_F(32)      key_f32 
-KEY_F(33)      key_f33 
-KEY_F(34)      key_f34 
-KEY_F(35)      key_f35 
-KEY_F(36)      key_f36 
-KEY_F(37)      key_f37 
-KEY_F(38)      key_f38 
-KEY_F(39)      key_f39 
-KEY_F(4)       key_f4 
-KEY_F(40)      key_f40 
-KEY_F(41)      key_f41 
-KEY_F(42)      key_f42 
-KEY_F(43)      key_f43 
-KEY_F(44)      key_f44 
-KEY_F(45)      key_f45 
-KEY_F(46)      key_f46 
-KEY_F(47)      key_f47 
-KEY_F(48)      key_f48 
-KEY_F(49)      key_f49 
-KEY_F(5)       key_f5 
-KEY_F(50)      key_f50 
-KEY_F(51)      key_f51 
-KEY_F(52)      key_f52 
-KEY_F(53)      key_f53 
-KEY_F(54)      key_f54 
-KEY_F(55)      key_f55 
-KEY_F(56)      key_f56 
-KEY_F(57)      key_f57 
-KEY_F(58)      key_f58 
-KEY_F(59)      key_f59 
-KEY_F(6)       key_f6 
-KEY_F(60)      key_f60 
-KEY_F(61)      key_f61 
-KEY_F(62)      key_f62 
-KEY_F(63)      key_f63 
-KEY_F(7)       key_f7 
-KEY_F(8)       key_f8 
-KEY_F(9)       key_f9 
-KEY_FIND       key_find 
-KEY_HELP       key_help 
-KEY_HOME       key_home 
-KEY_IC         key_ic 
-KEY_IL         key_il 
-KEY_LEFT       key_left 
-KEY_LL         key_ll 
-KEY_MARK       key_mark 
-KEY_MESSAGE    key_message 
-KEY_MOUSE      key_mouse 
-KEY_MOVE       key_move 
-KEY_NEXT       key_next 
-KEY_NPAGE      key_npage 
-KEY_OPEN       key_open 
-KEY_OPTIONS    key_options 
-KEY_PPAGE      key_ppage 
-KEY_PREVIOUS   key_previous 
-KEY_PRINT      key_print 
-KEY_REDO       key_redo 
-KEY_REFERENCE  key_reference 
-KEY_REFRESH    key_refresh 
-KEY_REPLACE    key_replace 
-KEY_RESET
-KEY_RESIZE
-KEY_RESTART    key_restart 
-KEY_RESUME     key_resume 
-KEY_RIGHT      key_right 
-KEY_SAVE       key_save 
-KEY_SBEG       key_sbeg 
-KEY_SCANCEL    key_scancel 
-KEY_SCOMMAND   key_scommand 
-KEY_SCOPY      key_scopy 
-KEY_SCREATE    key_screate 
-KEY_SDC                key_sdc 
-KEY_SDL                key_sdl 
-KEY_SELECT     key_select 
-KEY_SEND       key_send 
-KEY_SEOL       key_seol 
-KEY_SEXIT      key_sexit 
-KEY_SF         key_sf 
-KEY_SFIND      key_sfind 
-KEY_SHELP      key_shelp 
-KEY_SHOME      key_shome 
-KEY_SIC                key_sic 
-KEY_SLEFT      key_sleft 
-KEY_SMESSAGE   key_smessage 
-KEY_SMOVE      key_smove 
-KEY_SNEXT      key_snext 
-KEY_SOPTIONS   key_soptions 
-KEY_SPREVIOUS  key_sprevious 
-KEY_SPRINT     key_sprint 
-KEY_SR         key_sr 
-KEY_SREDO      key_sredo 
-KEY_SREPLACE   key_sreplace 
-KEY_SRESET
-KEY_SRIGHT     key_sright 
-KEY_SRSUME     key_srsume 
-KEY_SSAVE      key_ssave 
-KEY_SSUSPEND   key_ssuspend 
-KEY_STAB       key_stab 
-KEY_SUNDO      key_sundo 
-KEY_SUSPEND    key_suspend 
-KEY_UNDO       key_undo 
-KEY_UP         key_up 
index 6f07791574130dd471fa3d698ab31f29329793a2..ba35ab70b0bd5d6e49d12726de3c87fb63118866 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 #include <curses.priv.h>
 #include <curses.priv.h>
-#include <term.h>      /* ena_acs, acs_chars */
+#include <term.h>              /* ena_acs, acs_chars */
 
 
-MODULE_ID("$Id: lib_acs.c,v 1.16 1999/10/30 23:00:16 tom Exp $")
+MODULE_ID("$Id: lib_acs.c,v 1.22 2002/09/01 19:26:57 tom Exp $")
 
 
-chtype acs_map[ACS_LEN] = { 0 };
-
-void _nc_init_acs(void)
+#if BROKEN_LINKER
+NCURSES_EXPORT_VAR(chtype *)
+_nc_acs_map(void)
+{
+    static chtype *the_map = 0;
+    if (the_map == 0)
+       the_map = typeCalloc(chtype, ACS_LEN);
+    return the_map;
+}
+#else
+NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
 {
 {
-       T(("initializing ACS map"));
+    0
+};
+#endif
 
 
-       /*
-        * Initializations for a UNIX-like multi-terminal environment.  Use
-        * ASCII chars and count on the terminfo description to do better.
-        */
-       ACS_ULCORNER = '+';     /* should be upper left corner */
-       ACS_LLCORNER = '+';     /* should be lower left corner */
-       ACS_URCORNER = '+';     /* should be upper right corner */
-       ACS_LRCORNER = '+';     /* should be lower right corner */
-       ACS_RTEE     = '+';     /* should be tee pointing left */
-       ACS_LTEE     = '+';     /* should be tee pointing right */
-       ACS_BTEE     = '+';     /* should be tee pointing up */
-       ACS_TTEE     = '+';     /* should be tee pointing down */
-       ACS_HLINE    = '-';     /* should be horizontal line */
-       ACS_VLINE    = '|';     /* should be vertical line */
-       ACS_PLUS     = '+';     /* should be large plus or crossover */
-       ACS_S1       = '~';     /* should be scan line 1 */
-       ACS_S9       = '_';     /* should be scan line 9 */
-       ACS_DIAMOND  = '+';     /* should be diamond */
-       ACS_CKBOARD  = ':';     /* should be checker board (stipple) */
-       ACS_DEGREE   = '\'';    /* should be degree symbol */
-       ACS_PLMINUS  = '#';     /* should be plus/minus */
-       ACS_BULLET   = 'o';     /* should be bullet */
-       ACS_LARROW   = '<';     /* should be arrow pointing left */
-       ACS_RARROW   = '>';     /* should be arrow pointing right */
-       ACS_DARROW   = 'v';     /* should be arrow pointing down */
-       ACS_UARROW   = '^';     /* should be arrow pointing up */
-       ACS_BOARD    = '#';     /* should be board of squares */
-       ACS_LANTERN  = '#';     /* should be lantern symbol */
-       ACS_BLOCK    = '#';     /* should be solid square block */
-       /* these defaults were invented for ncurses */
-       ACS_S3       = '-';     /* should be scan line 3 */
-       ACS_S7       = '-';     /* should be scan line 7 */
-       ACS_LEQUAL   = '<';     /* should be less-than-or-equal-to */
-       ACS_GEQUAL   = '>';     /* should be greater-than-or-equal-to */
-       ACS_PI       = '*';     /* should be greek pi */
-        ACS_NEQUAL   = '!';    /* should be not-equal */
-        ACS_STERLING = 'f';    /* should be pound-sterling symbol */
+NCURSES_EXPORT(void)
+_nc_init_acs(void)
+{
+    T(("initializing ACS map"));
+#if !BROKEN_LINKER
+    memset(acs_map, 0, sizeof(acs_map));
+#endif
 
 
-       if (ena_acs != NULL)
-       {
-               TPUTS_TRACE("ena_acs");
-               putp(ena_acs);
-       }
+    /*
+     * Initializations for a UNIX-like multi-terminal environment.  Use
+     * ASCII chars and count on the terminfo description to do better.
+     */
+    ACS_ULCORNER = '+';                /* should be upper left corner */
+    ACS_LLCORNER = '+';                /* should be lower left corner */
+    ACS_URCORNER = '+';                /* should be upper right corner */
+    ACS_LRCORNER = '+';                /* should be lower right corner */
+    ACS_RTEE = '+';            /* should be tee pointing left */
+    ACS_LTEE = '+';            /* should be tee pointing right */
+    ACS_BTEE = '+';            /* should be tee pointing up */
+    ACS_TTEE = '+';            /* should be tee pointing down */
+    ACS_HLINE = '-';           /* should be horizontal line */
+    ACS_VLINE = '|';           /* should be vertical line */
+    ACS_PLUS = '+';            /* should be large plus or crossover */
+    ACS_S1 = '~';              /* should be scan line 1 */
+    ACS_S9 = '_';              /* should be scan line 9 */
+    ACS_DIAMOND = '+';         /* should be diamond */
+    ACS_CKBOARD = ':';         /* should be checker board (stipple) */
+    ACS_DEGREE = '\'';         /* should be degree symbol */
+    ACS_PLMINUS = '#';         /* should be plus/minus */
+    ACS_BULLET = 'o';          /* should be bullet */
+    ACS_LARROW = '<';          /* should be arrow pointing left */
+    ACS_RARROW = '>';          /* should be arrow pointing right */
+    ACS_DARROW = 'v';          /* should be arrow pointing down */
+    ACS_UARROW = '^';          /* should be arrow pointing up */
+    ACS_BOARD = '#';           /* should be board of squares */
+    ACS_LANTERN = '#';         /* should be lantern symbol */
+    ACS_BLOCK = '#';           /* should be solid square block */
+    /* these defaults were invented for ncurses */
+    ACS_S3 = '-';              /* should be scan line 3 */
+    ACS_S7 = '-';              /* should be scan line 7 */
+    ACS_LEQUAL = '<';          /* should be less-than-or-equal-to */
+    ACS_GEQUAL = '>';          /* should be greater-than-or-equal-to */
+    ACS_PI = '*';              /* should be greek pi */
+    ACS_NEQUAL = '!';          /* should be not-equal */
+    ACS_STERLING = 'f';                /* should be pound-sterling symbol */
 
 
+    if (ena_acs != NULL) {
+       TPUTS_TRACE("ena_acs");
+       putp(ena_acs);
+    }
 #define ALTCHAR(c)     ((chtype)(((unsigned char)(c)) | A_ALTCHARSET))
 
 #define ALTCHAR(c)     ((chtype)(((unsigned char)(c)) | A_ALTCHARSET))
 
-       if (acs_chars != NULL) {
-           size_t i = 0;
-           size_t length = strlen(acs_chars);
+    if (acs_chars != NULL) {
+       size_t i = 0;
+       size_t length = strlen(acs_chars);
 
 
-               while (i < length)
-                       switch (acs_chars[i]) {
-                       case 'l':case 'm':case 'k':case 'j':
-                       case 'u':case 't':case 'v':case 'w':
-                       case 'q':case 'x':case 'n':case 'o':
-                       case 's':case '`':case 'a':case 'f':
-                       case 'g':case '~':case ',':case '+':
-                       case '.':case '-':case 'h':case 'i':
-                       case '0':case 'p':case 'r':case 'y':
-                       case 'z':case '{':case '|':case '}':
-                               acs_map[(unsigned int)acs_chars[i]] =
-                                       ALTCHAR(acs_chars[i+1]);
-                               i++;
-                               /* FALLTHRU */
-                       default:
-                               i++;
-                               break;
-                       }
-       }
+       while (i < length)
+           switch (acs_chars[i]) {
+           case 'l':
+           case 'm':
+           case 'k':
+           case 'j':
+           case 'u':
+           case 't':
+           case 'v':
+           case 'w':
+           case 'q':
+           case 'x':
+           case 'n':
+           case 'o':
+           case 's':
+           case '`':
+           case 'a':
+           case 'f':
+           case 'g':
+           case '~':
+           case ',':
+           case '+':
+           case '.':
+           case '-':
+           case 'h':
+           case 'i':
+           case '0':
+           case 'p':
+           case 'r':
+           case 'y':
+           case 'z':
+           case '{':
+           case '|':
+           case '}':
+               acs_map[(unsigned int) acs_chars[i]] =
+                   ALTCHAR(acs_chars[i + 1]);
+               i++;
+               /* FALLTHRU */
+           default:
+               i++;
+               break;
+           }
+    }
 #ifdef TRACE
 #ifdef TRACE
-       /* Show the equivalent mapping, noting if it does not match the
-        * given attribute, whether by re-ordering or duplication.
-        */
-       if (_nc_tracing & TRACE_CALLS) {
-               size_t n, m;
-               char show[SIZEOF(acs_map) + 1];
-               for (n = 1, m = 0; n < SIZEOF(acs_map); n++) {
-                       if (acs_map[n] != 0) {
-                               show[m++] = (char)n;
-                               show[m++] = TextOf(acs_map[n]);
-                       }
-               }
-               show[m] = 0;
-               _tracef("%s acs_chars %s",
-                       (acs_chars == NULL)
-                       ? "NULL"
-                       : (strcmp(acs_chars, show)
-                               ? "DIFF"
-                               : "SAME"),
-                       _nc_visbuf(show));
+    /* Show the equivalent mapping, noting if it does not match the
+     * given attribute, whether by re-ordering or duplication.
+     */
+    if (_nc_tracing & TRACE_CALLS) {
+       size_t n, m;
+       char show[ACS_LEN + 1];
+       for (n = 1, m = 0; n < ACS_LEN; n++) {
+           if (acs_map[n] != 0) {
+               show[m++] = (char) n;
+               show[m++] = ChCharOf(acs_map[n]);
+           }
        }
        }
+       show[m] = 0;
+       _tracef("%s acs_chars %s",
+               (acs_chars == NULL)
+               ? "NULL"
+               : (strcmp(acs_chars, show)
+                  ? "DIFF"
+                  : "SAME"),
+               _nc_visbuf(show));
+    }
 #endif /* TRACE */
 }
 #endif /* TRACE */
 }
index 0d7fa27bcc3da457cec3b7097d8ddb65275ca9c0..5238924143672edd2407c3ef48f4003673324044 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <term.h>              /* cur_term, pad_char */
 #include <termcap.h>           /* ospeed */
 
 #include <term.h>              /* cur_term, pad_char */
 #include <termcap.h>           /* ospeed */
 
-MODULE_ID("$Id: lib_baudrate.c,v 1.17 2000/10/08 00:59:08 tom Exp $")
+/*
+ * These systems use similar header files, which define B1200 as 1200, etc.,
+ * but can be overridden by defining USE_OLD_TTY so B1200 is 9, which makes all
+ * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
+ * ospeed's type for compatibility.
+ */
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#undef B0
+#undef B50
+#undef B75
+#undef B110
+#undef B134
+#undef B150
+#undef B200
+#undef B300
+#undef B600
+#undef B1200
+#undef B1800
+#undef B2400
+#undef B4800
+#undef B9600
+#undef B19200
+#undef EXTA
+#undef B38400
+#undef EXTB
+#undef B57600
+#undef B115200
+#undef B230400
+#undef B460800
+#undef B921600
+#define USE_OLD_TTY
+#include <sys/ttydev.h>
+#else
+#undef USE_OLD_TTY
+#endif /* USE_OLD_TTY */
+
+MODULE_ID("$Id: lib_baudrate.c,v 1.22 2002/01/19 23:07:53 Andrey.A.Chernov Exp $")
 
 /*
  *     int
 
 /*
  *     int
@@ -51,8 +87,8 @@ MODULE_ID("$Id: lib_baudrate.c,v 1.17 2000/10/08 00:59:08 tom Exp $")
  */
 
 struct speed {
  */
 
 struct speed {
-    int s;     /* value for 'ospeed' is an index */
-    int sp;    /* the actual speed */
+    int s;                     /* value for 'ospeed' is an index */
+    int sp;                    /* the actual speed */
 };
 
 static struct speed const speeds[] =
 };
 
 static struct speed const speeds[] =
@@ -97,9 +133,12 @@ static struct speed const speeds[] =
 #ifdef B460800
     {B460800, 460800},
 #endif
 #ifdef B460800
     {B460800, 460800},
 #endif
+#ifdef B921600
+    {B921600, 921600},
+#endif
 };
 
 };
 
-int
+NCURSES_EXPORT(int)
 _nc_baudrate(int OSpeed)
 {
     static int last_OSpeed;
 _nc_baudrate(int OSpeed)
 {
     static int last_OSpeed;
@@ -125,7 +164,7 @@ _nc_baudrate(int OSpeed)
     return (result);
 }
 
     return (result);
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_ospeed(int BaudRate)
 {
     int result = 1;
 _nc_ospeed(int BaudRate)
 {
     int result = 1;
@@ -142,7 +181,7 @@ _nc_ospeed(int BaudRate)
     return (result);
 }
 
     return (result);
 }
 
-int
+NCURSES_EXPORT(int)
 baudrate(void)
 {
     int result;
 baudrate(void)
 {
     int result;
@@ -162,15 +201,20 @@ baudrate(void)
            ret = 9600;
        ospeed = _nc_ospeed(ret);
        returnCode(ret);
            ret = 9600;
        ospeed = _nc_ospeed(ret);
        returnCode(ret);
-    } else
+    }
 #endif
 
 #endif
 
+#ifdef USE_OLD_TTY
+    result = cfgetospeed(&cur_term->Nttyb);
+    ospeed = _nc_ospeed(result);
+#else /* !USE_OLD_TTY */
 #ifdef TERMIOS
 #ifdef TERMIOS
-       ospeed = cfgetospeed(&cur_term->Nttyb);
+    ospeed = cfgetospeed(&cur_term->Nttyb);
 #else
 #else
-       ospeed = cur_term->Nttyb.sg_ospeed;
+    ospeed = cur_term->Nttyb.sg_ospeed;
 #endif
     result = _nc_baudrate(ospeed);
 #endif
     result = _nc_baudrate(ospeed);
+#endif
     if (cur_term != 0)
        cur_term->_baudrate = result;
 
     if (cur_term != 0)
        cur_term->_baudrate = result;
 
index 7d0aa127d9dbb5c11155ca3837fdb2ad845eec9f..8f269e591d0c24d81592e7dc5616d4cbde51c9d7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
-#include <term_entry.h>        /* TTY, cur_term */
-#include <termcap.h>   /* ospeed */
+#include <term_entry.h>                /* TTY, cur_term */
+#include <termcap.h>           /* ospeed */
 
 
-MODULE_ID("$Id: lib_cur_term.c,v 1.9 1999/10/30 23:00:16 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.11 2000/12/10 02:55:07 tom Exp $")
 
 
-TERMINAL *cur_term = 0;
+NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
 
 
-TERMINAL *set_curterm(TERMINAL *termp)
+NCURSES_EXPORT(TERMINAL *)
+set_curterm(TERMINAL * termp)
 {
 {
-       TERMINAL *oldterm = cur_term;
+    TERMINAL *oldterm = cur_term;
 
 
-       if ((cur_term = termp) != 0) {
-               ospeed = _nc_ospeed(cur_term->_baudrate);
-               PC = (pad_char != NULL) ? pad_char[0] : 0; 
-       }
-       return oldterm;
+    if ((cur_term = termp) != 0) {
+       ospeed = _nc_ospeed(cur_term->_baudrate);
+       PC = (pad_char != NULL) ? pad_char[0] : 0;
+    }
+    return oldterm;
 }
 
 }
 
-int del_curterm(TERMINAL *termp)
+NCURSES_EXPORT(int)
+del_curterm(TERMINAL * termp)
 {
 {
-       T((T_CALLED("del_curterm(%p)"), termp));
+    T((T_CALLED("del_curterm(%p)"), termp));
 
 
-       if (termp != 0) {
-               _nc_free_termtype(&(termp->type));
-               free(termp);
-               if (termp == cur_term)
-                       cur_term = 0;
-               returnCode(OK);
-       }
-       returnCode(ERR);
+    if (termp != 0) {
+       _nc_free_termtype(&(termp->type));
+       free(termp);
+       if (termp == cur_term)
+           cur_term = 0;
+       returnCode(OK);
+    }
+    returnCode(ERR);
 }
 }
index d2d0d3ff6d8ec3bcfe5638e57a765e044e73f76a..87d60edf6ed956064e19f441c73c91f8fc8c085b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.14 1999/01/31 01:34:33 Ilya.Zakharevich Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.16 2000/12/10 02:55:07 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).
  */
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
  * constructing a dll (reported by J.J.G.Ripoll).
  */
-WINDOW *stdscr = 0;
-WINDOW *curscr = 0;
-WINDOW *newscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *)
+stdscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *)
+curscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *)
+newscr = 0;
 
 
-SCREEN *_nc_screen_chain = 0;
+NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
 
 /*
  * The variable 'SP' will be defined as a function on systems that cannot link
 
 /*
  * The variable 'SP' will be defined as a function on systems that cannot link
@@ -63,22 +66,26 @@ SCREEN *_nc_screen_chain = 0;
  * module coupling that increases the size of the executable.
  */
 #if BROKEN_LINKER
  * module coupling that increases the size of the executable.
  */
 #if BROKEN_LINKER
-static SCREEN *my_screen;
+     static SCREEN *my_screen;
 
 
-SCREEN *_nc_screen(void)
+NCURSES_EXPORT(SCREEN *)
+_nc_screen(void)
 {
 {
-       return my_screen;
+    return my_screen;
 }
 
 }
 
-int _nc_alloc_screen(void)
+NCURSES_EXPORT(int)
+_nc_alloc_screen(void)
 {
 {
-       return ((my_screen = typeCalloc(SCREEN, 1)) != 0);
+    return ((my_screen = typeCalloc(SCREEN, 1)) != 0);
 }
 
 }
 
-void _nc_set_screen(SCREEN *sp)
+NCURSES_EXPORT(void)
+_nc_set_screen(SCREEN * sp)
 {
 {
-       my_screen = sp;
+    my_screen = sp;
 }
 }
+
 #else
 #else
-SCREEN *SP = NULL;             /* Some linkers require initialized data... */
+NCURSES_EXPORT_VAR(SCREEN *) SP = NULL;                /* Some linkers require initialized data... */
 #endif
 #endif
index 7121fc758f4f366498498c46d9d4d8bbbaac3549..6fb7b3a9c8c0d588248b239afe5a7bd3a73acf9e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_has_cap.c
 **
 /*
 **     lib_has_cap.c
 **
 
 #include <term.h>
 
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_has_cap.c,v 1.1 1998/10/23 15:32:21 tom Exp $")
+MODULE_ID("$Id: lib_has_cap.c,v 1.3 2000/12/10 02:55:07 tom Exp $")
 
 
-bool has_ic(void)
+NCURSES_EXPORT(bool)
+has_ic(void)
 {
 {
-       T((T_CALLED("has_ic()")));
-       returnCode(cur_term &&
-         (insert_character || parm_ich
-          ||  (enter_insert_mode && exit_insert_mode))
-         &&  (delete_character || parm_dch));
+    T((T_CALLED("has_ic()")));
+    returnCode(cur_term &&
+              (insert_character || parm_ich
+               || (enter_insert_mode && exit_insert_mode))
+              && (delete_character || parm_dch));
 }
 
 }
 
-bool has_il(void)
+NCURSES_EXPORT(bool)
+has_il(void)
 {
 {
-       T((T_CALLED("has_il()")));
-       returnCode(cur_term
-               && (insert_line || parm_insert_line)
-               && (delete_line || parm_delete_line));
+    T((T_CALLED("has_il()")));
+    returnCode(cur_term
+              && (insert_line || parm_insert_line)
+              && (delete_line || parm_delete_line));
 }
 }
index 3c8c88ee2aabcac7af1a880915407029d0ddad0d..b4d3c7f45aca465c946c48a012ce8d623547deb6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,9 +29,9 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 2002                                           *
  ****************************************************************************/
 
  ****************************************************************************/
 
-
 /*
  *     lib_kernel.c
  *
 /*
  *     lib_kernel.c
  *
  */
 
 #include <curses.priv.h>
  */
 
 #include <curses.priv.h>
-#include <term.h>      /* cur_term */
+#include <term.h>              /* cur_term */
+
+MODULE_ID("$Id: lib_kernel.c,v 1.22 2002/05/11 20:32:18 tom Exp $")
 
 
-MODULE_ID("$Id: lib_kernel.c,v 1.19 1998/12/20 00:18:45 tom Exp $")
+static int
+_nc_vdisable(void)
+{
+    int value;
+#if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H)
+    value = _POSIX_VDISABLE;
+#endif
+#if defined(_PC_VDISABLE)
+    if (value == -1) {
+       value = fpathconf(0, _PC_VDISABLE);
+       if (value == -1) {
+           value = 0377;
+       }
+    }
+#elif defined(VDISABLE)
+    if (value == -1)
+       value = VDISABLE;
+#endif
+    return value;
+}
 
 /*
  *     erasechar()
 
 /*
  *     erasechar()
@@ -57,23 +78,24 @@ MODULE_ID("$Id: lib_kernel.c,v 1.19 1998/12/20 00:18:45 tom Exp $")
  *
  */
 
  *
  */
 
-char
+NCURSES_EXPORT(char)
 erasechar(void)
 {
 erasechar(void)
 {
-       T((T_CALLED("erasechar()")));
+    int result = ERR;
+    T((T_CALLED("erasechar()")));
 
 
-       if (cur_term != 0) {
+    if (cur_term != 0) {
 #ifdef TERMIOS
 #ifdef TERMIOS
-               returnCode(cur_term->Ottyb.c_cc[VERASE]);
+       result = cur_term->Ottyb.c_cc[VERASE];
+       if (result == _nc_vdisable())
+           result = ERR;
 #else
 #else
-               returnCode(cur_term->Ottyb.sg_erase);
+       result = cur_term->Ottyb.sg_erase;
 #endif
 #endif
-       }
-       returnCode(ERR);
+    }
+    returnCode(result);
 }
 
 }
 
-
-
 /*
  *     killchar()
  *
 /*
  *     killchar()
  *
@@ -81,23 +103,24 @@ erasechar(void)
  *
  */
 
  *
  */
 
-char
+NCURSES_EXPORT(char)
 killchar(void)
 {
 killchar(void)
 {
-       T((T_CALLED("killchar()")));
+    int result = ERR;
+    T((T_CALLED("killchar()")));
 
 
-       if (cur_term != 0) {
+    if (cur_term != 0) {
 #ifdef TERMIOS
 #ifdef TERMIOS
-               returnCode(cur_term->Ottyb.c_cc[VKILL]);
+       result = cur_term->Ottyb.c_cc[VKILL];
+       if (result == _nc_vdisable())
+           result = ERR;
 #else
 #else
-               returnCode(cur_term->Ottyb.sg_kill);
+       result = cur_term->Ottyb.sg_kill;
 #endif
 #endif
-       }
-       returnCode(ERR);
+    }
+    returnCode(result);
 }
 
 }
 
-
-
 /*
  *     flushinp()
  *
 /*
  *     flushinp()
  *
@@ -105,26 +128,27 @@ killchar(void)
  *
  */
 
  *
  */
 
-int flushinp(void)
+NCURSES_EXPORT(int)
+flushinp(void)
 {
 {
-       T((T_CALLED("flushinp()")));
+    T((T_CALLED("flushinp()")));
 
 
-       if (cur_term != 0) {
+    if (cur_term != 0) {
 #ifdef TERMIOS
 #ifdef TERMIOS
-               tcflush(cur_term->Filedes, TCIFLUSH);
+       tcflush(cur_term->Filedes, TCIFLUSH);
 #else
 #else
-               errno = 0;
-               do {
-                   ioctl(cur_term->Filedes, TIOCFLUSH, 0);
-               } while
-                   (errno == EINTR);
+       errno = 0;
+       do {
+           ioctl(cur_term->Filedes, TIOCFLUSH, 0);
+       } while
+           (errno == EINTR);
 #endif
 #endif
-               if (SP) {
-                       SP->_fifohead = -1;
-                       SP->_fifotail = 0;
-                       SP->_fifopeek = 0;
-               }
-               returnCode(OK);
+       if (SP) {
+           SP->_fifohead = -1;
+           SP->_fifotail = 0;
+           SP->_fifopeek = 0;
        }
        }
-       returnCode(ERR);
+       returnCode(OK);
+    }
+    returnCode(ERR);
 }
 }
index 766e56c091e6a87ffe4f121ff6274a01b45e4330..1301ee51694464d1ea003786960f583b1173b65a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /*
 **     lib_longname.c
 **
 /*
 **     lib_longname.c
 **
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_longname.c,v 1.7 1999/01/03 01:47:45 tom Exp $")
+MODULE_ID("$Id: lib_longname.c,v 1.9 2000/12/10 02:55:07 tom Exp $")
 
 
-char *
+NCURSES_EXPORT(char *)
 longname(void)
 {
 longname(void)
 {
-char   *ptr;
+    char *ptr;
 
 
-       T((T_CALLED("longname()")));
+    T((T_CALLED("longname()")));
 
 
-       for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--)
-               if (*ptr == '|')
-                       returnPtr(ptr + 1);
+    for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--)
+       if (*ptr == '|')
+           returnPtr(ptr + 1);
 
 
-       returnPtr(ttytype);
+    returnPtr(ttytype);
 }
 }
index 1bd5c647f029974996c7215c644a60a9758e0d24..f4975ad565bcaefa5f32c599a8e00671c07636f7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #if HAVE_SYS_TIME_H
 #include <sys/time.h>          /* needed for MacOS X DP3 */
 #endif
 #if HAVE_SYS_TIME_H
 #include <sys/time.h>          /* needed for MacOS X DP3 */
 #endif
-#elif USE_FUNC_POLL
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#elif HAVE_SELECT
-#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
 #endif
 
 #endif
 
-MODULE_ID("$Id: lib_napms.c,v 1.9 2000/04/29 23:42:56 tom Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.13 2002/09/01 17:46:11 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 napms(int ms)
 {
     T((T_CALLED("napms(%d)"), ms));
 napms(int ms)
 {
     T((T_CALLED("napms(%d)"), ms));
@@ -72,18 +61,9 @@ napms(int ms)
        ts.tv_nsec = (ms % 1000) * 1000000;
        nanosleep(&ts, NULL);
     }
        ts.tv_nsec = (ms % 1000) * 1000000;
        nanosleep(&ts, NULL);
     }
-#elif USE_FUNC_POLL
-    {
-       struct pollfd fds[1];
-       poll(fds, 0, ms);
-    }
-#elif HAVE_SELECT
-    {
-       struct timeval tval;
-       tval.tv_sec = ms / 1000;
-       tval.tv_usec = (ms % 1000) * 1000;
-       select(0, NULL, NULL, NULL, &tval);
-    }
+#else
+    _nc_timed_wait(0, ms, (int *) 0 EVENTLIST_2nd(0));
 #endif
 #endif
+
     returnCode(OK);
 }
     returnCode(OK);
 }
index fc3dc42bca41710d38f39676f7a670df23ca3eec..05bd47685dd617543bd937d9f086667d24d9da7d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.    *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,9 +42,9 @@
 
 #include <term.h>
 
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_options.c,v 1.40 2000/09/02 18:02:05 tom Exp $")
+MODULE_ID("$Id: lib_options.c,v 1.46 2002/02/02 19:40:54 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 idlok(WINDOW *win, bool flag)
 {
     T((T_CALLED("idlok(%p,%d)"), win, flag));
 idlok(WINDOW *win, bool flag)
 {
     T((T_CALLED("idlok(%p,%d)"), win, flag));
@@ -56,7 +56,7 @@ idlok(WINDOW *win, bool flag)
        returnCode(ERR);
 }
 
        returnCode(ERR);
 }
 
-void
+NCURSES_EXPORT(void)
 idcok(WINDOW *win, bool flag)
 {
     T((T_CALLED("idcok(%p,%d)"), win, flag));
 idcok(WINDOW *win, bool flag)
 {
     T((T_CALLED("idcok(%p,%d)"), win, flag));
@@ -67,7 +67,7 @@ idcok(WINDOW *win, bool flag)
     returnVoid;
 }
 
     returnVoid;
 }
 
-int
+NCURSES_EXPORT(int)
 halfdelay(int t)
 {
     T((T_CALLED("halfdelay(%d)"), t));
 halfdelay(int t)
 {
     T((T_CALLED("halfdelay(%d)"), t));
@@ -80,7 +80,7 @@ halfdelay(int t)
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-int
+NCURSES_EXPORT(int)
 nodelay(WINDOW *win, bool flag)
 {
     T((T_CALLED("nodelay(%p,%d)"), win, flag));
 nodelay(WINDOW *win, bool flag)
 {
     T((T_CALLED("nodelay(%p,%d)"), win, flag));
@@ -95,7 +95,7 @@ nodelay(WINDOW *win, bool flag)
        returnCode(ERR);
 }
 
        returnCode(ERR);
 }
 
-int
+NCURSES_EXPORT(int)
 notimeout(WINDOW *win, bool f)
 {
     T((T_CALLED("notimout(%p,%d)"), win, f));
 notimeout(WINDOW *win, bool f)
 {
     T((T_CALLED("notimout(%p,%d)"), win, f));
@@ -107,7 +107,7 @@ notimeout(WINDOW *win, bool f)
        returnCode(ERR);
 }
 
        returnCode(ERR);
 }
 
-void
+NCURSES_EXPORT(void)
 wtimeout(WINDOW *win, int delay)
 {
     T((T_CALLED("wtimeout(%p,%d)"), win, delay));
 wtimeout(WINDOW *win, int delay)
 {
     T((T_CALLED("wtimeout(%p,%d)"), win, delay));
@@ -115,9 +115,10 @@ wtimeout(WINDOW *win, int delay)
     if (win) {
        win->_delay = delay;
     }
     if (win) {
        win->_delay = delay;
     }
+    returnVoid;
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 keypad(WINDOW *win, bool flag)
 {
     T((T_CALLED("keypad(%p,%d)"), win, flag));
 keypad(WINDOW *win, bool flag)
 {
     T((T_CALLED("keypad(%p,%d)"), win, flag));
@@ -129,7 +130,7 @@ keypad(WINDOW *win, bool flag)
        returnCode(ERR);
 }
 
        returnCode(ERR);
 }
 
-int
+NCURSES_EXPORT(int)
 meta(WINDOW *win GCC_UNUSED, bool flag)
 {
     /* Ok, we stay relaxed and don't signal an error if win is NULL */
 meta(WINDOW *win GCC_UNUSED, bool flag)
 {
     /* Ok, we stay relaxed and don't signal an error if win is NULL */
@@ -149,7 +150,7 @@ meta(WINDOW *win GCC_UNUSED, bool flag)
 
 /* curs_set() moved here to narrow the kernel interface */
 
 
 /* curs_set() moved here to narrow the kernel interface */
 
-int
+NCURSES_EXPORT(int)
 curs_set(int vis)
 {
     int cursor = SP->_cursor;
 curs_set(int vis)
 {
     int cursor = SP->_cursor;
@@ -191,7 +192,7 @@ curs_set(int vis)
     returnCode(cursor == -1 ? 1 : cursor);
 }
 
     returnCode(cursor == -1 ? 1 : cursor);
 }
 
-int
+NCURSES_EXPORT(int)
 typeahead(int fd)
 {
     T((T_CALLED("typeahead(%d)"), fd));
 typeahead(int fd)
 {
     T((T_CALLED("typeahead(%d)"), fd));
@@ -216,10 +217,10 @@ has_key_internal(int keycode, struct tries *tp)
        return (TRUE);
     else
        return (has_key_internal(keycode, tp->child)
        return (TRUE);
     else
        return (has_key_internal(keycode, tp->child)
-           || has_key_internal(keycode, tp->sibling));
+               || has_key_internal(keycode, tp->sibling));
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 has_key(int keycode)
 {
     T((T_CALLED("has_key(%d)"), keycode));
 has_key(int keycode)
 {
     T((T_CALLED("has_key(%d)"), keycode));
@@ -234,7 +235,7 @@ has_key(int keycode)
  * flush, then the next wgetch may get the escape sequence that corresponds to
  * the terminal state _before_ switching modes.
  */
  * flush, then the next wgetch may get the escape sequence that corresponds to
  * the terminal state _before_ switching modes.
  */
-int
+NCURSES_EXPORT(int)
 _nc_keypad(bool flag)
 {
     if (flag && keypad_xmit) {
 _nc_keypad(bool flag)
 {
     if (flag && keypad_xmit) {
@@ -251,5 +252,6 @@ _nc_keypad(bool flag)
        _nc_init_keytry();
        SP->_tried = TRUE;
     }
        _nc_init_keytry();
        SP->_tried = TRUE;
     }
+    SP->_keypad_on = flag;
     return (OK);
 }
     return (OK);
 }
index 63ac648b5439cc317543442edfedfa9340b7c8c2..3a98bc96a2fc0fb442dff318ace59b050208d05a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 #include <curses.priv.h>
 
 #include <term.h>
 
 #include <curses.priv.h>
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_print.c,v 1.11 1999/02/27 19:59:05 tom Exp $")
+MODULE_ID("$Id: lib_print.c,v 1.15 2002/08/17 23:41:34 tom Exp $")
 
 
-int mcprint(char *data, int len)
+NCURSES_EXPORT(int)
+mcprint(char *data, int len)
 /* ship binary character data to the printer via mc4/mc5/mc5p */
 {
 /* ship binary character data to the printer via mc4/mc5/mc5p */
 {
-    char       *mybuf, *switchon;
-    size_t     onsize, offsize, res;
+    char *mybuf, *switchon;
+    size_t onsize, offsize, res;
 
     errno = 0;
 
     errno = 0;
-    if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off)))
-    {
+    if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off))) {
        errno = ENODEV;
        errno = ENODEV;
-       return(ERR);
+       return (ERR);
     }
 
     }
 
-    if (prtr_non)
-    {
+    if (prtr_non) {
        switchon = tparm(prtr_non, len);
        onsize = strlen(switchon);
        offsize = 0;
        switchon = tparm(prtr_non, len);
        onsize = strlen(switchon);
        offsize = 0;
-    }
-    else
-    {
+    } else {
        switchon = prtr_on;
        onsize = strlen(prtr_on);
        offsize = strlen(prtr_off);
     }
 
        switchon = prtr_on;
        onsize = strlen(prtr_on);
        offsize = strlen(prtr_off);
     }
 
-    if ((mybuf = typeMalloc(char, onsize + len + offsize + 1)) == (char *)0)
-    {
+    if (switchon == 0
+       || (mybuf = typeMalloc(char, onsize + len + offsize + 1)) == 0) {
        errno = ENOMEM;
        errno = ENOMEM;
-       return(ERR);
+       return (ERR);
     }
 
     (void) strcpy(mybuf, switchon);
     }
 
     (void) strcpy(mybuf, switchon);
-    memcpy(mybuf + onsize, data, len);
+    memcpy(mybuf + onsize, data, (unsigned) len);
     if (offsize)
     if (offsize)
-      (void) strcpy(mybuf + onsize + len, prtr_off);
+       (void) strcpy(mybuf + onsize + len, prtr_off);
 
     /*
      * We're relying on the atomicity of UNIX writes here.  The
 
     /*
      * We're relying on the atomicity of UNIX writes here.  The
@@ -92,5 +88,5 @@ int mcprint(char *data, int len)
     (void) sleep(0);
 
     free(mybuf);
     (void) sleep(0);
 
     free(mybuf);
-    return(res);
+    return (res);
 }
 }
index 6df95714a9b17923872ec8a6e2e6cbec4ecbb965..aa09f52c8c8d393e028b5760fb8f2be0d00fd67e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 1998 on                                        *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
@@ -48,7 +49,7 @@
 #include <curses.priv.h>
 #include <term.h>              /* cur_term */
 
 #include <curses.priv.h>
 #include <term.h>              /* cur_term */
 
-MODULE_ID("$Id: lib_raw.c,v 1.8 2000/09/02 18:08:48 tom Exp $")
+MODULE_ID("$Id: lib_raw.c,v 1.13 2002/07/06 22:00:45 tom Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
@@ -60,6 +61,9 @@ MODULE_ID("$Id: lib_raw.c,v 1.8 2000/09/02 18:08:48 tom Exp $")
 
 #ifdef __EMX__
 #include <io.h>
 
 #ifdef __EMX__
 #include <io.h>
+#define _nc_setmode(mode) setmode(SP->_ifd, mode)
+#else
+#define _nc_setmode(mode)      /* nothing */
 #endif
 
 #define COOKED_INPUT   (IXON|BRKINT|PARMRK)
 #endif
 
 #define COOKED_INPUT   (IXON|BRKINT|PARMRK)
@@ -72,165 +76,221 @@ MODULE_ID("$Id: lib_raw.c,v 1.8 2000/09/02 18:08:48 tom Exp $")
 #define AFTER(s)
 #endif /* TRACE */
 
 #define AFTER(s)
 #endif /* TRACE */
 
-int
+NCURSES_EXPORT(int)
 raw(void)
 {
 raw(void)
 {
+    int result = ERR;
+
     T((T_CALLED("raw()")));
     T((T_CALLED("raw()")));
-    if (SP != 0 && cur_term != 0) {
 
 
-       SP->_raw = TRUE;
-       SP->_cbreak = 1;
+    if (SP != 0 && cur_term != 0) {
+       TTY buf;
 
 
-#ifdef __EMX__
-       setmode(SP->_ifd, O_BINARY);
-#endif
+       BEFORE("raw");
+       _nc_setmode(O_BINARY);
 
 
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-       BEFORE("raw");
-       cur_term->Nttyb.c_lflag &= ~(ICANON | ISIG | IEXTEN);
-       cur_term->Nttyb.c_iflag &= ~(COOKED_INPUT);
-       cur_term->Nttyb.c_cc[VMIN] = 1;
-       cur_term->Nttyb.c_cc[VTIME] = 0;
-       AFTER("raw");
+       buf.c_lflag &= ~(ICANON | ISIG | IEXTEN);
+       buf.c_iflag &= ~(COOKED_INPUT);
+       buf.c_cc[VMIN] = 1;
+       buf.c_cc[VTIME] = 0;
 #else
 #else
-       cur_term->Nttyb.sg_flags |= RAW;
+       buf.sg_flags |= RAW;
 #endif
 #endif
-       returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
+       if ((result = _nc_set_tty_mode(&buf)) == OK) {
+           SP->_raw = TRUE;
+           SP->_cbreak = 1;
+           cur_term->Nttyb = buf;
+       }
+       AFTER("raw");
     }
     }
-    returnCode(ERR);
+    returnCode(result);
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 cbreak(void)
 {
 cbreak(void)
 {
+    int result = ERR;
+
     T((T_CALLED("cbreak()")));
 
     T((T_CALLED("cbreak()")));
 
-    SP->_cbreak = 1;
+    if (SP != 0 && cur_term != 0) {
+       TTY buf;
 
 
-#ifdef __EMX__
-    setmode(SP->_ifd, O_BINARY);
-#endif
+       BEFORE("cbreak");
+       _nc_setmode(O_BINARY);
 
 
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("cbreak");
-    cur_term->Nttyb.c_lflag &= ~ICANON;
-    cur_term->Nttyb.c_iflag &= ~ICRNL;
-    cur_term->Nttyb.c_lflag |= ISIG;
-    cur_term->Nttyb.c_cc[VMIN] = 1;
-    cur_term->Nttyb.c_cc[VTIME] = 0;
-    AFTER("cbreak");
+       buf.c_lflag &= ~ICANON;
+       buf.c_iflag &= ~ICRNL;
+       buf.c_lflag |= ISIG;
+       buf.c_cc[VMIN] = 1;
+       buf.c_cc[VTIME] = 0;
 #else
 #else
-    cur_term->Nttyb.sg_flags |= CBREAK;
+       buf.sg_flags |= CBREAK;
 #endif
 #endif
-    returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
+       if ((result = _nc_set_tty_mode(&buf)) == OK) {
+           SP->_cbreak = 1;
+           cur_term->Nttyb = buf;
+       }
+       AFTER("cbreak");
+    }
+    returnCode(result);
 }
 
 }
 
-void
+/*
+ * Note:
+ * this implementation may be wrong.  See the comment under intrflush().
+ */
+NCURSES_EXPORT(void)
 qiflush(void)
 {
 qiflush(void)
 {
+    int result = ERR;
+
     T((T_CALLED("qiflush()")));
 
     T((T_CALLED("qiflush()")));
 
-    /*
-     * Note: this implementation may be wrong.  See the comment under
-     * intrflush().
-     */
+    if (cur_term != 0) {
+       TTY buf;
 
 
+       BEFORE("qiflush");
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("qiflush");
-    cur_term->Nttyb.c_lflag &= ~(NOFLSH);
-    AFTER("qiflush");
-    (void) _nc_set_tty_mode(&cur_term->Nttyb);
-    returnVoid;
+       buf.c_lflag &= ~(NOFLSH);
+       result = _nc_set_tty_mode(&buf);
+#else
+       /* FIXME */
 #endif
 #endif
+       if (result == OK)
+           cur_term->Nttyb = buf;
+       AFTER("qiflush");
+    }
+    returnVoid;
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 noraw(void)
 {
 noraw(void)
 {
+    int result = ERR;
+
     T((T_CALLED("noraw()")));
 
     T((T_CALLED("noraw()")));
 
-    SP->_raw = FALSE;
-    SP->_cbreak = 0;
+    if (SP != 0 && cur_term != 0) {
+       TTY buf;
 
 
-#ifdef __EMX__
-    setmode(SP->_ifd, O_TEXT);
-#endif
+       BEFORE("noraw");
+       _nc_setmode(O_TEXT);
 
 
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("noraw");
-    cur_term->Nttyb.c_lflag |= ISIG | ICANON |
-       (cur_term->Ottyb.c_lflag & IEXTEN);
-    cur_term->Nttyb.c_iflag |= COOKED_INPUT;
-    AFTER("noraw");
+       buf.c_lflag |= ISIG | ICANON |
+           (cur_term->Ottyb.c_lflag & IEXTEN);
+       buf.c_iflag |= COOKED_INPUT;
 #else
 #else
-    cur_term->Nttyb.sg_flags &= ~(RAW | CBREAK);
+       buf.sg_flags &= ~(RAW | CBREAK);
 #endif
 #endif
-    returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
+       if ((result = _nc_set_tty_mode(&buf)) == OK) {
+           SP->_raw = FALSE;
+           SP->_cbreak = 0;
+           cur_term->Nttyb = buf;
+       }
+       AFTER("noraw");
+    }
+    returnCode(result);
 }
 
 }
 
-int
+NCURSES_EXPORT(int)
 nocbreak(void)
 {
 nocbreak(void)
 {
+    int result = ERR;
+
     T((T_CALLED("nocbreak()")));
 
     T((T_CALLED("nocbreak()")));
 
-    SP->_cbreak = 0;
+    if (SP != 0 && cur_term != 0) {
+       TTY buf;
 
 
-#ifdef __EMX__
-    setmode(SP->_ifd, O_TEXT);
-#endif
+       BEFORE("nocbreak");
+       _nc_setmode(O_TEXT);
 
 
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("nocbreak");
-    cur_term->Nttyb.c_lflag |= ICANON;
-    cur_term->Nttyb.c_iflag |= ICRNL;
-    AFTER("nocbreak");
+       buf.c_lflag |= ICANON;
+       buf.c_iflag |= ICRNL;
 #else
 #else
-    cur_term->Nttyb.sg_flags &= ~CBREAK;
+       buf.sg_flags &= ~CBREAK;
 #endif
 #endif
-    returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
+       if ((result = _nc_set_tty_mode(&buf)) == OK) {
+           SP->_cbreak = 0;
+           cur_term->Nttyb = buf;
+       }
+       AFTER("nocbreak");
+    }
+    returnCode(result);
 }
 
 }
 
-void
+/*
+ * Note:
+ * this implementation may be wrong.  See the comment under intrflush().
+ */
+NCURSES_EXPORT(void)
 noqiflush(void)
 {
 noqiflush(void)
 {
+    int result = ERR;
+
     T((T_CALLED("noqiflush()")));
 
     T((T_CALLED("noqiflush()")));
 
-    /*
-     * Note: this implementation may be wrong.  See the comment under
-     * intrflush().
-     */
+    if (cur_term != 0) {
+       TTY buf;
 
 
+       BEFORE("noqiflush");
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("noqiflush");
-    cur_term->Nttyb.c_lflag |= NOFLSH;
-    AFTER("noqiflush");
-    (void) _nc_set_tty_mode(&cur_term->Nttyb);
-    returnVoid;
+       buf.c_lflag |= NOFLSH;
+       result = _nc_set_tty_mode(&buf);
+#else
+       /* FIXME */
 #endif
 #endif
+       if (result == OK) {
+           cur_term->Nttyb = buf;
+       }
+       AFTER("noqiflush");
+    }
+    returnVoid;
 }
 
 }
 
-int
+/*
+ * This call does the same thing as the qiflush()/noqiflush() pair.  We know
+ * for certain that SVr3 intrflush() tweaks the NOFLSH bit; on the other hand,
+ * the match (in the SVr4 man pages) between the language describing NOFLSH in
+ * termio(7) and the language describing qiflush()/noqiflush() in
+ * curs_inopts(3x) is too exact to be coincidence.
+ */
+NCURSES_EXPORT(int)
 intrflush(WINDOW *win GCC_UNUSED, bool flag)
 {
 intrflush(WINDOW *win GCC_UNUSED, bool flag)
 {
+    int result = ERR;
+
     T((T_CALLED("intrflush(%d)"), flag));
 
     T((T_CALLED("intrflush(%d)"), flag));
 
-    /*
-     * This call does the same thing as the qiflush()/noqiflush() pair.  We
-     * know for certain that SVr3 intrflush() tweaks the NOFLSH bit; on the
-     * other hand, the match (in the SVr4 man pages) between the language
-     * describing NOFLSH in termio(7) and the language describing
-     * qiflush()/noqiflush() in curs_inopts(3x) is too exact to be coincidence.
-     */
+    if (cur_term != 0) {
+       TTY buf;
 
 
+       BEFORE("intrflush");
+       buf = cur_term->Nttyb;
 #ifdef TERMIOS
 #ifdef TERMIOS
-    BEFORE("intrflush");
-    if (flag)
-       cur_term->Nttyb.c_lflag &= ~(NOFLSH);
-    else
-       cur_term->Nttyb.c_lflag |= (NOFLSH);
-    AFTER("intrflush");
-    returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
+       if (flag)
+           buf.c_lflag &= ~(NOFLSH);
+       else
+           buf.c_lflag |= (NOFLSH);
+       result = _nc_set_tty_mode(&buf);
 #else
 #else
-    returnCode(ERR);
+       /* FIXME */
 #endif
 #endif
+       if (result == OK) {
+           cur_term->Nttyb = buf;
+       }
+       AFTER("intrflush");
+    }
+    returnCode(result);
 }
 }
index 1fd0d48f3cc8a41d49ebbd954951c540890477b9..6a69493bea5bd18738c5bc182972ce8fce4c68f8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -48,7 +48,7 @@
 
 #include <term.h>              /* lines, columns, cur_term */
 
 
 #include <term.h>              /* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_setup.c,v 1.60 2000/09/02 18:13:12 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.70 2002/10/12 21:50:18 tom Exp $")
 
 /****************************************************************************
  *
 
 /****************************************************************************
  *
@@ -94,13 +94,17 @@ static int _use_env = TRUE;
 
 static void do_prototype(void);
 
 
 static void do_prototype(void);
 
-void
+NCURSES_EXPORT(void)
 use_env(bool f)
 {
 use_env(bool f)
 {
+    T((T_CALLED("use_env()")));
     _use_env = f;
     _use_env = f;
+    returnVoid;
 }
 
 }
 
-int LINES = 0, COLS = 0, TABSIZE = 0;
+NCURSES_EXPORT_VAR(int) LINES = 0;
+NCURSES_EXPORT_VAR(int) COLS = 0;
+NCURSES_EXPORT_VAR(int) TABSIZE = 0;
 
 static void
 _nc_get_screensize(int *linep, int *colp)
 
 static void
 _nc_get_screensize(int *linep, int *colp)
@@ -133,7 +137,7 @@ _nc_get_screensize(int *linep, int *colp)
            *colp = screendata[0];
            *linep = screendata[1];
            T(("EMX screen size: environment LINES = %d COLUMNS = %d",
            *colp = screendata[0];
            *linep = screendata[1];
            T(("EMX screen size: environment LINES = %d COLUMNS = %d",
-                   *linep, *colp));
+              *linep, *colp));
        }
 #endif
 #if HAVE_SIZECHANGE
        }
 #endif
 #if HAVE_SIZECHANGE
@@ -165,15 +169,18 @@ _nc_get_screensize(int *linep, int *colp)
 #endif /* HAVE_SIZECHANGE */
 
        /* if we can't get dynamic info about the size, use static */
 #endif /* HAVE_SIZECHANGE */
 
        /* if we can't get dynamic info about the size, use static */
-       if (*linep <= 0 || *colp <= 0)
-           if (lines > 0 && columns > 0) {
-               *linep = (int) lines;
-               *colp = (int) columns;
-           }
+       if (*linep <= 0) {
+           *linep = (int) lines;
+       }
+       if (*colp <= 0) {
+           *colp = (int) columns;
+       }
 
        /* the ultimate fallback, assume fixed 24x80 size */
 
        /* the ultimate fallback, assume fixed 24x80 size */
-       if (*linep <= 0 || *colp <= 0) {
+       if (*linep <= 0) {
            *linep = 24;
            *linep = 24;
+       }
+       if (*colp <= 0) {
            *colp = 80;
        }
 
            *colp = 80;
        }
 
@@ -196,7 +203,7 @@ _nc_get_screensize(int *linep, int *colp)
 }
 
 #if USE_SIZECHANGE
 }
 
 #if USE_SIZECHANGE
-void
+NCURSES_EXPORT(void)
 _nc_update_screensize(void)
 {
     int my_lines, my_cols;
 _nc_update_screensize(void)
 {
     int my_lines, my_cols;
@@ -229,7 +236,7 @@ _nc_update_screensize(void)
                                            exit(EXIT_FAILURE);\
                                        }
 
                                            exit(EXIT_FAILURE);\
                                        }
 
-#if USE_DATABASE
+#if USE_DATABASE || USE_TERMCAP
 static int
 grab_entry(const char *const tn, TERMTYPE * const tp)
 /* return 1 if entry found, 0 if not found, -1 if database not accessible */
 static int
 grab_entry(const char *const tn, TERMTYPE * const tp)
 /* return 1 if entry found, 0 if not found, -1 if database not accessible */
@@ -243,6 +250,7 @@ grab_entry(const char *const tn, TERMTYPE * const tp)
     if (strchr(tn, '/'))
        return 0;
 
     if (strchr(tn, '/'))
        return 0;
 
+#if USE_DATABASE
     if ((status = _nc_read_entry(tn, filename, tp)) != 1) {
 
 #if !PURE_TERMINFO
     if ((status = _nc_read_entry(tn, filename, tp)) != 1) {
 
 #if !PURE_TERMINFO
@@ -256,6 +264,9 @@ grab_entry(const char *const tn, TERMTYPE * const tp)
 #endif /* PURE_TERMINFO */
 
     }
 #endif /* PURE_TERMINFO */
 
     }
+#else
+    status = _nc_read_termcap_entry(tn, tp);
+#endif
 
     /*
      * If we have an entry, force all of the cancelled strings to null
 
     /*
      * If we have an entry, force all of the cancelled strings to null
@@ -265,18 +276,20 @@ grab_entry(const char *const tn, TERMTYPE * const tp)
      */
     if (status == 1) {
        int n;
      */
     if (status == 1) {
        int n;
-       for_each_boolean(n, tp)
+       for_each_boolean(n, tp) {
            if (!VALID_BOOLEAN(tp->Booleans[n]))
            if (!VALID_BOOLEAN(tp->Booleans[n]))
-           tp->Booleans[n] = FALSE;
-       for_each_string(n, tp)
+               tp->Booleans[n] = FALSE;
+       }
+       for_each_string(n, tp) {
            if (tp->Strings[n] == CANCELLED_STRING)
            if (tp->Strings[n] == CANCELLED_STRING)
-           tp->Strings[n] = ABSENT_STRING;
+               tp->Strings[n] = ABSENT_STRING;
+       }
     }
     return (status);
 }
 #endif
 
     }
     return (status);
 }
 #endif
 
-char ttytype[NAMESIZE] = "";
+NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
 
 /*
  *     setupterm(termname, Filedes, errret)
 
 /*
  *     setupterm(termname, Filedes, errret)
@@ -286,12 +299,13 @@ char ttytype[NAMESIZE] = "";
  *
  */
 
  *
  */
 
-int
+NCURSES_EXPORT(int)
 setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
 {
     struct term *term_ptr;
     int status;
 
 setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
 {
     struct term *term_ptr;
     int status;
 
+    START_TRACE();
     T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret));
 
     if (tname == 0) {
     T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret));
 
     if (tname == 0) {
@@ -302,7 +316,7 @@ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
     }
     if (strlen(tname) > MAX_NAME_SIZE) {
        ret_error(-1, "TERM environment must be <= %d characters.\n",
     }
     if (strlen(tname) > MAX_NAME_SIZE) {
        ret_error(-1, "TERM environment must be <= %d characters.\n",
-           MAX_NAME_SIZE);
+                 MAX_NAME_SIZE);
     }
 
     T(("your terminal name is %s", tname));
     }
 
     T(("your terminal name is %s", tname));
@@ -312,7 +326,7 @@ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
     if (term_ptr == 0) {
        ret_error0(-1, "Not enough memory to create terminal structure.\n");
     }
     if (term_ptr == 0) {
        ret_error0(-1, "Not enough memory to create terminal structure.\n");
     }
-#if USE_DATABASE
+#if USE_DATABASE || USE_TERMCAP
     status = grab_entry(tname, &term_ptr->type);
 #else
     status = 0;
     status = grab_entry(tname, &term_ptr->type);
 #else
     status = 0;
@@ -361,14 +375,23 @@ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
     ttytype[NAMESIZE - 1] = '\0';
 
     /*
     ttytype[NAMESIZE - 1] = '\0';
 
     /*
-     * Allow output redirection.  This is what SVr3 does.
-     * If stdout is directed to a file, screen updates go
-     * to standard error.
+     * Allow output redirection.  This is what SVr3 does.  If stdout is
+     * directed to a file, screen updates go to standard error.
      */
     if (Filedes == STDOUT_FILENO && !isatty(Filedes))
        Filedes = STDERR_FILENO;
     cur_term->Filedes = Filedes;
 
      */
     if (Filedes == STDOUT_FILENO && !isatty(Filedes))
        Filedes = STDERR_FILENO;
     cur_term->Filedes = Filedes;
 
+    /*
+     * If an application calls setupterm() rather than initscr() or newterm(),
+     * we will not have the def_prog_mode() call in _nc_setupscreen().  Do it
+     * now anyway, so we can initialize the baudrate.
+     */
+    if (isatty(Filedes)) {
+       def_prog_mode();
+       baudrate();
+    }
+
     _nc_get_screensize(&LINES, &COLS);
 
     if (errret)
     _nc_get_screensize(&LINES, &COLS);
 
     if (errret)
index ecec2865fbae7359fd07015dddeddd3ebe143396..c03a601f49689e262d73a4a6211f3bb9c2e02dac 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *                                                                          *
+ * some of the code in here was contributed by:                             *
+ * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93)                      *
  ****************************************************************************/
 
  ****************************************************************************/
 
+#define __INTERNAL_CAPS_VISIBLE
 #include <curses.priv.h>
 
 #include <termcap.h>
 #include <tic.h>
 #include <curses.priv.h>
 
 #include <termcap.h>
 #include <tic.h>
+#include <ctype.h>
 
 
-#define __INTERNAL_CAPS_VISIBLE
 #include <term_entry.h>
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: lib_termcap.c,v 1.37 2000/09/16 20:30:16 tom Exp $")
+MODULE_ID("$Id: lib_termcap.c,v 1.43 2002/05/25 12:24:13 tom Exp $")
+
+#define CSI       233
+#define ESC       033          /* ^[ */
+#define L_BRACK   '['
+#define SHIFT_OUT 017          /* ^N */
 
 
-/*
-   some of the code in here was contributed by:
-   Magnus Bengtsson, d6mbeng@dtek.chalmers.se
-*/
+NCURSES_EXPORT_VAR(char *) UP = 0;
+NCURSES_EXPORT_VAR(char *) BC = 0;
 
 
-char *UP = 0;
-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;
+}
 
 /***************************************************************************
  *
 
 /***************************************************************************
  *
@@ -64,7 +119,7 @@ char *BC = 0;
  *
  ***************************************************************************/
 
  *
  ***************************************************************************/
 
-int
+NCURSES_EXPORT(int)
 tgetent(char *bufp GCC_UNUSED, const char *name)
 {
     int errcode;
 tgetent(char *bufp GCC_UNUSED, const char *name)
 {
     int errcode;
@@ -73,6 +128,11 @@ tgetent(char *bufp GCC_UNUSED, const char *name)
 
     setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
 
 
     setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
 
+    PC = 0;
+    UP = 0;
+    BC = 0;
+    fix_me = 0;
+
     if (errcode == 1) {
 
        if (cursor_left)
     if (errcode == 1) {
 
        if (cursor_left)
@@ -87,6 +147,68 @@ tgetent(char *bufp GCC_UNUSED, const char *name)
        if (backspace_if_not_bs != NULL)
            BC = backspace_if_not_bs;
 
        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"));
+                   free(fix_me);
+                   fix_me = 0;
+               }
+           }
+           free(on);
+       }
+
        (void) baudrate();      /* sets ospeed as a side-effect */
 
 /* LINT_PREPRO
        (void) baudrate();      /* sets ospeed as a side-effect */
 
 /* LINT_PREPRO
@@ -108,7 +230,7 @@ tgetent(char *bufp GCC_UNUSED, const char *name)
  *
  ***************************************************************************/
 
  *
  ***************************************************************************/
 
-int
+NCURSES_EXPORT(int)
 tgetflag(NCURSES_CONST char *id)
 {
     int i;
 tgetflag(NCURSES_CONST char *id)
 {
     int i;
@@ -136,7 +258,7 @@ tgetflag(NCURSES_CONST char *id)
  *
  ***************************************************************************/
 
  *
  ***************************************************************************/
 
-int
+NCURSES_EXPORT(int)
 tgetnum(NCURSES_CONST char *id)
 {
     int i;
 tgetnum(NCURSES_CONST char *id)
 {
     int i;
@@ -165,10 +287,11 @@ tgetnum(NCURSES_CONST char *id)
  *
  ***************************************************************************/
 
  *
  ***************************************************************************/
 
-char *
+NCURSES_EXPORT(char *)
 tgetstr(NCURSES_CONST char *id, char **area)
 {
     int i;
 tgetstr(NCURSES_CONST char *id, char **area)
 {
     int i;
+    char *result = NULL;
 
     T((T_CALLED("tgetstr(%s,%p)"), id, area));
     if (cur_term != 0) {
 
     T((T_CALLED("tgetstr(%s,%p)"), id, area));
     if (cur_term != 0) {
@@ -176,17 +299,24 @@ tgetstr(NCURSES_CONST char *id, char **area)
        for_each_string(i, tp) {
            const char *capname = ExtStrname(tp, i, strcodes);
            if (!strncmp(id, capname, 2)) {
        for_each_string(i, tp) {
            const char *capname = ExtStrname(tp, i, strcodes);
            if (!strncmp(id, capname, 2)) {
-               TR(TRACE_DATABASE,("found match : %s", _nc_visbuf(tp->Strings[i])));
+               result = tp->Strings[i];
+               TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result)));
                /* setupterm forces canceled strings to null */
                /* setupterm forces canceled strings to null */
-               if (area != 0
-                   && *area != 0
-                   && VALID_STRING(tp->Strings[i])) {
-                   (void) strcpy(*area, tp->Strings[i]);
-                   *area += strlen(*area) + 1;
+               if (VALID_STRING(result)) {
+                   if (result == exit_attribute_mode
+                       && fix_me != 0) {
+                       result = fix_me;
+                       TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result)));
+                   }
+                   if (area != 0
+                       && *area != 0) {
+                       (void) strcpy(*area, result);
+                       *area += strlen(*area) + 1;
+                   }
                }
                }
-               returnPtr(tp->Strings[i]);
+               break;
            }
        }
     }
            }
        }
     }
-    returnPtr(NULL);
+    returnPtr(result);
 }
 }
index e7057383c56598ce7e3a48f5544c945a07914ac1..57ce807a9e5f5b9c983e55c1fc241353e4156bfa 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
-#include <tic.h>       /* for MAX_ALIAS */
+#include <tic.h>               /* for MAX_ALIAS */
 
 
-MODULE_ID("$Id: lib_termname.c,v 1.2 1999/07/24 21:02:40 tom Exp $")
+MODULE_ID("$Id: lib_termname.c,v 1.7 2001/08/04 19:29:38 tom Exp $")
 
 
-char *termname(void)
+NCURSES_EXPORT(char *)
+termname(void)
 {
 {
-char   *name = getenv("TERM");
-static char    ret[MAX_ALIAS+1];
+    char *name = getenv("TERM");
+    static char ret[MAX_ALIAS + 1];
 
 
-       T(("termname() called"));
+    T((T_CALLED("termname()")));
 
 
-       if (name != 0) {
-               (void) strncpy(ret, name, sizeof(ret) - 1);
-               name = ret;
-       }
-       return name;
+    if (name != 0) {
+       ret[0] = '\0';
+       (void) strncat(ret, name, sizeof(ret) - 1);
+       name = ret;
+    }
+    returnPtr(name);
 }
 }
index 73557eb7cc258ab4833a8ab90a2e7ed0059838cc..77fc6ceabd4a8caad6f7623c67f4ad8bfd5afffe 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 2000 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2000-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,7 +35,7 @@
 #include <ctype.h>
 #include <termcap.h>
 
 #include <ctype.h>
 #include <termcap.h>
 
-MODULE_ID("$Id: lib_tgoto.c,v 1.2 2000/09/24 00:19:14 tom Exp $")
+MODULE_ID("$Id: lib_tgoto.c,v 1.10 2002/08/31 22:14:47 Philippe.Blain Exp $")
 
 #if !PURE_TERMINFO
 static bool
 
 #if !PURE_TERMINFO
 static bool
@@ -43,20 +43,24 @@ is_termcap(const char *string)
 {
     bool result = TRUE;
 
 {
     bool result = TRUE;
 
-    while ((*string != '\0') && result) {
-       if (*string == '%') {
-           switch (*++string) {
-           case 'p':
+    if (string == 0 || *string == '\0') {
+       result = FALSE;         /* tparm() handles empty strings */
+    } else {
+       while ((*string != '\0') && result) {
+           if (*string == '%') {
+               switch (*++string) {
+               case 'p':
+                   result = FALSE;
+                   break;
+               case '\0':
+                   string--;
+                   break;
+               }
+           } else if (string[0] == '$' && string[1] == '<') {
                result = FALSE;
                result = FALSE;
-               break;
-           case '\0':
-               string--;
-               break;
            }
            }
-       } else if (string[0] == '$' && string[1] == '<') {
-           result = FALSE;
+           string++;
        }
        }
-       string++;
     }
     return result;
 }
     }
     return result;
 }
@@ -84,13 +88,13 @@ tgoto_internal(const char *string, int x, int y)
     while (*string != 0) {
        if ((used + need) > length) {
            length += (used + need);
     while (*string != 0) {
        if ((used + need) > length) {
            length += (used + need);
-           if ((result = _nc_doalloc(result, length)) == 0) {
+           if ((result = typeRealloc(char, length, result)) == 0) {
                length = 0;
                break;
            }
        }
        if (*string == '%') {
                length = 0;
                break;
            }
        }
        if (*string == '%') {
-           char *fmt = 0;
+           const char *fmt = 0;
 
            switch (*++string) {
            case '\0':
 
            switch (*++string) {
            case '\0':
@@ -108,7 +112,7 @@ tgoto_internal(const char *string, int x, int y)
                *value %= 1000;
                break;
            case '+':
                *value %= 1000;
                break;
            case '+':
-               *value += (*++string & 0xff);
+               *value += UChar(*++string);
                /* FALLTHRU */
            case '.':
                /*
                /* FALLTHRU */
            case '.':
                /*
@@ -168,11 +172,13 @@ tgoto_internal(const char *string, int x, int y)
        }
        string++;
     }
        }
        string++;
     }
-    if (need_BC) {
-       strcpy(result + used, BC);
-       used += strlen(BC);
+    if (result != 0) {
+       if (need_BC) {
+           strcpy(result + used, BC);
+           used += strlen(BC);
+       }
+       result[used] = '\0';
     }
     }
-    result[used] = '\0';
     return result;
 }
 #endif
     return result;
 }
 #endif
@@ -181,7 +187,7 @@ tgoto_internal(const char *string, int x, int y)
  * Retained solely for upward compatibility.  Note the intentional reversing of
  * the last two arguments when invoking tparm().
  */
  * Retained solely for upward compatibility.  Note the intentional reversing of
  * the last two arguments when invoking tparm().
  */
-char *
+NCURSES_EXPORT(char *)
 tgoto(const char *string, int x, int y)
 {
     char *result;
 tgoto(const char *string, int x, int y)
 {
     char *result;
index def5ba6d5ea32284ec7d7fc37bf77df4f07ad9df..8ef8665881974166afd31d84a417a7ce0e49a8b9 100644 (file)
@@ -36,9 +36,9 @@
 #include <term_entry.h>
 #include <tic.h>
 
 #include <term_entry.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_ti.c,v 1.20 2000/02/13 01:01:26 tom Exp $")
+MODULE_ID("$Id: lib_ti.c,v 1.22 2000/12/10 02:55:08 tom Exp $")
 
 
-int
+NCURSES_EXPORT(int)
 tigetflag(NCURSES_CONST char *str)
 {
     int i;
 tigetflag(NCURSES_CONST char *str)
 {
     int i;
@@ -59,7 +59,7 @@ tigetflag(NCURSES_CONST char *str)
     returnCode(ABSENT_BOOLEAN);
 }
 
     returnCode(ABSENT_BOOLEAN);
 }
 
-int
+NCURSES_EXPORT(int)
 tigetnum(NCURSES_CONST char *str)
 {
     int i;
 tigetnum(NCURSES_CONST char *str)
 {
     int i;
@@ -81,7 +81,7 @@ tigetnum(NCURSES_CONST char *str)
     returnCode(CANCELLED_NUMERIC);     /* Solaris returns a -1 instead */
 }
 
     returnCode(CANCELLED_NUMERIC);     /* Solaris returns a -1 instead */
 }
 
-char *
+NCURSES_EXPORT(char *)
 tigetstr(NCURSES_CONST char *str)
 {
     int i;
 tigetstr(NCURSES_CONST char *str)
 {
     int i;
index 52352c9a3d30dd5222019eb6bc55e698f90610e5..6df1e2d085722d3a1bc7222aab7fffb89011d3e0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey, 1996 on                                       *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
@@ -42,7 +43,7 @@
 #include <term.h>
 #include <tic.h>
 
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tparm.c,v 1.48 2000/10/14 17:45:00 Sergei.Ivanov Exp $")
+MODULE_ID("$Id: lib_tparm.c,v 1.62 2002/10/05 19:33:24 Frank.Henigman Exp $")
 
 /*
  *     char *
 
 /*
  *     char *
@@ -108,14 +109,17 @@ MODULE_ID("$Id: lib_tparm.c,v 1.48 2000/10/14 17:45:00 Sergei.Ivanov Exp $")
 
 typedef struct {
     union {
 
 typedef struct {
     union {
-       unsigned int num;
+       int num;
        char *str;
     } data;
     bool num_type;
 } stack_frame;
 
        char *str;
     } data;
     bool num_type;
 } stack_frame;
 
+NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
+
 static stack_frame stack[STACKSIZE];
 static int stack_ptr;
 static stack_frame stack[STACKSIZE];
 static int stack_ptr;
+static const char *tparam_base = "";
 
 #ifdef TRACE
 static const char *tname;
 
 #ifdef TRACE
 static const char *tname;
@@ -126,7 +130,7 @@ static size_t out_size;
 static size_t out_used;
 
 #if NO_LEAKS
 static size_t out_used;
 
 #if NO_LEAKS
-void
+NCURSES_EXPORT(void)
 _nc_free_tparm(void)
 {
     if (out_buff != 0) {
 _nc_free_tparm(void)
 {
     if (out_buff != 0) {
@@ -137,21 +141,16 @@ _nc_free_tparm(void)
 }
 #endif
 
 }
 #endif
 
-static void
-really_get_space(size_t need)
-{
-    out_size = need * 2;
-    out_buff = typeRealloc(char, out_size, out_buff);
-    if (out_buff == 0)
-       _nc_err_abort("Out of memory");
-}
-
 static inline void
 get_space(size_t need)
 {
     need += out_used;
 static inline void
 get_space(size_t need)
 {
     need += out_used;
-    if (need > out_size)
-       really_get_space(need);
+    if (need > out_size) {
+       out_size = need * 2;
+       out_buff = typeRealloc(char, out_size, out_buff);
+       if (out_buff == 0)
+           _nc_err_abort(MSG_NO_MEMORY);
+    }
 }
 
 static inline void
 }
 
 static inline void
@@ -173,7 +172,7 @@ save_number(const char *fmt, int number, int len)
     if (len < 30)
        len = 30;               /* actually log10(MAX_INT)+1 */
 
     if (len < 30)
        len = 30;               /* actually log10(MAX_INT)+1 */
 
-    get_space(len + 1);
+    get_space((unsigned) len + 1);
 
     (void) sprintf(out_buff + out_used, fmt, number);
     out_used += strlen(out_buff + out_used);
 
     (void) sprintf(out_buff + out_used, fmt, number);
     out_used += strlen(out_buff + out_used);
@@ -195,6 +194,9 @@ npush(int x)
        stack[stack_ptr].num_type = TRUE;
        stack[stack_ptr].data.num = x;
        stack_ptr++;
        stack[stack_ptr].num_type = TRUE;
        stack[stack_ptr].data.num = x;
        stack_ptr++;
+    } else {
+       DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(tparam_base)));
+       _nc_tparm_err++;
     }
 }
 
     }
 }
 
@@ -206,6 +208,9 @@ npop(void)
        stack_ptr--;
        if (stack[stack_ptr].num_type)
            result = stack[stack_ptr].data.num;
        stack_ptr--;
        if (stack[stack_ptr].num_type)
            result = stack[stack_ptr].data.num;
+    } else {
+       DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(tparam_base)));
+       _nc_tparm_err++;
     }
     return result;
 }
     }
     return result;
 }
@@ -217,6 +222,9 @@ spush(char *x)
        stack[stack_ptr].num_type = FALSE;
        stack[stack_ptr].data.str = x;
        stack_ptr++;
        stack[stack_ptr].num_type = FALSE;
        stack[stack_ptr].data.str = x;
        stack_ptr++;
+    } else {
+       DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(tparam_base)));
+       _nc_tparm_err++;
     }
 }
 
     }
 }
 
@@ -229,6 +237,9 @@ spop(void)
        stack_ptr--;
        if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0)
            result = stack[stack_ptr].data.str;
        stack_ptr--;
        if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0)
            result = stack[stack_ptr].data.str;
+    } else {
+       DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(tparam_base)));
+       _nc_tparm_err++;
     }
     return result;
 }
     }
     return result;
 }
@@ -241,8 +252,8 @@ parse_format(const char *s, char *format, int *len)
     bool dot = FALSE;
     bool err = FALSE;
     char *fmt = format;
     bool dot = FALSE;
     bool err = FALSE;
     char *fmt = format;
-    int prec = 0;
-    int width = 0;
+    int my_width = 0;
+    int my_prec = 0;
     int value = 0;
 
     *len = 0;
     int value = 0;
 
     *len = 0;
@@ -262,9 +273,9 @@ parse_format(const char *s, char *format, int *len)
            *format++ = *s++;
            if (dot) {
                err = TRUE;
            *format++ = *s++;
            if (dot) {
                err = TRUE;
-           } else {
+           } else {            /* value before '.' is the width */
                dot = TRUE;
                dot = TRUE;
-               prec = value;
+               my_width = value;
            }
            value = 0;
            break;
            }
            value = 0;
            break;
@@ -286,7 +297,7 @@ parse_format(const char *s, char *format, int *len)
            }
            break;
        default:
            }
            break;
        default:
-           if (isdigit(*s)) {
+           if (isdigit(UChar(*s))) {
                value = (value * 10) + (*s - '0');
                if (value > 10000)
                    err = TRUE;
                value = (value * 10) + (*s - '0');
                if (value > 10000)
                    err = TRUE;
@@ -301,20 +312,24 @@ parse_format(const char *s, char *format, int *len)
      * If we found an error, ignore (and remove) the flags.
      */
     if (err) {
      * If we found an error, ignore (and remove) the flags.
      */
     if (err) {
-       prec = width = value = 0;
+       my_width = my_prec = value = 0;
        format = fmt;
        *format++ = '%';
        *format++ = *s;
     }
 
        format = fmt;
        *format++ = '%';
        *format++ = *s;
     }
 
+    /*
+     * Any value after '.' is the precision.  If we did not see '.', then
+     * the value is the width.
+     */
     if (dot)
     if (dot)
-       width = value;
+       my_prec = value;
     else
     else
-       prec = value;
+       my_width = value;
 
     *format = '\0';
     /* return maximum string length in print */
 
     *format = '\0';
     /* return maximum string length in print */
-    *len = (prec > width) ? prec : width;
+    *len = (my_width > my_prec) ? my_width : my_prec;
     return s;
 }
 
     return s;
 }
 
@@ -326,7 +341,7 @@ tparam_internal(const char *string, va_list ap)
 {
 #define NUM_VARS 26
     char *p_is_s[9];
 {
 #define NUM_VARS 26
     char *p_is_s[9];
-    int param[9];
+    long param[9];
     int lastpop;
     int popcount;
     int number;
     int lastpop;
     int popcount;
     int number;
@@ -410,6 +425,10 @@ tparam_internal(const char *string, va_list ap)
                break;
 
            case 'P':
                break;
 
            case 'P':
+               ++number;
+               ++cp;
+               break;
+
            case 'g':
                cp++;
                break;
            case 'g':
                cp++;
                break;
@@ -439,10 +458,14 @@ tparam_internal(const char *string, va_list ap)
            case '=':
            case '<':
            case '>':
            case '=':
            case '<':
            case '>':
+               lastpop = -1;
+               number += 2;
+               break;
+
            case '!':
            case '~':
                lastpop = -1;
            case '!':
            case '~':
                lastpop = -1;
-               number += 2;
+               ++number;
                break;
 
            case 'i':
                break;
 
            case 'i':
@@ -462,12 +485,14 @@ tparam_internal(const char *string, va_list ap)
        /*
         * A few caps (such as plab_norm) have string-valued parms.
         * We'll have to assume that the caller knows the difference, since
        /*
         * A few caps (such as plab_norm) have string-valued parms.
         * We'll have to assume that the caller knows the difference, since
-        * a char* and an int may not be the same size on the stack.
+        * a char* and an int may not be the same size on the stack.  The
+        * normal prototype for this uses 9 long's, which is consistent with
+        * our va_arg() usage.
         */
        if (p_is_s[i] != 0) {
            p_is_s[i] = va_arg(ap, char *);
        } else {
         */
        if (p_is_s[i] != 0) {
            p_is_s[i] = va_arg(ap, char *);
        } else {
-           param[i] = va_arg(ap, int);
+           param[i] = va_arg(ap, long int);
        }
     }
 
        }
     }
 
@@ -501,7 +526,7 @@ tparam_internal(const char *string, va_list ap)
        if (*string != '%') {
            save_char(*string);
        } else {
        if (*string != '%') {
            save_char(*string);
        } else {
-           string++;
+           tparam_base = string++;
            string = parse_format(string, format, &len);
            switch (*string) {
            default:
            string = parse_format(string, format, &len);
            switch (*string) {
            default:
@@ -514,12 +539,15 @@ tparam_internal(const char *string, va_list ap)
            case 'o':           /* FALLTHRU */
            case 'x':           /* FALLTHRU */
            case 'X':           /* FALLTHRU */
            case 'o':           /* FALLTHRU */
            case 'x':           /* FALLTHRU */
            case 'X':           /* FALLTHRU */
-           case 'c':           /* FALLTHRU */
                save_number(format, npop(), len);
                break;
 
                save_number(format, npop(), len);
                break;
 
+           case 'c':           /* FALLTHRU */
+               save_char(npop());
+               break;
+
            case 'l':
            case 'l':
-               save_number("%d", strlen(spop()), 0);
+               save_number("%d", (int) strlen(spop()), 0);
                break;
 
            case 's':
                break;
 
            case 's':
@@ -724,12 +752,13 @@ tparam_internal(const char *string, va_list ap)
     return (out_buff);
 }
 
     return (out_buff);
 }
 
-char *
+NCURSES_EXPORT(char *)
 tparm(NCURSES_CONST char *string,...)
 {
     va_list ap;
     char *result;
 
 tparm(NCURSES_CONST char *string,...)
 {
     va_list ap;
     char *result;
 
+    _nc_tparm_err = 0;
     va_start(ap, string);
 #ifdef TRACE
     tname = "tparm";
     va_start(ap, string);
 #ifdef TRACE
     tname = "tparm";
index 93eebf88691f3528e140ed72d4ba4b8d9a3a546f..2273b877a637a43bf435d5b9397de7f1c4b34af1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <termcap.h>           /* ospeed */
 #include <tic.h>
 
 #include <termcap.h>           /* ospeed */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tputs.c,v 1.51 2000/10/08 00:22:24 tom Exp $")
+MODULE_ID("$Id: lib_tputs.c,v 1.60 2002/08/17 23:44:08 tom Exp $")
 
 
-char PC = 0;                   /* used by termcap library */
-short ospeed = 0;              /* used by termcap library */
+NCURSES_EXPORT_VAR(char) PC = 0;               /* used by termcap library */
+NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
 
 
-int _nc_nulls_sent = 0;                /* used by 'tack' program */
+NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;    /* used by 'tack' program */
 
 static int (*my_outch) (int c) = _nc_outch;
 
 
 static int (*my_outch) (int c) = _nc_outch;
 
-int
+NCURSES_EXPORT(int)
 delay_output(int ms)
 {
     T((T_CALLED("delay_output(%d)"), ms));
 delay_output(int ms)
 {
     T((T_CALLED("delay_output(%d)"), ms));
@@ -75,13 +75,13 @@ delay_output(int ms)
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_flush(void)
 {
     (void) fflush(NC_OUTPUT);
 }
 
 _nc_flush(void)
 {
     (void) fflush(NC_OUTPUT);
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_outch(int ch)
 {
 #ifdef TRACE
 _nc_outch(int ch)
 {
 #ifdef TRACE
@@ -102,79 +102,13 @@ _nc_outch(int ch)
     return OK;
 }
 
     return OK;
 }
 
-#if USE_WIDEC_SUPPORT
-/*
- * Reference: The Unicode Standard 2.0
- *
- * No surrogates supported (we're storing only one 16-bit Unicode value per
- * cell).
- */
-int
-_nc_utf8_outch(int ch)
-{
-    static const unsigned byteMask = 0xBF;
-    static const unsigned otherMark = 0x80;
-    static const unsigned firstMark[] =
-    {0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC};
-
-    int result[7], *ptr;
-    int count = 0;
-
-    if ((unsigned int) ch < 0x80)
-       count = 1;
-    else if ((unsigned int) ch < 0x800)
-       count = 2;
-    else if ((unsigned int) ch < 0x10000)
-       count = 3;
-    else if ((unsigned int) ch < 0x200000)
-       count = 4;
-    else if ((unsigned int) ch < 0x4000000)
-       count = 5;
-    else if ((unsigned int) ch <= 0x7FFFFFFF)
-       count = 6;
-    else {
-       count = 3;
-       ch = 0xFFFD;
-    }
-    ptr = result + count;
-    switch (count) {
-    case 6:
-       *--ptr = (ch | otherMark) & byteMask;
-       ch >>= 6;
-       /* FALLTHRU */
-    case 5:
-       *--ptr = (ch | otherMark) & byteMask;
-       ch >>= 6;
-       /* FALLTHRU */
-    case 4:
-       *--ptr = (ch | otherMark) & byteMask;
-       ch >>= 6;
-       /* FALLTHRU */
-    case 3:
-       *--ptr = (ch | otherMark) & byteMask;
-       ch >>= 6;
-       /* FALLTHRU */
-    case 2:
-       *--ptr = (ch | otherMark) & byteMask;
-       ch >>= 6;
-       /* FALLTHRU */
-    case 1:
-       *--ptr = (ch | firstMark[count]);
-       break;
-    }
-    while (count--)
-       _nc_outch(*ptr++);
-    return OK;
-}
-#endif
-
-int
+NCURSES_EXPORT(int)
 putp(const char *string)
 {
     return tputs(string, 1, _nc_outch);
 }
 
 putp(const char *string)
 {
     return tputs(string, 1, _nc_outch);
 }
 
-int
+NCURSES_EXPORT(int)
 tputs(const char *string, int affcnt, int (*outc) (int))
 {
     bool always_delay;
 tputs(const char *string, int affcnt, int (*outc) (int))
 {
     bool always_delay;
@@ -225,19 +159,19 @@ tputs(const char *string, int affcnt, int (*outc) (int))
      * (like nethack) actually do the likes of tputs("50") to get delays.
      */
     trailpad = 0;
      * (like nethack) actually do the likes of tputs("50") to get delays.
      */
     trailpad = 0;
-    if (isdigit(*string)) {
-       while (isdigit(*string)) {
+    if (isdigit(UChar(*string))) {
+       while (isdigit(UChar(*string))) {
            trailpad = trailpad * 10 + (*string - '0');
            string++;
        }
        trailpad *= 10;
        if (*string == '.') {
            string++;
            trailpad = trailpad * 10 + (*string - '0');
            string++;
        }
        trailpad *= 10;
        if (*string == '.') {
            string++;
-           if (isdigit(*string)) {
+           if (isdigit(UChar(*string))) {
                trailpad += (*string - '0');
                string++;
            }
                trailpad += (*string - '0');
                string++;
            }
-           while (isdigit(*string))
+           while (isdigit(UChar(*string)))
                string++;
        }
 
                string++;
        }
 
@@ -262,25 +196,26 @@ tputs(const char *string, int affcnt, int (*outc) (int))
                bool mandatory;
 
                string++;
                bool mandatory;
 
                string++;
-               if ((!isdigit(*string) && *string != '.') || !strchr(string, '>')) {
+               if ((!isdigit(UChar(*string)) && *string != '.')
+                   || !strchr(string, '>')) {
                    (*outc) ('$');
                    (*outc) ('<');
                    continue;
                }
 
                number = 0;
                    (*outc) ('$');
                    (*outc) ('<');
                    continue;
                }
 
                number = 0;
-               while (isdigit(*string)) {
+               while (isdigit(UChar(*string))) {
                    number = number * 10 + (*string - '0');
                    string++;
                }
                number *= 10;
                if (*string == '.') {
                    string++;
                    number = number * 10 + (*string - '0');
                    string++;
                }
                number *= 10;
                if (*string == '.') {
                    string++;
-                   if (isdigit(*string)) {
+                   if (isdigit(UChar(*string))) {
                        number += (*string - '0');
                        string++;
                    }
                        number += (*string - '0');
                        string++;
                    }
-                   while (isdigit(*string))
+                   while (isdigit(UChar(*string)))
                        string++;
                }
 
                        string++;
                }
 
index 0e57c512b20f3e0b107cd7f85f87288743c01eb6..8c420e8232eb4d1d5506b5eb5153d2f0e09c9dae 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,9 +36,9 @@
  */
 
 #include <curses.priv.h>
  */
 
 #include <curses.priv.h>
-#include <term.h>      /* cur_term */
+#include <term.h>              /* cur_term */
 
 
-MODULE_ID("$Id: lib_ttyflags.c,v 1.3 1999/10/22 21:38:55 tom Exp $")
+MODULE_ID("$Id: lib_ttyflags.c,v 1.9 2002/10/12 21:28:16 tom Exp $")
 
 #undef tabs
 
 
 #undef tabs
 
@@ -56,89 +56,97 @@ MODULE_ID("$Id: lib_ttyflags.c,v 1.3 1999/10/22 21:38:55 tom Exp $")
 # endif
 #endif
 
 # endif
 #endif
 
-int _nc_get_tty_mode(TTY *buf)
+NCURSES_EXPORT(int)
+_nc_get_tty_mode(TTY * buf)
 {
 {
-       if (cur_term == 0
-        || GET_TTY(cur_term->Filedes, buf) != 0)
-               return(ERR);
-       TR(TRACE_BITS,("_nc_get_tty_mode: %s", _nc_tracebits()));
-       return (OK);
+    if (cur_term == 0
+       || GET_TTY(cur_term->Filedes, buf) != 0)
+       return (ERR);
+    TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
+                   cur_term->Filedes, _nc_trace_ttymode(buf)));
+    return (OK);
 }
 
 }
 
-int _nc_set_tty_mode(TTY *buf)
+NCURSES_EXPORT(int)
+_nc_set_tty_mode(TTY * buf)
 {
 {
-       if (cur_term == 0
-        || SET_TTY(cur_term->Filedes, buf) != 0)
-               return(ERR);
-       TR(TRACE_BITS,("_nc_set_tty_mode: %s", _nc_tracebits()));
-       return (OK);
+    if (cur_term == 0
+       || SET_TTY(cur_term->Filedes, buf) != 0)
+       return (ERR);
+    TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
+                   cur_term->Filedes, _nc_trace_ttymode(buf)));
+    return (OK);
 }
 
 }
 
-int def_shell_mode(void)
+NCURSES_EXPORT(int)
+def_shell_mode(void)
 {
 {
-       T((T_CALLED("def_shell_mode()")));
+    T((T_CALLED("def_shell_mode()")));
 
 
-       /*
-        * Turn off the XTABS bit in the tty structure if it was on.  If XTABS
-        * was on, remove the tab and backtab capabilities.
-        */
+    /*
+     * Turn off the XTABS bit in the tty structure if it was on.  If XTABS
+     * was on, remove the tab and backtab capabilities.
+     */
 
 
-       if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
-               returnCode(ERR);
+    if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
+       returnCode(ERR);
 #ifdef TERMIOS
 #ifdef TERMIOS
-       if (cur_term->Ottyb.c_oflag & tabs)
-               tab = back_tab = NULL;
+    if (cur_term->Ottyb.c_oflag & tabs)
+       tab = back_tab = NULL;
 #else
 #else
-       if (cur_term->Ottyb.sg_flags & XTABS)
-               tab = back_tab = NULL;
+    if (cur_term->Ottyb.sg_flags & XTABS)
+       tab = back_tab = NULL;
 #endif
 #endif
-       returnCode(OK);
+    returnCode(OK);
 }
 
 }
 
-int def_prog_mode(void)
+NCURSES_EXPORT(int)
+def_prog_mode(void)
 {
 {
-       T((T_CALLED("def_prog_mode()")));
+    T((T_CALLED("def_prog_mode()")));
 
 
-       if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
-               returnCode(ERR);
+    if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
+       returnCode(ERR);
 #ifdef TERMIOS
 #ifdef TERMIOS
-       cur_term->Nttyb.c_oflag &= ~tabs;
+    cur_term->Nttyb.c_oflag &= ~tabs;
 #else
 #else
-       cur_term->Nttyb.sg_flags &= ~XTABS;
+    cur_term->Nttyb.sg_flags &= ~XTABS;
 #endif
 #endif
-       returnCode(OK);
+    returnCode(OK);
 }
 
 }
 
-int reset_prog_mode(void)
+NCURSES_EXPORT(int)
+reset_prog_mode(void)
 {
 {
-       T((T_CALLED("reset_prog_mode()")));
-
-       if (cur_term != 0) {
-               _nc_set_tty_mode(&cur_term->Nttyb);
-               if (SP) {
-                       if (stdscr && stdscr->_use_keypad)
-                               _nc_keypad(TRUE);
-                       NC_BUFFERED(TRUE);
-               }
-               returnCode(OK);
+    T((T_CALLED("reset_prog_mode()")));
+
+    if (cur_term != 0) {
+       if (_nc_set_tty_mode(&cur_term->Nttyb) == OK) {
+           if (SP) {
+               if (SP->_keypad_on)
+                   _nc_keypad(TRUE);
+               NC_BUFFERED(TRUE);
+           }
+           returnCode(OK);
        }
        }
-       returnCode(ERR);
+    }
+    returnCode(ERR);
 }
 
 }
 
-int reset_shell_mode(void)
+NCURSES_EXPORT(int)
+reset_shell_mode(void)
 {
 {
-       T((T_CALLED("reset_shell_mode()")));
-
-       if (cur_term != 0) {
-               if (SP)
-               {
-                       _nc_keypad(FALSE);
-                       _nc_flush();
-                       NC_BUFFERED(FALSE);
-               }
-               returnCode(_nc_set_tty_mode(&cur_term->Ottyb));
+    T((T_CALLED("reset_shell_mode()")));
+
+    if (cur_term != 0) {
+       if (SP) {
+           _nc_keypad(FALSE);
+           _nc_flush();
+           NC_BUFFERED(FALSE);
        }
        }
-       returnCode(ERR);
+       returnCode(_nc_set_tty_mode(&cur_term->Ottyb));
+    }
+    returnCode(ERR);
 }
 
 /*
 }
 
 /*
@@ -146,18 +154,20 @@ int reset_shell_mode(void)
 **
 */
 
 **
 */
 
-static TTY   buf;
+static TTY buf;
 
 
-int savetty(void)
+NCURSES_EXPORT(int)
+savetty(void)
 {
 {
-       T((T_CALLED("savetty()")));
+    T((T_CALLED("savetty()")));
 
 
-       returnCode(_nc_get_tty_mode(&buf));
+    returnCode(_nc_get_tty_mode(&buf));
 }
 
 }
 
-int resetty(void)
+NCURSES_EXPORT(int)
+resetty(void)
 {
 {
-       T((T_CALLED("resetty()")));
+    T((T_CALLED("resetty()")));
 
 
-       returnCode(_nc_set_tty_mode(&buf));
+    returnCode(_nc_set_tty_mode(&buf));
 }
 }
index 703ca5de0fea2f2d5ac41194978ebbd6d023a633..3c98da23e019ba5b1a7c1300122cfc3f6d9f28d1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.8 2000/03/12 02:55:50 Todd.C.Miller Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.10 2000/12/10 02:55:08 tom Exp $")
 
 #include <names.c>
 
 #define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
 
 
 #include <names.c>
 
 #define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
 
-static size_t lookup(const char *name)
+static size_t
+lookup(const char *name)
 {
 {
-       size_t n;
-       bool found = FALSE;
-       for (n = 0; strnames[n] != 0; n++) {
-               if (!strcmp(name, strnames[n])) {
-                       found = TRUE;
-                       break;
-               }
+    size_t n;
+    bool found = FALSE;
+    for (n = 0; strnames[n] != 0; n++) {
+       if (!strcmp(name, strnames[n])) {
+           found = TRUE;
+           break;
        }
        }
-       if (!found) {
-               for (n = 0; strfnames[n] != 0; n++) {
-                       if (!strcmp(name, strfnames[n])) {
-                               found = TRUE;
-                               break;
-                       }
-               }
+    }
+    if (!found) {
+       for (n = 0; strfnames[n] != 0; n++) {
+           if (!strcmp(name, strfnames[n])) {
+               found = TRUE;
+               break;
+           }
        }
        }
-       return found ? n : UNKNOWN;
+    }
+    return found ? n : UNKNOWN;
 }
 
 }
 
-static void make_keys(FILE *ifp, FILE *ofp)
+static void
+make_keys(FILE * ifp, FILE * ofp)
 {
 {
-       char buffer[BUFSIZ];
-       char from[BUFSIZ];
-       char to[BUFSIZ];
-       int maxlen = 16;
+    char buffer[BUFSIZ];
+    char from[BUFSIZ];
+    char to[BUFSIZ];
+    int maxlen = 16;
 
 
-       while (fgets(buffer, sizeof(buffer), ifp) != 0) {
-               if (*buffer == '#')
-                       continue;
-               if (sscanf(buffer, "%s %s", to, from) == 2) {
-                       int code = lookup(from);
-                       if (code == UNKNOWN)
-                               continue;
-                       if ((int)strlen(from) > maxlen)
-                               maxlen = strlen(from);
-                       fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
-                               code,
-                               maxlen, maxlen,
-                               to,
-                               from);
-               }
+    while (fgets(buffer, sizeof(buffer), ifp) != 0) {
+       if (*buffer == '#')
+           continue;
+       if (sscanf(buffer, "%s %s", to, from) == 2) {
+           int code = lookup(from);
+           if (code == UNKNOWN)
+               continue;
+           if ((int) strlen(from) > maxlen)
+               maxlen = strlen(from);
+           fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
+                   code,
+                   maxlen, maxlen,
+                   to,
+                   from);
        }
        }
+    }
 }
 
 }
 
-static void write_list(FILE *ofp, const char **list)
+static void
+write_list(FILE * ofp, const char **list)
 {
 {
-       while (*list != 0)
-               fprintf(ofp, "%s\n", *list++);
+    while (*list != 0)
+       fprintf(ofp, "%s\n", *list++);
 }
 
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
 {
-       static const char *prefix[] = {
-               "#ifndef NCU_KEYS_H",
-               "#define NCU_KEYS_H 1",
-               "",
-               "/* This file was generated by MAKE_KEYS */",
-               "",
-               "#if BROKEN_LINKER",
-               "static",
-               "#endif",
-               "struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
-               0
-       };
-       static const char *suffix[] = {
-               "\t{ 0, 0} };",
-               "",
-               "#endif /* NCU_KEYS_H */",
-               0
-       };
+    static const char *prefix[] =
+    {
+       "#ifndef NCU_KEYS_H",
+       "#define NCU_KEYS_H 1",
+       "",
+       "/* This file was generated by MAKE_KEYS */",
+       "",
+       "#if BROKEN_LINKER",
+       "static",
+       "#endif",
+       "struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
+       0
+    };
+    static const char *suffix[] =
+    {
+       "\t{ 0, 0} };",
+       "",
+       "#endif /* NCU_KEYS_H */",
+       0
+    };
 
 
-       write_list(stdout, prefix);
-       if (argc > 1) {
-               int n;
-               for (n = 1; n < argc; n++) {
-                       FILE *fp = fopen(argv[n], "r");
-                       if (fp != 0) {
-                               make_keys(fp, stdout);
-                               fclose(fp);
-                       }
-               }
-       } else {
-               make_keys(stdin, stdout);
+    write_list(stdout, prefix);
+    if (argc > 1) {
+       int n;
+       for (n = 1; n < argc; n++) {
+           FILE *fp = fopen(argv[n], "r");
+           if (fp != 0) {
+               make_keys(fp, stdout);
+               fclose(fp);
+           }
        }
        }
-       write_list(stdout, suffix);
-       return EXIT_SUCCESS;
+    } else {
+       make_keys(stdin, stdout);
+    }
+    write_list(stdout, suffix);
+    return EXIT_SUCCESS;
 }
 }
index a9e8396959d119380c955e1858aa11713454a019..9d8e390d067e076a010f90d6fffaef448bb5d678 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: name_match.c,v 1.8 1999/03/07 01:58:36 tom Exp $")
+MODULE_ID("$Id: name_match.c,v 1.12 2002/08/31 21:48:41 Philippe.Blain Exp $")
 
 /*
  *     _nc_first_name(char *names)
 
 /*
  *     _nc_first_name(char *names)
@@ -42,19 +42,22 @@ MODULE_ID("$Id: name_match.c,v 1.8 1999/03/07 01:58:36 tom Exp $")
  *     Extract the primary name from a compiled entry.
  */
 
  *     Extract the primary name from a compiled entry.
  */
 
-char *_nc_first_name(const char *const sp)
+NCURSES_EXPORT(char *)
+_nc_first_name(const char *const sp)
 /* get the first name from the given name list */
 {
 /* get the first name from the given name list */
 {
-       static char     buf[MAX_NAME_SIZE+1];
-       register unsigned n;
+    static char *buf;
+    register unsigned n;
 
 
-       for (n = 0; n < sizeof(buf)-1; n++) {
-               if ((buf[n] = sp[n]) == '\0'
-                || (buf[n] == '|'))
-                       break;
-       }
-       buf[n] = '\0';
-       return(buf);
+    if (buf == 0)
+       buf = typeMalloc(char, MAX_NAME_SIZE + 1);
+    for (n = 0; n < MAX_NAME_SIZE; n++) {
+       if ((buf[n] = sp[n]) == '\0'
+           || (buf[n] == '|'))
+           break;
+    }
+    buf[n] = '\0';
+    return (buf);
 }
 
 /*
 }
 
 /*
@@ -63,34 +66,36 @@ char *_nc_first_name(const char *const sp)
  *     Is the given name matched in namelist?
  */
 
  *     Is the given name matched in namelist?
  */
 
-int _nc_name_match(const char *const namelst, const char *const name, const char *const delim)
+NCURSES_EXPORT(int)
+_nc_name_match
+(const char *const namelst, const char *const name, const char *const delim)
 {
 {
-       const char *s, *d, *t;
-       int code, found;
+    const char *s, *d, *t;
+    int code, found;
 
 
-       if ((s = namelst) != 0) {
-               while (*s != '\0') {
-                       for (d = name; *d != '\0'; d++) {
-                               if (*s != *d)
-                                       break;
-                               s++;
-                       }
-                       found = FALSE;
-                       for (code = TRUE; *s != '\0'; code = FALSE, s++) {
-                               for (t = delim; *t != '\0'; t++) {
-                                       if (*s == *t) {
-                                               found = TRUE;
-                                               break;
-                                       }
-                               }
-                               if (found)
-                                       break;
-                       }
-                       if (code && *d == '\0')
-                               return code;
-                       if (*s++ == 0)
-                               break;
+    if ((s = namelst) != 0) {
+       while (*s != '\0') {
+           for (d = name; *d != '\0'; d++) {
+               if (*s != *d)
+                   break;
+               s++;
+           }
+           found = FALSE;
+           for (code = TRUE; *s != '\0'; code = FALSE, s++) {
+               for (t = delim; *t != '\0'; t++) {
+                   if (*s == *t) {
+                       found = TRUE;
+                       break;
+                   }
                }
                }
+               if (found)
+                   break;
+           }
+           if (code && *d == '\0')
+               return code;
+           if (*s++ == 0)
+               break;
        }
        }
-       return FALSE;
+    }
+    return FALSE;
 }
 }
index 24bf3c37f584bd9bd6edb0d66e60e8ba936bfb2a..87e424f7eca7551c8106be016cf25873c25affbd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     from the input stream.
  */
 
  *     from the input stream.
  */
 
+#define __INTERNAL_CAPS_VISIBLE
 #include <curses.priv.h>
 
 #include <ctype.h>
 #include <tic.h>
 #include <curses.priv.h>
 
 #include <ctype.h>
 #include <tic.h>
-#define __INTERNAL_CAPS_VISIBLE
 #include <term_entry.h>
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: parse_entry.c,v 1.48 2000/10/03 09:38:48 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.57 2002/08/31 17:02:02 tom Exp $")
 
 #ifdef LINT
 static short const parametrized[] =
 
 #ifdef LINT
 static short const parametrized[] =
@@ -195,14 +195,15 @@ _nc_extend_names(ENTRY * entryp, char *name, int token_type)
  *     push back token
  */
 
  *     push back token
  */
 
-int
-_nc_parse_entry(struct entry *entryp, int literal, bool silent)
+NCURSES_EXPORT(int)
+_nc_parse_entry
+(struct entry *entryp, int literal, bool silent)
 {
     int token_type;
     struct name_table_entry const *entry_ptr;
     char *ptr, *base;
 
 {
     int token_type;
     struct name_table_entry const *entry_ptr;
     char *ptr, *base;
 
-    token_type = _nc_get_token();
+    token_type = _nc_get_token(silent);
 
     if (token_type == EOF)
        return (EOF);
 
     if (token_type == EOF)
        return (EOF);
@@ -242,15 +243,15 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
                        (base == entryp->tterm.term_names)
                        ? "primary name"
                        : "alias",
                        (base == entryp->tterm.term_names)
                        ? "primary name"
                        : "alias",
-                       ptr - base, base);
+                       (int) (ptr - base), base);
        }
     }
 
     entryp->nuses = 0;
 
        }
     }
 
     entryp->nuses = 0;
 
-    for (token_type = _nc_get_token();
+    for (token_type = _nc_get_token(silent);
         token_type != EOF && token_type != NAMES;
         token_type != EOF && token_type != NAMES;
-        token_type = _nc_get_token()) {
+        token_type = _nc_get_token(silent)) {
        if (strcmp(_nc_curr_token.tk_name, "use") == 0
            || strcmp(_nc_curr_token.tk_name, "tc") == 0) {
            entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring);
        if (strcmp(_nc_curr_token.tk_name, "use") == 0
            || strcmp(_nc_curr_token.tk_name, "tc") == 0) {
            entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring);
@@ -464,12 +465,12 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
        } else
            postprocess_terminfo(&entryp->tterm);
     }
        } else
            postprocess_terminfo(&entryp->tterm);
     }
-    _nc_wrap_entry(entryp);
+    _nc_wrap_entry(entryp, FALSE);
 
     return (OK);
 }
 
 
     return (OK);
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_capcmp(const char *s, const char *t)
 /* compare two string capabilities, stripping out padding */
 {
 _nc_capcmp(const char *s, const char *t)
 /* compare two string capabilities, stripping out padding */
 {
@@ -481,15 +482,21 @@ _nc_capcmp(const char *s, const char *t)
     for (;;) {
        if (s[0] == '$' && s[1] == '<') {
            for (s += 2;; s++)
     for (;;) {
        if (s[0] == '$' && s[1] == '<') {
            for (s += 2;; s++)
-               if (!(isdigit(*s) || *s == '.' || *s == '*' || *s == '/' ||
-                     *s == '>'))
+               if (!(isdigit(UChar(*s))
+                     || *s == '.'
+                     || *s == '*'
+                     || *s == '/'
+                     || *s == '>'))
                    break;
        }
 
        if (t[0] == '$' && t[1] == '<') {
            for (t += 2;; t++)
                    break;
        }
 
        if (t[0] == '$' && t[1] == '<') {
            for (t += 2;; t++)
-               if (!(isdigit(*t) || *t == '.' || *t == '*' || *t == '/' ||
-                     *t == '>'))
+               if (!(isdigit(UChar(*t))
+                     || *t == '.'
+                     || *t == '*'
+                     || *t == '/'
+                     || *t == '>'))
                    break;
        }
 
                    break;
        }
 
@@ -507,7 +514,7 @@ _nc_capcmp(const char *s, const char *t)
 }
 
 static void
 }
 
 static void
-append_acs0(string_desc *dst, int code, int src)
+append_acs0(string_desc * dst, int code, int src)
 {
     if (src != 0) {
        char temp[3];
 {
     if (src != 0) {
        char temp[3];
@@ -519,7 +526,7 @@ append_acs0(string_desc *dst, int code, int src)
 }
 
 static void
 }
 
 static void
-append_acs(string_desc *dst, int code, char *src)
+append_acs(string_desc * dst, int code, char *src)
 {
     if (src != 0 && strlen(src) == 1) {
        append_acs0(dst, code, *src);
 {
     if (src != 0 && strlen(src) == 1) {
        append_acs0(dst, code, *src);
@@ -657,12 +664,12 @@ postprocess_termcap(TERMTYPE * tp, bool has_base)
            } else if (PRESENT(carriage_return) && PRESENT(scroll_forward)) {
                _nc_str_init(&result, buf, sizeof(buf));
                if (_nc_safe_strcat(&result, carriage_return)
            } else if (PRESENT(carriage_return) && PRESENT(scroll_forward)) {
                _nc_str_init(&result, buf, sizeof(buf));
                if (_nc_safe_strcat(&result, carriage_return)
-                && _nc_safe_strcat(&result, scroll_forward))
+                   && _nc_safe_strcat(&result, scroll_forward))
                    newline = _nc_save_str(buf);
            } else if (PRESENT(carriage_return) && PRESENT(cursor_down)) {
                _nc_str_init(&result, buf, sizeof(buf));
                if (_nc_safe_strcat(&result, carriage_return)
                    newline = _nc_save_str(buf);
            } else if (PRESENT(carriage_return) && PRESENT(cursor_down)) {
                _nc_str_init(&result, buf, sizeof(buf));
                if (_nc_safe_strcat(&result, carriage_return)
-                && _nc_safe_strcat(&result, cursor_down))
+                   && _nc_safe_strcat(&result, cursor_down))
                    newline = _nc_save_str(buf);
            }
        }
                    newline = _nc_save_str(buf);
            }
        }
@@ -813,13 +820,15 @@ postprocess_termcap(TERMTYPE * tp, bool has_base)
        }
     }
 
        }
     }
 
-    if (!hard_copy) {
-       if (WANTED(key_backspace))
-           key_backspace = _nc_save_str(C_BS);
-       if (WANTED(key_left))
-           key_left = _nc_save_str(C_BS);
-       if (WANTED(key_down))
-           key_down = _nc_save_str(C_LF);
+    if (!has_base) {
+       if (!hard_copy) {
+           if (WANTED(key_backspace))
+               key_backspace = _nc_save_str(C_BS);
+           if (WANTED(key_left))
+               key_left = _nc_save_str(C_BS);
+           if (WANTED(key_down))
+               key_down = _nc_save_str(C_LF);
+       }
     }
 
     /*
     }
 
     /*
@@ -841,17 +850,17 @@ postprocess_termcap(TERMTYPE * tp, bool has_base)
        _nc_str_init(&result, buf2, sizeof(buf2));
        _nc_safe_strcat(&result, acs_chars);
 
        _nc_str_init(&result, buf2, sizeof(buf2));
        _nc_safe_strcat(&result, acs_chars);
 
-       append_acs (&result, 'j', acs_lrcorner);
-       append_acs (&result, 'k', acs_urcorner);
-       append_acs (&result, 'l', acs_ulcorner);
-       append_acs (&result, 'm', acs_llcorner);
-       append_acs (&result, 'n', acs_plus);
-       append_acs (&result, 'q', acs_hline);
-       append_acs (&result, 't', acs_ltee);
-       append_acs (&result, 'u', acs_rtee);
-       append_acs (&result, 'v', acs_btee);
-       append_acs (&result, 'w', acs_ttee);
-       append_acs (&result, 'x', acs_vline);
+       append_acs(&result, 'j', acs_lrcorner);
+       append_acs(&result, 'k', acs_urcorner);
+       append_acs(&result, 'l', acs_ulcorner);
+       append_acs(&result, 'm', acs_llcorner);
+       append_acs(&result, 'n', acs_plus);
+       append_acs(&result, 'q', acs_hline);
+       append_acs(&result, 't', acs_ltee);
+       append_acs(&result, 'u', acs_rtee);
+       append_acs(&result, 'v', acs_btee);
+       append_acs(&result, 'w', acs_ttee);
+       append_acs(&result, 'x', acs_vline);
 
        if (buf2[0]) {
            acs_chars = _nc_save_str(buf2);
 
        if (buf2[0]) {
            acs_chars = _nc_save_str(buf2);
@@ -860,8 +869,7 @@ postprocess_termcap(TERMTYPE * tp, bool has_base)
     } else if (acs_chars == 0
               && enter_alt_charset_mode != 0
               && exit_alt_charset_mode != 0) {
     } else if (acs_chars == 0
               && enter_alt_charset_mode != 0
               && exit_alt_charset_mode != 0) {
-       acs_chars =
-           _nc_save_str("``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~");
+       acs_chars = _nc_save_str(VT_ACSC);
     }
 }
 
     }
 }
 
@@ -883,17 +891,17 @@ postprocess_terminfo(TERMTYPE * tp)
        _nc_str_init(&result, buf2, sizeof(buf2));
        _nc_safe_strcat(&result, acs_chars);
 
        _nc_str_init(&result, buf2, sizeof(buf2));
        _nc_safe_strcat(&result, acs_chars);
 
-       append_acs0 (&result, 'l', box_chars_1[0]);     /* ACS_ULCORNER */
-       append_acs0 (&result, 'q', box_chars_1[1]);     /* ACS_HLINE */
-       append_acs0 (&result, 'k', box_chars_1[2]);     /* ACS_URCORNER */
-       append_acs0 (&result, 'x', box_chars_1[3]);     /* ACS_VLINE */
-       append_acs0 (&result, 'j', box_chars_1[4]);     /* ACS_LRCORNER */
-       append_acs0 (&result, 'm', box_chars_1[5]);     /* ACS_LLCORNER */
-       append_acs0 (&result, 'w', box_chars_1[6]);     /* ACS_TTEE */
-       append_acs0 (&result, 'u', box_chars_1[7]);     /* ACS_RTEE */
-       append_acs0 (&result, 'v', box_chars_1[8]);     /* ACS_BTEE */
-       append_acs0 (&result, 't', box_chars_1[9]);     /* ACS_LTEE */
-       append_acs0 (&result, 'n', box_chars_1[10]);    /* ACS_PLUS */
+       append_acs0(&result, 'l', box_chars_1[0]);      /* ACS_ULCORNER */
+       append_acs0(&result, 'q', box_chars_1[1]);      /* ACS_HLINE */
+       append_acs0(&result, 'k', box_chars_1[2]);      /* ACS_URCORNER */
+       append_acs0(&result, 'x', box_chars_1[3]);      /* ACS_VLINE */
+       append_acs0(&result, 'j', box_chars_1[4]);      /* ACS_LRCORNER */
+       append_acs0(&result, 'm', box_chars_1[5]);      /* ACS_LLCORNER */
+       append_acs0(&result, 'w', box_chars_1[6]);      /* ACS_TTEE */
+       append_acs0(&result, 'u', box_chars_1[7]);      /* ACS_RTEE */
+       append_acs0(&result, 'v', box_chars_1[8]);      /* ACS_BTEE */
+       append_acs0(&result, 't', box_chars_1[9]);      /* ACS_LTEE */
+       append_acs0(&result, 'n', box_chars_1[10]);     /* ACS_PLUS */
 
        if (buf2[0]) {
            acs_chars = _nc_save_str(buf2);
 
        if (buf2[0]) {
            acs_chars = _nc_save_str(buf2);
index deef49859a3e482d2a9fbe92d9a204708a1b8d33..006e56c3ddb118b6cc7a146ac38d6abeeba0aa58 100644 (file)
@@ -41,7 +41,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: read_entry.c,v 1.69 2000/10/10 00:57:40 Todd.Miller Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.72 2000/12/10 02:55:08 tom Exp $")
 
 #if !HAVE_TELL
 #define tell(fd) 0             /* lseek() is POSIX, but not tell() - odd... */
 
 #if !HAVE_TELL
 #define tell(fd) 0             /* lseek() is POSIX, but not tell() - odd... */
@@ -70,7 +70,7 @@ static bool keep_tic_directory = FALSE;
  * Record the "official" location of the terminfo directory, according to
  * the place where we're writing to, or the normal default, if not.
  */
  * Record the "official" location of the terminfo directory, according to
  * the place where we're writing to, or the normal default, if not.
  */
-const char *
+NCURSES_EXPORT(const char *)
 _nc_tic_dir(const char *path)
 {
     static const char *result = TERMINFO;
 _nc_tic_dir(const char *path)
 {
     static const char *result = TERMINFO;
@@ -93,7 +93,7 @@ _nc_tic_dir(const char *path)
  * has chdir'd to it.  If we let it be changed, then if $TERMINFO has a
  * relative path, we'll lose track of the actual directory.
  */
  * has chdir'd to it.  If we let it be changed, then if $TERMINFO has a
  * relative path, we'll lose track of the actual directory.
  */
-void
+NCURSES_EXPORT(void)
 _nc_keep_tic_dir(const char *path)
 {
     _nc_tic_dir(path);
 _nc_keep_tic_dir(const char *path)
 {
     _nc_tic_dir(path);
@@ -373,8 +373,9 @@ read_termtype(int fd, TERMTYPE * ptr)
     return (1);
 }
 
     return (1);
 }
 
-int
-_nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
+NCURSES_EXPORT(int)
+_nc_read_file_entry
+(const char *const filename, TERMTYPE * ptr)
 /* return 1 if read, 0 if not found or garbled */
 {
     int code, fd = -1;
 /* return 1 if read, 0 if not found or garbled */
 {
     int code, fd = -1;
@@ -428,7 +429,7 @@ _nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
 
     for (;;) {
        int c = *a;
 
     for (;;) {
        int c = *a;
-       if (c == 0 || c == ':') {
+       if (c == 0 || c == NCURSES_PATHSEP) {
            *a = 0;
            if ((b + 1) >= a)
                b = TERMINFO;
            *a = 0;
            if ((b + 1) >= a)
                b = TERMINFO;
@@ -456,8 +457,9 @@ _nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
  *     overrun the file buffer.
  */
 
  *     overrun the file buffer.
  */
 
-int
-_nc_read_entry(const char *const tn, char *const filename, TERMTYPE * const tp)
+NCURSES_EXPORT(int)
+_nc_read_entry
+(const char *const tn, char *const filename, TERMTYPE * const tp)
 {
     char *envp;
     char ttn[MAX_ALIAS + 3];
 {
     char *envp;
     char ttn[MAX_ALIAS + 3];
index 9487dd66b797d5183b8b42be55f77fa17e25745c..c6e7e358ad911b56106ab2cbe9188f156864635a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 #include <curses.priv.h>
 
 #include <ctype.h>
+#include <sys/types.h>
+#include <sys/stat.h>
 #include <tic.h>
 #include <term_entry.h>
 
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: read_termcap.c,v 1.51 2000/10/21 00:34:11 Philip.Guenther Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.58 2001/10/28 01:11:34 tom Exp $")
 
 #if !PURE_TERMINFO
 
 
 #if !PURE_TERMINFO
 
@@ -72,6 +74,17 @@ MODULE_ID("$Id: read_termcap.c,v 1.51 2000/10/21 00:34:11 Philip.Guenther Exp $"
 #define TC_SYS_ERR    -3
 #define TC_REF_LOOP   -4
 
 #define TC_SYS_ERR    -3
 #define TC_REF_LOOP   -4
 
+static char *
+get_termpath(void)
+{
+    char *result;
+
+    if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0)
+       result = TERMPATH;
+    T(("TERMPATH is %s", result));
+    return result;
+}
+
 #if USE_GETCAP
 
 #if HAVE_BSD_CGETENT
 #if USE_GETCAP
 
 #if HAVE_BSD_CGETENT
@@ -125,13 +138,7 @@ static int _nc_nfcmp(const char *, char *);
 
 #define        BFRAG           1024
 #define        BSIZE           1024
 
 #define        BFRAG           1024
 #define        BSIZE           1024
-#define        ESC             ('[' & 037)     /* ASCII ESC */
 #define        MAX_RECURSION   32      /* maximum getent recursion */
 #define        MAX_RECURSION   32      /* maximum getent recursion */
-#define        SFRAG           100     /* cgetstr mallocs in SFRAG chunks */
-
-#define RECOK  (char)0
-#define TCERR  (char)1
-#define        SHADOW  (char)2
 
 static size_t topreclen;       /* toprec length */
 static char *toprec;           /* Additional record specified by cgetset() */
 
 static size_t topreclen;       /* toprec length */
 static char *toprec;           /* Additional record specified by cgetset() */
@@ -784,7 +791,7 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
     pvec = pathvec;
     tbuf = bp;
     p = pathbuf;
     pvec = pathvec;
     tbuf = bp;
     p = pathbuf;
-    cp = use_terminfo_vars() ? getenv("TERMCAP") : NULL;
+    cp = use_terminfo_vars()? getenv("TERMCAP") : NULL;
 
     /*
      * TERMCAP can have one of two things in it.  It can be the name of a file
 
     /*
      * TERMCAP can have one of two things in it.  It can be the name of a file
@@ -797,9 +804,9 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
      */
     _nc_str_init(&desc, pathbuf, sizeof(pathbuf));
     if (cp == NULL) {
      */
     _nc_str_init(&desc, pathbuf, sizeof(pathbuf));
     if (cp == NULL) {
-       _nc_safe_strcpy(&desc, "/etc/termcap /usr/share/misc/termcap");
+       _nc_safe_strcpy(&desc, get_termpath());
     } else if (!is_pathname(cp)) {     /* TERMCAP holds an entry */
     } else if (!is_pathname(cp)) {     /* TERMCAP holds an entry */
-       if ((termpath = getenv("TERMPATH")) != 0) {
+       if ((termpath = get_termpath()) != 0) {
            _nc_safe_strcat(&desc, termpath);
        } else {
            char temp[PBUFSIZ];
            _nc_safe_strcat(&desc, termpath);
        } else {
            char temp[PBUFSIZ];
@@ -812,8 +819,8 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
            /* if no $HOME look in current directory */
            strcat(temp, ".termcap");
            _nc_safe_strcat(&desc, temp);
            /* if no $HOME look in current directory */
            strcat(temp, ".termcap");
            _nc_safe_strcat(&desc, temp);
-           _nc_safe_strcat(&desc, " /etc/termcap");
-           _nc_safe_strcat(&desc, " /usr/share/misc/termcap");
+           _nc_safe_strcat(&desc, " ");
+           _nc_safe_strcat(&desc, get_termpath());
        }
     } else {                   /* user-defined name in TERMCAP */
        _nc_safe_strcat(&desc, cp);     /* still can be tokenized */
        }
     } else {                   /* user-defined name in TERMCAP */
        _nc_safe_strcat(&desc, cp);     /* still can be tokenized */
@@ -821,10 +828,10 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
 
     *fname++ = pathbuf;                /* tokenize path into vector of names */
     while (*++p) {
 
     *fname++ = pathbuf;                /* tokenize path into vector of names */
     while (*++p) {
-       if (*p == ' ' || *p == ':') {
+       if (*p == ' ' || *p == NCURSES_PATHSEP) {
            *p = '\0';
            while (*++p)
            *p = '\0';
            while (*++p)
-               if (*p != ' ' && *p != ':')
+               if (*p != ' ' && *p != NCURSES_PATHSEP)
                    break;
            if (*p == '\0')
                break;
                    break;
            if (*p == '\0')
                break;
@@ -908,16 +915,23 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
 static int
 add_tc(char *termpaths[], char *path, int count)
 {
 static int
 add_tc(char *termpaths[], char *path, int count)
 {
+    char *save = strchr(path, NCURSES_PATHSEP);
+    if (save != 0)
+       *save = '\0';
     if (count < MAXPATHS
     if (count < MAXPATHS
-       && _nc_access(path, R_OK) == 0)
+       && _nc_access(path, R_OK) == 0) {
        termpaths[count++] = path;
        termpaths[count++] = path;
+       T(("Adding termpath %s", path));
+    }
     termpaths[count] = 0;
     termpaths[count] = 0;
+    if (save != 0)
+       *save = NCURSES_PATHSEP;
     return count;
 }
 #define ADD_TC(path, count) filecount = add_tc(termpaths, path, count)
 #endif /* !USE_GETCAP */
 
     return count;
 }
 #define ADD_TC(path, count) filecount = add_tc(termpaths, path, count)
 #endif /* !USE_GETCAP */
 
-int
+NCURSES_EXPORT(int)
 _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
 {
     int found = FALSE;
 _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
 {
     int found = FALSE;
@@ -930,6 +944,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
     static char *source;
     static int lineno;
 
     static char *source;
     static int lineno;
 
+    T(("read termcap entry for %s", tn));
     if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0
        && !is_pathname(p) && _nc_name_match(p, tn, "|:")) {
        /* TERMCAP holds a termcap entry */
     if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0
        && !is_pathname(p) && _nc_name_match(p, tn, "|:")) {
        /* TERMCAP holds a termcap entry */
@@ -975,45 +990,42 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
     FILE *fp;
     char *tc, *termpaths[MAXPATHS];
     int filecount = 0;
     FILE *fp;
     char *tc, *termpaths[MAXPATHS];
     int filecount = 0;
+    int j, k;
     bool use_buffer = FALSE;
     bool use_buffer = FALSE;
+    bool normal = TRUE;
     char tc_buf[1024];
     char pathbuf[PATH_MAX];
     char tc_buf[1024];
     char pathbuf[PATH_MAX];
+    char *copied = 0;
+    char *cp;
+    struct stat test_stat[MAXPATHS];
 
     termpaths[filecount] = 0;
     if (use_terminfo_vars() && (tc = getenv("TERMCAP")) != 0) {
        if (is_pathname(tc)) {  /* interpret as a filename */
            ADD_TC(tc, 0);
 
     termpaths[filecount] = 0;
     if (use_terminfo_vars() && (tc = getenv("TERMCAP")) != 0) {
        if (is_pathname(tc)) {  /* interpret as a filename */
            ADD_TC(tc, 0);
+           normal = FALSE;
        } else if (_nc_name_match(tc, tn, "|:")) {      /* treat as a capability file */
            use_buffer = TRUE;
            (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
        } else if (_nc_name_match(tc, tn, "|:")) {      /* treat as a capability file */
            use_buffer = TRUE;
            (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
-       } else if ((tc = getenv("TERMPATH")) != 0) {
-           char *cp;
-
-           for (cp = tc; *cp; cp++) {
-               if (*cp == ':')
-                   *cp = '\0';
-               else if (cp == tc || cp[-1] == '\0') {
-                   ADD_TC(cp, filecount);
-               }
-           }
+           normal = FALSE;
        }
        }
-    } else {                   /* normal case */
-       char envhome[PATH_MAX], *h;
+    }
 
 
-       filecount = 0;
+    if (normal) {              /* normal case */
+       char envhome[PATH_MAX], *h;
 
 
-       /*
-        * Probably /etc/termcap is a symlink to /usr/share/misc/termcap.
-        * Avoid reading the same file twice.
-        */
-       if (_nc_access("/etc/termcap", F_OK) == 0)
-           ADD_TC("/etc/termcap", filecount);
-       else
-           ADD_TC("/usr/share/misc/termcap", filecount);
+       copied = strdup(get_termpath());
+       for (cp = copied; *cp; cp++) {
+           if (*cp == NCURSES_PATHSEP)
+               *cp = '\0';
+           else if (cp == copied || cp[-1] == '\0') {
+               ADD_TC(cp, filecount);
+           }
+       }
 
 #define PRIVATE_CAP "%s/.termcap"
 
 
 #define PRIVATE_CAP "%s/.termcap"
 
-       if ((h = getenv("HOME")) != NULL && *h != '\0'
+       if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0'
            && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
            /* user's .termcap, if any, should override it */
            (void) strcpy(envhome, h);
            && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
            /* user's .termcap, if any, should override it */
            (void) strcpy(envhome, h);
@@ -1022,6 +1034,37 @@ _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
+    for (j = 0; j < filecount; j++) {
+       bool omit = FALSE;
+       if (stat(termpaths[j], &test_stat[j]) != 0
+           || (test_stat[j].st_mode & S_IFMT) != S_IFREG) {
+           omit = TRUE;
+       } else {
+           for (k = 0; k < j; k++) {
+               if (test_stat[k].st_dev == test_stat[j].st_dev
+                   && test_stat[k].st_ino == test_stat[j].st_ino) {
+                   omit = TRUE;
+                   break;
+               }
+           }
+       }
+       if (omit) {
+           T(("Path %s is a duplicate", termpaths[j]));
+           for (k = j + 1; k < filecount; k++) {
+               termpaths[k - 1] = termpaths[k];
+               test_stat[k - 1] = test_stat[k];
+           }
+           --filecount;
+           --j;
+       }
+    }
+#endif
+
     /* parse the sources */
     if (use_buffer) {
        _nc_set_source("TERMCAP");
     /* parse the sources */
     if (use_buffer) {
        _nc_set_source("TERMCAP");
@@ -1037,7 +1080,8 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
        for (i = 0; i < filecount; i++) {
 
            T(("Looking for %s in %s", tn, termpaths[i]));
        for (i = 0; i < filecount; i++) {
 
            T(("Looking for %s in %s", tn, termpaths[i]));
-           if ((fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
+           if (_nc_access(termpaths[i], R_OK) == 0
+               && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
                _nc_set_source(termpaths[i]);
 
                /*
                _nc_set_source(termpaths[i]);
 
                /*
@@ -1051,6 +1095,8 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
            }
        }
     }
            }
        }
     }
+    if (copied != 0)
+       free(copied);
 #endif /* USE_GETCAP */
 
     if (_nc_head == 0)
 #endif /* USE_GETCAP */
 
     if (_nc_head == 0)
@@ -1103,8 +1149,10 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
     return (found);
 }
 #else
     return (found);
 }
 #else
-extern void _nc_read_termcap(void);
-void
+extern
+NCURSES_EXPORT(void)
+_nc_read_termcap(void);
+NCURSES_EXPORT(void)
 _nc_read_termcap(void)
 {
 }
 _nc_read_termcap(void)
 {
 }
index c0e7356569074cd9af3f2f3f2dcc5225d2f16b29..6d0201bfb2aa4b9580925f0bef7245618420484a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,8 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 /*
 **     setbuf.c
 **
 /*
 **     setbuf.c
 **
@@ -42,7 +40,7 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: setbuf.c,v 1.5 1999/02/27 20:00:15 tom Exp $")
+MODULE_ID("$Id: setbuf.c,v 1.7 2000/12/10 02:55:08 tom Exp $")
 
 /*
  * If the output file descriptor is connected to a tty (the typical case) it
 
 /*
  * If the output file descriptor is connected to a tty (the typical case) it
@@ -99,45 +97,47 @@ MODULE_ID("$Id: setbuf.c,v 1.5 1999/02/27 20:00:15 tom Exp $")
  * do indeed get confused by changing setbuf on/off, and will overrun the
  * buffer.  So we disable this by default (there may yet be a workaround).
  */
  * do indeed get confused by changing setbuf on/off, and will overrun the
  * buffer.  So we disable this by default (there may yet be a workaround).
  */
-void _nc_set_buffer(FILE *ofp, bool buffered)
+NCURSES_EXPORT(void)
+_nc_set_buffer(FILE * ofp, bool buffered)
 {
 {
-       /* optional optimization hack -- do before any output to ofp */
+    /* optional optimization hack -- do before any output to ofp */
 #if HAVE_SETVBUF || HAVE_SETBUFFER
 #if HAVE_SETVBUF || HAVE_SETBUFFER
-       unsigned buf_len;
-       char *buf_ptr;
+    unsigned buf_len;
+    char *buf_ptr;
 
 
-       if (getenv("NCURSES_NO_SETBUF") != 0)
-               return;
+    if (getenv("NCURSES_NO_SETBUF") != 0)
+       return;
 
 
-       fflush(ofp);
-       if ((SP->_buffered = buffered) != 0) {
-               buf_len = min(LINES * (COLS + 6), 2800);
-               if ((buf_ptr = SP->_setbuf) == 0) {
-                       if ((buf_ptr = typeMalloc(char, buf_len)) == NULL)
-                               return;
-                       SP->_setbuf = buf_ptr;
-                       /* Don't try to free this! */
-               }
+    fflush(ofp);
+    if ((SP->_buffered = buffered) != 0) {
+       buf_len = min(LINES * (COLS + 6), 2800);
+       if ((buf_ptr = SP->_setbuf) == 0) {
+           if ((buf_ptr = typeMalloc(char, buf_len)) == NULL)
+                 return;
+           SP->_setbuf = buf_ptr;
+           /* Don't try to free this! */
+       }
 #if !USE_SETBUF_0
 #if !USE_SETBUF_0
-               else return;
+       else
+           return;
 #endif
 #endif
-       } else {
+    } else {
 #if !USE_SETBUF_0
 #if !USE_SETBUF_0
-               return;
+       return;
 #else
 #else
-               buf_len = 0;
-               buf_ptr = 0;
+       buf_len = 0;
+       buf_ptr = 0;
 #endif
 #endif
-       }
+    }
 
 #if HAVE_SETVBUF
 
 #if HAVE_SETVBUF
-#ifdef SETVBUF_REVERSED        /* pre-svr3? */
-       (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF);
+#ifdef SETVBUF_REVERSED                /* pre-svr3? */
+    (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF);
 #else
 #else
-       (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len);
+    (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len);
 #endif
 #elif HAVE_SETBUFFER
 #endif
 #elif HAVE_SETBUFFER
-       (void) setbuffer(ofp, buf_ptr, (int)buf_len);
+    (void) setbuffer(ofp, buf_ptr, (int) buf_len);
 #endif
 
 #endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
 #endif
 
 #endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
index 8198ec4050adaccf5e7329c509e2b220b79bd996..5fa68caf75346edb5ad0a366544c790b3e9aeec1 100644 (file)
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id")
+MODULE_ID("$Id: strings.c,v 1.3 2000/12/10 02:55:08 tom Exp $")
 
 /****************************************************************************
  * Useful string functions (especially for mvcur)
  ****************************************************************************/
 
 #if !HAVE_STRSTR
 
 /****************************************************************************
  * Useful string functions (especially for mvcur)
  ****************************************************************************/
 
 #if !HAVE_STRSTR
-char *
-_nc_strstr(const char *haystack, const char *needle)
+NCURSES_EXPORT(char *)
+_nc_strstr
+(const char *haystack, const char *needle)
 {
     size_t len1 = strlen(haystack);
     size_t len2 = strlen(needle);
 {
     size_t len1 = strlen(haystack);
     size_t len2 = strlen(needle);
@@ -64,8 +65,9 @@ _nc_strstr(const char *haystack, const char *needle)
 /*
  * Initialize the descriptor so we can append to it.
  */
 /*
  * Initialize the descriptor so we can append to it.
  */
-string_desc *
-_nc_str_init(string_desc * dst, char *src, size_t len)
+NCURSES_EXPORT(string_desc *)
+_nc_str_init
+(string_desc * dst, char *src, size_t len)
 {
     if (dst != 0) {
        dst->s_head = src;
 {
     if (dst != 0) {
        dst->s_head = src;
@@ -80,8 +82,9 @@ _nc_str_init(string_desc * dst, char *src, size_t len)
 /*
  * Initialize the descriptor for only tracking the amount of memory used.
  */
 /*
  * Initialize the descriptor for only tracking the amount of memory used.
  */
-string_desc *
-_nc_str_null(string_desc * dst, size_t len)
+NCURSES_EXPORT(string_desc *)
+_nc_str_null
+(string_desc * dst, size_t len)
 {
     return _nc_str_init(dst, 0, len);
 }
 {
     return _nc_str_init(dst, 0, len);
 }
@@ -89,8 +92,9 @@ _nc_str_null(string_desc * dst, size_t len)
 /*
  * Copy a descriptor
  */
 /*
  * Copy a descriptor
  */
-string_desc *
-_nc_str_copy(string_desc * dst, string_desc * src)
+NCURSES_EXPORT(string_desc *)
+_nc_str_copy
+(string_desc * dst, string_desc * src)
 {
     *dst = *src;
     return dst;
 {
     *dst = *src;
     return dst;
@@ -99,7 +103,7 @@ _nc_str_copy(string_desc * dst, string_desc * src)
 /*
  * Replaces strcat into a fixed buffer, returning false on failure.
  */
 /*
  * Replaces strcat into a fixed buffer, returning false on failure.
  */
-bool
+NCURSES_EXPORT(bool)
 _nc_safe_strcat(string_desc * dst, const char *src)
 {
     if (src != 0) {
 _nc_safe_strcat(string_desc * dst, const char *src)
 {
     if (src != 0) {
@@ -120,7 +124,7 @@ _nc_safe_strcat(string_desc * dst, const char *src)
 /*
  * Replaces strcpy into a fixed buffer, returning false on failure.
  */
 /*
  * Replaces strcpy into a fixed buffer, returning false on failure.
  */
-bool
+NCURSES_EXPORT(bool)
 _nc_safe_strcpy(string_desc * dst, const char *src)
 {
     if (src != 0) {
 _nc_safe_strcpy(string_desc * dst, const char *src)
 {
     if (src != 0) {
index af4b4fda2a3acb695b57e77e8d4e8adc13b5baaf..9750dffd5ffe5ecaf1de83b2b40592cf809a793d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -52,7 +52,7 @@
 #define TRACE_OUT(p)           /*nothing */
 #endif
 
 #define TRACE_OUT(p)           /*nothing */
 #endif
 
-MODULE_ID("$Id: write_entry.c,v 1.53 2000/10/04 02:32:14 tom Exp $")
+MODULE_ID("$Id: write_entry.c,v 1.58 2002/04/21 20:35:08 tom Exp $")
 
 static int total_written;
 
 
 static int total_written;
 
@@ -109,7 +109,7 @@ make_directory(const char *path)
     return rc;
 }
 
     return rc;
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_set_writedir(char *dir)
 /* set the write directory for compiled entries */
 {
 _nc_set_writedir(char *dir)
 /* set the write directory for compiled entries */
 {
@@ -117,7 +117,7 @@ _nc_set_writedir(char *dir)
     char actual[PATH_MAX];
 
     if (dir == 0
     char actual[PATH_MAX];
 
     if (dir == 0
-     && use_terminfo_vars())
+       && use_terminfo_vars())
        dir = getenv("TERMINFO");
 
     if (dir != 0)
        dir = getenv("TERMINFO");
 
     if (dir != 0)
@@ -131,7 +131,7 @@ _nc_set_writedir(char *dir)
            destination = home;
            if (make_directory(destination) < 0)
                _nc_err_abort("%s: permission denied (errno %d)",
            destination = home;
            if (make_directory(destination) < 0)
                _nc_err_abort("%s: permission denied (errno %d)",
-                   destination, errno);
+                             destination, errno);
        }
     }
 
        }
     }
 
@@ -164,7 +164,7 @@ check_writeable(int code)
     static bool verified[sizeof(dirnames)];
 
     char dir[2];
     static bool verified[sizeof(dirnames)];
 
     char dir[2];
-    char *s;
+    char *s = 0;
 
     if (code == 0 || (s = strchr(dirnames, code)) == 0)
        _nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
 
     if (code == 0 || (s = strchr(dirnames, code)) == 0)
        _nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
@@ -214,6 +214,10 @@ _nc_write_entry(TERMTYPE * const tp)
     char linkname[PATH_MAX];
 #if USE_SYMLINKS
     char symlinkname[PATH_MAX];
     char linkname[PATH_MAX];
 #if USE_SYMLINKS
     char symlinkname[PATH_MAX];
+#if !HAVE_LINK
+#undef HAVE_LINK
+#define HAVE_LINK 1
+#endif
 #endif /* USE_SYMLINKS */
     static int call_count;
     static time_t start_time;  /* time at start of writes */
 #endif /* USE_SYMLINKS */
     static int call_count;
     static time_t start_time;  /* time at start of writes */
@@ -275,7 +279,7 @@ _nc_write_entry(TERMTYPE * const tp)
        if (stat(filename, &statbuf) < 0
            || (start_time = statbuf.st_mtime) == 0) {
            _nc_syserr_abort("error obtaining time from %s/%s",
        if (stat(filename, &statbuf) < 0
            || (start_time = statbuf.st_mtime) == 0) {
            _nc_syserr_abort("error obtaining time from %s/%s",
-               _nc_tic_dir(0), filename);
+                            _nc_tic_dir(0), filename);
        }
     }
     while (*other_names != '\0') {
        }
     }
     while (*other_names != '\0') {
@@ -301,7 +305,7 @@ _nc_write_entry(TERMTYPE * const tp)
        if (strcmp(filename, linkname) == 0) {
            _nc_warning("self-synonym ignored");
        } else if (stat(linkname, &statbuf) >= 0 &&
        if (strcmp(filename, linkname) == 0) {
            _nc_warning("self-synonym ignored");
        } else if (stat(linkname, &statbuf) >= 0 &&
-           statbuf.st_mtime < start_time) {
+                  statbuf.st_mtime < start_time) {
            _nc_warning("alias %s multiply defined.", ptr);
        } else if (_nc_access(linkname, W_OK) == 0)
 #if HAVE_LINK
            _nc_warning("alias %s multiply defined.", ptr);
        } else if (_nc_access(linkname, W_OK) == 0)
 #if HAVE_LINK
@@ -333,10 +337,16 @@ _nc_write_entry(TERMTYPE * const tp)
                 */
                if (code == 0 && errno == EEXIST)
                    _nc_warning("can't link %s to %s", filename, linkname);
                 */
                if (code == 0 && errno == EEXIST)
                    _nc_warning("can't link %s to %s", filename, linkname);
-               else if (code == 0 && errno == EPERM)
+               else if (code == 0 && (errno == EPERM || errno == ENOENT))
                    write_file(linkname, tp);
                    write_file(linkname, tp);
-               else
+               else {
+#if MIXEDCASE_FILENAMES
                    _nc_syserr_abort("can't link %s to %s", filename, linkname);
                    _nc_syserr_abort("can't link %s to %s", filename, linkname);
+#else
+                   _nc_warning("can't link %s to %s (errno=%d)", filename,
+                               linkname, errno);
+#endif
+               }
            } else {
                DEBUG(1, ("Linked %s", linkname));
            }
            } else {
                DEBUG(1, ("Linked %s", linkname));
            }
@@ -355,10 +365,10 @@ _nc_write_entry(TERMTYPE * const tp)
 #define WRITE_STRING(str) (fwrite(str, sizeof(char), strlen(str) + 1, fp) == strlen(str) + 1)
 
 static int
 #define WRITE_STRING(str) (fwrite(str, sizeof(char), strlen(str) + 1, fp) == strlen(str) + 1)
 
 static int
-compute_offsets(char **Strings, int strmax, short *offsets)
+compute_offsets(char **Strings, unsigned strmax, short *offsets)
 {
     size_t nextfree = 0;
 {
     size_t nextfree = 0;
-    int i;
+    unsigned i;
 
     for (i = 0; i < strmax; i++) {
        if (Strings[i] == ABSENT_STRING) {
 
     for (i = 0; i < strmax; i++) {
        if (Strings[i] == ABSENT_STRING) {
@@ -375,9 +385,9 @@ compute_offsets(char **Strings, int strmax, short *offsets)
 }
 
 static void
 }
 
 static void
-convert_shorts(unsigned char *buf, short *Numbers, int count)
+convert_shorts(unsigned char *buf, short *Numbers, unsigned count)
 {
 {
-    int i;
+    unsigned i;
     for (i = 0; i < count; i++) {
        if (Numbers[i] == ABSENT_NUMERIC) {     /* HI/LO won't work */
            buf[2 * i] = buf[2 * i + 1] = 0377;
     for (i = 0; i < count; i++) {
        if (Numbers[i] == ABSENT_NUMERIC) {     /* HI/LO won't work */
            buf[2 * i] = buf[2 * i + 1] = 0377;
@@ -520,7 +530,7 @@ write_object(FILE * fp, TERMTYPE * tp)
        TRACE_OUT(("WRITE %d booleans @%ld", tp->ext_Booleans, ftell(fp)));
        if (tp->ext_Booleans
            && fwrite(tp->Booleans + BOOLCOUNT, sizeof(char),
        TRACE_OUT(("WRITE %d booleans @%ld", tp->ext_Booleans, ftell(fp)));
        if (tp->ext_Booleans
            && fwrite(tp->Booleans + BOOLCOUNT, sizeof(char),
-               tp->ext_Booleans, fp) != tp->ext_Booleans)
+                     tp->ext_Booleans, fp) != tp->ext_Booleans)
              return (ERR);
 
        if (even_boundary(tp->ext_Booleans))
              return (ERR);
 
        if (even_boundary(tp->ext_Booleans))
@@ -549,7 +559,7 @@ write_object(FILE * fp, TERMTYPE * tp)
        for (i = 0; i < tp->ext_Strings; i++) {
            if (VALID_STRING(tp->Strings[i + STRCOUNT])) {
                TRACE_OUT(("WRITE ext_Strings[%d]=%s", i,
        for (i = 0; i < tp->ext_Strings; i++) {
            if (VALID_STRING(tp->Strings[i + STRCOUNT])) {
                TRACE_OUT(("WRITE ext_Strings[%d]=%s", i,
-                       _nc_visbuf(tp->Strings[i + STRCOUNT])));
+                          _nc_visbuf(tp->Strings[i + STRCOUNT])));
                if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
                    return (ERR);
            }
                if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
                    return (ERR);
            }
@@ -574,7 +584,7 @@ write_object(FILE * fp, TERMTYPE * tp)
 /*
  * Returns the total number of entries written by this process
  */
 /*
  * Returns the total number of entries written by this process
  */
-int
+NCURSES_EXPORT(int)
 _nc_tic_written(void)
 {
     return total_written;
 _nc_tic_written(void)
 {
     return total_written;
index 51260aec6b1737394e898ab1323d3e87a8ec8ed2..57d49f3d94a102b1e8300190a37b7b8d953ff133 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <ctype.h>
 
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_trace.c,v 1.34 2000/04/01 20:25:47 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.50 2002/10/12 15:20:15 tom Exp $")
 
 
-unsigned _nc_tracing = 0;      /* always define this */
+NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0;  /* always define this */
 
 #ifdef TRACE
 
 #ifdef TRACE
-const char *_nc_tputs_trace = "";
-long _nc_outchars = 0;
+NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
+NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
 
 static FILE *tracefp;          /* default to writing to stderr */
 
 
 static FILE *tracefp;          /* default to writing to stderr */
 
-void
+NCURSES_EXPORT(void)
 trace(const unsigned int tracelevel GCC_UNUSED)
 {
     static bool been_here = FALSE;
     static char my_name[] = "trace";
 
 trace(const unsigned int tracelevel GCC_UNUSED)
 {
     static bool been_here = FALSE;
     static char my_name[] = "trace";
 
-    _nc_tracing = tracelevel;
     if (!been_here && tracelevel) {
        been_here = TRUE;
 
     if (!been_here && tracelevel) {
        been_here = TRUE;
 
+       _nc_tracing = tracelevel;
        if (_nc_access(my_name, W_OK) < 0
        if (_nc_access(my_name, W_OK) < 0
-           || (tracefp = fopen(my_name, "w")) == 0) {
+           || (tracefp = fopen(my_name, "wb")) == 0) {
            perror("curses: Can't open 'trace' file: ");
            exit(EXIT_FAILURE);
        }
            perror("curses: Can't open 'trace' file: ");
            exit(EXIT_FAILURE);
        }
@@ -74,75 +74,15 @@ trace(const unsigned int tracelevel GCC_UNUSED)
 #elif HAVE_SETBUF              /* POSIX */
        (void) setbuffer(tracefp, (char *) 0);
 #endif
 #elif HAVE_SETBUF              /* POSIX */
        (void) setbuffer(tracefp, (char *) 0);
 #endif
-       _tracef("TRACING NCURSES version %s (%d)",
-           NCURSES_VERSION, NCURSES_VERSION_PATCH);
+       _tracef("TRACING NCURSES version %s (tracelevel=%#x)",
+               curses_version(), tracelevel);
+    } else if (_nc_tracing != tracelevel) {
+       _nc_tracing = tracelevel;
+       _tracef("tracelevel=%#x", tracelevel);
     }
 }
     }
 }
-#endif
-
-const char *
-_nc_visbuf2(int bufnum, const char *buf)
-/* visibilize a given string */
-{
-    char *vbuf;
-    char *tp;
-    int c;
-
-    if (buf == 0)
-       return ("(null)");
-    if (buf == CANCELLED_STRING)
-       return ("(cancelled)");
-
-#ifdef TRACE
-    tp = vbuf = _nc_trace_buf(bufnum, (strlen(buf) * 4) + 5);
-#else
-    {
-    static char *mybuf[2];
-    mybuf[bufnum] = _nc_doalloc(mybuf[bufnum], (strlen(buf) * 4) + 5);
-    tp = vbuf = mybuf[bufnum];
-    }
-#endif
-    *tp++ = '"';
-    while ((c = *buf++) != '\0') {
-       if (c == '"') {
-           *tp++ = '\\';
-           *tp++ = '"';
-       } else if (is7bits(c) && (isgraph(c) || c == ' ')) {
-           *tp++ = c;
-       } else if (c == '\n') {
-           *tp++ = '\\';
-           *tp++ = 'n';
-       } else if (c == '\r') {
-           *tp++ = '\\';
-           *tp++ = 'r';
-       } else if (c == '\b') {
-           *tp++ = '\\';
-           *tp++ = 'b';
-       } else if (c == '\033') {
-           *tp++ = '\\';
-           *tp++ = 'e';
-       } else if (is7bits(c) && iscntrl(c)) {
-           *tp++ = '\\';
-           *tp++ = '^';
-           *tp++ = '@' + c;
-       } else {
-           sprintf(tp, "\\%03o", c & 0xff);
-           tp += strlen(tp);
-       }
-    }
-    *tp++ = '"';
-    *tp++ = '\0';
-    return (vbuf);
-}
-
-const char *
-_nc_visbuf(const char *buf)
-{
-    return _nc_visbuf2(0, buf);
-}
 
 
-#ifdef TRACE
-void
+NCURSES_EXPORT(void)
 _tracef(const char *fmt,...)
 {
     static const char Called[] = T_CALLED("");
 _tracef(const char *fmt,...)
 {
     static const char Called[] = T_CALLED("");
@@ -190,24 +130,48 @@ _tracef(const char *fmt,...)
     errno = save_err;
 }
 
     errno = save_err;
 }
 
+/* Trace 'bool' return-values */
+NCURSES_EXPORT(NCURSES_BOOL)
+_nc_retrace_bool(NCURSES_BOOL code)
+{
+    T((T_RETURN("%s"), code ? "TRUE" : "FALSE"));
+    return code;
+}
+
 /* Trace 'int' return-values */
 /* Trace 'int' return-values */
-int
+NCURSES_EXPORT(int)
 _nc_retrace_int(int code)
 {
     T((T_RETURN("%d"), code));
     return code;
 }
 
 _nc_retrace_int(int code)
 {
     T((T_RETURN("%d"), code));
     return code;
 }
 
+/* Trace 'unsigned' return-values */
+NCURSES_EXPORT(unsigned)
+_nc_retrace_unsigned(unsigned code)
+{
+    T((T_RETURN("%#x"), code));
+    return code;
+}
+
 /* Trace 'char*' return-values */
 /* Trace 'char*' return-values */
-char *
+NCURSES_EXPORT(char *)
 _nc_retrace_ptr(char *code)
 {
     T((T_RETURN("%s"), _nc_visbuf(code)));
     return code;
 }
 
 _nc_retrace_ptr(char *code)
 {
     T((T_RETURN("%s"), _nc_visbuf(code)));
     return code;
 }
 
+/* Trace 'SCREEN *' return-values */
+NCURSES_EXPORT(SCREEN *)
+_nc_retrace_sp(SCREEN * code)
+{
+    T((T_RETURN("%p"), code));
+    return code;
+}
+
 /* Trace 'WINDOW *' return-values */
 /* Trace 'WINDOW *' return-values */
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
 _nc_retrace_win(WINDOW *code)
 {
     T((T_RETURN("%p"), code));
 _nc_retrace_win(WINDOW *code)
 {
     T((T_RETURN("%p"), code));
index c65c584f860095c5fd06f30973064cc3537c879a..6cda1c8dac69152b57d8f5b15ae6c29ed9729ea8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+ *  Author: Thomas Dickey 1996-2001                                         *
+ *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <term.h>              /* acs_chars */
 
 #include <curses.priv.h>
 #include <term.h>              /* acs_chars */
 
-MODULE_ID("$Id: lib_traceatr.c,v 1.30 2000/07/29 18:06:09 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.43 2002/09/28 12:37:03 tom Exp $")
 
 #define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
 
 #ifdef TRACE
 
 #define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
 
 #ifdef TRACE
-char *
+
+static const char l_brace[] = {L_BRACE, 0};
+static const char r_brace[] = {R_BRACE, 0};
+
+NCURSES_EXPORT(char *)
 _traceattr2(int bufnum, attr_t newmode)
 {
     char *buf = _nc_trace_buf(bufnum, BUFSIZ);
 _traceattr2(int bufnum, attr_t newmode)
 {
     char *buf = _nc_trace_buf(bufnum, BUFSIZ);
@@ -87,7 +92,7 @@ _traceattr2(int bufnum, attr_t newmode)
     unsigned save_nc_tracing = _nc_tracing;
     _nc_tracing = 0;
 
     unsigned save_nc_tracing = _nc_tracing;
     _nc_tracing = 0;
 
-    strcpy(tmp++, "{");
+    strcpy(tmp++, l_brace);
 
     for (n = 0; n < SIZEOF(names); n++) {
        if ((newmode & names[n].val) != 0) {
 
     for (n = 0; n < SIZEOF(names); n++) {
        if ((newmode & names[n].val) != 0) {
@@ -112,39 +117,38 @@ _traceattr2(int bufnum, attr_t newmode)
            }
        }
     }
            }
        }
     }
-    if (AttrOf(newmode) == A_NORMAL) {
+    if (ChAttrOf(newmode) == A_NORMAL) {
        if (buf[1] != '\0')
            strcat(tmp, "|");
        strcat(tmp, "A_NORMAL");
     }
 
     _nc_tracing = save_nc_tracing;
        if (buf[1] != '\0')
            strcat(tmp, "|");
        strcat(tmp, "A_NORMAL");
     }
 
     _nc_tracing = save_nc_tracing;
-    return (strcat(buf, "}"));
+    return (strcat(buf, r_brace));
 }
 
 }
 
-char *
+NCURSES_EXPORT(char *)
 _traceattr(attr_t newmode)
 {
     return _traceattr2(0, newmode);
 }
 
 /* Trace 'int' return-values */
 _traceattr(attr_t newmode)
 {
     return _traceattr2(0, newmode);
 }
 
 /* Trace 'int' return-values */
-attr_t
+NCURSES_EXPORT(attr_t)
 _nc_retrace_attr_t(attr_t code)
 {
     T((T_RETURN("%s"), _traceattr(code)));
     return code;
 }
 
 _nc_retrace_attr_t(attr_t code)
 {
     T((T_RETURN("%s"), _traceattr(code)));
     return code;
 }
 
-char *
-_tracechtype2(int bufnum, chtype ch)
+const char *
+_nc_altcharset_name(attr_t attr, chtype ch)
 {
 {
-    char *buf = _nc_trace_buf(bufnum, BUFSIZ);
-    char *found = 0;
+    const char *result = 0;
 
 
-    strcpy(buf, "{");
-    if (ch & A_ALTCHARSET) {
+    if (attr & A_ALTCHARSET) {
        char *cp;
        char *cp;
+       char *found = 0;
        static const struct {
            unsigned int val;
            const char *name;
        static const struct {
            unsigned int val;
            const char *name;
@@ -189,52 +193,109 @@ _tracechtype2(int bufnum, chtype ch)
            *sp;
 
        for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
            *sp;
 
        for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
-           if (TextOf(cp[1]) == TextOf(ch)) {
+           if (ChCharOf(cp[1]) == ChCharOf(ch)) {
                found = cp;
                /* don't exit from loop - there may be redefinitions */
            }
        }
 
        if (found != 0) {
                found = cp;
                /* don't exit from loop - there may be redefinitions */
            }
        }
 
        if (found != 0) {
-           ch = TextOf(*found);
+           ch = ChCharOf(*found);
            for (sp = names; sp->val; sp++)
                if (sp->val == ch) {
            for (sp = names; sp->val; sp++)
                if (sp->val == ch) {
-                   (void) strcat(buf, sp->name);
-                   ch &= ~A_ALTCHARSET;
+                   result = sp->name;
                    break;
                }
        }
     }
                    break;
                }
        }
     }
+    return result;
+}
+
+NCURSES_EXPORT(char *)
+_tracechtype2(int bufnum, chtype ch)
+{
+    char *buf = _nc_trace_buf(bufnum, BUFSIZ);
+    const char *found;
 
 
-    if (found == 0)
-       (void) strcat(buf, _tracechar(TextOf(ch)));
+    strcpy(buf, l_brace);
+    if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
+       (void) strcat(buf, found);
+    } else
+       (void) strcat(buf, _tracechar(ChCharOf(ch)));
 
 
-    if (AttrOf(ch) != A_NORMAL)
+    if (ChAttrOf(ch) != A_NORMAL)
        (void) sprintf(buf + strlen(buf), " | %s",
        (void) sprintf(buf + strlen(buf), " | %s",
-               _traceattr2(bufnum + 20, AttrOf(ch)));
+               _traceattr2(bufnum + 20, ChAttrOf(ch)));
 
 
-    strcat(buf, "}");
-    return (buf);
+    return (strcat(buf, r_brace));
 }
 
 }
 
-char *
-_tracechtype(chtype ch)
+NCURSES_EXPORT(char *)
+_tracechtype (chtype ch)
 {
     return _tracechtype2(0, ch);
 }
 
 /* Trace 'chtype' return-values */
 {
     return _tracechtype2(0, ch);
 }
 
 /* Trace 'chtype' return-values */
-attr_t
-_nc_retrace_chtype(attr_t code)
+NCURSES_EXPORT(chtype)
+_nc_retrace_chtype (chtype code)
 {
     T((T_RETURN("%s"), _tracechtype(code)));
     return code;
 }
 
 {
     T((T_RETURN("%s"), _tracechtype(code)));
     return code;
 }
 
-#else
-extern void _nc_lib_traceatr(void);
-void
-_nc_lib_traceatr(void)
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(char *)
+_tracecchar_t2 (int bufnum, const cchar_t *ch)
 {
 {
+    char *buf = _nc_trace_buf(bufnum, BUFSIZ);
+    attr_t attr;
+    const char *found;
+
+    strcpy(buf, l_brace);
+    if (ch != 0) {
+       attr = AttrOfD(ch);
+       if ((found = _nc_altcharset_name(attr, CharOfD(ch))) != 0) {
+           (void) strcat(buf, found);
+           attr &= ~A_ALTCHARSET;
+       } else if (!isnac(CHDEREF(ch))) {
+           PUTC_DATA;
+           int n;
+
+           memset (&PUT_st, '\0', sizeof (PUT_st));
+           PUTC_i = 0;
+           (void) strcat(buf, "{ ");
+           do {
+               PUTC_ch = PUTC_i < CCHARW_MAX ? ch->chars[PUTC_i] : L'\0';
+               PUTC_n = wcrtomb(PUTC_buf, ch->chars[PUTC_i], &PUT_st);
+               if (PUTC_ch == L'\0')
+                   --PUTC_n;
+               if (PUTC_n <= 0)
+                   break;
+               for (n = 0; n < PUTC_n; n++) {
+                   if (n)
+                       (void) strcat(buf, ", ");
+                   (void) strcat(buf, _tracechar(UChar(PUTC_buf[n])));
+               }
+               ++PUTC_i;
+           } while (PUTC_ch != L'\0');
+           (void) strcat(buf, " }");
+       }
+       if (attr != A_NORMAL)
+           (void) sprintf(buf + strlen(buf), " | %s",
+                   _traceattr2(bufnum + 20, attr));
+    }
+
+    return (strcat(buf, r_brace));
 }
 }
+
+NCURSES_EXPORT(char *)
+_tracecchar_t (const cchar_t *ch)
+{
+    return _tracecchar_t2(0, ch);
+}
+#endif
+
+#else
+empty_module(_nc_lib_traceatr)
 #endif /* TRACE */
 #endif /* TRACE */
index a8cb343be59f3d72e3bdbca50300a198193dad5b..e681862649af9005d36677687148cf0870493f18 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 #include <term.h>              /* cur_term */
 
 #include <curses.priv.h>
 #include <term.h>              /* cur_term */
 
-MODULE_ID("$Id: lib_tracebits.c,v 1.7 2000/09/02 18:08:37 tom Exp $")
+MODULE_ID("$Id: lib_tracebits.c,v 1.12 2002/05/25 14:35:07 tom Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
@@ -81,8 +81,8 @@ lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int v
     (void) strcat(buf, "} ");
 }
 
     (void) strcat(buf, "} ");
 }
 
-char *
-_nc_tracebits(void)
+NCURSES_EXPORT(char *)
+_nc_trace_ttymode(TTY * tty)
 /* describe the state of the terminal control bits exactly */
 {
     char *buf;
 /* describe the state of the terminal control bits exactly */
 {
     char *buf;
@@ -137,25 +137,25 @@ _nc_tracebits(void)
     };
 
     buf = _nc_trace_buf(0,
     };
 
     buf = _nc_trace_buf(0,
-       8 + sizeof(iflags) +
-       8 + sizeof(oflags) +
-       8 + sizeof(cflags) +
-       8 + sizeof(lflags) +
-       8);
+                       8 + sizeof(iflags) +
+                       8 + sizeof(oflags) +
+                       8 + sizeof(cflags) +
+                       8 + sizeof(lflags) +
+                       8);
 
 
-    if (cur_term->Nttyb.c_iflag & ALLIN)
-       lookup_bits(buf, iflags, "iflags", cur_term->Nttyb.c_iflag);
+    if (tty->c_iflag & ALLIN)
+       lookup_bits(buf, iflags, "iflags", tty->c_iflag);
 
 
-    if (cur_term->Nttyb.c_oflag & ALLOUT)
-       lookup_bits(buf, oflags, "oflags", cur_term->Nttyb.c_oflag);
+    if (tty->c_oflag & ALLOUT)
+       lookup_bits(buf, oflags, "oflags", tty->c_oflag);
 
 
-    if (cur_term->Nttyb.c_cflag & ALLCTRL)
-       lookup_bits(buf, cflags, "cflags", cur_term->Nttyb.c_cflag);
+    if (tty->c_cflag & ALLCTRL)
+       lookup_bits(buf, cflags, "cflags", tty->c_cflag);
 
 #if defined(CS5) && defined(CS8)
     {
        static struct {
 
 #if defined(CS5) && defined(CS8)
     {
        static struct {
-           char *name;
+           const char *name;
            int value;
        } csizes[] = {
            {
            int value;
        } csizes[] = {
            {
@@ -175,8 +175,8 @@ _nc_tracebits(void)
                "CS8 ", CS8
            },
        };
                "CS8 ", CS8
            },
        };
-       char *result = "CSIZE? ";
-       int value = (cur_term->Nttyb.c_cflag & CSIZE);
+       const char *result = "CSIZE? ";
+       int value = (tty->c_cflag & CSIZE);
        unsigned n;
 
        if (value != 0) {
        unsigned n;
 
        if (value != 0) {
@@ -191,8 +191,8 @@ _nc_tracebits(void)
     }
 #endif
 
     }
 #endif
 
-    if (cur_term->Nttyb.c_lflag & ALLLOCAL)
-       lookup_bits(buf, lflags, "lflags", cur_term->Nttyb.c_lflag);
+    if (tty->c_lflag & ALLLOCAL)
+       lookup_bits(buf, lflags, "lflags", tty->c_lflag);
 
 #else
     /* reference: ttcompat(4M) on SunOS 4.1 */
 
 #else
     /* reference: ttcompat(4M) on SunOS 4.1 */
@@ -229,19 +229,20 @@ _nc_tracebits(void)
     };
 
     buf = _nc_trace_buf(0,
     };
 
     buf = _nc_trace_buf(0,
-       8 + sizeof(cflags));
+                       8 + sizeof(cflags));
 
 
-    if (cur_term->Nttyb.sg_flags & ALLCTRL) {
-       lookup_bits(buf, cflags, "cflags", cur_term->Nttyb.sg_flags);
+    if (tty->sg_flags & ALLCTRL) {
+       lookup_bits(buf, cflags, "cflags", tty->sg_flags);
     }
 #endif
     return (buf);
 }
     }
 #endif
     return (buf);
 }
-#else
-char *
+
+NCURSES_EXPORT(char *)
 _nc_tracebits(void)
 {
 _nc_tracebits(void)
 {
-    static char tmp[] = "";
-    return tmp;
+    return _nc_trace_ttymode(&(cur_term->Nttyb));
 }
 }
+#else
+empty_module(_nc_tracebits)
 #endif /* TRACE */
 #endif /* TRACE */
index bf004f35294ed54fc806aac449601ca85b1455d7..2f33391b5505b951eaabfc113e6a96a5688f4a71 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracechr.c,v 1.2 2000/04/01 20:17:26 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.9 2002/05/25 23:34:19 tom Exp $")
 
 #ifdef TRACE
 
 #ifdef TRACE
-char *_tracechar(const unsigned char ch)
+NCURSES_EXPORT(char *)
+_tracechar(int ch)
 {
 {
-    static char crep[20];
-    (void) sprintf(crep, "'%s' = 0x%02x", unctrl(ch), (unsigned)ch);
-    return(crep);
+    static char crep[40];
+    (void) sprintf(crep, "'%.30s' = %#03o",
+                  ((ch > KEY_MIN || ch < 0)
+                   ? keyname(ch)
+                   : unctrl(ch)),
+                  ch);
+    return (crep);
 }
 #else
 }
 #else
-extern void _nc_lib_tracechr(void);
-       void _nc_lib_tracechr(void) { }
+empty_module(_nc_lib_tracechr)
 #endif
 #endif
index a67a37ef7edd49f5e17e302b66d54ca0a50d93a0..c63cb564a0e329876a0b520e076cc72086ff8693 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+ *  Author: Thomas E. Dickey 1996-2001                                      *
+ *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  */
 
 #include <curses.priv.h>
  */
 
 #include <curses.priv.h>
+#include <ctype.h>
 
 
-MODULE_ID("$Id: lib_tracedmp.c,v 1.13 1998/03/21 18:39:44 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.25 2002/09/22 22:21:38 tom Exp $")
 
 #ifdef TRACE
 
 #ifdef TRACE
-void _tracedump(const char *name, WINDOW *win)
+NCURSES_EXPORT(void)
+_tracedump(const char *name, WINDOW *win)
 {
 {
-    int        i, j, n, width;
+    static char *buf = 0;
+    static size_t used = 0;
+
+    int i, j, n, width;
 
     /* compute narrowest possible display width */
 
     /* compute narrowest possible display width */
-    for (width = i = 0; i <= win->_maxy; i++)
-    {
+    for (width = i = 0; i <= win->_maxy; ++i) {
        n = 0;
        n = 0;
-       for (j = 0; j <= win->_maxx; j++)
-         if (win->_line[i].text[j] != ' ')
-           n = j;
+       for (j = 0; j <= win->_maxx; ++j)
+           if (CharOf(win->_line[i].text[j]) != L(' ')
+               || AttrOf(win->_line[i].text[j]) != A_NORMAL)
+               n = j;
 
        if (n > width)
 
        if (n > width)
-         width = n;
+           width = n;
     }
     if (width < win->_maxx)
     }
     if (width < win->_maxx)
-      ++width;
+       ++width;
+    if (++width + 1 > (int) used) {
+       used = 2 * (width + 1);
+       buf = typeRealloc(char, used, buf);
+    }
 
 
-    for (n = 0; n <= win->_maxy; n++)
-    {
-       char    buf[BUFSIZ], *ep;
+    for (n = 0; n <= win->_maxy; ++n) {
+       char *ep = buf;
        bool haveattrs, havecolors;
 
        bool haveattrs, havecolors;
 
-       /* dump A_CHARTEXT part */
-       (void) sprintf(buf, "%s[%2d] %3d%3d ='",
+       /*
+        * Dump A_CHARTEXT part.  It is more important to make the grid line up
+        * in the trace file than to represent control- and wide-characters, so
+        * we map those to '.' and '?' respectively.
+        */
+       for (j = 0; j < width; ++j) {
+           chtype test = CharOf(win->_line[n].text[j]);
+           ep[j] = (UChar(test) == test
+#if USE_WIDEC_SUPPORT
+                    && (win->_line[n].text[j].chars[1] == 0)
+#endif
+               )
+               ? (iscntrl(UChar(test))
+                  ? '.'
+                  : UChar(test))
+               : '?';
+       }
+       ep[j] = '\0';
+       _tracef("%s[%2d] %3d%3d ='%s'",
                name, n,
                win->_line[n].firstchar,
                name, n,
                win->_line[n].firstchar,
-               win->_line[n].lastchar);
-       ep = buf + strlen(buf);
-       for (j = 0; j <= width; j++) {
-           ep[j] = TextOf(win->_line[n].text[j]);
-           if (ep[j] == 0)
-               ep[j] = '.';
-       }
-       ep[j] = '\'';
-       ep[j+1] = '\0';
-       _tracef("%s", buf);
+               win->_line[n].lastchar,
+               ep);
 
        /* dump A_COLOR part, will screw up if there are more than 96 */
        havecolors = FALSE;
 
        /* dump A_COLOR part, will screw up if there are more than 96 */
        havecolors = FALSE;
-       for (j = 0; j <= width; j++)
-           if (win->_line[n].text[j] & A_COLOR)
-           {
+       for (j = 0; j < width; ++j)
+           if (AttrOf(win->_line[n].text[j]) & A_COLOR) {
                havecolors = TRUE;
                break;
            }
                havecolors = TRUE;
                break;
            }
-       if (havecolors)
-       {
-           (void) sprintf(buf, "%*s[%2d]%*s='", (int)strlen(name), "colors", n, 8, " ");
-           ep = buf + strlen(buf);
-           for (j = 0; j <= width; j++)
-               ep[j] = ((win->_line[n].text[j] >> 8) & 0xff) + ' ';
-           ep[j] = '\'';
-           ep[j+1] = '\0';
-           _tracef("%s", buf);
+       if (havecolors) {
+           ep = buf;
+           for (j = 0; j < width; ++j)
+               ep[j] = UChar(AttrOf(win->_line[n].text[j]) >>
+                             NCURSES_ATTR_SHIFT) + ' ';
+           ep[j] = '\0';
+           _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
+                   "colors", n, 8, " ", buf);
        }
 
        }
 
-       for (i = 0; i < 4; i++)
-       {
-           const char  *hex = " 123456789ABCDEF";
-           chtype      mask = (0xf << ((i + 4) * 4));
+       for (i = 0; i < 4; ++i) {
+           const char *hex = " 123456789ABCDEF";
+           attr_t mask = (0xf << ((i + 4) * 4));
 
            haveattrs = FALSE;
 
            haveattrs = FALSE;
-           for (j = 0; j <= width; j++)
-               if (win->_line[n].text[j] & mask)
-               {
+           for (j = 0; j < width; ++j)
+               if (AttrOf(win->_line[n].text[j]) & mask) {
                    haveattrs = TRUE;
                    break;
                }
                    haveattrs = TRUE;
                    break;
                }
-           if (haveattrs)
-           {
-               (void) sprintf(buf, "%*s%d[%2d]%*s='", (int)strlen(name)-1, "attrs", i, n, 8, " ");
-               ep = buf + strlen(buf);
-               for (j = 0; j <= width; j++)
-                   ep[j] = hex[(win->_line[n].text[j] & mask) >> ((i + 4) * 4)];
-               ep[j] = '\'';
-               ep[j+1] = '\0';
-               _tracef("%s", buf);
+           if (haveattrs) {
+               ep = buf;
+               for (j = 0; j < width; ++j)
+                   ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >>
+                               ((i + 4) * 4)];
+               ep[j] = '\0';
+               _tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) -
+                       1, "attrs", i, n, 8, " ", buf);
            }
        }
     }
            }
        }
     }
+#if NO_LEAKS
+    free(buf);
+    buf = 0;
+    used = 0;
+#endif
 }
 }
+
 #else
 #else
-extern void _nc_lib_tracedmp(void);
-       void _nc_lib_tracedmp(void) { }
+empty_module(_nc_lib_tracedmp)
 #endif /* TRACE */
 #endif /* TRACE */
index fbdd2c006de0078d4c4759198a1d81212da459cf..f4a100b6eb4301a51724f6b17fba1fae23afc49c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
-
 /*
  *     lib_tracemse.c - Tracing/Debugging routines (mouse events)
  */
 
 #include <curses.priv.h>
 
 /*
  *     lib_tracemse.c - Tracing/Debugging routines (mouse events)
  */
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracemse.c,v 1.6 1998/11/16 14:28:17 Alexander.V.Lukyanov Exp $")
+MODULE_ID("$Id: lib_tracemse.c,v 1.10 2002/01/12 22:32:25 tom Exp $")
 
 #ifdef TRACE
 
 
 #ifdef TRACE
 
-char *_tracemouse(MEVENT const *ep)
+NCURSES_EXPORT(char *)
+_tracemouse(MEVENT const *ep)
 {
 {
-       static char buf[80];
+    static char buf[80];
 
 
-       (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
-                      ep->id, ep->x, ep->y, ep->z, ep->bstate);
+    (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
+                  ep->id, ep->x, ep->y, ep->z, 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")
-       SHOW(BUTTON1_RESERVED_EVENT,    "reserved-1")
-       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")
-       SHOW(BUTTON2_RESERVED_EVENT,    "reserved-2")
-       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")
-       SHOW(BUTTON3_RESERVED_EVENT,    "reserved-3")
-       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")
-       SHOW(BUTTON4_RESERVED_EVENT,    "reserved-4")
-       SHOW(BUTTON_CTRL,               "ctrl")
-       SHOW(BUTTON_SHIFT,              "shift")
-       SHOW(BUTTON_ALT,                "alt")
-       SHOW(ALL_MOUSE_EVENTS,          "all-events")
-       SHOW(REPORT_MOUSE_POSITION,     "position")
+#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");
+    SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
+    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");
+    SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
+    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");
+    SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
+    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");
+    SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
+    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
 
 #undef SHOW
 
-       if (buf[strlen(buf)-1] == ' ')
-               buf[strlen(buf)-2] = '\0';
-       (void) strcat(buf, "}");
-       return(buf);
+    if (buf[strlen(buf) - 1] == ' ')
+       buf[strlen(buf) - 2] = '\0';
+    (void) strcat(buf, "}");
+    return (buf);
 }
 
 #else /* !TRACE */
 }
 
 #else /* !TRACE */
-/* don't make empty module */
-void _nc_lib_tracemouse(void);
-void _nc_lib_tracemouse(void) {}
+empty_module(_nc_lib_tracemouse)
 #endif
 #endif
index 48f93d43d1ef1a45d204da0ca895346ad188dd6e..4fef57eecedb67d07329ca237c5949d59316165f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: trace_buf.c,v 1.7 1999/02/27 19:50:58 tom Exp $")
+MODULE_ID("$Id: trace_buf.c,v 1.11 2002/07/14 00:08:08 tom Exp $")
 
 typedef struct {
 
 typedef struct {
-       char *text;
-       size_t size;
+    char *text;
+    size_t size;
 } LIST;
 
 } LIST;
 
-char * _nc_trace_buf(int bufnum, size_t want)
+NCURSES_EXPORT(char *)
+_nc_trace_buf(int bufnum, size_t want)
 {
 {
-       static LIST *list;
-       static size_t have;
+    char *result = 0;
+    static LIST *list;
+    static size_t have;
 
 
-#if NO_LEAKS
-       if (bufnum < 0) {
-               if (have) {
-                       while (have--) {
-                               free(list[have].text);
-                       }
-                       free(list);
-               }
-               return 0;
-       }
-#endif
-
-       if ((size_t)(bufnum+1) > have) {
-               size_t need = (bufnum + 1) * 2;
-               if ((list = typeRealloc(LIST, need, list)) == 0)
-                       return(0);
-               while (need > have)
-                       list[have++].text = 0;
+    if (bufnum >= 0) {
+       if ((size_t) (bufnum + 1) > have) {
+           size_t need = (bufnum + 1) * 2;
+           if ((list = typeRealloc(LIST, need, list)) == 0)
+               return (0);
+           while (need > have)
+               list[have++].text = 0;
        }
 
        if (list[bufnum].text == 0
        }
 
        if (list[bufnum].text == 0
-        || want > list[bufnum].size)
-       {
-               if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text)) != 0)
-                       list[bufnum].size = want;
+           || want > list[bufnum].size) {
+           if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text))
+               != 0)
+                 list[bufnum].size = want;
        }
 
        if (list[bufnum].text != 0)
        }
 
        if (list[bufnum].text != 0)
-               *(list[bufnum].text) = '\0';
-       return list[bufnum].text;
+           *(list[bufnum].text) = '\0';
+       result = list[bufnum].text;
+    }
+#if NO_LEAKS
+    else {
+       if (have) {
+           while (have--) {
+               if (list[have].text != 0)
+                   free(list[have].text);
+           }
+           free(list);
+       }
+    }
+#endif
+    return result;
 }
 }
index abd5db47a818eff2deb635ef1f06bd67094a9642..d7033227e25151da1e589cadea86ace824298a73 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 <curses.priv.h>
 
-MODULE_ID("$Id: trace_tries.c,v 1.6 1999/03/06 22:51:07 tom Exp $")
+MODULE_ID("$Id: trace_tries.c,v 1.10 2001/10/20 22:42:51 tom Exp $")
 
 #ifdef TRACE
 static unsigned char *buffer;
 static unsigned len;
 
 
 #ifdef TRACE
 static unsigned char *buffer;
 static unsigned len;
 
-static void recur_tries(struct tries *tree, unsigned level)
+static void
+recur_tries(struct tries *tree, unsigned level)
 {
 {
-       if (level > len)
-               buffer = (unsigned char *)realloc(buffer, len = (level + 1) * 4);
+    if (level > len)
+       buffer = (unsigned char *) realloc(buffer, len = (level + 1) * 4);
 
 
-       while (tree != 0) {
-               if ((buffer[level] = tree->ch) == 0)
-                       buffer[level] = 128;
-               buffer[level+1] = 0;
-               if (tree->value != 0) {
-                       _tracef("%5d: %s (%s)", tree->value, _nc_visbuf((char *)buffer), keyname(tree->value));
-               }
-               if (tree->child)
-                       recur_tries(tree->child, level+1);
-               tree = tree->sibling;
+    while (tree != 0) {
+       if ((buffer[level] = tree->ch) == 0)
+           buffer[level] = 128;
+       buffer[level + 1] = 0;
+       if (tree->value != 0) {
+           _tracef("%5d: %s (%s)", tree->value,
+                   _nc_visbuf((char *) buffer), keyname(tree->value));
        }
        }
+       if (tree->child)
+           recur_tries(tree->child, level + 1);
+       tree = tree->sibling;
+    }
 }
 
 }
 
-void _nc_trace_tries(struct tries *tree)
+NCURSES_EXPORT(void)
+_nc_trace_tries(struct tries *tree)
 {
 {
-       buffer = typeMalloc(unsigned char, len = 80);
-       _tracef("BEGIN tries %p", tree);
-       recur_tries(tree, 0);
-       _tracef(". . . tries %p", tree);
-       free(buffer);
+    buffer = typeMalloc(unsigned char, len = 80);
+    _tracef("BEGIN tries %p", tree);
+    recur_tries(tree, 0);
+    _tracef(". . . tries %p", tree);
+    free(buffer);
 }
 }
+
 #else
 #else
-void _nc_trace_tries(struct tries *tree GCC_UNUSED)
-{
-}
+empty_module(_nc_trace_tries)
 #endif
 #endif
index 6287fc85c0a65112cd53f8573797bf9a68b43b18..9b0b5920d81455d4d47de9f932275c3538acfbf6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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_entry.h>
 
 #include <curses.priv.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: trace_xnames.c,v 1.3 1999/03/02 01:20:38 tom Exp $")
+MODULE_ID("$Id: trace_xnames.c,v 1.5 2000/12/10 03:02:45 tom Exp $")
 
 
-void _nc_trace_xnames(TERMTYPE *tp GCC_UNUSED)
+NCURSES_EXPORT(void)
+_nc_trace_xnames(TERMTYPE * tp GCC_UNUSED)
 {
 #ifdef TRACE
 #if NCURSES_XNAMES
 {
 #ifdef TRACE
 #if NCURSES_XNAMES
@@ -56,16 +57,16 @@ void _nc_trace_xnames(TERMTYPE *tp GCC_UNUSED)
        for (n = 0; n < limit; n++) {
            if ((m = n - begin_str) >= 0) {
                _tracef("[%d] %s = %s", n,
        for (n = 0; n < limit; n++) {
            if ((m = n - begin_str) >= 0) {
                _tracef("[%d] %s = %s", n,
-                   tp->ext_Names[n],
-                   _nc_visbuf(tp->Strings[tp->num_Strings + m - tp->ext_Strings]));
+                       tp->ext_Names[n],
+                       _nc_visbuf(tp->Strings[tp->num_Strings + m - tp->ext_Strings]));
            } else if ((m = n - begin_num) >= 0) {
                _tracef("[%d] %s = %d (num)", n,
            } else if ((m = n - begin_num) >= 0) {
                _tracef("[%d] %s = %d (num)", n,
-                   tp->ext_Names[n],
-                   tp->Numbers[tp->num_Numbers + m - tp->ext_Numbers]);
+                       tp->ext_Names[n],
+                       tp->Numbers[tp->num_Numbers + m - tp->ext_Numbers]);
            } else {
                _tracef("[%d] %s = %d (bool)", n,
            } else {
                _tracef("[%d] %s = %d (bool)", n,
-                   tp->ext_Names[n],
-                   tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]);
+                       tp->ext_Names[n],
+                       tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]);
            }
        }
     }
            }
        }
     }
diff --git a/ncurses/trace/varargs.c b/ncurses/trace/varargs.c
new file mode 100644 (file)
index 0000000..0b3c28c
--- /dev/null
@@ -0,0 +1,182 @@
+/****************************************************************************
+ * Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "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 2001                                           *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+#include <ctype.h>
+
+MODULE_ID("$Id: varargs.c,v 1.3 2002/10/05 23:04:17 tom Exp $")
+
+#ifdef TRACE
+
+#define MAX_PARMS 10
+
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
+#define VA_INT(type) ival = va_arg(ap, type)
+#define VA_FLT(type) fval = va_arg(ap, type)
+#define VA_PTR(type) pval = (void *)va_arg(ap, type)
+#define VA_STR(type) sval = va_arg(ap, type)
+
+/*
+ * Returns a string that represents the parameter list of a printf-style call.
+ */
+NCURSES_EXPORT(char *)
+_nc_varargs(const char *fmt, va_list ap)
+{
+    static char dummy[] = "";
+    static char *result_buf;
+    static size_t result_len;
+
+    char buffer[BUFSIZ];
+    const char *param;
+    int n;
+
+    if (fmt == 0 || *fmt == '\0')
+       return dummy;
+    if (result_len == 0)
+       result_buf = typeMalloc(char, result_len = BUFSIZ);
+    if (result_buf == 0)
+       return dummy;
+    *result_buf = '\0';
+
+    while (*fmt != '\0') {
+       if (*fmt == '%') {
+           char *pval = 0;     /* avoid const-cast */
+           const char *sval = "";
+           double fval = 0.0;
+           int done = FALSE;
+           int ival = 0;
+           int type = 0;
+           ARGTYPE parm[MAX_PARMS];
+           int parms = 0;
+           ARGTYPE used = atUnknown;
+
+           while (*++fmt != '\0' && !done) {
+
+               if (*fmt == '*') {
+                   VA_INT(int);
+                   if (parms < MAX_PARMS)
+                       parm[parms++] = atInteger;
+               } else if (isalpha(UChar(*fmt))) {
+                   done = TRUE;
+                   switch (*fmt) {
+                   case 'Z':   /* FALLTHRU */
+                   case 'h':   /* FALLTHRU */
+                   case 'l':   /* FALLTHRU */
+                       done = FALSE;
+                       type = *fmt;
+                       break;
+                   case 'i':   /* FALLTHRU */
+                   case 'd':   /* FALLTHRU */
+                   case 'u':   /* FALLTHRU */
+                   case 'x':   /* FALLTHRU */
+                   case 'X':   /* FALLTHRU */
+                       if (type == 'l')
+                           VA_INT(long);
+                       else if (type == 'Z')
+                           VA_INT(size_t);
+                       else
+                           VA_INT(int);
+                       used = atInteger;
+                       break;
+                   case 'f':   /* FALLTHRU */
+                   case 'e':   /* FALLTHRU */
+                   case 'E':   /* FALLTHRU */
+                   case 'g':   /* FALLTHRU */
+                   case 'G':   /* FALLTHRU */
+                       VA_FLT(double);
+                       used = atFloat;
+                       break;
+                   case 'c':
+                       VA_INT(int);
+                       used = atInteger;
+                       break;
+                   case 's':
+                       VA_STR(const char *);
+                       used = atString;
+                       break;
+                   case 'p':
+                       VA_PTR(void *);
+                       used = atPoint;
+                       break;
+                   case 'n':
+                       VA_PTR(int *);
+                       used = atPoint;
+                       break;
+                   default:
+                       break;
+                   }
+               } else if (*fmt == '%') {
+                   done = TRUE;
+               }
+               if (used != atUnknown && parms < MAX_PARMS) {
+                   parm[parms++] = used;
+                   for (n = 0; n < parms; ++n) {
+                       used = parm[n];
+                       param = buffer;
+                       switch (used) {
+                       case atInteger:
+                           sprintf(buffer, "%d", ival);
+                           break;
+                       case atFloat:
+                           sprintf(buffer, "%f", fval);
+                           break;
+                       case atPoint:
+                           sprintf(buffer, "%p", pval);
+                           break;
+                       case atString:
+                           param = _nc_visbuf2(1, sval);
+                           break;
+                       default:
+                           strcpy(buffer, "?");
+                           break;
+                       }
+                       result_len += strlen(param) + 2;
+                       result_buf = typeRealloc(char, result_len, result_buf);
+                       sprintf(result_buf + strlen(result_buf), ", %s", param);
+                   }
+               }
+               used = atUnknown;
+           }
+       } else {
+           fmt++;
+       }
+    }
+
+    return (result_buf);
+}
+#else
+empty_module(_nc_varargs)
+#endif
diff --git a/ncurses/trace/visbuf.c b/ncurses/trace/visbuf.c
new file mode 100644 (file)
index 0000000..4fbecc5
--- /dev/null
@@ -0,0 +1,270 @@
+/****************************************************************************
+ * Copyright (c) 2001 Free Software 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 1996-2001                                      *
+ *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+ *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ ****************************************************************************/
+
+/*
+ *     visbuf.c - Tracing/Debugging support routines
+ */
+
+#include <curses.priv.h>
+
+#include <tic.h>
+#include <ctype.h>
+
+MODULE_ID("$Id: visbuf.c,v 1.6 2002/10/06 00:03:43 tom Exp $")
+
+static char *
+_nc_vischar(char *tp, unsigned c)
+{
+    if (c == '"' || c == '\\') {
+       *tp++ = '\\';
+       *tp++ = c;
+    } else if (is7bits(c) && (isgraph(c) || c == ' ')) {
+       *tp++ = c;
+    } else if (c == '\n') {
+       *tp++ = '\\';
+       *tp++ = 'n';
+    } else if (c == '\r') {
+       *tp++ = '\\';
+       *tp++ = 'r';
+    } else if (c == '\b') {
+       *tp++ = '\\';
+       *tp++ = 'b';
+    } else if (c == '\033') {
+       *tp++ = '\\';
+       *tp++ = 'e';
+    } else if (is7bits(c) && iscntrl(UChar(c))) {
+       *tp++ = '\\';
+       *tp++ = '^';
+       *tp++ = '@' + c;
+    } else {
+       sprintf(tp, "\\%03lo", ChCharOf(c));
+       tp += strlen(tp);
+    }
+    return tp;
+}
+
+static const char *
+_nc_visbuf2n(int bufnum, const char *buf, int len)
+{
+    char *vbuf;
+    char *tp;
+    int c;
+
+    if (buf == 0)
+       return ("(null)");
+    if (buf == CANCELLED_STRING)
+       return ("(cancelled)");
+
+    if (len < 0)
+       len = strlen(buf);
+
+#ifdef TRACE
+    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
+#else
+    {
+       static char *mybuf[2];
+       mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
+       tp = vbuf = mybuf[bufnum];
+    }
+#endif
+    *tp++ = D_QUOTE;
+    while ((--len >= 0) && (c = *buf++) != '\0') {
+       tp = _nc_vischar(tp, UChar(c));
+    }
+    *tp++ = D_QUOTE;
+    *tp++ = '\0';
+    return (vbuf);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_visbuf2(int bufnum, const char *buf)
+{
+    return _nc_visbuf2n(bufnum, buf, -1);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_visbuf(const char *buf)
+{
+    return _nc_visbuf2(0, buf);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_visbufn(const char *buf, int len)
+{
+    return _nc_visbuf2n(0, buf, len);
+}
+
+#if USE_WIDEC_SUPPORT
+#ifdef TRACE
+static const char *
+_nc_viswbuf2n(int bufnum, const wchar_t * buf, int len)
+{
+    char *vbuf;
+    char *tp;
+    wchar_t c;
+
+    if (buf == 0)
+       return ("(null)");
+
+    if (len < 0)
+       len = wcslen(buf);
+
+#ifdef TRACE
+    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
+#else
+    {
+       static char *mybuf[2];
+       mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
+       tp = vbuf = mybuf[bufnum];
+    }
+#endif
+    *tp++ = D_QUOTE;
+    while ((--len >= 0) && (c = *buf++) != '\0') {
+       char temp[CCHARW_MAX + 80];
+       int j = wctomb(temp, c), k;
+       if (j <= 0) {
+           sprintf(temp, "\\u%08X", (wint_t) c);
+           j = strlen(temp);
+       }
+       for (k = 0; k < j; ++k) {
+           tp = _nc_vischar(tp, temp[k]);
+       }
+    }
+    *tp++ = D_QUOTE;
+    *tp++ = '\0';
+    return (vbuf);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_viswbuf2(int bufnum, const wchar_t * buf)
+{
+    return _nc_viswbuf2n(bufnum, buf, -1);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_viswbuf(const wchar_t * buf)
+{
+    return _nc_viswbuf2(0, buf);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_viswbufn(const wchar_t * buf, int len)
+{
+    return _nc_viswbuf2n(0, buf, len);
+}
+
+NCURSES_EXPORT(const char *)
+_nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
+{
+    size_t have = BUFSIZ;
+    char *result = _nc_trace_buf(bufnum, have);
+    char *tp = result;
+    int n;
+    bool same = TRUE;
+    attr_t attr = A_NORMAL;
+    const char *found;
+
+    if (len < 0)
+       len = _nc_wchstrlen(buf);
+
+    for (n = 1; n < len; n++) {
+       if (AttrOf(buf[n]) != AttrOf(buf[0])) {
+           same = FALSE;
+           break;
+       }
+    }
+
+    /*
+     * If the rendition is the same for the whole string, display it as a
+     * quoted string, followed by the rendition.  Otherwise, use the more
+     * detailed trace function that displays each character separately.
+     */
+    if (same) {
+       *tp++ = D_QUOTE;
+       while (len-- > 0) {
+           if ((found = _nc_altcharset_name(attr, CharOfD(buf))) != 0) {
+               (void) strcpy(tp, found);
+               tp += strlen(tp);
+               attr &= ~A_ALTCHARSET;
+           } else if (!isnac(CHDEREF(buf))) {
+               PUTC_DATA;
+
+               memset(&PUT_st, '\0', sizeof(PUT_st));
+               PUTC_i = 0;
+               do {
+                   PUTC_ch = PUTC_i < CCHARW_MAX ? buf->chars[PUTC_i] : L'\0';
+                   PUTC_n = wcrtomb(PUTC_buf, buf->chars[PUTC_i], &PUT_st);
+                   if (PUTC_ch == L'\0')
+                       --PUTC_n;
+                   if (PUTC_n <= 0)
+                       break;
+                   for (n = 0; n < PUTC_n; n++) {
+                       tp = _nc_vischar(tp, UChar(PUTC_buf[n]));
+                   }
+                   ++PUTC_i;
+               } while (PUTC_ch != L'\0');
+           }
+           buf++;
+       }
+       *tp++ = D_QUOTE;
+       *tp++ = '\0';
+       if (attr != A_NORMAL)
+           (void) sprintf(tp, " | %s",
+                          _traceattr2(bufnum + 20, attr));
+    } else {
+       *tp++ = L_BRACE;
+       while (len-- > 0) {
+           char *temp = _tracecchar_t2(bufnum + 20, buf++);
+           size_t used = (tp - result);
+           size_t want = strlen(temp) + 5 + used;
+           if (want > have) {
+               result = _nc_trace_buf(bufnum, have = want);
+               tp = result + used;
+           }
+           (void) strcpy(tp, temp);
+           tp += strlen(tp);
+       }
+       *tp++ = R_BRACE;
+       *tp++ = '\0';
+    }
+    return result;
+}
+
+NCURSES_EXPORT(const char *)
+_nc_viscbuf(const cchar_t * buf, int len)
+{
+    return _nc_viscbuf2(0, buf, len);
+}
+#endif /* TRACE */
+#endif /* USE_WIDEC_SUPPORT */
index e44f58343a5dc42d11b4ab66ee3fac4944460146..8e4a6c6c5f035c31f2dde0ef26fbb2bacff7cef2 100755 (executable)
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1997
 #
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1997
 #
-# $Id: MKexpanded.sh,v 1.9 2000/09/02 22:55:21 tom Exp $
+# $Id: MKexpanded.sh,v 1.10 2000/12/10 00:24:33 tom Exp $
 #
 # Script to generate 'expanded.c', a dummy source that contains functions
 # corresponding to complex macros used in this library.  By making functions,
 #
 # Script to generate 'expanded.c', a dummy source that contains functions
 # corresponding to complex macros used in this library.  By making functions,
@@ -68,23 +68,23 @@ cat >$TMP <<EOF
 #undef FALSE
 /* this is a marker */
 IGNORE
 #undef FALSE
 /* this is a marker */
 IGNORE
-void _nc_toggle_attr_on(attr_t *S, attr_t at)
+NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *S, attr_t at)
 {
        toggle_attr_on(*S,at);
 }
 {
        toggle_attr_on(*S,at);
 }
-void _nc_toggle_attr_off(attr_t *S, attr_t at) 
+NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *S, attr_t at) 
 {
        toggle_attr_off(*S,at);
 }
 {
        toggle_attr_off(*S,at);
 }
-int _nc_DelCharCost(int count)
+NCURSES_EXPORT(int) _nc_DelCharCost (int count)
 {
        return DelCharCost(count);
 }
 {
        return DelCharCost(count);
 }
-int _nc_InsCharCost(int count)
+NCURSES_EXPORT(int) _nc_InsCharCost (int count)
 {
        return InsCharCost(count);
 }
 {
        return InsCharCost(count);
 }
-void _nc_UpdateAttrs(chtype c)
+NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype c)
 {
        UpdateAttrs(c);
 }
 {
        UpdateAttrs(c);
 }
@@ -94,6 +94,6 @@ $preprocessor $TMP 2>/dev/null | sed -e '1,/^IGNORE$/d'
 
 cat <<EOF
 #else /* ! NCURSES_EXPANDED */
 
 cat <<EOF
 #else /* ! NCURSES_EXPANDED */
-void _nc_expanded(void) { }
+NCURSES_EXPORT(void) _nc_expanded (void) { }
 #endif /* NCURSES_EXPANDED */
 EOF
 #endif /* NCURSES_EXPANDED */
 EOF
index b80d08aa5467764cf5fe0a6d0dd30e7a243d0d10..7815db75ae37989810d85c63838e06b658bd38c1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,6 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
-
 /******************************************************************************
 
 NAME
 /******************************************************************************
 
 NAME
@@ -146,13 +145,14 @@ AUTHOR
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: hardscroll.c,v 1.33 1999/02/27 20:01:29 tom Exp $")
+MODULE_ID("$Id: hardscroll.c,v 1.36 2001/01/14 00:17:28 tom Exp $")
 
 #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
 
 # undef screen_lines
 # define screen_lines MAXLINES
 
 #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
 
 # undef screen_lines
 # define screen_lines MAXLINES
-int oldnums[MAXLINES];
+NCURSES_EXPORT_VAR(int)
+oldnums[MAXLINES];
 # define OLDNUM(n)     oldnums[n]
 # define _tracef       printf
 # undef TR
 # define OLDNUM(n)     oldnums[n]
 # define _tracef       printf
 # undef TR
@@ -163,19 +163,21 @@ int oldnums[MAXLINES];
 /* OLDNUM(n) indicates which line will be shifted to the position n.
    if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
    somewhere. */
 /* OLDNUM(n) indicates which line will be shifted to the position n.
    if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
    somewhere. */
+NCURSES_EXPORT_VAR(int *)
+_nc_oldnums = 0;
+
 # if USE_HASHMAP
 # if USE_HASHMAP
-int *_nc_oldnums = 0;
-static int oldnums_allocated = 0;
+     static int oldnums_allocated = 0;
 #  define oldnums       _nc_oldnums
 #  define OLDNUM(n)    oldnums[n]
 #  define oldnums       _nc_oldnums
 #  define OLDNUM(n)    oldnums[n]
-# else /* !USE_HASHMAP */
+# else                         /* !USE_HASHMAP */
 #  define OLDNUM(n)    newscr->_line[n].oldindex
 #  define OLDNUM(n)    newscr->_line[n].oldindex
-# endif /* !USE_HASHMAP */
+# endif                                /* !USE_HASHMAP */
 
 #endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
 
 
 #endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
 
-
-void _nc_scroll_optimize(void)
+NCURSES_EXPORT(void)
+_nc_scroll_optimize(void)
 /* scroll optimization to transform curscr to newscr */
 {
     int i;
 /* scroll optimization to transform curscr to newscr */
 {
     int i;
@@ -186,8 +188,7 @@ void _nc_scroll_optimize(void)
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 #if USE_HASHMAP
     /* get enough storage */
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 #if USE_HASHMAP
     /* get enough storage */
-    if (oldnums_allocated < screen_lines)
-    {
+    if (oldnums_allocated < screen_lines) {
        int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
        if (!new_oldnums)
            return;
        int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
        if (!new_oldnums)
            return;
@@ -205,25 +206,24 @@ void _nc_scroll_optimize(void)
 #endif /* TRACE */
 
     /* pass 1 - from top to bottom scrolling up */
 #endif /* TRACE */
 
     /* pass 1 - from top to bottom scrolling up */
-    for (i = 0; i < screen_lines; )
-    {
+    for (i = 0; i < screen_lines;) {
        while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i))
            i++;
        if (i >= screen_lines)
            break;
 
        while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i))
            i++;
        if (i >= screen_lines)
            break;
 
-       shift = OLDNUM(i) - i; /* shift > 0 */
+       shift = OLDNUM(i) - i;  /* shift > 0 */
        start = i;
 
        i++;
        start = i;
 
        i++;
-       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
+       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
+              == shift)
            i++;
            i++;
-       end = i-1 + shift;
+       end = i - 1 + shift;
 
        TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 
        TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-       if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR)
-       {
+       if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) {
            TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
            continue;
        }
            TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
            continue;
        }
@@ -231,25 +231,23 @@ void _nc_scroll_optimize(void)
     }
 
     /* pass 2 - from bottom to top scrolling down */
     }
 
     /* pass 2 - from bottom to top scrolling down */
-    for (i = screen_lines-1; i >= 0; )
-    {
+    for (i = screen_lines - 1; i >= 0;) {
        while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i))
            i--;
        if (i < 0)
            break;
 
        while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i))
            i--;
        if (i < 0)
            break;
 
-       shift = OLDNUM(i) - i; /* shift < 0 */
+       shift = OLDNUM(i) - i;  /* shift < 0 */
        end = i;
 
        i--;
        while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
            i--;
        end = i;
 
        i--;
        while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
            i--;
-       start = i+1 - (-shift);
+       start = i + 1 - (-shift);
 
        TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 
        TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-       if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR)
-       {
+       if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) {
            TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
            continue;
        }
            TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
            continue;
        }
@@ -258,14 +256,15 @@ void _nc_scroll_optimize(void)
 }
 
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
 }
 
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-void _nc_linedump(void)
+NCURSES_EXPORT(void)
+_nc_linedump(void)
 /* dump the state of the real and virtual oldnum fields */
 {
     static size_t have;
     static char *buf;
 
 /* dump the state of the real and virtual oldnum fields */
 {
     static size_t have;
     static char *buf;
 
-    int        n;
-    size_t     want = (screen_lines + 1) * 4;
+    int n;
+    size_t want = (screen_lines + 1) * 4;
 
     if (have < want)
        buf = typeMalloc(char, have = want);
 
     if (have < want)
        buf = typeMalloc(char, have = want);
@@ -284,28 +283,26 @@ void _nc_linedump(void)
 #ifdef SCROLLDEBUG
 
 int
 #ifdef SCROLLDEBUG
 
 int
-main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 {
-    char       line[BUFSIZ], *st;
+    char line[BUFSIZ], *st;
 
 #ifdef TRACE
     _nc_tracing = TRACE_MOVE;
 #endif
 
 #ifdef TRACE
     _nc_tracing = TRACE_MOVE;
 #endif
-    for (;;)
-    {
-       int     n;
+    for (;;) {
+       int n;
 
        for (n = 0; n < screen_lines; n++)
            oldnums[n] = _NEWINDEX;
 
        /* grab the test vector */
 
        for (n = 0; n < screen_lines; n++)
            oldnums[n] = _NEWINDEX;
 
        /* grab the test vector */
-       if (fgets(line, sizeof(line), stdin) == (char *)NULL)
+       if (fgets(line, sizeof(line), stdin) == (char *) NULL)
            exit(EXIT_SUCCESS);
 
        /* parse it */
        n = 0;
            exit(EXIT_SUCCESS);
 
        /* parse it */
        n = 0;
-       if (line[0] == '#')
-       {
+       if (line[0] == '#') {
            (void) fputs(line, stderr);
            continue;
        }
            (void) fputs(line, stderr);
            continue;
        }
@@ -313,7 +310,7 @@ main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
        do {
            oldnums[n++] = atoi(st);
        } while
        do {
            oldnums[n++] = atoi(st);
        } while
-           ((st = strtok((char *)NULL, " ")) != 0);
+           ((st = strtok((char *) NULL, " ")) != 0);
 
        /* display it */
        (void) fputs("Initial input:\n", stderr);
 
        /* display it */
        (void) fputs("Initial input:\n", stderr);
index 300ac9a3232a7b0a0450a71e6f267921aa3db3fb..ba53786a53499af351fd72c28f5e69ef7dd49743 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -68,9 +68,9 @@ AUTHOR
 *****************************************************************************/
 
 #include <curses.priv.h>
 *****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h> /* for back_color_erase */
+#include <term.h>              /* for back_color_erase */
 
 
-MODULE_ID("$Id: hashmap.c,v 1.34 1999/11/28 00:10:57 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.46 2002/09/07 18:13:15 tom Exp $")
 
 #ifdef HASHDEBUG
 
 
 #ifdef HASHDEBUG
 
@@ -97,45 +97,56 @@ static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH];
 
 #endif /* !HASHDEBUG */
 
 
 #endif /* !HASHDEBUG */
 
-#define oldhash        (SP->oldhash)
-#define newhash        (SP->newhash)
+#define oldhash                (SP->oldhash)
+#define newhash                (SP->newhash)
+#define hashtab                (SP->hashtab)
+#define lines_alloc    (SP->hashtab_len)
 
 
-static inline unsigned long hash(chtype *text)
+#if USE_WIDEC_SUPPORT
+#define HASH_VAL(ch) (ch.chars[0])
+#else
+#define HASH_VAL(ch) (ch)
+#endif
+
+static inline unsigned long
+hash(NCURSES_CH_T * text)
 {
     int i;
 {
     int i;
-    chtype ch;
+    NCURSES_CH_T ch;
     unsigned long result = 0;
     unsigned long result = 0;
-    for (i = TEXTWIDTH; i>0; i--)
-    {
+    for (i = TEXTWIDTH; i > 0; i--) {
        ch = *text++;
        ch = *text++;
-       result += (result<<5) + ch;
+       result += (result << 5) + HASH_VAL(ch);
     }
     return result;
 }
 
 /* approximate update cost */
     }
     return result;
 }
 
 /* approximate update cost */
-static int update_cost(chtype *from,chtype *to)
+static int
+update_cost(NCURSES_CH_T * from, NCURSES_CH_T * to)
 {
 {
-    int cost=0;
+    int cost = 0;
     int i;
 
     int i;
 
-    for (i=TEXTWIDTH; i>0; i--)
-       if (*from++ != *to++)
+    for (i = TEXTWIDTH; i > 0; i--)
+       if (!(CharEq(*from++, *to++)))
            cost++;
 
     return cost;
 }
            cost++;
 
     return cost;
 }
-static int update_cost_from_blank(chtype *to)
+
+static int
+update_cost_from_blank(NCURSES_CH_T * to)
 {
 {
-    int cost=0;
+    int cost = 0;
     int i;
     int i;
-    chtype blank = BLANK;
+    NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
 
     if (back_color_erase)
 
     if (back_color_erase)
-       blank |= (stdscr->_bkgd & A_COLOR);
+       AddAttr(blank, (AttrOf(stdscr->_nc_bkgd) & A_COLOR));
 
 
-    for (i=TEXTWIDTH; i>0; i--)
-       if (blank != *to++)
+    for (i = TEXTWIDTH; i > 0; i--)
+       if (!(CharEq(blank, *to++)))
            cost++;
 
     return cost;
            cost++;
 
     return cost;
@@ -145,7 +156,8 @@ static int update_cost_from_blank(chtype *to)
  * Returns true when moving line 'from' to line 'to' seems to be cost
  * effective. 'blank' indicates whether the line 'to' would become blank.
  */
  * Returns true when moving line 'from' to line 'to' seems to be cost
  * effective. 'blank' indicates whether the line 'to' would become blank.
  */
-static inline bool cost_effective(const int from, const int to, const bool blank)
+static inline bool
+cost_effective(const int from, const int to, const bool blank)
 {
     int new_from;
 
 {
     int new_from;
 
@@ -161,30 +173,19 @@ static inline bool cost_effective(const int from, const int to, const bool blank
      * on the right side -- cost after moving.
      */
     return (((blank ? update_cost_from_blank(NEWTEXT(to))
      * on the right side -- cost after moving.
      */
     return (((blank ? update_cost_from_blank(NEWTEXT(to))
-                   : update_cost(OLDTEXT(to),NEWTEXT(to)))
-            + update_cost(OLDTEXT(new_from),NEWTEXT(from)))
-        >= ((new_from==from ? update_cost_from_blank(NEWTEXT(from))
-                            : update_cost(OLDTEXT(new_from),NEWTEXT(from)))
-            + update_cost(OLDTEXT(from),NEWTEXT(to)))) ? TRUE : FALSE;
-}
-
-
-typedef struct
-{
-    unsigned long      hashval;
-    int                oldcount, newcount;
-    int                oldindex, newindex;
+             : update_cost(OLDTEXT(to), NEWTEXT(to)))
+            + update_cost(OLDTEXT(new_from), NEWTEXT(from)))
+           >= ((new_from == from ? update_cost_from_blank(NEWTEXT(from))
+                : update_cost(OLDTEXT(new_from), NEWTEXT(from)))
+               + update_cost(OLDTEXT(from), NEWTEXT(to)))) ? TRUE : FALSE;
 }
 }
-    sym;
 
 
-static sym *hashtab=0;
-static int lines_alloc=0;
-
-static void grow_hunks(void)
+static void
+grow_hunks(void)
 {
     int start, end, shift;
 {
     int start, end, shift;
-    int back_limit, forward_limit;         /* limits for cells to fill */
-    int back_ref_limit, forward_ref_limit;  /* limits for refrences */
+    int back_limit, forward_limit;     /* limits for cells to fill */
+    int back_ref_limit, forward_ref_limit;     /* limits for refrences */
     int i;
     int next_hunk;
 
     int i;
     int next_hunk;
 
@@ -198,14 +199,14 @@ static void grow_hunks(void)
     i = 0;
     while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
        i++;
     i = 0;
     while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
        i++;
-    for ( ; i < screen_lines; i=next_hunk)
-    {
+    for (; i < screen_lines; i = next_hunk) {
        start = i;
        shift = OLDNUM(i) - i;
 
        /* get forward limit */
        start = i;
        shift = OLDNUM(i) - i;
 
        /* get forward limit */
-       i = start+1;
-       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
+       i = start + 1;
+       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
+              == shift)
            i++;
        end = i;
        while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
            i++;
        end = i;
        while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
@@ -217,25 +218,21 @@ static void grow_hunks(void)
        else
            forward_ref_limit = OLDNUM(i);
 
        else
            forward_ref_limit = OLDNUM(i);
 
-       i = start-1;
+       i = start - 1;
        /* grow back */
        if (shift < 0)
            back_limit = back_ref_limit + (-shift);
        /* grow back */
        if (shift < 0)
            back_limit = back_ref_limit + (-shift);
-       while (i >= back_limit)
-       {
-           if(newhash[i] == oldhash[i+shift]
-           || cost_effective(i+shift, i, shift<0))
-           {
-               OLDNUM(i) = i+shift;
+       while (i >= back_limit) {
+           if (newhash[i] == oldhash[i + shift]
+               || cost_effective(i + shift, i, shift < 0)) {
+               OLDNUM(i) = i + shift;
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("connected new line %d to old line %d (backward continuation)",
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("connected new line %d to old line %d (backward continuation)",
-                   i, i+shift));
-           }
-           else
-           {
+                   i, i + shift));
+           } else {
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("not connecting new line %d to old line %d (backward continuation)",
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("not connecting new line %d to old line %d (backward continuation)",
-                   i, i+shift));
+                   i, i + shift));
                break;
            }
            i--;
                break;
            }
            i--;
@@ -245,21 +242,17 @@ static void grow_hunks(void)
        /* grow forward */
        if (shift > 0)
            forward_limit = forward_ref_limit - shift;
        /* grow forward */
        if (shift > 0)
            forward_limit = forward_ref_limit - shift;
-       while (i < forward_limit)
-       {
-           if(newhash[i] == oldhash[i+shift]
-           || cost_effective(i+shift, i, shift>0))
-           {
-               OLDNUM(i) = i+shift;
+       while (i < forward_limit) {
+           if (newhash[i] == oldhash[i + shift]
+               || cost_effective(i + shift, i, shift > 0)) {
+               OLDNUM(i) = i + shift;
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("connected new line %d to old line %d (forward continuation)",
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("connected new line %d to old line %d (forward continuation)",
-                   i, i+shift));
-           }
-           else
-           {
+                   i, i + shift));
+           } else {
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("not connecting new line %d to old line %d (forward continuation)",
                TR(TRACE_UPDATE | TRACE_MOVE,
                   ("not connecting new line %d to old line %d (forward continuation)",
-                   i, i+shift));
+                   i, i + shift));
                break;
            }
            i++;
                break;
            }
            i++;
@@ -271,22 +264,19 @@ static void grow_hunks(void)
     }
 }
 
     }
 }
 
-void _nc_hash_map(void)
+NCURSES_EXPORT(void)
+_nc_hash_map(void)
 {
 {
-    sym *sp;
+    HASHMAP *sp;
     register int i;
     int start, shift, size;
 
     register int i;
     int start, shift, size;
 
-
-    if (screen_lines > lines_alloc)
-    {
+    if (screen_lines > lines_alloc) {
        if (hashtab)
        if (hashtab)
-           free (hashtab);
-       hashtab = typeMalloc(sym, (screen_lines+1)*2);
-       if (!hashtab)
-       {
-           if (oldhash)
-           {
+           free(hashtab);
+       hashtab = typeMalloc(HASHMAP, (screen_lines + 1) * 2);
+       if (!hashtab) {
+           if (oldhash) {
                FreeAndNull(oldhash);
            }
            lines_alloc = 0;
                FreeAndNull(oldhash);
            }
            lines_alloc = 0;
@@ -295,47 +285,40 @@ void _nc_hash_map(void)
        lines_alloc = screen_lines;
     }
 
        lines_alloc = screen_lines;
     }
 
-    if (oldhash && newhash)
-    {
+    if (oldhash && newhash) {
        /* re-hash only changed lines */
        /* re-hash only changed lines */
-       for (i = 0; i < screen_lines; i++)
-       {
+       for (i = 0; i < screen_lines; i++) {
            if (PENDING(i))
                newhash[i] = hash(NEWTEXT(i));
        }
            if (PENDING(i))
                newhash[i] = hash(NEWTEXT(i));
        }
-    }
-    else
-    {
+    } else {
        /* re-hash all */
        if (oldhash == 0)
        /* re-hash all */
        if (oldhash == 0)
-           oldhash = typeCalloc (unsigned long, screen_lines);
+           oldhash = typeCalloc(unsigned long, (unsigned) screen_lines);
        if (newhash == 0)
        if (newhash == 0)
-           newhash = typeCalloc (unsigned long, screen_lines);
+           newhash = typeCalloc(unsigned long, (unsigned) screen_lines);
        if (!oldhash || !newhash)
        if (!oldhash || !newhash)
-           return; /* malloc failure */
-       for (i = 0; i < screen_lines; i++)
-       {
+           return;             /* malloc failure */
+       for (i = 0; i < screen_lines; i++) {
            newhash[i] = hash(NEWTEXT(i));
            oldhash[i] = hash(OLDTEXT(i));
        }
     }
 
 #ifdef HASH_VERIFY
            newhash[i] = hash(NEWTEXT(i));
            oldhash[i] = hash(OLDTEXT(i));
        }
     }
 
 #ifdef HASH_VERIFY
-    for (i = 0; i < screen_lines; i++)
-    {
-       if(newhash[i] != hash(NEWTEXT(i)))
-           fprintf(stderr,"error in newhash[%d]\n",i);
-       if(oldhash[i] != hash(OLDTEXT(i)))
-           fprintf(stderr,"error in oldhash[%d]\n",i);
+    for (i = 0; i < screen_lines; i++) {
+       if (newhash[i] != hash(NEWTEXT(i)))
+           fprintf(stderr, "error in newhash[%d]\n", i);
+       if (oldhash[i] != hash(OLDTEXT(i)))
+           fprintf(stderr, "error in oldhash[%d]\n", i);
     }
 #endif
 
     /*
      * Set up and count line-hash values.
      */
     }
 #endif
 
     /*
      * Set up and count line-hash values.
      */
-    memset(hashtab, '\0', sizeof(*hashtab)*(screen_lines+1)*2);
-    for (i = 0; i < screen_lines; i++)
-    {
+    memset(hashtab, '\0', sizeof(*hashtab) * (screen_lines + 1) * 2);
+    for (i = 0; i < screen_lines; i++) {
        unsigned long hashval = oldhash[i];
 
        for (sp = hashtab; sp->hashval; sp++)
        unsigned long hashval = oldhash[i];
 
        for (sp = hashtab; sp->hashval; sp++)
@@ -345,8 +328,7 @@ void _nc_hash_map(void)
        sp->oldcount++;
        sp->oldindex = i;
     }
        sp->oldcount++;
        sp->oldindex = i;
     }
-    for (i = 0; i < screen_lines; i++)
-    {
+    for (i = 0; i < screen_lines; i++) {
        unsigned long hashval = newhash[i];
 
        for (sp = hashtab; sp->hashval; sp++)
        unsigned long hashval = newhash[i];
 
        for (sp = hashtab; sp->hashval; sp++)
@@ -368,11 +350,10 @@ void _nc_hash_map(void)
      */
     for (sp = hashtab; sp->hashval; sp++)
        if (sp->oldcount == 1 && sp->newcount == 1
      */
     for (sp = hashtab; sp->hashval; sp++)
        if (sp->oldcount == 1 && sp->newcount == 1
-           && sp->oldindex != sp->newindex)
-       {
+           && sp->oldindex != sp->newindex) {
            TR(TRACE_UPDATE | TRACE_MOVE,
               ("new line %d is hash-identical to old line %d (unique)",
            TR(TRACE_UPDATE | TRACE_MOVE,
               ("new line %d is hash-identical to old line %d (unique)",
-                  sp->newindex, sp->oldindex));
+               sp->newindex, sp->oldindex));
            OLDNUM(sp->newindex) = sp->oldindex;
        }
 
            OLDNUM(sp->newindex) = sp->oldindex;
        }
 
@@ -384,8 +365,7 @@ void _nc_hash_map(void)
      * those which are to be moved too far, they are likely to destroy
      * more than carry.
      */
      * those which are to be moved too far, they are likely to destroy
      * more than carry.
      */
-    for (i = 0; i < screen_lines; )
-    {
+    for (i = 0; i < screen_lines;) {
        while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
            i++;
        if (i >= screen_lines)
        while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
            i++;
        if (i >= screen_lines)
@@ -393,13 +373,12 @@ void _nc_hash_map(void)
        start = i;
        shift = OLDNUM(i) - i;
        i++;
        start = i;
        shift = OLDNUM(i) - i;
        i++;
-       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
+       while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
+              == shift)
            i++;
        size = i - start;
            i++;
        size = i - start;
-       if (size < 3 || size+min(size/8,2) < abs(shift))
-       {
-           while (start < i)
-           {
+       if (size < 3 || size + min(size / 8, 2) < abs(shift)) {
+           while (start < i) {
                OLDNUM(start) = _NEWINDEX;
                start++;
            }
                OLDNUM(start) = _NEWINDEX;
                start++;
            }
@@ -408,48 +387,42 @@ void _nc_hash_map(void)
 
     /* After clearing invalid hunks, try grow the rest. */
     grow_hunks();
 
     /* After clearing invalid hunks, try grow the rest. */
     grow_hunks();
-
-#if NO_LEAKS
-    FreeAndNull(hashtab);
-    lines_alloc = 0;
-#endif
 }
 
 }
 
-void _nc_make_oldhash(int i)
+NCURSES_EXPORT(void)
+_nc_make_oldhash(int i)
 {
     if (oldhash)
        oldhash[i] = hash(OLDTEXT(i));
 }
 
 {
     if (oldhash)
        oldhash[i] = hash(OLDTEXT(i));
 }
 
-void _nc_scroll_oldhash(int n, int top, int bot)
+NCURSES_EXPORT(void)
+_nc_scroll_oldhash(int n, int top, int bot)
 {
 {
-    int size;
+    size_t size;
     int i;
 
     if (!oldhash)
        return;
 
     int i;
 
     if (!oldhash)
        return;
 
-    size = sizeof(*oldhash) * (bot-top+1-abs(n));
-    if (n > 0)
-    {
-       memmove (oldhash+top, oldhash+top+n, size);
-       for (i = bot; i > bot-n; i--)
+    size = sizeof(*oldhash) * (bot - top + 1 - abs(n));
+    if (n > 0) {
+       memmove(oldhash + top, oldhash + top + n, size);
+       for (i = bot; i > bot - n; i--)
            oldhash[i] = hash(OLDTEXT(i));
            oldhash[i] = hash(OLDTEXT(i));
-    }
-    else
-    {
-       memmove (oldhash+top-n, oldhash+top, size);
-       for (i = top; i < top-n; i++)
+    } else {
+       memmove(oldhash + top - n, oldhash + top, size);
+       for (i = top; i < top - n; i++)
            oldhash[i] = hash(OLDTEXT(i));
     }
 }
 
            oldhash[i] = hash(OLDTEXT(i));
     }
 }
 
-
 #ifdef HASHDEBUG
 static void
 usage(void)
 {
 #ifdef HASHDEBUG
 static void
 usage(void)
 {
-    static const char *table[] = {
+    static const char *table[] =
+    {
        "hashmap test-driver",
        "",
        "#  comment",
        "hashmap test-driver",
        "",
        "#  comment",
@@ -461,19 +434,18 @@ usage(void)
        "?  this message"
     };
     size_t n;
        "?  this message"
     };
     size_t n;
-    for (n = 0; n < sizeof(table)/sizeof(table[0]); n++)
+    for (n = 0; n < sizeof(table) / sizeof(table[0]); n++)
        fprintf(stderr, "%s\n", table[n]);
 }
 
 int
        fprintf(stderr, "%s\n", table[n]);
 }
 
 int
-main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 {
-    char       line[BUFSIZ], *st;
-    int                n;
+    char line[BUFSIZ], *st;
+    int n;
 
 
-    SP = typeCalloc(SCREEN,1);
-    for (n = 0; n < screen_lines; n++)
-    {
+    SP = typeCalloc(SCREEN, 1);
+    for (n = 0; n < screen_lines; n++) {
        reallines[n] = n;
        oldnums[n] = _NEWINDEX;
        oldtext[n][0] = newtext[n][0] = '.';
        reallines[n] = n;
        oldnums[n] = _NEWINDEX;
        oldtext[n][0] = newtext[n][0] = '.';
@@ -485,21 +457,18 @@ main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
 #ifdef TRACE
     _nc_tracing = TRACE_MOVE;
 #endif
 #ifdef TRACE
     _nc_tracing = TRACE_MOVE;
 #endif
-    for (;;)
-    {
+    for (;;) {
        /* grab a test command */
        /* grab a test command */
-       if (fgets(line, sizeof(line), stdin) == (char *)NULL)
+       if (fgets(line, sizeof(line), stdin) == (char *) NULL)
            exit(EXIT_SUCCESS);
 
            exit(EXIT_SUCCESS);
 
-       switch(line[0])
-       {
-       case '#':       /* comment */
+       switch (line[0]) {
+       case '#':               /* comment */
            (void) fputs(line, stderr);
            break;
 
            (void) fputs(line, stderr);
            break;
 
-       case 'l':       /* get initial line number vector */
-           for (n = 0; n < screen_lines; n++)
-           {
+       case 'l':               /* get initial line number vector */
+           for (n = 0; n < screen_lines; n++) {
                reallines[n] = n;
                oldnums[n] = _NEWINDEX;
            }
                reallines[n] = n;
                oldnums[n] = _NEWINDEX;
            }
@@ -508,30 +477,30 @@ main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
            do {
                oldnums[n++] = atoi(st);
            } while
            do {
                oldnums[n++] = atoi(st);
            } while
-               ((st = strtok((char *)NULL, " ")) != 0);
+               ((st = strtok((char *) NULL, " ")) != 0);
            break;
 
            break;
 
-       case 'n':       /* use following letters as text of new lines */
+       case 'n':               /* use following letters as text of new lines */
            for (n = 0; n < screen_lines; n++)
                newtext[n][0] = '.';
            for (n = 0; n < screen_lines; n++)
            for (n = 0; n < screen_lines; n++)
                newtext[n][0] = '.';
            for (n = 0; n < screen_lines; n++)
-               if (line[n+1] == '\n')
+               if (line[n + 1] == '\n')
                    break;
                else
                    break;
                else
-                   newtext[n][0] = line[n+1];
+                   newtext[n][0] = line[n + 1];
            break;
 
            break;
 
-       case 'o':       /* use following letters as text of old lines */
+       case 'o':               /* use following letters as text of old lines */
            for (n = 0; n < screen_lines; n++)
                oldtext[n][0] = '.';
            for (n = 0; n < screen_lines; n++)
            for (n = 0; n < screen_lines; n++)
                oldtext[n][0] = '.';
            for (n = 0; n < screen_lines; n++)
-               if (line[n+1] == '\n')
+               if (line[n + 1] == '\n')
                    break;
                else
                    break;
                else
-                   oldtext[n][0] = line[n+1];
+                   oldtext[n][0] = line[n + 1];
            break;
 
            break;
 
-       case 'd':       /* dump state of test arrays */
+       case 'd':               /* dump state of test arrays */
 #ifdef TRACE
            _nc_linedump();
 #endif
 #ifdef TRACE
            _nc_linedump();
 #endif
@@ -547,7 +516,7 @@ main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
            putchar('\n');
            break;
 
            putchar('\n');
            break;
 
-       case 'h':       /* apply hash mapper and see scroll optimization */
+       case 'h':               /* apply hash mapper and see scroll optimization */
            _nc_hash_map();
            (void) fputs("Result:\n", stderr);
 #ifdef TRACE
            _nc_hash_map();
            (void) fputs("Result:\n", stderr);
 #ifdef TRACE
index 03abaffb4d84997f7be0d0d7e14ec97ee60e8b6c..785812427db05ac2f109e3cb0b26b86f91e83fe8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <term.h>
 #include <ctype.h>
 
 #include <term.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_mvcur.c,v 1.72 2000/10/08 00:58:25 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.86 2002/09/14 23:02:06 Philippe.Blain Exp $")
 
 #define CURRENT_ROW    SP->_cursrow    /* phys cursor row */
 #define CURRENT_COLUMN SP->_curscol    /* phys cursor column */
 
 #define CURRENT_ROW    SP->_cursrow    /* phys cursor row */
 #define CURRENT_COLUMN SP->_curscol    /* phys cursor column */
@@ -206,7 +206,7 @@ trace_normalized_cost(const char *capname, const char *cap, int affcnt)
 
 #endif
 
 
 #endif
 
-int
+NCURSES_EXPORT(int)
 _nc_msec_cost(const char *const cap, int affcnt)
 /* compute the cost of a given operation */
 {
 _nc_msec_cost(const char *const cap, int affcnt)
 /* compute the cost of a given operation */
 {
@@ -222,11 +222,11 @@ _nc_msec_cost(const char *const cap, int affcnt)
                float number = 0.0;
 
                for (cp += 2; *cp != '>'; cp++) {
                float number = 0.0;
 
                for (cp += 2; *cp != '>'; cp++) {
-                   if (isdigit(*cp))
+                   if (isdigit(UChar(*cp)))
                        number = number * 10 + (*cp - '0');
                    else if (*cp == '*')
                        number *= affcnt;
                        number = number * 10 + (*cp - '0');
                    else if (*cp == '*')
                        number *= affcnt;
-                   else if (*cp == '.' && (*++cp != '>') && isdigit(*cp))
+                   else if (*cp == '.' && (*++cp != '>') && isdigit(UChar(*cp)))
                        number += (*cp - '0') / 10.0;
                }
 
                        number += (*cp - '0') / 10.0;
                }
 
@@ -262,7 +262,7 @@ reset_scroll_region(void)
     }
 }
 
     }
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_mvcur_resume(void)
 /* what to do at initialization time and after each shellout */
 {
 _nc_mvcur_resume(void)
 /* what to do at initialization time and after each shellout */
 {
@@ -292,7 +292,7 @@ _nc_mvcur_resume(void)
     }
 }
 
     }
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_mvcur_init(void)
 /* initialize the cost structure */
 {
 _nc_mvcur_init(void)
 /* initialize the cost structure */
 {
@@ -406,7 +406,7 @@ _nc_mvcur_init(void)
     _nc_mvcur_resume();
 }
 
     _nc_mvcur_resume();
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_mvcur_wrap(void)
 /* wrap up cursor-addressing mode */
 {
 _nc_mvcur_wrap(void)
 /* wrap up cursor-addressing mode */
 {
@@ -498,7 +498,9 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
                vcost = SP->_cud_cost;
            }
 
                vcost = SP->_cud_cost;
            }
 
-           if (cursor_down && (n * SP->_cud1_cost < vcost)) {
+           if (cursor_down
+               && (*cursor_down != '\n' || SP->_nl)
+               && (n * SP->_cud1_cost < vcost)) {
                vcost = repeated_append(_nc_str_copy(target, &save), 0,
                                        SP->_cud1_cost, n, cursor_down);
            }
                vcost = repeated_append(_nc_str_copy(target, &save), 0,
                                        SP->_cud1_cost, n, cursor_down);
            }
@@ -569,6 +571,8 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
 #endif /* USE_HARD_TABS */
 
 #if defined(REAL_ATTR) && defined(WANT_CHAR)
 #endif /* USE_HARD_TABS */
 
 #if defined(REAL_ATTR) && defined(WANT_CHAR)
+               if (n <= 0 || n >= (int) check.s_size)
+                   ovw = FALSE;
 #if BSD_TPUTS
                /*
                 * If we're allowing BSD-style padding in tputs, don't generate
 #if BSD_TPUTS
                /*
                 * If we're allowing BSD-style padding in tputs, don't generate
@@ -581,7 +585,7 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
                    && n < (int) check.s_size
                    && vcost == 0
                    && str[0] == '\0'
                    && n < (int) check.s_size
                    && vcost == 0
                    && str[0] == '\0'
-                   && isdigit(TextOf(WANT_CHAR(to_y, from_x))))
+                   && isdigit(CharOf(WANT_CHAR(to_y, from_x))))
                    ovw = FALSE;
 #endif
                /*
                    ovw = FALSE;
 #endif
                /*
@@ -595,17 +599,23 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
                if (ovw) {
                    int i;
 
                if (ovw) {
                    int i;
 
-                   for (i = 0; i < n; i++)
-                       if ((WANT_CHAR(to_y, from_x + i) & A_ATTRIBUTES) != CURRENT_ATTR) {
+                   for (i = 0; i < n; i++) {
+                       NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i);
+                       if (AttrOf(ch) != CURRENT_ATTR
+#if USE_WIDEC_SUPPORT
+                           || !Charable(ch)
+#endif
+                           ) {
                            ovw = FALSE;
                            break;
                        }
                            ovw = FALSE;
                            break;
                        }
+                   }
                }
                if (ovw) {
                    int i;
 
                    for (i = 0; i < n; i++)
                }
                if (ovw) {
                    int i;
 
                    for (i = 0; i < n; i++)
-                       *check.s_tail++ = WANT_CHAR(to_y, from_x + i);
+                       *check.s_tail++ = CharOf(WANT_CHAR(to_y, from_x + i));
                    *check.s_tail = '\0';
                    check.s_size -= n;
                    lhcost += n * SP->_char_padding;
                    *check.s_tail = '\0';
                    check.s_size -= n;
                    lhcost += n * SP->_char_padding;
@@ -826,14 +836,18 @@ onscreen_mvcur(int yold, int xold, int ynew, int xnew, bool ovw)
        return (ERR);
 }
 
        return (ERR);
 }
 
-int
+NCURSES_EXPORT(int)
 mvcur(int yold, int xold, int ynew, int xnew)
 /* optimized cursor move from (yold, xold) to (ynew, xnew) */
 {
 mvcur(int yold, int xold, int ynew, int xnew)
 /* optimized cursor move from (yold, xold) to (ynew, xnew) */
 {
-    TR(TRACE_MOVE, ("mvcur(%d,%d,%d,%d) called", yold, xold, ynew, xnew));
+    TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
+                                 yold, xold, ynew, xnew));
+
+    if (SP == 0)
+       returnCode(ERR);
 
     if (yold == ynew && xold == xnew)
 
     if (yold == ynew && xold == xnew)
-       return (OK);
+       returnCode(OK);
 
     /*
      * Most work here is rounding for terminal boundaries getting the
 
     /*
      * Most work here is rounding for terminal boundaries getting the
@@ -848,26 +862,35 @@ mvcur(int yold, int xold, int ynew, int xnew)
     if (xold >= screen_columns) {
        int l;
 
     if (xold >= screen_columns) {
        int l;
 
-       l = (xold + 1) / screen_columns;
-       yold += l;
-       if (yold >= screen_lines)
-           l -= (yold - screen_lines - 1);
+       if (SP->_nl) {
+           l = (xold + 1) / screen_columns;
+           yold += l;
+           if (yold >= screen_lines)
+               l -= (yold - screen_lines - 1);
 
 
-       while (l > 0) {
-           if (newline) {
-               TPUTS_TRACE("newline");
-               tputs(newline, 0, _nc_outch);
-           } else
-               putchar('\n');
-           l--;
-           if (xold > 0) {
-               if (carriage_return) {
-                   TPUTS_TRACE("carriage_return");
-                   tputs(carriage_return, 0, _nc_outch);
+           while (l > 0) {
+               if (newline) {
+                   TPUTS_TRACE("newline");
+                   tputs(newline, 0, _nc_outch);
                } else
                } else
-                   putchar('\r');
-               xold = 0;
+                   putchar('\n');
+               l--;
+               if (xold > 0) {
+                   if (carriage_return) {
+                       TPUTS_TRACE("carriage_return");
+                       tputs(carriage_return, 0, _nc_outch);
+                   } else
+                       putchar('\r');
+                   xold = 0;
+               }
            }
            }
+       } else {
+           /*
+            * If caller set nonl(), we cannot really use newlines to position
+            * to the next row.
+            */
+           xold = -1;
+           yold = -1;
        }
     }
 
        }
     }
 
@@ -877,11 +900,11 @@ mvcur(int yold, int xold, int ynew, int xnew)
        ynew = screen_lines - 1;
 
     /* destination location is on screen now */
        ynew = screen_lines - 1;
 
     /* destination location is on screen now */
-    return (onscreen_mvcur(yold, xold, ynew, xnew, TRUE));
+    returnCode(onscreen_mvcur(yold, xold, ynew, xnew, TRUE));
 }
 
 #if defined(TRACE) || defined(NCURSES_TEST)
 }
 
 #if defined(TRACE) || defined(NCURSES_TEST)
-int _nc_optimize_enable = OPTIMIZE_ALL;
+NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
 #endif
 
 #if defined(MAIN) || defined(NCURSES_TEST)
 #endif
 
 #if defined(MAIN) || defined(NCURSES_TEST)
@@ -894,12 +917,12 @@ int _nc_optimize_enable = OPTIMIZE_ALL;
 #include <tic.h>
 #include <dump_entry.h>
 
 #include <tic.h>
 #include <dump_entry.h>
 
-const char *_nc_progname = "mvcur";
+NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
 
 static unsigned long xmits;
 
 /* these override lib_tputs.c */
 
 static unsigned long xmits;
 
 /* these override lib_tputs.c */
-int
+NCURSES_EXPORT(int)
 tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED)
 /* stub tputs() that dumps sequences in a visible form */
 {
 tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED)
 /* stub tputs() that dumps sequences in a visible form */
 {
@@ -910,24 +933,20 @@ tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED)
     return (OK);
 }
 
     return (OK);
 }
 
-int
+NCURSES_EXPORT(int)
 putp(const char *string)
 {
     return (tputs(string, 1, _nc_outch));
 }
 
 putp(const char *string)
 {
     return (tputs(string, 1, _nc_outch));
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_outch(int ch)
 {
     putc(ch, stdout);
     return OK;
 }
 
 _nc_outch(int ch)
 {
     putc(ch, stdout);
     return OK;
 }
 
-char PC = 0;                   /* used by termcap library */
-short ospeed = 0;              /* used by termcap library */
-int _nc_nulls_sent = 0;                /* used by 'tack' program */
-
-int
+NCURSES_EXPORT(int)
 delay_output(int ms GCC_UNUSED)
 {
     return OK;
 delay_output(int ms GCC_UNUSED)
 {
     return OK;
@@ -1054,7 +1073,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
            }
        } else if (buf[0] == 'i') {
            dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
            }
        } else if (buf[0] == 'i') {
            dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
-           dump_entry(&cur_term->type, FALSE, TRUE, 0);
+           dump_entry(&cur_term->type, FALSE, TRUE, 0, 0, 0);
            putchar('\n');
        } else if (buf[0] == 'o') {
            if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
            putchar('\n');
        } else if (buf[0] == 'o') {
            if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
index 512de68dc5ff32bb90f1102cb41a2c74299b0636..c850e41da2c2da122f5a71c40a5753b7048f145b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas Dickey 1995-2001                                         *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
 **     The routine _nc_signal_handler().
 **
 */
 **     The routine _nc_signal_handler().
 **
 */
-
 #include <curses.priv.h>
 
 #include <curses.priv.h>
 
-#include <signal.h>
 #include <SigAction.h>
 
 #if SVR4_ACTION && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
 #endif
 
 #include <SigAction.h>
 
 #if SVR4_ACTION && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
 #endif
 
-MODULE_ID("$Id: lib_tstp.c,v 1.22 2000/09/02 18:33:17 tom Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.30 2002/05/18 19:55:38 tom Exp $")
 
 #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
 #define USE_SIGTSTP 1
 
 #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
 #define USE_SIGTSTP 1
@@ -55,6 +54,41 @@ MODULE_ID("$Id: lib_tstp.c,v 1.22 2000/09/02 18:33:17 tom Exp $")
 #define USE_SIGTSTP 0
 #endif
 
 #define USE_SIGTSTP 0
 #endif
 
+#ifdef TRACE
+static const char *
+signal_name(int sig)
+{
+    switch (sig) {
+    case SIGALRM:
+       return "SIGALRM";
+#ifdef SIGCONT
+    case SIGCONT:
+       return "SIGCONT";
+#endif
+    case SIGINT:
+       return "SIGINT";
+    case SIGQUIT:
+       return "SIGQUIT";
+    case SIGTERM:
+       return "SIGTERM";
+#ifdef SIGTSTP
+    case SIGTSTP:
+       return "SIGTSTP";
+#endif
+#ifdef SIGTTOU
+    case SIGTTOU:
+       return "SIGTTOU";
+#endif
+#ifdef SIGWINCH
+    case SIGWINCH:
+       return "SIGWINCH";
+#endif
+    default:
+       return "unknown signal";
+    }
+}
+#endif
+
 /*
  * Note: This code is fragile!  Its problem is that different OSs
  * handle restart of system calls interrupted by signals differently.
 /*
  * Note: This code is fragile!  Its problem is that different OSs
  * handle restart of system calls interrupted by signals differently.
@@ -215,7 +249,7 @@ cleanup(int sig)
        sigemptyset(&act.sa_mask);
        act.sa_flags = 0;
        act.sa_handler = SIG_IGN;
        sigemptyset(&act.sa_mask);
        act.sa_flags = 0;
        act.sa_handler = SIG_IGN;
-       if (sigaction(sig, &act, (sigaction_t *) 0) == 0)
+       if (sigaction(sig, &act, NULL) == 0)
 #else
        if (signal(sig, SIG_IGN) != SIG_ERR)
 #endif
 #else
        if (signal(sig, SIG_IGN) != SIG_ERR)
 #endif
@@ -255,43 +289,57 @@ sigwinch(int sig GCC_UNUSED)
  * If the given signal is still in its default state, set it to the given
  * handler.
  */
  * If the given signal is still in its default state, set it to the given
  * handler.
  */
-#if HAVE_SIGACTION || HAVE_SIGVEC
 static int
 static int
-CatchIfDefault(int sig, sigaction_t * act)
+CatchIfDefault(int sig, RETSIGTYPE (*handler) (int))
 {
 {
+    int result;
+#if HAVE_SIGACTION || HAVE_SIGVEC
     sigaction_t old_act;
     sigaction_t old_act;
+    sigaction_t new_act;
+
+    memset(&new_act, 0, sizeof(new_act));
+    sigemptyset(&new_act.sa_mask);
+#ifdef SA_RESTART
+#ifdef SIGWINCH
+    if (sig != SIGWINCH)
+#endif
+       new_act.sa_flags |= SA_RESTART;
+#endif /* SA_RESTART */
+    new_act.sa_handler = handler;
 
 
-    if (sigaction(sig, (sigaction_t *) 0, &old_act) == 0
+    if (sigaction(sig, NULL, &old_act) == 0
        && (old_act.sa_handler == SIG_DFL
        && (old_act.sa_handler == SIG_DFL
+           || old_act.sa_handler == handler
 #if USE_SIGWINCH
            || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN)
 #endif
        )) {
 #if USE_SIGWINCH
            || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN)
 #endif
        )) {
-       (void) sigaction(sig, act, (sigaction_t *) 0);
-       return TRUE;
+       (void) sigaction(sig, &new_act, NULL);
+       result = TRUE;
+    } else {
+       result = FALSE;
     }
     }
-    return FALSE;
-}
-#else
-static int
-CatchIfDefault(int sig, RETSIGTYPE(*handler) (int))
-{
-    void (*ohandler) (int);
+#else /* !HAVE_SIGACTION */
+    RETSIGTYPE (*ohandler) (int);
 
     ohandler = signal(sig, SIG_IGN);
     if (ohandler == SIG_DFL
 
     ohandler = signal(sig, SIG_IGN);
     if (ohandler == SIG_DFL
+       || ohandler == handler
 #if USE_SIGWINCH
        || (sig == SIGWINCH && ohandler == SIG_IGN)
 #endif
        ) {
        signal(sig, handler);
 #if USE_SIGWINCH
        || (sig == SIGWINCH && ohandler == SIG_IGN)
 #endif
        ) {
        signal(sig, handler);
-       return TRUE;
+       result = TRUE;
     } else {
        signal(sig, ohandler);
     } else {
        signal(sig, ohandler);
-       return FALSE;
+       result = FALSE;
     }
     }
-}
 #endif
 #endif
+    T(("CatchIfDefault - will %scatch %s",
+       result ? "" : "not ", signal_name(sig)));
+    return result;
+}
 
 /*
  * This is invoked once at the beginning (e.g., from 'initscr()'), to
 
 /*
  * This is invoked once at the beginning (e.g., from 'initscr()'), to
@@ -304,63 +352,48 @@ CatchIfDefault(int sig, RETSIGTYPE(*handler) (int))
  * The XSI document implies that we shouldn't keep the SIGTSTP handler if
  * the caller later changes its mind, but that doesn't seem correct.
  */
  * The XSI document implies that we shouldn't keep the SIGTSTP handler if
  * the caller later changes its mind, but that doesn't seem correct.
  */
-void
+NCURSES_EXPORT(void)
 _nc_signal_handler(bool enable)
 {
 _nc_signal_handler(bool enable)
 {
-#if USE_SIGTSTP                        /* Xenix 2.x doesn't have SIGTSTP, for example */
-    static sigaction_t act, oact;
-    static int ignore;
-
-    if (!ignore) {
-       if (!enable) {
-           act.sa_handler = SIG_IGN;
-           sigaction(SIGTSTP, &act, &oact);
-       } else if (act.sa_handler) {
-           sigaction(SIGTSTP, &oact, NULL);
-       } else {                /*initialize */
-           sigemptyset(&act.sa_mask);
-           act.sa_flags = 0;
-#if USE_SIGWINCH
-           act.sa_handler = sigwinch;
-           CatchIfDefault(SIGWINCH, &act);
-#endif
+    static bool initialized = FALSE;
 
 
+    T((T_CALLED("_nc_signal_handler(%d)"), enable));
+#if USE_SIGTSTP                        /* Xenix 2.x doesn't have SIGTSTP, for example */
+    {
+       static bool ignore_tstp = FALSE;
+
+       if (!ignore_tstp) {
+           static sigaction_t act, oact;
+
+           if (!enable) {
+               act.sa_handler = SIG_IGN;
+               sigaction(SIGTSTP, &act, &oact);
+           } else if (act.sa_handler != SIG_DFL) {
+               sigaction(SIGTSTP, &oact, NULL);
+           } else if (sigaction(SIGTSTP, NULL, &oact) == 0
+                      && (oact.sa_handler == SIG_DFL)) {
+               sigemptyset(&act.sa_mask);
 #ifdef SA_RESTART
 #ifdef SA_RESTART
-           act.sa_flags |= SA_RESTART;
+               act.sa_flags |= SA_RESTART;
 #endif /* SA_RESTART */
 #endif /* SA_RESTART */
-           act.sa_handler = cleanup;
-           CatchIfDefault(SIGINT, &act);
-           CatchIfDefault(SIGTERM, &act);
-
-           act.sa_handler = tstp;
-           if (!CatchIfDefault(SIGTSTP, &act))
-               ignore = TRUE;
+               act.sa_handler = tstp;
+               (void) sigaction(SIGTSTP, &act, NULL);
+           } else {
+               ignore_tstp = TRUE;
+           }
        }
     }
        }
     }
-#else /* !USE_SIGTSTP */
-    if (enable) {
-#if HAVE_SIGACTION || HAVE_SIGVEC
-       static sigaction_t act;
-       sigemptyset(&act.sa_mask);
-#if USE_SIGWINCH
-       act.sa_handler = sigwinch;
-       CatchIfDefault(SIGWINCH, &act);
-#endif
-#ifdef SA_RESTART
-       act.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
-       act.sa_handler = cleanup;
-       CatchIfDefault(SIGINT, &act);
-       CatchIfDefault(SIGTERM, &act);
-
-#else /* !(HAVE_SIGACTION || HAVE_SIGVEC) */
+#endif /* !USE_SIGTSTP */
 
 
-       CatchIfDefault(SIGINT, cleanup);
-       CatchIfDefault(SIGTERM, cleanup);
+    if (!initialized) {
+       if (enable) {
+           CatchIfDefault(SIGINT, cleanup);
+           CatchIfDefault(SIGTERM, cleanup);
 #if USE_SIGWINCH
 #if USE_SIGWINCH
-       CatchIfDefault(SIGWINCH, sigwinch);
+           CatchIfDefault(SIGWINCH, sigwinch);
 #endif
 #endif
-#endif /* !(HAVE_SIGACTION || HAVE_SIGVEC) */
+           initialized = TRUE;
+       }
     }
     }
-#endif /* !USE_SIGTSTP */
+    returnVoid;
 }
 }
index 6d24d8ddc6cb3e83b34f2e4f439b262f012b0519..a907914accd71aaa72c0be764771771bf2a68b76 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 **     comments, none of the original code remains - T.Dickey).
 */
 
 **     comments, none of the original code remains - T.Dickey).
 */
 
+#include <curses.priv.h>
+
 #ifdef __BEOS__
 #ifdef __BEOS__
+#undef false
+#undef true
 #include <OS.h>
 #endif
 
 #include <OS.h>
 #endif
 
-#include <curses.priv.h>
-
 #if USE_FUNC_POLL
 # if HAVE_SYS_TIME_H
 #  include <sys/time.h>
 #if USE_FUNC_POLL
 # if HAVE_SYS_TIME_H
 #  include <sys/time.h>
@@ -59,7 +61,7 @@
 # endif
 #endif
 
 # endif
 #endif
 
-MODULE_ID("$Id: lib_twait.c,v 1.39 2000/08/26 19:34:15 tom Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.46 2002/09/01 00:28:18 tom Exp $")
 
 static long
 _nc_gettime(bool first)
 
 static long
 _nc_gettime(bool first)
@@ -85,10 +87,34 @@ _nc_gettime(bool first)
     }
     res = (t1 - t0) * 1000;
 #endif
     }
     res = (t1 - t0) * 1000;
 #endif
-    T(("%s time: %ld msec", first ? "get" : "elapsed", res));
+    TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res));
     return res;
 }
 
     return res;
 }
 
+#ifdef NCURSES_WGETCH_EVENTS
+NCURSES_EXPORT(int)
+_nc_eventlist_timeout(_nc_eventlist * evl)
+{
+    _nc_event **ev, **last;
+    int event_delay = -1;
+
+    if (evl != 0) {
+
+       ev = evl->events;
+       last = ev + evl->count;
+
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC) {
+               event_delay = (*ev)->data.timeout_msec;
+               if (event_delay < 0)
+                   event_delay = LONG_MAX;     /* FIXME Is this defined? */
+           }
+       }
+    }
+    return event_delay;
+}
+#endif /* NCURSES_WGETCH_EVENTS */
+
 /*
  * Wait a specified number of milliseconds, returning nonzero if the timer
  * didn't expire before there is activity on the specified file descriptors.
 /*
  * Wait a specified number of milliseconds, returning nonzero if the timer
  * didn't expire before there is activity on the specified file descriptors.
@@ -97,21 +123,33 @@ _nc_gettime(bool first)
  *     1 - ncurses' normal input-descriptor
  *     2 - mouse descriptor, if any
  *     3 - either input or mouse.
  *     1 - ncurses' normal input-descriptor
  *     2 - mouse descriptor, if any
  *     3 - either input or mouse.
+ *
+ * Experimental:  if NCURSES_WGETCH_EVENTS is defined, (mode & 4) determines
+ * whether to pay attention to evl argument.  If set, the smallest of
+ * millisecond and of timeout of evl is taken.
+ *
  * We return a mask that corresponds to the mode (e.g., 2 for mouse activity).
  *
  * If the milliseconds given are -1, the wait blocks until activity on the
  * descriptors.
  */
  * We return a mask that corresponds to the mode (e.g., 2 for mouse activity).
  *
  * If the milliseconds given are -1, the wait blocks until activity on the
  * descriptors.
  */
-int
-_nc_timed_wait(int mode, int milliseconds, int *timeleft)
+NCURSES_EXPORT(int)
+_nc_timed_wait(int mode,
+              int milliseconds,
+              int *timeleft
+              EVENTLIST_2nd(_nc_eventlist * evl))
 {
     int fd;
     int count;
 {
     int fd;
     int count;
-
     int result;
 
     int result;
 
+#ifdef NCURSES_WGETCH_EVENTS
+    int timeout_is_event = 0;
+#endif
+
 #if USE_FUNC_POLL
 #if USE_FUNC_POLL
-    struct pollfd fds[2];
+    struct pollfd fd_list[2];
+    struct pollfd *fds = fd_list;
 #elif defined(__BEOS__)
 #elif HAVE_SELECT
     static fd_set set;
 #elif defined(__BEOS__)
 #elif HAVE_SELECT
     static fd_set set;
@@ -119,7 +157,20 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
 
     long starttime, returntime;
 
 
     long starttime, returntime;
 
-    T(("start twait: %d milliseconds, mode: %d", milliseconds, mode));
+    TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d",
+                     milliseconds, mode));
+
+#ifdef NCURSES_WGETCH_EVENTS
+    if (mode & 4) {
+       int event_delay = _nc_eventlist_timeout(evl);
+
+       if (event_delay >= 0
+           && (milliseconds >= event_delay || milliseconds < 0)) {
+           milliseconds = event_delay;
+           timeout_is_event = 1;
+       }
+    }
+#endif
 
 #if PRECISE_GETTIME
   retry:
 
 #if PRECISE_GETTIME
   retry:
@@ -128,8 +179,19 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
 
     count = 0;
 
 
     count = 0;
 
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl)
+       evl->result_flags = 0;
+#endif
+
 #if USE_FUNC_POLL
 #if USE_FUNC_POLL
-    memset(fds, 0, sizeof(fds));
+    memset(fd_list, 0, sizeof(fd_list));
+
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl)
+       fds = typeMalloc(struct pollfd, 2 + evl->count);
+#endif
+
     if (mode & 1) {
        fds[count].fd = SP->_ifd;
        fds[count].events = POLLIN;
     if (mode & 1) {
        fds[count].fd = SP->_ifd;
        fds[count].events = POLLIN;
@@ -141,8 +203,54 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
        fds[count].events = POLLIN;
        count++;
     }
        fds[count].events = POLLIN;
        count++;
     }
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl) {
+       _nc_event **ev = evl->events;
+       _nc_event **last = ev + evl->count;
+
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_FILE
+               && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) {
+               fds[count].fd = (*ev)->data.fev.fd;
+               fds[count].events = POLLIN;
+               count++;
+           }
+       }
+    }
+#endif
+
     result = poll(fds, count, milliseconds);
 
     result = poll(fds, count, milliseconds);
 
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl) {
+       _nc_event **ev = evl->events;
+       _nc_event **last = ev + evl->count;
+       int c;
+
+       if (!result)
+           count = 0;
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_FILE
+               && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) {
+               (*ev)->data.fev.result = 0;
+               for (c = 0; c < count; c++)
+                   if (fds[c].fd == (*ev)->data.fev.fd
+                       && fds[c].revents & POLLIN) {
+                       (*ev)->data.fev.result |= _NC_EVENT_FILE_READABLE;
+                       evl->result_flags |= _NC_EVENT_FILE_READABLE;
+                   }
+           } else if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC
+                      && !result && timeout_is_event) {
+               evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC;
+           }
+       }
+    }
+
+    if (fds != fd_list)
+       free((char *) fds);
+
+#endif
+
 #elif defined(__BEOS__)
     /*
      * BeOS's select() is declared in socket.h, so the configure script does
 #elif defined(__BEOS__)
     /*
      * BeOS's select() is declared in socket.h, so the configure script does
@@ -152,26 +260,34 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
      *
      * FIXME: the return values from the ioctl aren't very clear if we get
      * interrupted.
      *
      * FIXME: the return values from the ioctl aren't very clear if we get
      * interrupted.
+     *
+     * FIXME: this assumes mode&1 if milliseconds < 0 (see lib_getch.c).
      */
     result = 0;
     if (mode & 1) {
      */
     result = 0;
     if (mode & 1) {
+       int step = (milliseconds < 0) ? 0 : 5000;
        bigtime_t d;
        bigtime_t useconds = milliseconds * 1000;
        int n, howmany;
 
        bigtime_t d;
        bigtime_t useconds = milliseconds * 1000;
        int n, howmany;
 
-       if (useconds == 0)      /* we're here to go _through_ the loop */
+       if (useconds <= 0)      /* we're here to go _through_ the loop */
            useconds = 1;
 
            useconds = 1;
 
-       for (d = 0; d < useconds; d += 5000) {
+       for (d = 0; d < useconds; d += step) {
            n = 0;
            howmany = ioctl(0, 'ichr', &n);
            if (howmany >= 0 && n > 0) {
                result = 1;
                break;
            }
            n = 0;
            howmany = ioctl(0, 'ichr', &n);
            if (howmany >= 0 && n > 0) {
                result = 1;
                break;
            }
-           if (useconds > 1)
-               snooze(5000);
-           milliseconds -= 5;
+           if (useconds > 1 && step > 0) {
+               snooze(step);
+               milliseconds -= (step / 1000);
+               if (milliseconds <= 0) {
+                   milliseconds = 0;
+                   break;
+               }
+           }
        }
     } else if (milliseconds > 0) {
        snooze(milliseconds * 1000);
        }
     } else if (milliseconds > 0) {
        snooze(milliseconds * 1000);
@@ -193,6 +309,20 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
        FD_SET(fd, &set);
        count = max(fd, count) + 1;
     }
        FD_SET(fd, &set);
        count = max(fd, count) + 1;
     }
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl) {
+       _nc_event **ev = evl->events;
+       _nc_event **last = ev + evl->count;
+
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_FILE
+               && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) {
+               FD_SET((*ev)->data.fev.fd, &set);
+               count = max((*ev)->data.fev.fd + 1, count);
+           }
+       }
+    }
+#endif
 
     if (milliseconds >= 0) {
        struct timeval ntimeout;
 
     if (milliseconds >= 0) {
        struct timeval ntimeout;
@@ -202,13 +332,54 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
     } else {
        result = select(count, &set, NULL, NULL, NULL);
     }
     } else {
        result = select(count, &set, NULL, NULL, NULL);
     }
+
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl) {
+       _nc_event **ev = evl->events;
+       _nc_event **last = ev + evl->count;
+
+       evl->result_flags = 0;
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_FILE
+               && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) {
+               (*ev)->data.fev.result = 0;
+               if (FD_ISSET((*ev)->data.fev.fd, &set)) {
+                   (*ev)->data.fev.result |= _NC_EVENT_FILE_READABLE;
+                   evl->result_flags |= _NC_EVENT_FILE_READABLE;
+               }
+           } else if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC
+                      && !result && timeout_is_event)
+               evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC;
+       }
+    }
 #endif
 
 #endif
 
+#endif /* USE_FUNC_POLL, etc */
+
     returntime = _nc_gettime(FALSE);
 
     if (milliseconds >= 0)
        milliseconds -= (returntime - starttime);
 
     returntime = _nc_gettime(FALSE);
 
     if (milliseconds >= 0)
        milliseconds -= (returntime - starttime);
 
+#ifdef NCURSES_WGETCH_EVENTS
+    if (evl) {
+       _nc_event **ev = evl->events;
+       _nc_event **last = ev + evl->count;
+
+       evl->result_flags = 0;
+       while (ev < last) {
+           if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC) {
+               long diff = (returntime - starttime);
+               if ((*ev)->data.timeout_msec <= diff)
+                   (*ev)->data.timeout_msec = 0;
+               else
+                   (*ev)->data.timeout_msec -= diff;
+           }
+
+       }
+    }
+#endif
+
 #if PRECISE_GETTIME
     /*
      * If the timeout hasn't expired, and we've gotten no data,
 #if PRECISE_GETTIME
     /*
      * If the timeout hasn't expired, and we've gotten no data,
@@ -227,8 +398,8 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
     if (timeleft)
        *timeleft = milliseconds;
 
     if (timeleft)
        *timeleft = milliseconds;
 
-    T(("end twait: returned %d (%d), remaining time %d msec",
-       result, errno, milliseconds));
+    TR(TRACE_IEVENT, ("end twait: returned %d (%d), remaining time %d msec",
+                     result, errno, milliseconds));
 
     /*
      * Both 'poll()' and 'select()' return the number of file descriptors
 
     /*
      * Both 'poll()' and 'select()' return the number of file descriptors
@@ -260,6 +431,10 @@ _nc_timed_wait(int mode, int milliseconds, int *timeleft)
        } else
            result = 0;
     }
        } else
            result = 0;
     }
+#ifdef NCURSES_WGETCH_EVENTS
+    if ((mode & 4) && evl && evl->result_flags)
+       result |= 4;
+#endif
 
     return (result);
 }
 
     return (result);
 }
index 5022cbdde78afac9f362a417d22fc450352fcc75..00611f4e15013195122794aa8f48e408c17d3a61 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -64,7 +64,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vidattr.c,v 1.33 2000/10/09 22:45:29 tom Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.39 2001/08/26 00:40:46 Philippe.Blain Exp $")
 
 #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
 
 
 #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
 
@@ -86,14 +86,14 @@ MODULE_ID("$Id: lib_vidattr.c,v 1.33 2000/10/09 22:45:29 tom Exp $")
                } \
        }
 
                } \
        }
 
-int
-vidputs(attr_t newmode, int (*outc) (int))
+NCURSES_EXPORT(int)
+vidputs
+(chtype newmode, int (*outc) (int))
 {
     static attr_t previous_attr = A_NORMAL;
     attr_t turn_on, turn_off;
     int pair;
     bool reverse = FALSE;
 {
     static attr_t previous_attr = A_NORMAL;
     attr_t turn_on, turn_off;
     int pair;
     bool reverse = FALSE;
-    bool used_ncv = FALSE;
     bool can_color = (SP == 0 || SP->_coloron);
 #if NCURSES_EXT_FUNCS
     bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
     bool can_color = (SP == 0 || SP->_coloron);
 #if NCURSES_EXT_FUNCS
     bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
@@ -134,11 +134,13 @@ vidputs(attr_t newmode, int (*outc) (int))
         * A_ALTCHARSET (256) down 2 to line up.  We use the NCURSES_BITS
         * macro so this will work properly for the wide-character layout.
         */
         * A_ALTCHARSET (256) down 2 to line up.  We use the NCURSES_BITS
         * macro so this will work properly for the wide-character layout.
         */
-       attr_t mask = NCURSES_BITS((no_color_video & 63)
-                                  | ((no_color_video & 192) << 1)
-                                  | ((no_color_video & 256) >> 2), 8);
+       unsigned value = no_color_video;
+       attr_t mask = NCURSES_BITS((value & 63)
+                                  | ((value & 192) << 1)
+                                  | ((value & 256) >> 2), 8);
 
 
-       if (mask & A_REVERSE && newmode & A_REVERSE) {
+       if ((mask & A_REVERSE) != 0
+           && (newmode & A_REVERSE) != 0) {
            reverse = TRUE;
            mask &= ~A_REVERSE;
        }
            reverse = TRUE;
            mask &= ~A_REVERSE;
        }
@@ -179,7 +181,7 @@ vidputs(attr_t newmode, int (*outc) (int))
        }
 
        SetColorsIf((pair != 0) || fix_pair0, previous_attr);
        }
 
        SetColorsIf((pair != 0) || fix_pair0, previous_attr);
-    } else if (set_attributes && !used_ncv) {
+    } else if (set_attributes) {
        if (turn_on || turn_off) {
            TPUTS_TRACE("set_attributes");
            tputs(tparm(set_attributes,
        if (turn_on || turn_off) {
            TPUTS_TRACE("set_attributes");
            tputs(tparm(set_attributes,
@@ -227,12 +229,24 @@ vidputs(attr_t newmode, int (*outc) (int))
        TurnOn(A_PROTECT,       enter_protected_mode);
        TurnOn(A_INVIS,         enter_secure_mode);
        TurnOn(A_UNDERLINE,     enter_underline_mode);
        TurnOn(A_PROTECT,       enter_protected_mode);
        TurnOn(A_INVIS,         enter_secure_mode);
        TurnOn(A_UNDERLINE,     enter_underline_mode);
+#ifdef enter_horizontal_hl_mode
        TurnOn(A_HORIZONTAL,    enter_horizontal_hl_mode);
        TurnOn(A_HORIZONTAL,    enter_horizontal_hl_mode);
+#endif
+#ifdef enter_left_hl_mode
        TurnOn(A_LEFT,          enter_left_hl_mode);
        TurnOn(A_LEFT,          enter_left_hl_mode);
+#endif
+#ifdef enter_low_hl_mode
        TurnOn(A_LOW,           enter_low_hl_mode);
        TurnOn(A_LOW,           enter_low_hl_mode);
+#endif
+#ifdef enter_right_hl_mode
        TurnOn(A_RIGHT,         enter_right_hl_mode);
        TurnOn(A_RIGHT,         enter_right_hl_mode);
+#endif
+#ifdef enter_top_hl_mode
        TurnOn(A_TOP,           enter_top_hl_mode);
        TurnOn(A_TOP,           enter_top_hl_mode);
+#endif
+#ifdef enter_vertical_hl_mode
        TurnOn(A_VERTICAL,      enter_vertical_hl_mode);
        TurnOn(A_VERTICAL,      enter_vertical_hl_mode);
+#endif
        /* *INDENT-ON* */
 
     }
        /* *INDENT-ON* */
 
     }
@@ -248,15 +262,15 @@ vidputs(attr_t newmode, int (*outc) (int))
     returnCode(OK);
 }
 
     returnCode(OK);
 }
 
-int
-vidattr(attr_t newmode)
+NCURSES_EXPORT(int)
+vidattr(chtype newmode)
 {
     T((T_CALLED("vidattr(%s)"), _traceattr(newmode)));
 
     returnCode(vidputs(newmode, _nc_outch));
 }
 
 {
     T((T_CALLED("vidattr(%s)"), _traceattr(newmode)));
 
     returnCode(vidputs(newmode, _nc_outch));
 }
 
-chtype
+NCURSES_EXPORT(chtype)
 termattrs(void)
 {
     chtype attrs = A_NORMAL;
 termattrs(void)
 {
     chtype attrs = A_NORMAL;
index e7b447d8045dd776e8ccc96dbf8bdc1d76cb9292..8382c823f06ab72df27813efc21c268c18ecafba 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #ifndef TTY_DISPLAY_H
 #define TTY_DISPLAY_H 1
 
 #ifndef TTY_DISPLAY_H
 #define TTY_DISPLAY_H 1
 
-extern bool _nc_tty_beep(void);
-extern bool _nc_tty_check_resize(void);
-extern bool _nc_tty_cursor(int);
-extern bool _nc_tty_flash(void);
-extern bool _nc_tty_init_color(int,int,int,int);
-extern bool _nc_tty_init_pair(int,int,int);
-extern bool _nc_tty_slk_hide(bool);
-extern bool _nc_tty_slk_update(int,const char *);
-extern bool _nc_tty_start_color(void);
-extern void _nc_tty_display_resume(void);
-extern void _nc_tty_display_suspend(void);
-extern void _nc_tty_dispose(void);     /* frees SP->_term */
-extern void _nc_tty_switch_to(void);
-extern void _nc_tty_update(void);
+extern NCURSES_EXPORT(bool) _nc_tty_beep (void);
+extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void);
+extern NCURSES_EXPORT(bool) _nc_tty_cursor (int);
+extern NCURSES_EXPORT(bool) _nc_tty_flash (void);
+extern NCURSES_EXPORT(bool) _nc_tty_init_color (int,int,int,int);
+extern NCURSES_EXPORT(bool) _nc_tty_init_pair (int,int,int);
+extern NCURSES_EXPORT(bool) _nc_tty_slk_hide (bool);
+extern NCURSES_EXPORT(bool) _nc_tty_slk_update (int,const char *);
+extern NCURSES_EXPORT(bool) _nc_tty_start_color (void);
+extern NCURSES_EXPORT(void) _nc_tty_display_resume (void);
+extern NCURSES_EXPORT(void) _nc_tty_display_suspend (void);
+extern NCURSES_EXPORT(void) _nc_tty_dispose (void);    /* frees SP->_term */
+extern NCURSES_EXPORT(void) _nc_tty_switch_to (void);
+extern NCURSES_EXPORT(void) _nc_tty_update (void);
 
 struct tty_display_data {
        int             _fifohold;      /* set if breakout marked           */
 
 struct tty_display_data {
        int             _fifohold;      /* set if breakout marked           */
index 41c228338990841270261e44f11be81324065a77..e520793eea642dc2d01141bfb6c577dcc64bd3ba 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
- * $Id: tty_input.h,v 1.1 1998/12/19 22:42:57 tom Exp $
+ * $Id: tty_input.h,v 1.2 2000/12/10 02:26:51 tom Exp $
  */
 
 #ifndef TTY_INPUT_H
 #define TTY_INPUT_H 1
 
  */
 
 #ifndef TTY_INPUT_H
 #define TTY_INPUT_H 1
 
-extern bool _nc_tty_mouse_mask(mmask_t);
-extern bool _nc_tty_pending(void);
-extern int  _nc_tty_next_event(int);
-extern void _nc_tty_flags_changed(void);
-extern void _nc_tty_flush(void);
-extern void _nc_tty_input_resume(void);
-extern void _nc_tty_input_suspend(void);
+extern NCURSES_EXPORT(bool) _nc_tty_mouse_mask (mmask_t);
+extern NCURSES_EXPORT(bool) _nc_tty_pending (void);
+extern NCURSES_EXPORT(int)  _nc_tty_next_event (int);
+extern NCURSES_EXPORT(void) _nc_tty_flags_changed (void);
+extern NCURSES_EXPORT(void) _nc_tty_flush (void);
+extern NCURSES_EXPORT(void) _nc_tty_input_resume (void);
+extern NCURSES_EXPORT(void) _nc_tty_input_suspend (void);
 
 struct tty_input_data {
        int             _ifd;           /* input file ptr for screen        */
 
 struct tty_input_data {
        int             _ifd;           /* input file ptr for screen        */
index 298c11ed0a2117de160ba86445f5245a77872eee..c792402dcf112f14ada4ba117090932167e5272b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
+
 #ifdef __BEOS__
 #ifdef __BEOS__
+#undef false
+#undef true
 #include <OS.h>
 #endif
 
 #include <OS.h>
 #endif
 
-#include <curses.priv.h>
-
 #if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES
 #define USE_TRACE_TIMES 1
 #else
 #if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES
 #define USE_TRACE_TIMES 1
 #else
@@ -70,7 +72,7 @@
 
 #include <term.h>
 
 
 #include <term.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.146 2000/10/07 01:11:44 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.177 2002/09/28 20:41:55 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -92,12 +94,12 @@ MODULE_ID("$Id: tty_update.c,v 1.146 2000/10/07 01:11:44 tom Exp $")
  */
 /* #define POSITION_DEBUG */
 
  */
 /* #define POSITION_DEBUG */
 
-static inline chtype ClrBlank(WINDOW *win);
+static inline NCURSES_CH_T ClrBlank(WINDOW *win);
 static int ClrBottom(int total);
 static int ClrBottom(int total);
-static void ClearScreen(chtype blank);
+static void ClearScreen(NCURSES_CH_T blank);
 static void ClrUpdate(void);
 static void DelChar(int count);
 static void ClrUpdate(void);
 static void DelChar(int count);
-static void InsStr(chtype * line, int count);
+static void InsStr(NCURSES_CH_T * line, int count);
 static void TransformLine(int const lineno);
 
 #ifdef POSITION_DEBUG
 static void TransformLine(int const lineno);
 
 #ifdef POSITION_DEBUG
@@ -163,7 +165,7 @@ position_check(int expected_y, int expected_x, char *legend)
 static inline void
 GoTo(int const row, int const col)
 {
 static inline void
 GoTo(int const row, int const col)
 {
-    chtype oldattr = SP->_current_attr;
+    attr_t oldattr = SP->_current_attr;
 
     TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
                    row, col, SP->_cursrow, SP->_curscol));
 
     TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
                    row, col, SP->_cursrow, SP->_curscol));
@@ -189,22 +191,30 @@ GoTo(int const row, int const col)
 }
 
 static inline void
 }
 
 static inline void
-PutAttrChar(chtype ch)
+PutAttrChar(CARG_CH_T ch)
 {
 {
-    int data;
+    PUTC_DATA;
+    NCURSES_CH_T tilde;
 
 
-    if (tilde_glitch && (TextOf(ch) == '~'))
-       ch = ('`' | AttrOf(ch));
+    if (tilde_glitch && (CharOfD(ch) == L('~'))) {
+       SetChar(tilde, L('`'), AttrOfD(ch));
+       ch = CHREF(tilde);
+    }
 
     TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
 
     TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
-                      _tracechtype(ch),
+                      _tracech_t(ch),
                       SP->_cursrow, SP->_curscol));
                       SP->_cursrow, SP->_curscol));
-    UpdateAttrs(ch);
-    data = TextOf(ch);
+    UpdateAttrs(AttrOfD(ch));
+#if !USE_WIDEC_SUPPORT
+    /* FIXME - we do this special case for signal handling, should see how to
+     * make it work for wide characters.
+     */
     if (SP->_outch != 0) {
     if (SP->_outch != 0) {
-       SP->_outch(data);
-    } else {
-       putc(data, SP->_ofp);   /* macro's fastest... */
+       SP->_outch((int) ch);
+    } else
+#endif
+    {
+       PUTC(CHDEREF(ch), SP->_ofp);    /* macro's fastest... */
 #ifdef TRACE
        _nc_outchars++;
 #endif /* TRACE */
 #ifdef TRACE
        _nc_outchars++;
 #endif /* TRACE */
@@ -274,21 +284,9 @@ check_pending(void)
     return FALSE;
 }
 
     return FALSE;
 }
 
-/*
- * No one supports recursive inline functions.  However, gcc is quieter if we
- * instantiate the recursive part separately.
- */
-#if CC_HAS_INLINE_FUNCS
-static void callPutChar(chtype const);
-#else
-#define callPutChar(ch) PutChar(ch)
-#endif
-
-static inline void PutChar(chtype const ch);   /* forward declaration */
-
 /* put char at lower right corner */
 static void
 /* put char at lower right corner */
 static void
-PutCharLR(chtype const ch)
+PutCharLR(const ARG_CH_T ch)
 {
     if (!auto_right_margin) {
        /* we can put the char directly */
 {
     if (!auto_right_margin) {
        /* we can put the char directly */
@@ -307,7 +305,7 @@ PutCharLR(chtype const ch)
     } else if ((enter_insert_mode && exit_insert_mode)
               || insert_character || parm_ich) {
        GoTo(screen_lines - 1, screen_columns - 2);
     } else if ((enter_insert_mode && exit_insert_mode)
               || insert_character || parm_ich) {
        GoTo(screen_lines - 1, screen_columns - 2);
-       callPutChar(ch);
+       PutAttrChar(ch);
        GoTo(screen_lines - 1, screen_columns - 2);
        InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1);
     }
        GoTo(screen_lines - 1, screen_columns - 2);
        InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1);
     }
@@ -345,7 +343,7 @@ wrap_cursor(void)
 }
 
 static inline void
 }
 
 static inline void
-PutChar(chtype const ch)
+PutChar(const ARG_CH_T ch)
 /* insert character, handling automargin stuff */
 {
     if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1)
 /* insert character, handling automargin stuff */
 {
     if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1)
@@ -366,19 +364,27 @@ PutChar(chtype const ch)
  * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
  */
 static inline bool
  * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
  */
 static inline bool
-can_clear_with(chtype ch)
+can_clear_with(ARG_CH_T ch)
 {
     if (!back_color_erase && SP->_coloron) {
 {
     if (!back_color_erase && SP->_coloron) {
-       if (ch & A_COLOR)
-           return FALSE;
 #if NCURSES_EXT_FUNCS
        if (!SP->_default_color)
            return FALSE;
        if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
            return FALSE;
 #if NCURSES_EXT_FUNCS
        if (!SP->_default_color)
            return FALSE;
        if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
            return FALSE;
+       if (AttrOfD(ch) & A_COLOR) {
+           short fg, bg;
+           pair_content(PAIR_NUMBER(AttrOfD(ch)), &fg, &bg);
+           if (fg != C_MASK || bg != C_MASK)
+               return FALSE;
+       }
+#else
+       if (AttrOfD(ch) & A_COLOR)
+           return FALSE;
 #endif
     }
 #endif
     }
-    return ((ch & ~(NONBLANK_ATTR | A_COLOR)) == BLANK);
+    return (ISBLANK(CHDEREF(ch)) &&
+           (AttrOfD(ch) & ~(NONBLANK_ATTR | A_COLOR)) == BLANK_ATTR);
 }
 
 /*
 }
 
 /*
@@ -394,28 +400,28 @@ can_clear_with(chtype ch)
  * This code is optimized using ech and rep.
  */
 static int
  * This code is optimized using ech and rep.
  */
 static int
-EmitRange(const chtype * ntext, int num)
+EmitRange(const NCURSES_CH_T * ntext, int num)
 {
     int i;
 
     if (erase_chars || repeat_char) {
        while (num > 0) {
            int runcount;
 {
     int i;
 
     if (erase_chars || repeat_char) {
        while (num > 0) {
            int runcount;
-           chtype ntext0;
+           NCURSES_CH_T ntext0;
 
 
-           while (num > 1 && ntext[0] != ntext[1]) {
-               PutChar(ntext[0]);
+           while (num > 1 && !CharEq(ntext[0], ntext[1])) {
+               PutChar(CHREF(ntext[0]));
                ntext++;
                num--;
            }
            ntext0 = ntext[0];
            if (num == 1) {
                ntext++;
                num--;
            }
            ntext0 = ntext[0];
            if (num == 1) {
-               PutChar(ntext0);
+               PutChar(CHREF(ntext0));
                return 0;
            }
            runcount = 2;
 
                return 0;
            }
            runcount = 2;
 
-           while (runcount < num && ntext[runcount] == ntext0)
+           while (runcount < num && CharEq(ntext[runcount], ntext0))
                runcount++;
 
            /*
                runcount++;
 
            /*
@@ -428,8 +434,8 @@ EmitRange(const chtype * ntext, int num)
             */
            if (erase_chars
                && runcount > SP->_ech_cost + SP->_cup_ch_cost
             */
            if (erase_chars
                && runcount > SP->_ech_cost + SP->_cup_ch_cost
-               && can_clear_with(ntext0)) {
-               UpdateAttrs(ntext0);
+               && can_clear_with(CHREF(ntext0))) {
+               UpdateAttrs(AttrOf(ntext0));
                putp(tparm(erase_chars, runcount));
 
                /*
                putp(tparm(erase_chars, runcount));
 
                /*
@@ -449,15 +455,15 @@ EmitRange(const chtype * ntext, int num)
                if (wrap_possible)
                    rep_count--;
 
                if (wrap_possible)
                    rep_count--;
 
-               UpdateAttrs(ntext0);
-               putp(tparm(repeat_char, TextOf(ntext0), rep_count));
+               UpdateAttrs(AttrOf(ntext0));
+               putp(tparm(repeat_char, CharOf(ntext0), rep_count));
                SP->_curscol += rep_count;
 
                if (wrap_possible)
                SP->_curscol += rep_count;
 
                if (wrap_possible)
-                   PutChar(ntext0);
+                   PutChar(CHREF(ntext0));
            } else {
                for (i = 0; i < runcount; i++)
            } else {
                for (i = 0; i < runcount; i++)
-                   PutChar(ntext[i]);
+                   PutChar(CHREF(ntext[i]));
            }
            ntext += runcount;
            num -= runcount;
            }
            ntext += runcount;
            num -= runcount;
@@ -466,7 +472,7 @@ EmitRange(const chtype * ntext, int num)
     }
 
     for (i = 0; i < num; i++)
     }
 
     for (i = 0; i < num; i++)
-       PutChar(ntext[i]);
+       PutChar(CHREF(ntext[i]));
     return 0;
 }
 
     return 0;
 }
 
@@ -479,11 +485,10 @@ EmitRange(const chtype * ntext, int num)
  * Returns: same as EmitRange
  */
 static int
  * Returns: same as EmitRange
  */
 static int
-PutRange(
-           const chtype * otext,
-           const chtype * ntext,
-           int row,
-           int first, int last)
+PutRange(const NCURSES_CH_T * otext,
+        const NCURSES_CH_T * ntext,
+        int row,
+        int first, int last)
 {
     int j, run;
 
 {
     int j, run;
 
@@ -493,7 +498,9 @@ PutRange(
     if (otext != ntext
        && (last - first + 1) > SP->_inline_cost) {
        for (j = first, run = 0; j <= last; j++) {
     if (otext != ntext
        && (last - first + 1) > SP->_inline_cost) {
        for (j = first, run = 0; j <= last; j++) {
-           if (otext[j] == ntext[j]) {
+           if (!run && isnac(otext[j]))
+               continue;
+           if (CharEq(otext[j], ntext[j])) {
                run++;
            } else {
                if (run > SP->_inline_cost) {
                run++;
            } else {
                if (run > SP->_inline_cost) {
@@ -508,21 +515,13 @@ PutRange(
     return EmitRange(ntext + first, last - first + 1);
 }
 
     return EmitRange(ntext + first, last - first + 1);
 }
 
-#if CC_HAS_INLINE_FUNCS
-static void
-callPutChar(chtype const ch)
-{
-    PutChar(ch);
-}
-#endif
-
 /* leave unbracketed here so 'indent' works */
 #define MARK_NOCHANGE(win,row) \
                win->_line[row].firstchar = _NOCHANGE; \
                win->_line[row].lastchar = _NOCHANGE; \
                if_USE_SCROLL_HINTS(win->_line[row].oldindex = row)
 
 /* leave unbracketed here so 'indent' works */
 #define MARK_NOCHANGE(win,row) \
                win->_line[row].firstchar = _NOCHANGE; \
                win->_line[row].lastchar = _NOCHANGE; \
                if_USE_SCROLL_HINTS(win->_line[row].oldindex = row)
 
-int
+NCURSES_EXPORT(int)
 doupdate(void)
 {
     int i;
 doupdate(void)
 {
     int i;
@@ -600,7 +599,7 @@ doupdate(void)
        for (i = 0; i < screen_lines; i++) {
            for (j = 0; j < screen_columns; j++) {
                bool failed = FALSE;
        for (i = 0; i < screen_lines; i++) {
            for (j = 0; j < screen_columns; j++) {
                bool failed = FALSE;
-               chtype turnon = AttrOf(newscr->_line[i].text[j]) & ~rattr;
+               attr_t turnon = AttrOf(newscr->_line[i].text[j]) & ~rattr;
 
                /* is an attribute turned on here? */
                if (turnon == 0) {
 
                /* is an attribute turned on here? */
                if (turnon == 0) {
@@ -617,16 +616,16 @@ doupdate(void)
                 * ensure there's enough room to set the attribute before
                 * the first non-blank in the run.
                 */
                 * ensure there's enough room to set the attribute before
                 * the first non-blank in the run.
                 */
-#define SAFE(a)        (!((a) & (chtype)~NONBLANK_ATTR))
-               if (TextOf(newscr->_line[i].text[j]) == ' ' && SAFE(turnon)) {
-                   newscr->_line[i].text[j] &= ~turnon;
+#define SAFE(a)        (!((a) & (attr_t)~NONBLANK_ATTR))
+               if (ISBLANK(newscr->_line[i].text[j]) && SAFE(turnon)) {
+                   RemAttr(newscr->_line[i].text[j], turnon);
                    continue;
                }
 
                /* check that there's enough room at start of span */
                for (k = 1; k <= magic_cookie_glitch; k++) {
                    if (j - k < 0
                    continue;
                }
 
                /* check that there's enough room at start of span */
                for (k = 1; k <= magic_cookie_glitch; k++) {
                    if (j - k < 0
-                       || TextOf(newscr->_line[i].text[j - k]) != ' '
+                       || !ISBLANK(newscr->_line[i].text[j - k])
                        || !SAFE(AttrOf(newscr->_line[i].text[j - k])))
                        failed = TRUE;
                }
                        || !SAFE(AttrOf(newscr->_line[i].text[j - k])))
                        failed = TRUE;
                }
@@ -653,7 +652,7 @@ doupdate(void)
                  foundit:;
 
                    if (end_onscreen) {
                  foundit:;
 
                    if (end_onscreen) {
-                       chtype *lastline = newscr->_line[m].text;
+                       NCURSES_CH_T *lastline = newscr->_line[m].text;
 
                        /*
                         * If there are safely-attributed blanks at the
 
                        /*
                         * If there are safely-attributed blanks at the
@@ -662,14 +661,14 @@ doupdate(void)
                         * of span.
                         */
                        while (n >= 0
                         * of span.
                         */
                        while (n >= 0
-                              && TextOf(lastline[n]) == ' '
+                              && ISBLANK(lastline[n])
                               && SAFE(AttrOf(lastline[n])))
                               && SAFE(AttrOf(lastline[n])))
-                           lastline[n--] &= ~turnon;
+                           RemAttr(lastline[n--], turnon);
 
                        /* check that there's enough room at end of span */
                        for (k = 1; k <= magic_cookie_glitch; k++)
                            if (n + k >= screen_columns
 
                        /* check that there's enough room at end of span */
                        for (k = 1; k <= magic_cookie_glitch; k++)
                            if (n + k >= screen_columns
-                               || TextOf(lastline[n + k]) != ' '
+                               || !ISBLANK(lastline[n + k])
                                || !SAFE(AttrOf(lastline[n + k])))
                                failed = TRUE;
                    }
                                || !SAFE(AttrOf(lastline[n + k])))
                                failed = TRUE;
                    }
@@ -687,7 +686,7 @@ doupdate(void)
                        for (; q < screen_columns; q++) {
                            if (AttrOf(newscr->_line[p].text[q]) == rattr)
                                goto foundend;
                        for (; q < screen_columns; q++) {
                            if (AttrOf(newscr->_line[p].text[q]) == rattr)
                                goto foundend;
-                           newscr->_line[p].text[q] &= ~turnon;
+                           RemAttr(newscr->_line[p].text[q], turnon);
                        }
                        q = 0;
                    }
                        }
                        q = 0;
                    }
@@ -702,7 +701,7 @@ doupdate(void)
                     * for cookies before the first nonblank character
                     */
                    for (k = 1; k <= magic_cookie_glitch; k++)
                     * for cookies before the first nonblank character
                     */
                    for (k = 1; k <= magic_cookie_glitch; k++)
-                       newscr->_line[i].text[j - k] |= turnon;
+                       AddAttr(newscr->_line[i].text[j - k], turnon);
                }
 
                rattr = AttrOf(newscr->_line[i].text[j]);
                }
 
                rattr = AttrOf(newscr->_line[i].text[j]);
@@ -764,20 +763,20 @@ doupdate(void)
 
            /* mark line changed successfully */
            if (i <= newscr->_maxy) {
 
            /* mark line changed successfully */
            if (i <= newscr->_maxy) {
-               MARK_NOCHANGE(newscr, i)
+               MARK_NOCHANGE(newscr, i);
            }
            if (i <= curscr->_maxy) {
            }
            if (i <= curscr->_maxy) {
-               MARK_NOCHANGE(curscr, i)
+               MARK_NOCHANGE(curscr, i);
            }
        }
     }
 
     /* put everything back in sync */
     for (i = nonempty; i <= newscr->_maxy; i++) {
            }
        }
     }
 
     /* put everything back in sync */
     for (i = nonempty; i <= newscr->_maxy; i++) {
-       MARK_NOCHANGE(newscr, i)
+       MARK_NOCHANGE(newscr, i);
     }
     for (i = nonempty; i <= curscr->_maxy; i++) {
     }
     for (i = nonempty; i <= curscr->_maxy; i++) {
-       MARK_NOCHANGE(curscr, i)
+       MARK_NOCHANGE(curscr, i);
     }
 
     if (!newscr->_leaveok) {
     }
 
     if (!newscr->_leaveok) {
@@ -802,8 +801,8 @@ doupdate(void)
     TR(TRACE_TIMES,
        ("Update cost: %ld chars, %ld clocks system time, %ld clocks user time",
        _nc_outchars,
     TR(TRACE_TIMES,
        ("Update cost: %ld chars, %ld clocks system time, %ld clocks user time",
        _nc_outchars,
-       after.tms_stime - before.tms_stime,
-       after.tms_utime - before.tms_utime));
+       (long) (after.tms_stime - before.tms_stime),
+       (long) (after.tms_utime - before.tms_utime)));
 #endif /* USE_TRACE_TIMES */
 
     _nc_signal_handler(TRUE);
 #endif /* USE_TRACE_TIMES */
 
     _nc_signal_handler(TRUE);
@@ -822,14 +821,14 @@ doupdate(void)
  *     in the wbkgd() call.  Assume 'stdscr' for this case.
  */
 #define BCE_ATTRS (A_NORMAL|A_COLOR)
  *     in the wbkgd() call.  Assume 'stdscr' for this case.
  */
 #define BCE_ATTRS (A_NORMAL|A_COLOR)
-#define BCE_BKGD(win) (((win) == curscr ? stdscr : (win))->_bkgd)
+#define BCE_BKGD(win) (((win) == curscr ? stdscr : (win))->_nc_bkgd)
 
 
-static inline chtype
+static inline NCURSES_CH_T
 ClrBlank(WINDOW *win)
 {
 ClrBlank(WINDOW *win)
 {
-    chtype blank = BLANK;
+    NCURSES_CH_T blank = NewChar(BLANK_TEXT);
     if (back_color_erase)
     if (back_color_erase)
-       blank |= (BCE_BKGD(win) & BCE_ATTRS);
+       AddAttr(blank, (AttrOf(BCE_BKGD(win)) & BCE_ATTRS));
     return blank;
 }
 
     return blank;
 }
 
@@ -844,7 +843,7 @@ static void
 ClrUpdate(void)
 {
     int i;
 ClrUpdate(void)
 {
     int i;
-    chtype blank = ClrBlank(stdscr);
+    NCURSES_CH_T blank = ClrBlank(stdscr);
     int nonempty = min(screen_lines, newscr->_maxy + 1);
 
     TR(TRACE_UPDATE, ("ClrUpdate() called"));
     int nonempty = min(screen_lines, newscr->_maxy + 1);
 
     TR(TRACE_UPDATE, ("ClrUpdate() called"));
@@ -866,7 +865,7 @@ ClrUpdate(void)
 */
 
 static void
 */
 
 static void
-ClrToEOL(chtype blank, bool needclear)
+ClrToEOL(NCURSES_CH_T blank, bool needclear)
 {
     int j;
 
 {
     int j;
 
@@ -874,9 +873,9 @@ ClrToEOL(chtype blank, bool needclear)
        && SP->_cursrow >= 0) {
        for (j = SP->_curscol; j < screen_columns; j++) {
            if (j >= 0) {
        && SP->_cursrow >= 0) {
        for (j = SP->_curscol; j < screen_columns; j++) {
            if (j >= 0) {
-               chtype *cp = &(curscr->_line[SP->_cursrow].text[j]);
+               NCURSES_CH_T *cp = &(curscr->_line[SP->_cursrow].text[j]);
 
 
-               if (*cp != blank) {
+               if (!CharEq(*cp, blank)) {
                    *cp = blank;
                    needclear = TRUE;
                }
                    *cp = blank;
                    needclear = TRUE;
                }
@@ -887,12 +886,12 @@ ClrToEOL(chtype blank, bool needclear)
     }
 
     if (needclear) {
     }
 
     if (needclear) {
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("clr_eol");
        if (SP->_el_cost > (screen_columns - SP->_curscol)) {
            int count = (screen_columns - SP->_curscol);
            while (count-- > 0)
        TPUTS_TRACE("clr_eol");
        if (SP->_el_cost > (screen_columns - SP->_curscol)) {
            int count = (screen_columns - SP->_curscol);
            while (count-- > 0)
-               PutChar(blank);
+               PutChar(CHREF(blank));
        } else {
            putp(clr_eol);
        }
        } else {
            putp(clr_eol);
        }
@@ -906,14 +905,14 @@ ClrToEOL(chtype blank, bool needclear)
 */
 
 static void
 */
 
 static void
-ClrToEOS(chtype blank)
+ClrToEOS(NCURSES_CH_T blank)
 {
     int row, col;
 
     row = SP->_cursrow;
     col = SP->_curscol;
 
 {
     int row, col;
 
     row = SP->_cursrow;
     col = SP->_curscol;
 
-    UpdateAttrs(blank);
+    UpdateAttrs(AttrOf(blank));
     TPUTS_TRACE("clr_eos");
     tputs(clr_eos, screen_lines - row, _nc_outch);
 
     TPUTS_TRACE("clr_eos");
     tputs(clr_eos, screen_lines - row, _nc_outch);
 
@@ -940,20 +939,20 @@ ClrBottom(int total)
     int col;
     int top = total;
     int last = min(screen_columns, newscr->_maxx + 1);
     int col;
     int top = total;
     int last = min(screen_columns, newscr->_maxx + 1);
-    chtype blank = ClrBlank(stdscr);
+    NCURSES_CH_T blank = ClrBlank(stdscr);
     bool ok;
 
     bool ok;
 
-    if (clr_eos && can_clear_with(blank)) {
+    if (clr_eos && can_clear_with(CHREF(blank))) {
 
        for (row = total - 1; row >= 0; row--) {
            for (col = 0, ok = TRUE; ok && col < last; col++) {
 
        for (row = total - 1; row >= 0; row--) {
            for (col = 0, ok = TRUE; ok && col < last; col++) {
-               ok = (newscr->_line[row].text[col] == blank);
+               ok = (CharEq(newscr->_line[row].text[col], blank));
            }
            if (!ok)
                break;
 
            for (col = 0; ok && col < last; col++) {
            }
            if (!ok)
                break;
 
            for (col = 0; ok && col < last; col++) {
-               ok = (curscr->_line[row].text[col] == blank);
+               ok = (CharEq(curscr->_line[row].text[col], blank));
            }
            if (!ok)
                top = row;
            }
            if (!ok)
                top = row;
@@ -973,6 +972,25 @@ ClrBottom(int total)
     return total;
 }
 
     return total;
 }
 
+#if USE_XMC_SUPPORT
+#if USE_WIDEC_SUPPORT
+static inline bool
+check_xmc_transition(NCURSES_CH_T * a, NCURSES_CH_T * b)
+{
+    if (((a->attr ^ b->attr) & ~(a->attr) & SP->_xmc_triggers) != 0) {
+       return TRUE;
+    }
+    return FALSE;
+}
+#define xmc_turn_on(a,b) check_xmc_transition(&(a), &(b))
+#else
+#define xmc_turn_on(a,b) ((((a)^(b)) & ~(a) & SP->_xmc_triggers) != 0)
+#endif
+
+#define xmc_new(r,c) newscr->_line[r].text[c]
+#define xmc_turn_off(a,b) xmc_turn_on(b,a)
+#endif /* USE_XMC_SUPPORT */
+
 /*
 **     TransformLine(lineno)
 **
 /*
 **     TransformLine(lineno)
 **
@@ -995,8 +1013,8 @@ static void
 TransformLine(int const lineno)
 {
     int firstChar, oLastChar, nLastChar;
 TransformLine(int const lineno)
 {
     int firstChar, oLastChar, nLastChar;
-    chtype *newLine = newscr->_line[lineno].text;
-    chtype *oldLine = curscr->_line[lineno].text;
+    NCURSES_CH_T *newLine = newscr->_line[lineno].text;
+    NCURSES_CH_T *oldLine = curscr->_line[lineno].text;
     int n;
     bool attrchanged = FALSE;
 
     int n;
     bool attrchanged = FALSE;
 
@@ -1006,8 +1024,8 @@ TransformLine(int const lineno)
     if (SP->oldhash && SP->newhash)
        SP->oldhash[lineno] = SP->newhash[lineno];
 
     if (SP->oldhash && SP->newhash)
        SP->oldhash[lineno] = SP->newhash[lineno];
 
-#define ColorOf(n) ((n) & A_COLOR)
-#define unColor(n) ((n) & ALL_BUT_COLOR)
+#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
     /*
      * 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
@@ -1015,13 +1033,13 @@ TransformLine(int const lineno)
      * they are equivalent.
      */
     if (SP->_coloron) {
      * they are equivalent.
      */
     if (SP->_coloron) {
-       chtype oldColor;
-       chtype newColor;
+       attr_t oldColor;
+       attr_t newColor;
        int oldPair;
        int newPair;
 
        for (n = 0; n < screen_columns; n++) {
        int oldPair;
        int newPair;
 
        for (n = 0; n < screen_columns; n++) {
-           if (newLine[n] != oldLine[n]) {
+           if (!CharEq(newLine[n], oldLine[n])) {
                oldColor = ColorOf(oldLine[n]);
                newColor = ColorOf(newLine[n]);
                if (oldColor != newColor
                oldColor = ColorOf(oldLine[n]);
                newColor = ColorOf(newLine[n]);
                if (oldColor != newColor
@@ -1031,8 +1049,8 @@ TransformLine(int const lineno)
                    if (oldPair < COLOR_PAIRS
                        && newPair < COLOR_PAIRS
                        && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
                    if (oldPair < COLOR_PAIRS
                        && newPair < COLOR_PAIRS
                        && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
-                       oldLine[n] &= ~A_COLOR;
-                       oldLine[n] |= ColorOf(newLine[n]);
+                       RemAttr(oldLine[n], A_COLOR);
+                       AddAttr(oldLine[n], ColorOf(newLine[n]));
                    }
                }
            }
                    }
                }
            }
@@ -1056,10 +1074,6 @@ TransformLine(int const lineno)
        PutRange(oldLine, newLine, lineno, 0, (screen_columns - 1));
 #if USE_XMC_SUPPORT
 
        PutRange(oldLine, newLine, lineno, 0, (screen_columns - 1));
 #if USE_XMC_SUPPORT
 
-#define NEW(r,c) newscr->_line[r].text[c]
-#define xmc_turn_on(a,b) ((((a)^(b)) & ~(a) & SP->_xmc_triggers) != 0)
-#define xmc_turn_off(a,b) xmc_turn_on(b,a)
-
        /*
         * This is a very simple loop to paint characters which may have the
         * magic cookie glitch embedded.  It doesn't know much about video
        /*
         * This is a very simple loop to paint characters which may have the
         * magic cookie glitch embedded.  It doesn't know much about video
@@ -1080,40 +1094,39 @@ TransformLine(int const lineno)
             * If we are writing an attributed blank, where the
             * previous cell is not attributed.
             */
             * If we are writing an attributed blank, where the
             * previous cell is not attributed.
             */
-           if (TextOf(newLine[n]) == ' '
+           if (ISBLANK(newLine[n])
                && ((n > 0
                     && xmc_turn_on(newLine[n - 1], newLine[n]))
                    || (n == 0
                        && lineno > 0
                && ((n > 0
                     && xmc_turn_on(newLine[n - 1], newLine[n]))
                    || (n == 0
                        && lineno > 0
-                       && xmc_turn_on(NEW(lineno - 1, screen_columns - 1),
+                       && xmc_turn_on(xmc_new(lineno - 1, screen_columns - 1),
                                       newLine[n])))) {
                n = m;
            }
 
                                       newLine[n])))) {
                n = m;
            }
 
-           PutChar(newLine[n]);
+           PutChar(CHREF(newLine[n]));
 
            /* check for turn-off:
             * If we are writing an attributed non-blank, where the
             * next cell is blank, and not attributed.
             */
 
            /* check for turn-off:
             * If we are writing an attributed non-blank, where the
             * next cell is blank, and not attributed.
             */
-           if (TextOf(newLine[n]) != ' '
+           if (!ISBLANK(newLine[n])
                && ((n + 1 < screen_columns
                     && xmc_turn_off(newLine[n], newLine[n + 1]))
                    || (n + 1 >= screen_columns
                        && lineno + 1 < screen_lines
                && ((n + 1 < screen_columns
                     && xmc_turn_off(newLine[n], newLine[n + 1]))
                    || (n + 1 >= screen_columns
                        && lineno + 1 < screen_lines
-                       && xmc_turn_off(newLine[n], NEW(lineno + 1, 0))))) {
+                       && xmc_turn_off(newLine[n], xmc_new(lineno + 1, 0))))) {
                n = m;
            }
 
        }
                n = m;
            }
 
        }
-#undef NEW
 #endif
     } else {
 #endif
     } else {
-       chtype blank;
+       NCURSES_CH_T blank;
 
        /* find the first differing character */
        while (firstChar < screen_columns &&
 
        /* find the first differing character */
        while (firstChar < screen_columns &&
-              newLine[firstChar] == oldLine[firstChar])
+              CharEq(newLine[firstChar], oldLine[firstChar]))
            firstChar++;
 
        /* if there wasn't one, we're done */
            firstChar++;
 
        /* if there wasn't one, we're done */
@@ -1121,25 +1134,25 @@ TransformLine(int const lineno)
            return;
 
        /* it may be cheap to clear leading whitespace with clr_bol */
            return;
 
        /* it may be cheap to clear leading whitespace with clr_bol */
-       if (clr_bol && can_clear_with(blank = newLine[0])) {
+       if (clr_bol && (blank = newLine[0], can_clear_with(CHREF(blank)))) {
            int oFirstChar, nFirstChar;
 
            for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++)
            int oFirstChar, nFirstChar;
 
            for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++)
-               if (oldLine[oFirstChar] != blank)
+               if (!CharEq(oldLine[oFirstChar], blank))
                    break;
            for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++)
                    break;
            for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++)
-               if (newLine[nFirstChar] != blank)
+               if (!CharEq(newLine[nFirstChar], blank))
                    break;
 
            if (nFirstChar > oFirstChar + SP->_el1_cost) {
                if (nFirstChar >= screen_columns && SP->_el_cost <= SP->_el1_cost) {
                    GoTo(lineno, 0);
                    break;
 
            if (nFirstChar > oFirstChar + SP->_el1_cost) {
                if (nFirstChar >= screen_columns && SP->_el_cost <= SP->_el1_cost) {
                    GoTo(lineno, 0);
-                   UpdateAttrs(blank);
+                   UpdateAttrs(AttrOf(blank));
                    TPUTS_TRACE("clr_eol");
                    putp(clr_eol);
                } else {
                    GoTo(lineno, nFirstChar - 1);
                    TPUTS_TRACE("clr_eol");
                    putp(clr_eol);
                } else {
                    GoTo(lineno, nFirstChar - 1);
-                   UpdateAttrs(blank);
+                   UpdateAttrs(AttrOf(blank));
                    TPUTS_TRACE("clr_bol");
                    putp(clr_bol);
                }
                    TPUTS_TRACE("clr_bol");
                    putp(clr_bol);
                }
@@ -1154,12 +1167,12 @@ TransformLine(int const lineno)
 
        blank = newLine[screen_columns - 1];
 
 
        blank = newLine[screen_columns - 1];
 
-       if (!can_clear_with(blank)) {
+       if (!can_clear_with(CHREF(blank))) {
            /* find the last differing character */
            nLastChar = screen_columns - 1;
 
            while (nLastChar > firstChar
            /* find the last differing character */
            nLastChar = screen_columns - 1;
 
            while (nLastChar > firstChar
-                  && newLine[nLastChar] == oldLine[nLastChar])
+                  && CharEq(newLine[nLastChar], oldLine[nLastChar]))
                nLastChar--;
 
            if (nLastChar >= firstChar) {
                nLastChar--;
 
            if (nLastChar >= firstChar) {
@@ -1167,29 +1180,29 @@ TransformLine(int const lineno)
                PutRange(oldLine, newLine, lineno, firstChar, nLastChar);
                memcpy(oldLine + firstChar,
                       newLine + firstChar,
                PutRange(oldLine, newLine, lineno, firstChar, nLastChar);
                memcpy(oldLine + firstChar,
                       newLine + firstChar,
-                      (nLastChar - firstChar + 1) * sizeof(chtype));
+                      (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T));
            }
            return;
        }
 
        /* find last non-blank character on old line */
        oLastChar = screen_columns - 1;
            }
            return;
        }
 
        /* find last non-blank character on old line */
        oLastChar = screen_columns - 1;
-       while (oLastChar > firstChar && oldLine[oLastChar] == blank)
+       while (oLastChar > firstChar && CharEq(oldLine[oLastChar], blank))
            oLastChar--;
 
        /* find last non-blank character on new line */
        nLastChar = screen_columns - 1;
            oLastChar--;
 
        /* find last non-blank character on new line */
        nLastChar = screen_columns - 1;
-       while (nLastChar > firstChar && newLine[nLastChar] == blank)
+       while (nLastChar > firstChar && CharEq(newLine[nLastChar], blank))
            nLastChar--;
 
        if ((nLastChar == firstChar)
            && (SP->_el_cost < (oLastChar - nLastChar))) {
            GoTo(lineno, firstChar);
            nLastChar--;
 
        if ((nLastChar == firstChar)
            && (SP->_el_cost < (oLastChar - nLastChar))) {
            GoTo(lineno, firstChar);
-           if (newLine[firstChar] != blank)
-               PutChar(newLine[firstChar]);
+           if (!CharEq(newLine[firstChar], blank))
+               PutChar(CHREF(newLine[firstChar]));
            ClrToEOL(blank, FALSE);
        } else if ((nLastChar != oLastChar)
            ClrToEOL(blank, FALSE);
        } else if ((nLastChar != oLastChar)
-                  && (newLine[nLastChar] != oldLine[oLastChar]
+                  && (!CharEq(newLine[nLastChar], oldLine[oLastChar])
                       || !(_nc_idcok && has_ic()))) {
            GoTo(lineno, firstChar);
            if ((oLastChar - nLastChar) > SP->_el_cost) {
                       || !(_nc_idcok && has_ic()))) {
            GoTo(lineno, firstChar);
            if ((oLastChar - nLastChar) > SP->_el_cost) {
@@ -1205,14 +1218,16 @@ TransformLine(int const lineno)
            int oLastNonblank = oLastChar;
 
            /* find the last characters that really differ */
            int oLastNonblank = oLastChar;
 
            /* find the last characters that really differ */
-           while (newLine[nLastChar] == oldLine[oLastChar]) {
-               if (nLastChar != 0
-                   && oLastChar != 0) {
-                   nLastChar--;
-                   oLastChar--;
-               } else {
+           /* can be -1 if no characters differ */
+           while (CharEq(newLine[nLastChar], oldLine[oLastChar])) {
+               /* don't split a wide char */
+               if (isnac(newLine[nLastChar]) &&
+                   !CharEq(newLine[nLastChar - 1], oldLine[oLastChar - 1]))
+                   break;
+               nLastChar--;
+               oLastChar--;
+               if (nLastChar == -1 || oLastChar == -1)
                    break;
                    break;
-               }
            }
 
            n = min(oLastChar, nLastChar);
            }
 
            n = min(oLastChar, nLastChar);
@@ -1247,7 +1262,7 @@ TransformLine(int const lineno)
                     * setting the video attributes from
                     * the last character on the row.
                     */
                     * setting the video attributes from
                     * the last character on the row.
                     */
-                   UpdateAttrs(blank);
+                   UpdateAttrs(AttrOf(blank));
                    DelChar(oLastChar - nLastChar);
                }
            }
                    DelChar(oLastChar - nLastChar);
                }
            }
@@ -1258,7 +1273,7 @@ TransformLine(int const lineno)
     if (screen_columns > firstChar)
        memcpy(oldLine + firstChar,
               newLine + firstChar,
     if (screen_columns > firstChar)
        memcpy(oldLine + firstChar,
               newLine + firstChar,
-              (screen_columns - firstChar) * sizeof(chtype));
+              (screen_columns - firstChar) * sizeof(NCURSES_CH_T));
 }
 
 /*
 }
 
 /*
@@ -1269,7 +1284,7 @@ TransformLine(int const lineno)
 */
 
 static void
 */
 
 static void
-ClearScreen(chtype blank)
+ClearScreen(NCURSES_CH_T blank)
 {
     int i, j;
     bool fast_clear = (clear_screen || clr_eos || clr_eol);
 {
     int i, j;
     bool fast_clear = (clear_screen || clr_eos || clr_eol);
@@ -1279,7 +1294,7 @@ ClearScreen(chtype blank)
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
-       _nc_do_color(COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
+       _nc_do_color((int) COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
        if (!back_color_erase) {
            fast_clear = FALSE;
        }
        if (!back_color_erase) {
            fast_clear = FALSE;
        }
@@ -1288,7 +1303,7 @@ ClearScreen(chtype blank)
 
     if (fast_clear) {
        if (clear_screen) {
 
     if (fast_clear) {
        if (clear_screen) {
-           UpdateAttrs(blank);
+           UpdateAttrs(AttrOf(blank));
            TPUTS_TRACE("clear_screen");
            putp(clear_screen);
            SP->_cursrow = SP->_curscol = 0;
            TPUTS_TRACE("clear_screen");
            putp(clear_screen);
            SP->_cursrow = SP->_curscol = 0;
@@ -1297,13 +1312,13 @@ ClearScreen(chtype blank)
            SP->_cursrow = SP->_curscol = -1;
            GoTo(0, 0);
 
            SP->_cursrow = SP->_curscol = -1;
            GoTo(0, 0);
 
-           UpdateAttrs(blank);
+           UpdateAttrs(AttrOf(blank));
            TPUTS_TRACE("clr_eos");
            putp(clr_eos);
        } else if (clr_eol) {
            SP->_cursrow = SP->_curscol = -1;
 
            TPUTS_TRACE("clr_eos");
            putp(clr_eos);
        } else if (clr_eol) {
            SP->_cursrow = SP->_curscol = -1;
 
-           UpdateAttrs(blank);
+           UpdateAttrs(AttrOf(blank));
            for (i = 0; i < screen_lines; i++) {
                GoTo(i, 0);
                TPUTS_TRACE("clr_eol");
            for (i = 0; i < screen_lines; i++) {
                GoTo(i, 0);
                TPUTS_TRACE("clr_eol");
@@ -1312,11 +1327,11 @@ ClearScreen(chtype blank)
            GoTo(0, 0);
        }
     } else {
            GoTo(0, 0);
        }
     } else {
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        for (i = 0; i < screen_lines; i++) {
            GoTo(i, 0);
            for (j = 0; j < screen_columns; j++)
        for (i = 0; i < screen_lines; i++) {
            GoTo(i, 0);
            for (j = 0; j < screen_columns; j++)
-               PutChar(blank);
+               PutChar(CHREF(blank));
        }
        GoTo(0, 0);
     }
        }
        GoTo(0, 0);
     }
@@ -1337,7 +1352,7 @@ ClearScreen(chtype blank)
 */
 
 static void
 */
 
 static void
-InsStr(chtype * line, int count)
+InsStr(NCURSES_CH_T * line, int count)
 {
     TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count));
 
 {
     TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count));
 
@@ -1348,7 +1363,7 @@ InsStr(chtype * line, int count)
        TPUTS_TRACE("parm_ich");
        tputs(tparm(parm_ich, count), count, _nc_outch);
        while (count) {
        TPUTS_TRACE("parm_ich");
        tputs(tparm(parm_ich, count), count, _nc_outch);
        while (count) {
-           PutAttrChar(*line);
+           PutAttrChar(CHREF(*line));
            line++;
            count--;
        }
            line++;
            count--;
        }
@@ -1356,7 +1371,7 @@ InsStr(chtype * line, int count)
        TPUTS_TRACE("enter_insert_mode");
        putp(enter_insert_mode);
        while (count) {
        TPUTS_TRACE("enter_insert_mode");
        putp(enter_insert_mode);
        while (count) {
-           PutAttrChar(*line);
+           PutAttrChar(CHREF(*line));
            if (insert_padding) {
                TPUTS_TRACE("insert_padding");
                putp(insert_padding);
            if (insert_padding) {
                TPUTS_TRACE("insert_padding");
                putp(insert_padding);
@@ -1370,7 +1385,7 @@ InsStr(chtype * line, int count)
        while (count) {
            TPUTS_TRACE("insert_character");
            putp(insert_character);
        while (count) {
            TPUTS_TRACE("insert_character");
            putp(insert_character);
-           PutAttrChar(*line);
+           PutAttrChar(CHREF(*line));
            if (insert_padding) {
                TPUTS_TRACE("insert_padding");
                putp(insert_padding);
            if (insert_padding) {
                TPUTS_TRACE("insert_padding");
                putp(insert_padding);
@@ -1414,7 +1429,7 @@ DelChar(int count)
 **     Emit a string without waiting for update.
 */
 
 **     Emit a string without waiting for update.
 */
 
-void
+NCURSES_EXPORT(void)
 _nc_outstr(const char *str)
 {
     (void) putp(str);
 _nc_outstr(const char *str)
 {
     (void) putp(str);
@@ -1455,40 +1470,40 @@ _nc_outstr(const char *str)
 
 /* Try to scroll up assuming given csr (miny, maxy). Returns ERR on failure */
 static int
 
 /* Try to scroll up assuming given csr (miny, maxy). Returns ERR on failure */
 static int
-scroll_csr_forward(int n, int top, int bot, int miny, int maxy, chtype blank)
+scroll_csr_forward(int n, int top, int bot, int miny, int maxy, NCURSES_CH_T blank)
 {
 {
-    int i, j;
+    int i;
 
     if (n == 1 && scroll_forward && top == miny && bot == maxy) {
        GoTo(bot, 0);
 
     if (n == 1 && scroll_forward && top == miny && bot == maxy) {
        GoTo(bot, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("scroll_forward");
        tputs(scroll_forward, 0, _nc_outch);
     } else if (n == 1 && delete_line && bot == maxy) {
        GoTo(top, 0);
        TPUTS_TRACE("scroll_forward");
        tputs(scroll_forward, 0, _nc_outch);
     } else if (n == 1 && delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("delete_line");
        tputs(delete_line, 0, _nc_outch);
     } else if (parm_index && top == miny && bot == maxy) {
        GoTo(bot, 0);
        TPUTS_TRACE("delete_line");
        tputs(delete_line, 0, _nc_outch);
     } else if (parm_index && top == miny && bot == maxy) {
        GoTo(bot, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("parm_index");
        tputs(tparm(parm_index, n, 0), n, _nc_outch);
     } else if (parm_delete_line && bot == maxy) {
        GoTo(top, 0);
        TPUTS_TRACE("parm_index");
        tputs(tparm(parm_index, n, 0), n, _nc_outch);
     } else if (parm_delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(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);
        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(blank);
+       UpdateAttrs(AttrOf(blank));
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_forward");
            tputs(scroll_forward, 0, _nc_outch);
        }
     } else if (delete_line && bot == maxy) {
        GoTo(top, 0);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_forward");
            tputs(scroll_forward, 0, _nc_outch);
        }
     } else if (delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("delete_line");
            tputs(delete_line, 0, _nc_outch);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("delete_line");
            tputs(delete_line, 0, _nc_outch);
@@ -1498,10 +1513,11 @@ scroll_csr_forward(int n, int top, int bot, int miny, int maxy, chtype blank)
 
 #if NCURSES_EXT_FUNCS
     if (FILL_BCE()) {
 
 #if NCURSES_EXT_FUNCS
     if (FILL_BCE()) {
+       int j;
        for (i = 0; i < n; i++) {
            GoTo(bot - i, 0);
            for (j = 0; j < screen_columns; j++)
        for (i = 0; i < n; i++) {
            GoTo(bot - i, 0);
            for (j = 0; j < screen_columns; j++)
-               PutChar(blank);
+               PutChar(CHREF(blank));
        }
     }
 #endif
        }
     }
 #endif
@@ -1511,40 +1527,41 @@ scroll_csr_forward(int n, int top, int bot, int miny, int maxy, chtype blank)
 /* Try to scroll down assuming given csr (miny, maxy). Returns ERR on failure */
 /* n > 0 */
 static int
 /* Try to scroll down assuming given csr (miny, maxy). Returns ERR on failure */
 /* n > 0 */
 static int
-scroll_csr_backward(int n, int top, int bot, int miny, int maxy, chtype blank)
+scroll_csr_backward(int n, int top, int bot, int miny, int maxy,
+                   NCURSES_CH_T blank)
 {
 {
-    int i, j;
+    int i;
 
     if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
        GoTo(top, 0);
 
     if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("scroll_reverse");
        tputs(scroll_reverse, 0, _nc_outch);
     } else if (n == 1 && insert_line && bot == maxy) {
        GoTo(top, 0);
        TPUTS_TRACE("scroll_reverse");
        tputs(scroll_reverse, 0, _nc_outch);
     } else if (n == 1 && insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("insert_line");
        tputs(insert_line, 0, _nc_outch);
     } else if (parm_rindex && top == miny && bot == maxy) {
        GoTo(top, 0);
        TPUTS_TRACE("insert_line");
        tputs(insert_line, 0, _nc_outch);
     } else if (parm_rindex && top == miny && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        TPUTS_TRACE("parm_rindex");
        tputs(tparm(parm_rindex, n, 0), n, _nc_outch);
     } else if (parm_insert_line && bot == maxy) {
        GoTo(top, 0);
        TPUTS_TRACE("parm_rindex");
        tputs(tparm(parm_rindex, n, 0), n, _nc_outch);
     } else if (parm_insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(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);
        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(blank);
+       UpdateAttrs(AttrOf(blank));
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_reverse");
            tputs(scroll_reverse, 0, _nc_outch);
        }
     } else if (insert_line && bot == maxy) {
        GoTo(top, 0);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_reverse");
            tputs(scroll_reverse, 0, _nc_outch);
        }
     } else if (insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(blank);
+       UpdateAttrs(AttrOf(blank));
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("insert_line");
            tputs(insert_line, 0, _nc_outch);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("insert_line");
            tputs(insert_line, 0, _nc_outch);
@@ -1554,10 +1571,11 @@ scroll_csr_backward(int n, int top, int bot, int miny, int maxy, chtype blank)
 
 #if NCURSES_EXT_FUNCS
     if (FILL_BCE()) {
 
 #if NCURSES_EXT_FUNCS
     if (FILL_BCE()) {
+       int j;
        for (i = 0; i < n; i++) {
            GoTo(top + i, 0);
            for (j = 0; j < screen_columns; j++)
        for (i = 0; i < n; i++) {
            GoTo(top + i, 0);
            for (j = 0; j < screen_columns; j++)
-               PutChar(blank);
+               PutChar(CHREF(blank));
        }
     }
 #endif
        }
     }
 #endif
@@ -1567,7 +1585,7 @@ scroll_csr_backward(int n, int top, int bot, int miny, int maxy, chtype blank)
 /* scroll by using delete_line at del and insert_line at ins */
 /* n > 0 */
 static int
 /* scroll by using delete_line at del and insert_line at ins */
 /* n > 0 */
 static int
-scroll_idl(int n, int del, int ins, chtype blank)
+scroll_idl(int n, int del, int ins, NCURSES_CH_T blank)
 {
     int i;
 
 {
     int i;
 
@@ -1575,7 +1593,7 @@ scroll_idl(int n, int del, int ins, chtype blank)
        return ERR;
 
     GoTo(del, 0);
        return ERR;
 
     GoTo(del, 0);
-    UpdateAttrs(blank);
+    UpdateAttrs(AttrOf(blank));
     if (n == 1 && delete_line) {
        TPUTS_TRACE("delete_line");
        tputs(delete_line, 0, _nc_outch);
     if (n == 1 && delete_line) {
        TPUTS_TRACE("delete_line");
        tputs(delete_line, 0, _nc_outch);
@@ -1590,7 +1608,7 @@ scroll_idl(int n, int del, int ins, chtype blank)
     }
 
     GoTo(ins, 0);
     }
 
     GoTo(ins, 0);
-    UpdateAttrs(blank);
+    UpdateAttrs(AttrOf(blank));
     if (n == 1 && insert_line) {
        TPUTS_TRACE("insert_line");
        tputs(insert_line, 0, _nc_outch);
     if (n == 1 && insert_line) {
        TPUTS_TRACE("insert_line");
        tputs(insert_line, 0, _nc_outch);
@@ -1607,11 +1625,11 @@ scroll_idl(int n, int del, int ins, chtype blank)
     return OK;
 }
 
     return OK;
 }
 
-int
+NCURSES_EXPORT(int)
 _nc_scrolln(int n, int top, int bot, int maxy)
 /* scroll region from top to bot by n lines */
 {
 _nc_scrolln(int n, int top, int bot, int maxy)
 /* scroll region from top to bot by n lines */
 {
-    chtype blank = ClrBlank(stdscr);
+    NCURSES_CH_T blank = ClrBlank(stdscr);
     int i;
     bool cursor_saved = FALSE;
     int res;
     int i;
     bool cursor_saved = FALSE;
     int res;
@@ -1666,13 +1684,14 @@ _nc_scrolln(int n, int top, int bot, int maxy)
         */
        if (res != ERR
            && (non_dest_scroll_region || (memory_below && bot == maxy))) {
         */
        if (res != ERR
            && (non_dest_scroll_region || (memory_below && bot == maxy))) {
+           NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
            if (bot == maxy && clr_eos) {
                GoTo(bot - n, 0);
            if (bot == maxy && clr_eos) {
                GoTo(bot - n, 0);
-               ClrToEOS(BLANK);
+               ClrToEOS(blank2);
            } else {
                for (i = 0; i < n; i++) {
                    GoTo(bot - i, 0);
            } else {
                for (i = 0; i < n; i++) {
                    GoTo(bot - i, 0);
-                   ClrToEOL(BLANK, FALSE);
+                   ClrToEOL(blank2, FALSE);
                }
            }
        }
                }
            }
        }
@@ -1711,9 +1730,10 @@ _nc_scrolln(int n, int top, int bot, int maxy)
         */
        if (res != ERR
            && (non_dest_scroll_region || (memory_above && top == 0))) {
         */
        if (res != ERR
            && (non_dest_scroll_region || (memory_above && top == 0))) {
+           NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
            for (i = 0; i < -n; i++) {
                GoTo(i + top, 0);
            for (i = 0; i < -n; i++) {
                GoTo(i + top, 0);
-               ClrToEOL(BLANK, FALSE);
+               ClrToEOL(blank2, FALSE);
            }
        }
     }
            }
        }
     }
@@ -1729,15 +1749,31 @@ _nc_scrolln(int n, int top, int bot, int maxy)
     return (OK);
 }
 
     return (OK);
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_screen_resume(void)
 {
     /* make sure terminal is in a sane known state */
     SP->_current_attr = A_NORMAL;
     newscr->_clear = TRUE;
 
 _nc_screen_resume(void)
 {
     /* make sure terminal is in a sane known state */
     SP->_current_attr = A_NORMAL;
     newscr->_clear = TRUE;
 
-    if (SP->_coloron == TRUE && orig_pair)
-       putp(orig_pair);
+    /* reset color pairs and definitions */
+    if (SP->_coloron || SP->_color_defs)
+       _nc_reset_colors();
+
+    /* restore user-defined colors, if any */
+    if (SP->_color_defs < 0) {
+       int n;
+       SP->_color_defs = -(SP->_color_defs);
+       for (n = 0; n < SP->_color_defs; ++n) {
+           if (SP->_color_table[n].init) {
+               init_color(n,
+                          SP->_color_table[n].r,
+                          SP->_color_table[n].g,
+                          SP->_color_table[n].b);
+           }
+       }
+    }
+
     if (exit_attribute_mode)
        putp(exit_attribute_mode);
     else {
     if (exit_attribute_mode)
        putp(exit_attribute_mode);
     else {
@@ -1755,20 +1791,21 @@ _nc_screen_resume(void)
        putp(auto_right_margin ? enter_am_mode : exit_am_mode);
 }
 
        putp(auto_right_margin ? enter_am_mode : exit_am_mode);
 }
 
-void
+NCURSES_EXPORT(void)
 _nc_screen_init(void)
 {
     _nc_screen_resume();
 }
 
 /* wrap up screen handling */
 _nc_screen_init(void)
 {
     _nc_screen_resume();
 }
 
 /* wrap up screen handling */
-void
+NCURSES_EXPORT(void)
 _nc_screen_wrap(void)
 {
     UpdateAttrs(A_NORMAL);
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
 _nc_screen_wrap(void)
 {
     UpdateAttrs(A_NORMAL);
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
+       NCURSES_CH_T blank = NewChar(BLANK_TEXT);
        SP->_default_color = TRUE;
        _nc_do_color(-1, 0, FALSE, _nc_outch);
        SP->_default_color = FALSE;
        SP->_default_color = TRUE;
        _nc_do_color(-1, 0, FALSE, _nc_outch);
        SP->_default_color = FALSE;
@@ -1777,13 +1814,16 @@ _nc_screen_wrap(void)
        SP->_cursrow = screen_lines - 1;
        SP->_curscol = 0;
 
        SP->_cursrow = screen_lines - 1;
        SP->_curscol = 0;
 
-       ClrToEOL(BLANK, TRUE);
+       ClrToEOL(blank, TRUE);
     }
 #endif
     }
 #endif
+    if (SP->_color_defs) {
+       _nc_reset_colors();
+    }
 }
 
 #if USE_XMC_SUPPORT
 }
 
 #if USE_XMC_SUPPORT
-void
+NCURSES_EXPORT(void)
 _nc_do_xmc_glitch(attr_t previous)
 {
     attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
 _nc_do_xmc_glitch(attr_t previous)
 {
     attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
diff --git a/ncurses/widechar/lib_box_set.c b/ncurses/widechar/lib_box_set.c
new file mode 100644 (file)
index 0000000..1c8480f
--- /dev/null
@@ -0,0 +1,113 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Authors: Sven Verdoolaege and Thomas Dickey 2001,2002                    *
+ ****************************************************************************/
+
+/*
+**     lib_box_set.c
+**
+**     The routine wborder_set().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_box_set.c,v 1.3 2002/09/15 00:18:05 tom Exp $")
+
+NCURSES_EXPORT(int)
+wborder_set(WINDOW *win,
+           const ARG_CH_T ls, const ARG_CH_T rs,
+           const ARG_CH_T ts, const ARG_CH_T bs,
+           const ARG_CH_T tl, const ARG_CH_T tr,
+           const ARG_CH_T bl, const ARG_CH_T br)
+{
+    NCURSES_SIZE_T i;
+    NCURSES_SIZE_T endx, endy;
+    NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
+
+    T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
+       win,
+       _tracech_t2(1, ls),
+       _tracech_t2(2, rs),
+       _tracech_t2(3, ts),
+       _tracech_t2(4, bs),
+       _tracech_t2(5, tl),
+       _tracech_t2(6, tr),
+       _tracech_t2(7, bl),
+       _tracech_t2(8, br)));
+
+    if (!win)
+       returnCode(ERR);
+
+#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == 0) ? *def : *ch)
+
+    RENDER_WITH_DEFAULT(ls, WACS_VLINE);
+    RENDER_WITH_DEFAULT(rs, WACS_VLINE);
+    RENDER_WITH_DEFAULT(ts, WACS_HLINE);
+    RENDER_WITH_DEFAULT(bs, WACS_HLINE);
+    RENDER_WITH_DEFAULT(tl, WACS_ULCORNER);
+    RENDER_WITH_DEFAULT(tr, WACS_URCORNER);
+    RENDER_WITH_DEFAULT(bl, WACS_LLCORNER);
+    RENDER_WITH_DEFAULT(br, WACS_LRCORNER);
+
+    T(("using %s, %s, %s, %s, %s, %s, %s, %s",
+       _tracech_t2(1, CHREF(wls)),
+       _tracech_t2(2, CHREF(wrs)),
+       _tracech_t2(3, CHREF(wts)),
+       _tracech_t2(4, CHREF(wbs)),
+       _tracech_t2(5, CHREF(wtl)),
+       _tracech_t2(6, CHREF(wtr)),
+       _tracech_t2(7, CHREF(wbl)),
+       _tracech_t2(8, CHREF(wbr))));
+
+    endx = win->_maxx;
+    endy = win->_maxy;
+
+    for (i = 0; i <= endx; i++) {
+       win->_line[0].text[i] = wts;
+       win->_line[endy].text[i] = wbs;
+    }
+    win->_line[endy].firstchar = win->_line[0].firstchar = 0;
+    win->_line[endy].lastchar = win->_line[0].lastchar = endx;
+
+    for (i = 0; i <= endy; i++) {
+       win->_line[i].text[0] = wls;
+       win->_line[i].text[endx] = wrs;
+       win->_line[i].firstchar = 0;
+       win->_line[i].lastchar = endx;
+    }
+    win->_line[0].text[0] = wtl;
+    win->_line[0].text[endx] = wtr;
+    win->_line[endy].text[0] = wbl;
+    win->_line[endy].text[endx] = wbr;
+
+    _nc_synchook(win);
+    returnCode(OK);
+}
diff --git a/ncurses/widechar/lib_cchar.c b/ncurses/widechar/lib_cchar.c
new file mode 100644 (file)
index 0000000..86b5e2e
--- /dev/null
@@ -0,0 +1,114 @@
+/****************************************************************************
+ * Copyright (c) 2001,2002 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "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.                                                           *
+ ****************************************************************************/
+
+/*
+**     lib_cchar.c
+**
+**     The routines setcchar() and getcchar().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_cchar.c,v 1.6 2002/08/10 22:27:37 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.
+ */
+NCURSES_EXPORT(int)
+setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
+        short color_pair, const void *opts)
+{
+    int i;
+    int len;
+    int code = OK;
+
+    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 > 0 && wcwidth(wch[0]) < 0)) {
+       code = ERR;
+    } else {
+
+       for (i = 1; i < len; ++i) {
+           if (wcwidth(wch[i]) != 0) {
+               code = ERR;
+               break;
+           }
+       }
+
+       if (code != ERR) {
+           memset(wcval, 0, sizeof(*wcval));
+
+           if (len != 0) {
+               SetAttr(*wcval, attrs | color_pair);
+               memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
+               TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
+                                 _tracecchar_t(wcval)));
+           }
+       }
+    }
+
+    TR(TRACE_CCALLS, (T_RETURN("%d"), code));
+    return (code);
+}
+
+NCURSES_EXPORT(int)
+getcchar(const cchar_t * wcval, wchar_t * wch, attr_t * attrs,
+        short *color_pair, void *opts)
+{
+    wchar_t *wp;
+    int len;
+    int code = ERR;
+
+    TR(TRACE_CCALLS, (T_CALLED("getcchar(%p,%p,%p,%p,%p)"),
+                     wcval, wch, attrs, color_pair, opts));
+
+    if (opts == NULL) {
+       len = (wp = wmemchr(wcval->chars, L'\0', CCHARW_MAX))
+           ? wp - wcval->chars
+           : CCHARW_MAX;
+
+       if (wch == NULL) {
+           code = len;
+       } else if (len >= 0) {
+           *attrs = AttrOf(*wcval);
+           *color_pair = AttrOf(*wcval) & A_COLOR;
+           wmemcpy(wch, wcval->chars, (unsigned) len);
+           wch[len] = L'\0';
+           code = OK;
+       }
+    }
+
+    TR(TRACE_CCALLS, (T_RETURN("%d"), code));
+    return (code);
+}
diff --git a/ncurses/widechar/lib_erasewchar.c b/ncurses/widechar/lib_erasewchar.c
new file mode 100644 (file)
index 0000000..7d64553
--- /dev/null
@@ -0,0 +1,77 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2002                                           *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_erasewchar.c,v 1.1 2002/05/11 20:38:06 tom Exp $")
+
+/*
+ *     erasewchar()
+ *
+ *     Return erase character as given in cur_term->Ottyb.
+ *
+ */
+
+NCURSES_EXPORT(int)
+erasewchar(wchar_t * wch)
+{
+    int value;
+    int result = ERR;
+
+    T((T_CALLED("erasewchar()")));
+    if ((value = erasechar()) != ERR) {
+       *wch = value;
+       result = OK;
+    }
+    returnCode(result);
+}
+
+/*
+ *     killwchar()
+ *
+ *     Return kill character as given in cur_term->Ottyb.
+ *
+ */
+
+NCURSES_EXPORT(int)
+killwchar(wchar_t * wch)
+{
+    int value;
+    int result = ERR;
+
+    T((T_CALLED("killwchar()")));
+    if ((value = killchar()) != ERR) {
+       *wch = value;
+       result = OK;
+    }
+    returnCode(result);
+}
diff --git a/ncurses/widechar/lib_get_wch.c b/ncurses/widechar/lib_get_wch.c
new file mode 100644 (file)
index 0000000..e2a7ce5
--- /dev/null
@@ -0,0 +1,99 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2002                                           *
+ ****************************************************************************/
+
+/*
+**     lib_get_wch.c
+**
+**     The routine get_wch().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_get_wch.c,v 1.5 2002/09/02 00:04:25 tom Exp $")
+
+NCURSES_EXPORT(int)
+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;
+
+    T((T_CALLED("wget_wch(%p)"), win));
+    /*
+     * We can get a stream of single-byte characters and KEY_xxx codes from
+     * _nc_wgetch(), while we want to return a wide character or KEY_xxx code.
+     */
+    for (;;) {
+       T(("reading %d of %d", count + 1, sizeof(buffer)));
+       code = _nc_wgetch(win, &value, TRUE);
+       if (code == ERR) {
+           break;
+       } else if (code == KEY_CODE_YES) {
+           /*
+            * If we were processing an incomplete multibyte character, return
+            * an error since we have a KEY_xxx code which interrupts it.  For
+            * some cases, we could improve this by writing a new version of
+            * lib_getch.c(!), but it is not clear whether the improvement
+            * would be worth the effort.
+            */
+           if (count != 0) {
+               ungetch(value);
+               code = ERR;
+           }
+           break;
+       } else if (count + 1 >= sizeof(buffer)) {
+           ungetch(value);
+           code = ERR;
+           break;
+       } else {
+           buffer[count++] = UChar(value);
+           memset(&state, 0, sizeof(state));
+           status = mbrlen(buffer, count, &state);
+           if (status >= 0) {
+               memset(&state, 0, sizeof(state));
+               if ((int) mbrtowc(&wch, buffer, count, &state) != status) {
+                   code = ERR; /* the two calls should match */
+               }
+               value = wch;
+               break;
+           }
+       }
+    }
+    *result = value;
+    T(("result %#lo", value));
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_get_wstr.c b/ncurses/widechar/lib_get_wstr.c
new file mode 100644 (file)
index 0000000..9467e53
--- /dev/null
@@ -0,0 +1,205 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2002                                           *
+ ****************************************************************************/
+
+/*
+**     lib_get_wstr.c
+**
+**     The routine wgetn_wstr().
+**
+*/
+
+#include <curses.priv.h>
+#include <term.h>
+
+MODULE_ID("$Id: lib_get_wstr.c,v 1.4 2002/07/20 19:28:29 tom Exp $")
+
+/*
+ * 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)
+{
+    if (last > first) {
+       *--last = '\0';
+       if (echoed) {
+           int y1 = win->_cury;
+           int x1 = win->_curx;
+
+           wmove(win, y, x);
+           waddwstr(win, first);
+           getyx(win, y, x);
+           while (win->_cury < y1
+                  || (win->_cury == y1 && win->_curx < x1))
+               waddch(win, (chtype) ' ');
+
+           wmove(win, y, x);
+       }
+    }
+    return last;
+}
+
+NCURSES_EXPORT(int)
+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 ch;
+    int y, x, code;
+
+    T((T_CALLED("wgetn_wstr(%p,%p, %d)"), win, str, maxlen));
+
+    if (!win)
+       returnCode(ERR);
+
+    _nc_get_tty_mode(&buf);
+
+    oldnl = SP->_nl;
+    oldecho = SP->_echo;
+    oldraw = SP->_raw;
+    oldcbreak = SP->_cbreak;
+    nl();
+    noecho();
+    noraw();
+    cbreak();
+
+    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))
+       wrefresh(win);
+
+    while ((code = wget_wch(win, &ch)) != ERR) {
+       if (code == KEY_CODE_YES) {
+           /*
+            * Some terminals (the Wyse-50 is the most common) generate a \n
+            * from the down-arrow key.  With this logic, it's the user's
+            * choice whether to set kcud=\n for wget_wch(); terminating
+            * *getn_wstr() with \n should work either way.
+            */
+           if (ch == '\n'
+               || ch == '\r'
+               || ch == KEY_DOWN
+               || ch == KEY_ENTER) {
+               if (oldecho == TRUE
+                   && win->_cury == win->_maxy
+                   && win->_scroll)
+                   wechochar(win, (chtype) '\n');
+               break;
+           }
+           if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) {
+               if (tmpstr > oldstr) {
+                   tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+               }
+           } else if (ch == killc) {
+               while (tmpstr > oldstr) {
+                   tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+               }
+           } else {
+               beep();
+           }
+       } else if (maxlen >= 0 && tmpstr - oldstr >= maxlen) {
+           beep();
+       } else {
+           *tmpstr++ = ch;
+           if (oldecho == TRUE) {
+               int oldy = win->_cury;
+               cchar_t tmp;
+
+               setcchar(&tmp, tmpstr - 1, A_NORMAL, 0, NULL);
+               if (wadd_wch(win, &tmp) == ERR) {
+                   /*
+                    * We can't really use the lower-right corner for input,
+                    * since it'll mess up bookkeeping for erases.
+                    */
+                   win->_flags &= ~_WRAPPED;
+                   waddch(win, (chtype) ' ');
+                   tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+                   continue;
+               } else if (win->_flags & _WRAPPED) {
+                   /*
+                    * If the last waddch forced a wrap & scroll, adjust our
+                    * reference point for erasures.
+                    */
+                   if (win->_scroll
+                       && oldy == win->_maxy
+                       && win->_cury == win->_maxy) {
+                       if (--y <= 0) {
+                           y = 0;
+                       }
+                   }
+                   win->_flags &= ~_WRAPPED;
+               }
+               wrefresh(win);
+           }
+       }
+    }
+
+    win->_curx = 0;
+    win->_flags &= ~_WRAPPED;
+    if (win->_cury < win->_maxy)
+       win->_cury++;
+    wrefresh(win);
+
+    /* Restore with a single I/O call, to fix minor asymmetry between
+     * raw/noraw, etc.
+     */
+    SP->_nl = oldnl;
+    SP->_echo = oldecho;
+    SP->_raw = oldraw;
+    SP->_cbreak = oldcbreak;
+
+    (void) _nc_set_tty_mode(&buf);
+
+    *tmpstr = 0;
+    if (code == ERR) {
+       if (tmpstr == oldstr) {
+           *tmpstr++ = (wchar_t)WEOF;
+           *tmpstr = 0;
+       }
+       returnCode(ERR);
+    }
+
+    T(("wgetn_wstr returns %s", _nc_viswbuf(oldstr)));
+
+    returnCode(OK);
+}
diff --git a/ncurses/widechar/lib_hline_set.c b/ncurses/widechar/lib_hline_set.c
new file mode 100644 (file)
index 0000000..43175de
--- /dev/null
@@ -0,0 +1,79 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas Dickey 2002                                              *
+ ****************************************************************************/
+
+/*
+**     lib_hline_set.c
+**
+**     The routine whline_set().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_hline_set.c,v 1.2 2002/03/23 21:35:34 tom Exp $")
+
+NCURSES_EXPORT(int)
+whline_set(WINDOW *win, const cchar_t * ch, int n)
+{
+    int code = ERR;
+    NCURSES_SIZE_T start;
+    NCURSES_SIZE_T end;
+
+    T((T_CALLED("whline_set(%p,%s,%d)"), win, _tracecchar_t(ch), n));
+
+    if (win) {
+       struct ldat *line = &(win->_line[win->_cury]);
+       NCURSES_CH_T wch;
+
+       start = win->_curx;
+       end = start + n - 1;
+       if (end > win->_maxx)
+           end = win->_maxx;
+
+       CHANGED_RANGE(line, start, end);
+
+       if (ch == 0)
+           wch = *WACS_HLINE;
+       else
+           wch = *ch;
+       wch = _nc_render(win, wch);
+
+       while (end >= start) {
+           line->text[end] = wch;
+           end--;
+       }
+
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_in_wch.c b/ncurses/widechar/lib_in_wch.c
new file mode 100644 (file)
index 0000000..5e110cb
--- /dev/null
@@ -0,0 +1,60 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas Dickey 2002                                               *
+ ****************************************************************************/
+
+/*
+**     lib_in_wch.c
+**
+**     The routine win_wch().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_in_wch.c,v 1.2 2002/08/03 20:23:29 tom Exp $")
+
+NCURSES_EXPORT(int)
+win_wch(WINDOW *win, cchar_t * wcval)
+{
+    int row, col;
+    int code = OK;
+
+    TR(TRACE_CCALLS, (T_CALLED("win_wch(%p,%p)"), win, wcval));
+    if (win != 0
+       && wcval != 0) {
+       getyx(win, row, col);
+
+       *wcval = win->_line[row].text[col];
+    } else {
+       code = ERR;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_in_wchnstr.c b/ncurses/widechar/lib_in_wchnstr.c
new file mode 100644 (file)
index 0000000..a757e72
--- /dev/null
@@ -0,0 +1,62 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas Dickey 2002                                               *
+ ****************************************************************************/
+
+/*
+**     lib_in_wchnstr.c
+**
+**     The routine win_wchnstr().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_in_wchnstr.c,v 1.2 2002/08/03 20:38:45 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));
+    if (win != 0
+       && wchstr != 0) {
+
+       if (n < 0) {
+           n = getmaxx(win) + 1 - getcurx(win);
+       }
+       while (n-- > 0)
+           win_wch(win, wchstr++);
+    } else {
+       code = ERR;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_ins_nwstr.c b/ncurses/widechar/lib_ins_nwstr.c
new file mode 100644 (file)
index 0000000..4b73771
--- /dev/null
@@ -0,0 +1,84 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas Dickey 2002                                               *
+ ****************************************************************************/
+
+/*
+**     lib_ins_nwstr.c
+**
+**     The routine wins_nwstr().
+**
+*/
+
+#include <curses.priv.h>
+#include <ctype.h>
+
+MODULE_ID("$Id: lib_ins_nwstr.c,v 1.3 2002/09/28 16:31:33 tom Exp $")
+
+NCURSES_EXPORT(int)
+wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
+{
+    int code = ERR;
+    NCURSES_SIZE_T oy;
+    NCURSES_SIZE_T ox;
+    const wchar_t *cp;
+
+    T((T_CALLED("wins_nwstr(%p,%s,%d)"), win, _nc_viswbufn(wstr,n), n));
+
+    if (win != 0
+       && wstr != 0
+       && wcwidth(*wstr) > 0) {
+       code = OK;
+       if (n < 1)
+           n = wcslen(wstr);
+       oy = win->_cury;
+       ox = win->_curx;
+       for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
+           NCURSES_CH_T wch;
+           SetChar2(wch, *cp);
+           if (*cp == '\n' || *cp == '\r' || *cp == '\t' || *cp == '\b') {
+               _nc_waddch_nosync(win, wch);
+           } else if (is7bits(*cp) && iscntrl(*cp)) {
+               winsch(win, ' ' + (chtype) (*cp));
+               winsch(win, (chtype) '^');
+               win->_curx += 2;
+           } else if (wins_wch(win, &wch) == ERR
+                      || win->_curx > win->_maxx) {
+               break;
+           }
+       }
+
+       win->_curx = ox;
+       win->_cury = oy;
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_ins_wch.c b/ncurses/widechar/lib_ins_wch.c
new file mode 100644 (file)
index 0000000..0821ee5
--- /dev/null
@@ -0,0 +1,65 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas Dickey 2002                                              *
+ ****************************************************************************/
+
+/*
+**     lib_ins_wch.c
+**
+**     The routine wins_wch().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_ins_wch.c,v 1.1 2002/03/10 22:25:06 tom Exp $")
+
+NCURSES_EXPORT(int)
+wins_wch(WINDOW *win, const cchar_t * wch)
+{
+    int code = ERR;
+
+    T((T_CALLED("wins_wch(%p, %s)"), win, _tracecchar_t(wch)));
+
+    if (win) {
+       struct ldat *line = &(win->_line[win->_cury]);
+       NCURSES_CH_T *end = &(line->text[win->_curx]);
+       NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+       NCURSES_CH_T *temp2 = temp1 - 1;
+
+       CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+       while (temp1 > end)
+           *temp1-- = *temp2--;
+
+       *temp1 = _nc_render(win, *wch);
+       code = OK;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_inwstr.c b/ncurses/widechar/lib_inwstr.c
new file mode 100644 (file)
index 0000000..91b1e0f
--- /dev/null
@@ -0,0 +1,100 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas Dickey 2002                                               *
+ ****************************************************************************/
+
+/*
+**     lib_inwstr.c
+**
+**     The routines winnwstr() and winwstr().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_inwstr.c,v 1.3 2002/10/06 00:56:36 tom Exp $")
+
+NCURSES_EXPORT(int)
+winnwstr(WINDOW *win, wchar_t * wstr, int n)
+{
+    int row, col, inx;
+    int count = 0;
+    int last = 0;
+    cchar_t *text;
+    wchar_t wch;
+
+    T((T_CALLED("winnwstr(%p,%p,%d)"), win, wstr, n));
+    if (wstr != 0) {
+       if (win) {
+           getyx(win, row, col);
+
+           text = win->_line[row].text;
+           while (count < n && count != ERR) {
+               if (!isnac(text[col])) {
+                   for (inx = 0; (inx < CCHARW_MAX)
+                        && ((wch = text[col].chars[inx]) != 0);
+                        ++inx) {
+                       if (count + 1 > n) {
+                           if ((count = last) == 0) {
+                               count = ERR;    /* error if we store nothing */
+                           }
+                           break;
+                       }
+                       wstr[count++] = wch;
+                   }
+               }
+               last = count;
+               if (++col > win->_maxx) {
+                   break;
+               }
+           }
+       }
+       if (count > 0) {
+           wstr[count] = '\0';
+           T(("winnwstr returns %s", _nc_viswbuf(wstr)));
+       }
+    }
+    returnCode(count);
+}
+
+/*
+ * X/Open says winwstr() returns OK if not ERR.  If that is not a blunder, it
+ * must have a null termination on the string (see above).  Unlike winnstr(),
+ * it does not define what happens for a negative count with winnwstr().
+ */
+NCURSES_EXPORT(int)
+winwstr(WINDOW *win, wchar_t * wstr)
+{
+    int result = OK;
+    T((T_CALLED("winwstr(%p,%p)"), win, wstr));
+    if (winnwstr(win, wstr, CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR)
+       result = ERR;
+    returnCode(result);
+}
diff --git a/ncurses/widechar/lib_unget_wch.c b/ncurses/widechar/lib_unget_wch.c
new file mode 100644 (file)
index 0000000..7a062fd
--- /dev/null
@@ -0,0 +1,76 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2002                                           *
+ ****************************************************************************/
+
+/*
+**     lib_unget_wch.c
+**
+**     The routine unget_wch().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_unget_wch.c,v 1.3 2002/06/29 21:11:02 tom Exp $")
+
+NCURSES_EXPORT(int)
+unget_wch(const wchar_t wch)
+{
+    int result = OK;
+    mbstate_t state;
+    size_t length;
+    int n;
+
+    T((T_CALLED("unget_wch(%#lx)"), wch));
+
+    memset(&state, 0, sizeof(state));
+    length = wcrtomb(0, wch, &state);
+
+    if (length != (size_t) (-1)
+       && length != 0) {
+       char *string = malloc(length);
+
+       memset(&state, 0, sizeof(state));
+       wcrtomb(string, wch, &state);
+
+       for (n = (int) (length - 1); n >= 0; --n) {
+           if (ungetch(string[n]) != OK) {
+               result = ERR;
+               break;
+           }
+       }
+       free(string);
+    } else {
+       result = ERR;
+    }
+
+    returnCode(result);
+}
diff --git a/ncurses/widechar/lib_vid_attr.c b/ncurses/widechar/lib_vid_attr.c
new file mode 100644 (file)
index 0000000..06e7880
--- /dev/null
@@ -0,0 +1,94 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2002                                           *
+ ****************************************************************************/
+
+#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 $")
+
+#define set_color(mode, pair) mode &= ~A_COLOR; mode |= COLOR_PAIR(pair)
+
+NCURSES_EXPORT(int)
+vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int))
+{
+    T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
+    set_color(newmode, pair);
+    returnCode(vidputs(newmode, outc));
+}
+
+#undef vid_attr
+NCURSES_EXPORT(int)
+vid_attr(attr_t newmode, short pair, void *opts GCC_UNUSED)
+{
+    T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
+    set_color(newmode, pair);
+    returnCode(vidputs(newmode, _nc_outch));
+}
+
+NCURSES_EXPORT(attr_t)
+term_attrs(void)
+{
+    attr_t attrs = WA_NORMAL;
+
+    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;
+
+    if (SP->_coloron)
+       attrs |= A_COLOR;
+
+    returnAttr(attrs);
+}
diff --git a/ncurses/widechar/lib_vline_set.c b/ncurses/widechar/lib_vline_set.c
new file mode 100644 (file)
index 0000000..af42df1
--- /dev/null
@@ -0,0 +1,78 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas Dickey 2002                                              *
+ ****************************************************************************/
+
+/*
+**     lib_vline_set.c
+**
+**     The routine wvline_set().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_vline_set.c,v 1.2 2002/03/23 21:36:01 tom Exp $")
+
+NCURSES_EXPORT(int)
+wvline_set(WINDOW *win, const cchar_t * ch, int n)
+{
+    int code = ERR;
+    NCURSES_SIZE_T row, col;
+    NCURSES_SIZE_T end;
+
+    T((T_CALLED("wvline(%p,%s,%d)"), win, _tracecchar_t(ch), n));
+
+    if (win) {
+       NCURSES_CH_T wch;
+       row = win->_cury;
+       col = win->_curx;
+       end = row + n - 1;
+       if (end > win->_maxy)
+           end = win->_maxy;
+
+       if (ch == 0)
+           wch = *WACS_VLINE;
+       else
+           wch = *ch;
+       wch = _nc_render(win, wch);
+
+       while (end >= row) {
+           struct ldat *line = &(win->_line[end]);
+           line->text[col] = wch;
+           CHANGED_CELL(line, col);
+           end--;
+       }
+
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
+}
diff --git a/ncurses/widechar/lib_wacs.c b/ncurses/widechar/lib_wacs.c
new file mode 100644 (file)
index 0000000..4f8a3f6
--- /dev/null
@@ -0,0 +1,127 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas Dickey 2002                                              *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+#include <term.h>
+
+MODULE_ID("$Id: lib_wacs.c,v 1.5 2002/08/31 19:44:17 tom Exp $")
+
+NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
+
+static int
+_nc_unicode_locale(void)
+{
+    char *s;
+    if (((s = getenv("LC_ALL")) != 0 && *s != '\0')
+       || ((s = getenv("LC_ALL")) != 0 && *s != '\0')
+       || ((s = getenv("LC_ALL")) != 0 && *s != '\0')) {
+       if (strstr(s, ".UTF-8") != 0)
+           return 1;
+    }
+    return 0;
+}
+
+NCURSES_EXPORT(void)
+_nc_init_wacs(void)
+{
+    /* *INDENT-OFF* */
+    static const struct {
+       int     map;
+       int     value[2];
+    } table[] = {
+       /* VT100 symbols */
+       { 'l',  { '+',  0x250c }},      /* upper left corner */
+       { 'm',  { '+',  0x2514 }},      /* lower left corner */
+       { 'k',  { '+',  0x2510 }},      /* upper right corner */
+       { 'j',  { '+',  0x2518 }},      /* lower right corner */
+       { 't',  { '+',  0x251c }},      /* tee pointing left */
+       { 'u',  { '+',  0x2524 }},      /* tee pointing right */
+       { 'v',  { '+',  0x2534 }},      /* tee pointing up */
+       { 'w',  { '+',  0x252c }},      /* tee pointing down */
+       { 'q',  { '-',  0x2500 }},      /* horizontal line */
+       { 'x',  { '|',  0x2502 }},      /* vertical line */
+       { 'n',  { '+',  0x253c }},      /* large plus or crossover */
+       { 'o',  { '~',  0x23ba }},      /* scan line 1 */
+       { 's',  { '_',  0x23bd }},      /* scan line 9 */
+       { '`',  { '+',  0x25c6 }},      /* diamond */
+       { 'a',  { ':',  0x2592 }},      /* checker board (stipple) */
+       { 'f',  { '\'', 0x00b0 }},      /* degree symbol */
+       { 'g',  { '#',  0x00b1 }},      /* plus/minus */
+       { '~',  { 'o',  0x00b7 }},      /* bullet */
+       /* Teletype 5410v1 symbols */
+       { ',',  { '<',  0x2190 }},      /* arrow pointing left */
+       { '+',  { '>',  0x2192 }},      /* arrow pointing right */
+       { '.',  { 'v',  0x2193 }},      /* arrow pointing down */
+       { '-',  { '^',  0x2191 }},      /* arrow pointing up */
+       { 'h',  { '#',  0x2592 }},      /* board of squares */
+       { 'i',  { '#',  0x2603 }},      /* lantern symbol */
+       { '0',  { '#',  0x25ae }},      /* solid square block */
+       /* these defaults were invented for ncurses */
+       { 'p',  { '-',  0x23bb }},      /* scan line 3 */
+       { 'r',  { '-',  0x23bc }},      /* scan line 7 */
+       { 'y',  { '<',  0x2264 }},      /* less-than-or-equal-to */
+       { 'z',  { '>',  0x2265 }},      /* greater-than-or-equal-to */
+       { '{',  { '*',  0x03c0 }},      /* greek pi */
+       { '|',  { '!',  0x2260 }},      /* not-equal */
+       { '}',  { 'f',  0x00a3 }},      /* pound-sterling symbol */
+    };
+    /* *INDENT-ON* */
+
+    unsigned n, m;
+    int active = _nc_unicode_locale();
+
+    /*
+     * If we're running in a UTF-8 locale, will use the Unicode equivalents
+     * rather than the terminfo information.  Actually the terminfo should
+     * be the rule, but there are people who are offended by the notion that
+     * a Unicode-capable terminal would have something resembling a mode.
+     * So the smacs/rmacs may be disabled -- sometime.
+     */
+    T(("initializing WIDE-ACS map (Unicode is%s active)",
+       active ? "" : " not"));
+
+    _nc_wacs = typeCalloc(cchar_t, ACS_LEN);
+    for (n = 0; n < SIZEOF(table); ++n) {
+       m = table[n].map;
+       if (active) {
+           SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL);
+       } else if (acs_map[m] & A_ALTCHARSET) {
+           SetChar(_nc_wacs[m], m, A_ALTCHARSET);
+       } else {
+           SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
+       }
+       T(("#%d, SetChar(%c, %#04x) = %s",
+          n, m,
+          table[n].value[active],
+          _tracecchar_t(&_nc_wacs[m])));
+    }
+}
diff --git a/ncurses/widechar/lib_wunctrl.c b/ncurses/widechar/lib_wunctrl.c
new file mode 100644 (file)
index 0000000..f4887d1
--- /dev/null
@@ -0,0 +1,56 @@
+/****************************************************************************
+ * Copyright (c) 2001 Free Software 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.                                                           *
+ ****************************************************************************/
+
+/*
+**     lib_wunctrl.c
+**
+**     The routine wunctrl().
+**
+*/
+
+#include <curses.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+MODULE_ID("$Id: lib_wunctrl.c,v 1.6 2001/09/22 19:18:02 tom Exp $")
+
+NCURSES_EXPORT(wchar_t *)
+wunctrl(cchar_t * wc)
+{
+    static wchar_t str[5], *sp;
+
+    if (Charable(*wc)) {
+       const char *p;
+       for (p = unctrl(wctob(CharOf(*wc))), sp = str; *p;)
+           *sp++ = btowc(*p++);
+       return str;
+    } else
+       return wc->chars;
+}
+
+#endif
index a33ca9c73d72a4f160c99c57ba636b1c7d279d33..c3592526d54830a243e09919824e47fffbd01d23 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.35 2000/10/14 17:57:02 Johnny.C.Lam Exp $
+# $Id: Makefile.in,v 1.41 2002/01/20 00:41:18 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.      #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -50,6 +50,7 @@ DESTDIR               = @DESTDIR@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
+bindir         = @bindir@
 libdir         = @libdir@
 includedir     = @includedir@
 datadir                = @datadir@
 libdir         = @libdir@
 includedir     = @includedir@
 datadir                = @datadir@
@@ -58,6 +59,7 @@ LIBTOOL               = @LIBTOOL@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
 
 INSTALL                = @INSTALL@
 INSTALL_LIB    = @INSTALL@ @INSTALL_LIB@
+INSTALL_PROG   = @INSTALL_PROG@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
 INSTALL_DATA   = @INSTALL_DATA@
 
 AR             = @AR@
@@ -70,7 +72,7 @@ CC            = @CC@
 CPP            = @CPP@
 CFLAGS         = @CFLAGS@
 
 CPP            = @CPP@
 CFLAGS         = @CFLAGS@
 
-CPPFLAGS       = @CPPFLAGS@ \
+CPPFLAGS       = @CPPFLAGS@ -I@top_srcdir@/ncurses \
                  -DHAVE_CONFIG_H
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
                  -DHAVE_CONFIG_H
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
@@ -86,7 +88,7 @@ CFLAGS_DEFAULT        = $(CFLAGS_@DFT_UPR_MODEL@)
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LINK           = $(LIBTOOL) $(CC)
 LDFLAGS                = @LDFLAGS@ @LD_MODEL@ @LIBS@
 
-SHLIB_DIRS     = -L../lib -L$(libdir)
+SHLIB_DIRS     = -L../lib
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
 SHLIB_LIST     = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 MK_SHARED_LIB  = @MK_SHARED_LIB@
@@ -98,6 +100,8 @@ ABI_VERSION  = @cf_cv_abi_version@
 
 RANLIB         = @RANLIB@
 
 
 RANLIB         = @RANLIB@
 
+IMPORT_LIB     = @IMPORT_LIB@
+SHARED_LIB     = @SHARED_LIB@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
 LIBRARIES      = @LIBS_TO_MAKE@
 
 LINT           = @LINT@
@@ -114,8 +118,9 @@ install ::  $(AUTO_SRC) $(LIBRARIES)
 
 sources:       $(AUTO_SRC)
 
 
 sources:       $(AUTO_SRC)
 
+$(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
 $(DESTDIR)$(libdir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 # make a copy to simplify include-paths while still keeping panel's include
 # file in this directory.
 
 # make a copy to simplify include-paths while still keeping panel's include
 # file in this directory.
@@ -134,7 +139,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
 
 clean :: mostlyclean
        -rm -f $(AUTO_SRC)
index 2ca1a3e31818b018634a70b13ee8f91381e01dd7..42bb0f536f66e87c1d37f5ed8a49da82c9b663d9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
+ *  Author: Thomas E. Dickey <dickey@clark.net> 1997,2002                   *
  ****************************************************************************/
 /* LINTLIBRARY */
 
  ****************************************************************************/
 /* LINTLIBRARY */
 
 
 #include "panel.priv.h"
 
 
 #include "panel.priv.h"
 
+#undef _nc_my_visbuf
+const char *_nc_my_visbuf(
+               const void *ptr)
+               { return(*(const char **)0); }
+
+#undef _nc_dPanel
+void   _nc_dPanel(
+               const char *text, 
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_dStack
+void   _nc_dStack(
+               const char *fmt, 
+               int     num, 
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Wnoutrefresh
+void   _nc_Wnoutrefresh(
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Touchpan
+void   _nc_Touchpan(
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Touchline
+void   _nc_Touchline(
+               const PANEL *pan, 
+               int     start, 
+               int     count)
+               { /* void */ }
 
 /* ./p_above.c */
 
 
 /* ./p_above.c */
 
diff --git a/panel/llib-lpanelw b/panel/llib-lpanelw
new file mode 100644 (file)
index 0000000..0c05a1e
--- /dev/null
@@ -0,0 +1,177 @@
+/****************************************************************************
+ * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey <dickey@clark.net> 2002                        *
+ ****************************************************************************/
+/* LINTLIBRARY */
+
+/* ./panel.c */
+
+#include "panel.priv.h"
+
+#undef _nc_my_visbuf
+const char *_nc_my_visbuf(
+               const void *ptr)
+               { return(*(const char **)0); }
+
+#undef _nc_dPanel
+void   _nc_dPanel(
+               const char *text, 
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_dStack
+void   _nc_dStack(
+               const char *fmt, 
+               int     num, 
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Wnoutrefresh
+void   _nc_Wnoutrefresh(
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Touchpan
+void   _nc_Touchpan(
+               const PANEL *pan)
+               { /* void */ }
+
+#undef _nc_Touchline
+void   _nc_Touchline(
+               const PANEL *pan, 
+               int     start, 
+               int     count)
+               { /* void */ }
+
+/* ./p_above.c */
+
+#undef panel_above
+PANEL  *panel_above(
+               const PANEL *pan)
+               { return(*(PANEL **)0); }
+
+/* ./p_below.c */
+
+#undef panel_below
+PANEL  *panel_below(
+               const PANEL *pan)
+               { return(*(PANEL **)0); }
+
+/* ./p_bottom.c */
+
+#undef bottom_panel
+int    bottom_panel(
+               PANEL   *pan)
+               { return(*(int *)0); }
+
+/* ./p_delete.c */
+
+#undef del_panel
+int    del_panel(
+               PANEL   *pan)
+               { return(*(int *)0); }
+
+/* ./p_hide.c */
+
+#undef hide_panel
+int    hide_panel(
+                PANEL  *pan)
+               { return(*(int *)0); }
+
+/* ./p_hidden.c */
+
+#undef panel_hidden
+int    panel_hidden(
+               const PANEL *pan)
+               { return(*(int *)0); }
+
+/* ./p_move.c */
+
+#undef move_panel
+int    move_panel(
+               PANEL   *pan, 
+               int     starty, 
+               int     startx)
+               { return(*(int *)0); }
+
+/* ./p_new.c */
+
+#undef new_panel
+PANEL  *new_panel(
+               WINDOW  *win)
+               { return(*(PANEL **)0); }
+
+/* ./p_replace.c */
+
+#undef replace_panel
+int    replace_panel(
+               PANEL   *pan, 
+               WINDOW  *win)
+               { return(*(int *)0); }
+
+/* ./p_show.c */
+
+#undef show_panel
+int    show_panel(
+               PANEL   *pan)
+               { return(*(int *)0); }
+
+/* ./p_top.c */
+
+#undef top_panel
+int    top_panel(
+               PANEL   *pan)
+               { return(*(int *)0); }
+
+/* ./p_update.c */
+
+#undef update_panels
+void   update_panels(void)
+               { /* void */ }
+
+/* ./p_user.c */
+
+#undef set_panel_userptr
+int    set_panel_userptr(
+               PANEL   *pan, 
+               void    *uptr)
+               { return(*(int *)0); }
+
+#undef panel_userptr
+void   *panel_userptr(
+               const PANEL *pan)
+               { return(*(void **)0); }
+
+/* ./p_win.c */
+
+#undef panel_window
+WINDOW *panel_window(
+               const PANEL *pan)
+               { return(*(WINDOW **)0); }
index fa32196db42b109c459cc3a3e434b2992734a693..36e67d2b43df6e85ff335038a8d03cd43d0f3f9b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_above.c,v 1.3 1999/09/18 11:03:28 juergen Exp $")
+MODULE_ID("$Id: p_above.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
 
 
-PANEL*
-panel_above(const PANEL *pan)
+NCURSES_EXPORT(PANEL *)
+panel_above (const PANEL *pan)
 {
   if(!pan)
     {
 {
   if(!pan)
     {
index a7eb4705789e87bb75fdeedcb8bad315f0ba1e07..5420ff9eeb66d1a6e454fc50b389c457b650dffd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_below.c,v 1.3 1999/09/18 11:03:33 juergen Exp $")
+MODULE_ID("$Id: p_below.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
 
 
-PANEL*
-panel_below(const PANEL *pan)
+NCURSES_EXPORT(PANEL*)
+panel_below (const PANEL *pan)
 {
   if(!pan)
     {
 {
   if(!pan)
     {
index f671864231db6e74bcedf10dedb9de265aa94a38..0928e77eb828ddb2a1c37b3b155c97a499dcba47 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_bottom.c,v 1.7 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_bottom.c,v 1.9 2001/02/24 23:46:33 tom Exp $")
 
 
-int
-bottom_panel(PANEL *pan)
+NCURSES_EXPORT(int)
+bottom_panel (PANEL *pan)
 {
   int err = OK;
 
 {
   int err = OK;
 
@@ -49,7 +49,7 @@ bottom_panel(PANEL *pan)
       
       dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
      
       
       dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
      
-      HIDE_PANEL(pan,err,FALSE);
+      HIDE_PANEL(pan,err,OK);
       assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
       
       dStack("<lb%d>",1,pan);      
       assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
       
       dStack("<lb%d>",1,pan);      
index 3f975d3b3e89f6a46afbfa2c328f7f0c7c17c752..1d4670effc06cbbaf09d29a3967f3424e26506ed 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_delete.c,v 1.4 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_delete.c,v 1.6 2001/02/24 23:46:41 tom Exp $")
 
 
-int
-del_panel(PANEL *pan)
+NCURSES_EXPORT(int)
+del_panel (PANEL *pan)
 {
   int err = OK;
   if(pan)
     {
       dBug(("--> del_panel %s", USER_PTR(pan->user)));
 {
   int err = OK;
   if(pan)
     {
       dBug(("--> del_panel %s", USER_PTR(pan->user)));
-      HIDE_PANEL(pan,err,FALSE);
+      HIDE_PANEL(pan,err,OK);
       free((void *)pan);
     }
   else
       free((void *)pan);
     }
   else
index 7a13ec4335dfe71d73c8e2f6fd6c47e08f89f3c7..d5d13f37a5ef34e26669eae8a3afa594d5c5e7f2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hidden.c,v 1.4 1999/11/22 18:02:41 juergen Exp $")
+MODULE_ID("$Id: p_hidden.c,v 1.5 2000/12/10 02:20:44 tom Exp $")
 
 
-int
-panel_hidden(const PANEL *pan)
+NCURSES_EXPORT(int)
+panel_hidden (const PANEL *pan)
 {
   if(!pan)
     return(ERR);
 {
   if(!pan)
     return(ERR);
index ecc9eed2226f5e078707c9a2bf047565bd19badf..755997374136c843714ea6162d39ccea8c16568b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hide.c,v 1.5 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_hide.c,v 1.7 2001/02/24 23:46:45 tom Exp $")
 
 
-int
-hide_panel(register PANEL *pan)
+NCURSES_EXPORT(int)
+hide_panel (register PANEL *pan)
 {
   int err = OK;
 
 {
   int err = OK;
 
@@ -49,7 +49,7 @@ hide_panel(register PANEL *pan)
   dBug(("--> hide_panel %s", USER_PTR(pan->user)));
   dStack("<u%d>",1,pan);
 
   dBug(("--> hide_panel %s", USER_PTR(pan->user)));
   dStack("<u%d>",1,pan);
 
-  HIDE_PANEL(pan,err,TRUE);
+  HIDE_PANEL(pan,err,ERR);
 
   dStack("<u%d>",9,pan);
 
 
   dStack("<u%d>",9,pan);
 
index d34b4fb84e56b3434fc5dbe8a7120dd396dccdd0..d7dbd2eafc3f04e66db9168a44a8dce12a16ad40 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_move.c,v 1.5 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_move.c,v 1.7 2001/02/24 23:41:35 tom Exp $")
 
 
-int
-move_panel(PANEL *pan, int starty, int startx)
+NCURSES_EXPORT(int)
+move_panel (PANEL *pan, int starty, int startx)
 {
   if(!pan)
     return(ERR);
 
 {
   if(!pan)
     return(ERR);
 
-  if (IS_LINKED(pan))
-    PANEL_UPDATE(pan,(PANEL*)0, TRUE);
+  if (IS_LINKED(pan)) {
+    Touchpan(pan);
+    PANEL_UPDATE(pan,(PANEL*)0);
+  }
 
   if (mvwin(pan->win,starty,startx))
     return(ERR);
 
   if (mvwin(pan->win,starty,startx))
     return(ERR);
index 43542fea2154313e796b6b373420081eaab4c833..3dfd80691704f440fc2b0e636da22ac1bcfdc2cb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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 "panel.priv.h"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_new.c,v 1.5 1999/11/22 18:02:41 juergen Exp $")
+MODULE_ID("$Id: p_new.c,v 1.6 2000/12/10 02:20:44 tom Exp $")
 
 #ifdef TRACE
 static char* stdscr_id;
 
 #ifdef TRACE
 static char* stdscr_id;
@@ -74,8 +74,8 @@ root_panel(void)
   return _nc_stdscr_pseudo_panel;
 }
 
   return _nc_stdscr_pseudo_panel;
 }
 
-PANEL *
-new_panel(WINDOW *win)
+NCURSES_EXPORT(PANEL *)
+new_panel (WINDOW *win)
 {
   PANEL *pan = (PANEL*)0;
 
 {
   PANEL *pan = (PANEL*)0;
 
index b7d51746610febff2122870bd3c42570f25e5431..a3b88cbfa88efddaa8b684a190b7789963f4bccf 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_replace.c,v 1.5 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_replace.c,v 1.7 2001/02/24 23:41:38 tom Exp $")
 
 
-int
-replace_panel(PANEL *pan, WINDOW *win)
+NCURSES_EXPORT(int)
+replace_panel (PANEL *pan, WINDOW *win)
 {
   if(!pan)
     return(ERR);
 
 {
   if(!pan)
     return(ERR);
 
-  if (IS_LINKED(pan))
-    PANEL_UPDATE(pan,(PANEL*)0, TRUE);
+  if (IS_LINKED(pan)) {
+    Touchpan(pan);
+    PANEL_UPDATE(pan,(PANEL*)0);
+  }
   
   pan->win = win;
 
   
   pan->win = win;
 
index 4fc7b1dbcba1034c949745283f35866e3ffbec0e..0e1968fdea5847c37b6e6bd98113ea9a118f1bf1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_show.c,v 1.7 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_show.c,v 1.9 2001/02/24 23:46:50 tom Exp $")
 
 
-int
-show_panel(PANEL *pan)
+NCURSES_EXPORT(int)
+show_panel (PANEL *pan)
 { 
   int err = OK;
 
 { 
   int err = OK;
 
@@ -51,7 +51,7 @@ show_panel(PANEL *pan)
 
   dBug(("--> show_panel %s", USER_PTR(pan->user)));
 
 
   dBug(("--> show_panel %s", USER_PTR(pan->user)));
 
-  HIDE_PANEL(pan,err,FALSE);
+  HIDE_PANEL(pan,err,OK);
 
   dStack("<lt%d>",1,pan);
   assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
 
   dStack("<lt%d>",1,pan);
   assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
index 2ce5bb3e6695723ba08fd371f53129184224f8af..aa7d9d420e5ebf858d8a9f8c0ae66673931f8bd9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_top.c,v 1.2 1998/02/11 12:14:01 tom Exp $")
+MODULE_ID("$Id: p_top.c,v 1.3 2000/12/10 02:20:44 tom Exp $")
 
 
-int
-top_panel(PANEL *pan)
+NCURSES_EXPORT(int)
+top_panel (PANEL *pan)
 {
   return(show_panel(pan));
 }
 {
   return(show_panel(pan));
 }
index 983d0b607288b22bc57b6ba9f53a5d4863a53aee..1a03739d14af0822b6ef104064e945be20a13a7e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_update.c,v 1.5 1999/11/25 13:49:26 juergen Exp $")
+MODULE_ID("$Id: p_update.c,v 1.7 2001/02/24 23:41:42 tom Exp $")
 
 
-void
-update_panels(void)
+NCURSES_EXPORT(void)
+update_panels (void)
 {
   PANEL *pan;
 
 {
   PANEL *pan;
 
@@ -47,7 +47,7 @@ update_panels(void)
   pan = _nc_bottom_panel;
   while(pan && pan->above)
     {
   pan = _nc_bottom_panel;
   while(pan && pan->above)
     {
-      PANEL_UPDATE(pan,pan->above, FALSE);
+      PANEL_UPDATE(pan,pan->above);
       pan = pan->above;
     }
 
       pan = pan->above;
     }
 
index 28b6526bb41c6c84ac6587a29c9444a30d56deae..de1ec7dd84c24f18eddfdca91fa1068825b42ed1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_user.c,v 1.3 1998/02/11 12:14:01 tom Exp $")
+MODULE_ID("$Id: p_user.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
 
 
-int
-set_panel_userptr(PANEL *pan, NCURSES_CONST void *uptr)
+NCURSES_EXPORT(int)
+set_panel_userptr
+(PANEL *pan, NCURSES_CONST void *uptr)
 {
   if(!pan)
     return(ERR);
 {
   if(!pan)
     return(ERR);
@@ -47,8 +48,8 @@ set_panel_userptr(PANEL *pan, NCURSES_CONST void *uptr)
   return(OK);
 }
 
   return(OK);
 }
 
-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);
 }
 {
   return(pan ? pan->user : (NCURSES_CONST void *)0);
 }
index 9c5a313de36f51c58dbceddd839fd3e4f417d73d..2b9f5b0c8297a27060d8018fb91f23624746d9e3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_win.c,v 1.2 1998/02/11 12:14:01 tom Exp $")
+MODULE_ID("$Id: p_win.c,v 1.3 2000/12/10 02:20:43 tom Exp $")
 
 
-WINDOW*
-panel_window(const PANEL *pan)
+NCURSES_EXPORT(WINDOW *)
+panel_window (const PANEL *pan)
 {
   return(pan ? pan->win : (WINDOW *)0);
 }
 {
   return(pan ? pan->win : (WINDOW *)0);
 }
index 1b79b77f147e0abd95aee4d678c3ea27c76c6d7d..a56d57ef5ea8990809a6f06575a3779ba3bddf05 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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"
 
 /* panel.c -- implementation of panels library, some core routines */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: panel.c,v 1.18 1999/09/29 15:22:32 juergen Exp $")
+MODULE_ID("$Id: panel.c,v 1.20 2001/02/24 23:17:26 tom Exp $")
 
 #ifdef TRACE
 #ifndef TRACE_TXT
 
 #ifdef TRACE
 #ifndef TRACE_TXT
-const char *_nc_my_visbuf(const void *ptr)
+NCURSES_EXPORT(const char *)
+_nc_my_visbuf (const void *ptr)
 {
        char temp[32];
        if (ptr != 0)
 {
        char temp[32];
        if (ptr != 0)
@@ -55,8 +56,9 @@ const char *_nc_my_visbuf(const void *ptr)
        dPanel(text,pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
        dPanel(text,pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
-void
-_nc_dPanel(const char *text, const PANEL *pan)
+NCURSES_EXPORT(void)
+_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),
 {
        _tracef("%s id=%s b=%s a=%s y=%d x=%d",
                text, USER_PTR(pan->user),
@@ -70,8 +72,9 @@ _nc_dPanel(const char *text, const PANEL *pan)
        dStack(fmt,num,pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
        dStack(fmt,num,pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
-void
-_nc_dStack(const char *fmt, int num, const PANEL *pan)
+NCURSES_EXPORT(void)
+_nc_dStack 
+(const char *fmt, int num, const PANEL *pan)
 {
   char s80[80];
 
 {
   char s80[80];
 
@@ -94,8 +97,8 @@ _nc_dStack(const char *fmt, int num, const PANEL *pan)
        Wnoutrefresh(pan) - debugging hook for wnoutrefresh
 --------------------------------------------------------------------------*/
 #ifdef TRACE
        Wnoutrefresh(pan) - debugging hook for wnoutrefresh
 --------------------------------------------------------------------------*/
 #ifdef TRACE
-void
-_nc_Wnoutrefresh(const PANEL *pan)
+NCURSES_EXPORT(void)
+_nc_Wnoutrefresh (const PANEL *pan)
 {
   dPanel("wnoutrefresh",pan);
   wnoutrefresh(pan->win);
 {
   dPanel("wnoutrefresh",pan);
   wnoutrefresh(pan->win);
@@ -106,8 +109,8 @@ _nc_Wnoutrefresh(const PANEL *pan)
        Touchpan(pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
        Touchpan(pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
-void
-_nc_Touchpan(const PANEL *pan)
+NCURSES_EXPORT(void)
+_nc_Touchpan (const PANEL *pan)
 {
   dPanel("Touchpan",pan);
   touchwin(pan->win);
 {
   dPanel("Touchpan",pan);
   touchwin(pan->win);
@@ -118,8 +121,9 @@ _nc_Touchpan(const PANEL *pan)
        Touchline(pan,start,count)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
        Touchline(pan,start,count)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
-void
-_nc_Touchline(const PANEL *pan, int start, int count)
+NCURSES_EXPORT(void)
+_nc_Touchline 
+(const PANEL *pan, int start, int count)
 {
   char s80[80];
   sprintf(s80,"Touchline s=%d c=%d",start,count);
 {
   char s80[80];
   sprintf(s80,"Touchline s=%d c=%d",start,count);
@@ -131,6 +135,6 @@ _nc_Touchline(const PANEL *pan, int start, int count)
 #ifndef TRACE
 #  ifndef __GNUC__
      /* Some C compilers need something defined in a source file */
 #ifndef TRACE
 #  ifndef __GNUC__
      /* Some C compilers need something defined in a source file */
-     static char GCC_UNUSED dummy;
+     void _nc_dummy_panel(void) { }
 #  endif
 #endif
 #  endif
 #endif
index dc33071ba1757f29ad5ef0f9c3b8e2e39ff21eef..3b8542a7adceeb57ea2d6ae7aa18744e723f2f0b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,8 +33,8 @@
 
 /* panel.h -- interface file for panels library */
 
 
 /* panel.h -- interface file for panels library */
 
-#ifndef _PANEL_H
-#define _PANEL_H
+#ifndef NCURSES_PANEL_H_incl
+#define NCURSES_PANEL_H_incl 1
 
 #include <curses.h>
 
 
 #include <curses.h>
 
@@ -50,26 +50,26 @@ typedef struct panel
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
-extern  WINDOW* panel_window(const PANEL *);
-extern  void    update_panels(void);
-extern  int     hide_panel(PANEL *);
-extern  int     show_panel(PANEL *);
-extern  int     del_panel(PANEL *);
-extern  int     top_panel(PANEL *);
-extern  int     bottom_panel(PANEL *);
-extern  PANEL*  new_panel(WINDOW *);
-extern  PANEL*  panel_above(const PANEL *);
-extern  PANEL*  panel_below(const PANEL *);
-extern  int     set_panel_userptr(PANEL *, NCURSES_CONST void *);
-extern  NCURSES_CONST void* panel_userptr(const PANEL *);
-extern  int     move_panel(PANEL *, int, int);
-extern  int     replace_panel(PANEL *,WINDOW *);
-extern int     panel_hidden(const PANEL *);
+extern NCURSES_EXPORT(WINDOW*) panel_window (const PANEL *);
+extern NCURSES_EXPORT(void)    update_panels (void);
+extern NCURSES_EXPORT(int)     hide_panel (PANEL *);
+extern NCURSES_EXPORT(int)     show_panel (PANEL *);
+extern NCURSES_EXPORT(int)     del_panel (PANEL *);
+extern NCURSES_EXPORT(int)     top_panel (PANEL *);
+extern NCURSES_EXPORT(int)     bottom_panel (PANEL *);
+extern NCURSES_EXPORT(PANEL*)  new_panel (WINDOW *);
+extern NCURSES_EXPORT(PANEL*)  panel_above (const PANEL *);
+extern NCURSES_EXPORT(PANEL*)  panel_below (const PANEL *);
+extern NCURSES_EXPORT(int)     set_panel_userptr (PANEL *, NCURSES_CONST void *);
+extern NCURSES_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *);
+extern NCURSES_EXPORT(int)     move_panel (PANEL *, int, int);
+extern NCURSES_EXPORT(int)     replace_panel (PANEL *,WINDOW *);
+extern NCURSES_EXPORT(int)     panel_hidden (const PANEL *);
 
 #if    defined(__cplusplus)
 }
 #endif
 
 
 #if    defined(__cplusplus)
 }
 #endif
 
-#endif /* _PANEL_H */
+#endif /* NCURSES_PANEL_H_incl */
 
 /* end of panel.h */
 
 /* end of panel.h */
index f5a4798f0e0f475e1bf9dbaa133afa45440b6384..7097d8423cf5717776ef31062a4b7564c7d0de50 100644 (file)
  * authorization.                                                           *
  ****************************************************************************/
 
  * authorization.                                                           *
  ****************************************************************************/
 
-/* $Id: panel.priv.h,v 1.14 2000/09/02 18:22:23 tom Exp $ */
+/* $Id: panel.priv.h,v 1.19 2001/06/02 23:31:05 tom Exp $ */
 
 
-#ifndef _PANEL_PRIV_H
-#define _PANEL_PRIV_H
+#ifndef NCURSES_PANEL_PRIV_H
+#define NCURSES_PANEL_PRIV_H 1
 
 #if HAVE_CONFIG_H
 #  include <ncurses_cfg.h>
 
 #if HAVE_CONFIG_H
 #  include <ncurses_cfg.h>
@@ -47,8 +47,9 @@
 #  include <dbmalloc.h>   /* Conor Cahill's library */
 #endif
 
 #  include <dbmalloc.h>   /* Conor Cahill's library */
 #endif
 
-#include <nc_panel.h>
+#include "curses.priv.h"
 #include "panel.h"
 #include "panel.h"
+#include <nc_panel.h>
 
 #if ( CC_HAS_INLINE_FUNCS && !defined(TRACE) )
 #  define INLINE inline
 
 #if ( CC_HAS_INLINE_FUNCS && !defined(TRACE) )
 #  define INLINE inline
 
 
 #ifdef TRACE
 
 
 #ifdef TRACE
-   extern const char *_nc_my_visbuf(const void *);
+   extern NCURSES_EXPORT(const char *) _nc_my_visbuf (const void *);
 #  ifdef TRACE_TXT
 #    define USER_PTR(ptr) _nc_visbuf((const char *)ptr)
 #  else
 #    define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
 #  endif
 
 #  ifdef TRACE_TXT
 #    define USER_PTR(ptr) _nc_visbuf((const char *)ptr)
 #  else
 #    define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
 #  endif
 
-   extern void _nc_dPanel(const char*, const PANEL*);
-   extern void _nc_dStack(const char*, int, const PANEL*);
-   extern void _nc_Wnoutrefresh(const PANEL*);
-   extern void _nc_Touchpan(const PANEL*);
-   extern void _nc_Touchline(const PANEL*, int, int);
+   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*);
+   extern NCURSES_EXPORT(void) _nc_Touchpan (const PANEL*);
+   extern NCURSES_EXPORT(void) _nc_Touchline (const PANEL*, int, int);
 
 #  define dBug(x) _tracef x
 #  define dPanel(text,pan) _nc_dPanel(text,pan)
 
 #  define dBug(x) _tracef x
 #  define dPanel(text,pan) _nc_dPanel(text,pan)
 #define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
 #define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
 
 #define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
 #define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
 
-/* borrowed from curses.priv.h */
-#define CHANGED_RANGE(line,start,end) \
-       if (line->firstchar == _NOCHANGE \
-        || line->firstchar > (start)) \
-               line->firstchar = start; \
-       if (line->lastchar == _NOCHANGE \
-        || line->lastchar < (end)) \
-               line->lastchar = end
-
 /*+-------------------------------------------------------------------------
        IS_LINKED(pan) - check to see if panel is in the stack
 --------------------------------------------------------------------------*/
 /*+-------------------------------------------------------------------------
        IS_LINKED(pan) - check to see if panel is in the stack
 --------------------------------------------------------------------------*/
         If the "touch" flag is set, the panel gets touched before it is
         updated. 
 ---------------------------------------------------------------------------*/
         If the "touch" flag is set, the panel gets touched before it is
         updated. 
 ---------------------------------------------------------------------------*/
-#define PANEL_UPDATE(pan,panstart,touch)\
+#define PANEL_UPDATE(pan,panstart)\
 {  PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
 {  PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
-   if (touch)\
-      Touchpan(pan);\
    while(pan2) {\
       if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
         int y,ix1,ix2,iy1,iy2;\
    while(pan2) {\
       if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
         int y,ix1,ix2,iy1,iy2;\
 
 #define HIDE_PANEL(pan,err,err_if_unlinked)\
   if (IS_LINKED(pan)) {\
 
 #define HIDE_PANEL(pan,err,err_if_unlinked)\
   if (IS_LINKED(pan)) {\
-    PANEL_UPDATE(pan,(PANEL*)0,TRUE);\
+    Touchpan(pan);\
+    PANEL_UPDATE(pan,(PANEL*)0);\
     PANEL_UNLINK(pan,err);\
   } \
   else {\
     PANEL_UNLINK(pan,err);\
   } \
   else {\
-    if (err_if_unlinked)\
-      err = ERR;\
+      err = err_if_unlinked;\
   }
 
   }
 
-#endif /* _PANEL_PRIV_H */
+#endif /* NCURSES_PANEL_PRIV_H */
index 5486fd7436891d9d81802f9dbbb7a0295e24a813..7f5b79a8840d957b17ffe12e33c4560c5c535a33 100755 (executable)
@@ -1,20 +1,55 @@
 #!/bin/sh
 #!/bin/sh
-# $Id: MKtermsort.sh,v 1.6 2000/01/25 11:35:36 tom Exp $
+# $Id: MKtermsort.sh,v 1.8 2002/06/29 20:02:48 tom Exp $
 #
 # MKtermsort.sh -- generate indirection vectors for the various sort methods
 #
 #
 # MKtermsort.sh -- generate indirection vectors for the various sort methods
 #
+##############################################################################
+# Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "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.                                                             #
+##############################################################################
+#
 # The output of this script is C source for nine arrays that list three sort
 # orders for each of the three different classes of terminfo capabilities.
 #
 # keep the order independent of locale:
 # The output of this script is C source for nine arrays that list three sort
 # orders for each of the three different classes of terminfo capabilities.
 #
 # keep the order independent of locale:
-LANGUAGE=C
-LC_ALL=C
-export LANGUAGE
-export LC_ALL
+if test "${LANGUAGE+set}"    = set; then LANGUAGE=C;    export LANGUAGE;    fi
+if test "${LANG+set}"        = set; then LANG=C;        export LANG;        fi
+if test "${LC_ALL+set}"      = set; then LC_ALL=C;      export LC_ALL;      fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+if test "${LC_COLLATE+set}"  = set; then LC_COLLATE=C;  export LC_COLLATE;  fi
 #
 AWK=${1-awk}
 DATA=${2-../include/Caps}
 
 #
 AWK=${1-awk}
 DATA=${2-../include/Caps}
 
+data=data$$
+trap 'rm -f $data' 1 2 5 15
+sed -e 's/[    ]\+/    /g' < $DATA >$data
+DATA=$data
+
 echo "/*";
 echo " * termsort.c --- sort order arrays for use by infocmp.";
 echo " *";
 echo "/*";
 echo " * termsort.c --- sort order arrays for use by infocmp.";
 echo " *";
@@ -104,24 +139,26 @@ echo "";
 
 echo "static const bool bool_from_termcap[] = {";
 $AWK <$DATA '
 
 echo "static const bool bool_from_termcap[] = {";
 $AWK <$DATA '
-$3 == "bool" && substr($5, 1, 1) == "-"       {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "bool" && substr($5, 1, 1) == "Y"       {print "\tTRUE,\t/* ", $2, " */";}
+$3 == "bool" && substr($7, 1, 1) == "-"       {print "\tFALSE,\t/* ", $2, " */";}
+$3 == "bool" && substr($7, 1, 1) == "Y"       {print "\tTRUE,\t/* ", $2, " */";}
 '
 echo "};";
 echo "";
 
 echo "static const bool num_from_termcap[] = {";
 $AWK <$DATA '
 '
 echo "};";
 echo "";
 
 echo "static const bool num_from_termcap[] = {";
 $AWK <$DATA '
-$3 == "num" && substr($5, 1, 1) == "-"        {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "num" && substr($5, 1, 1) == "Y"        {print "\tTRUE,\t/* ", $2, " */";}
+$3 == "num" && substr($7, 1, 1) == "-"        {print "\tFALSE,\t/* ", $2, " */";}
+$3 == "num" && substr($7, 1, 1) == "Y"        {print "\tTRUE,\t/* ", $2, " */";}
 '
 echo "};";
 echo "";
 
 echo "static const bool str_from_termcap[] = {";
 $AWK <$DATA '
 '
 echo "};";
 echo "";
 
 echo "static const bool str_from_termcap[] = {";
 $AWK <$DATA '
-$3 == "str" && substr($5, 1, 1) == "-"        {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "str" && substr($5, 1, 1) == "Y"        {print "\tTRUE,\t/* ", $2, " */";}
+$3 == "str" && substr($7, 1, 1) == "-"        {print "\tFALSE,\t/* ", $2, " */";}
+$3 == "str" && substr($7, 1, 1) == "Y"        {print "\tTRUE,\t/* ", $2, " */";}
 '
 echo "};";
 echo "";
 '
 echo "};";
 echo "";
+
+rm -f $data
index b93ef8fa8e54717edecd58c33b8691ecf5783c81..43b85c43faa468be1c1bb4d61a3357ab7041dc2e 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.51 2000/10/14 22:19:14 tom Exp $
+# $Id: Makefile.in,v 1.56 2001/12/08 18:48:01 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.           #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -107,7 +107,10 @@ AUTO_SRC = \
        termsort.c \
        transform.h
 
        termsort.c \
        transform.h
 
-PROGS = tic$x toe$x infocmp$x clear$x tput$x tset$x
+# tic and toe rely on direct access to the terminfo database
+GET_PROGS = infocmp$x clear$x tput$x tset$x
+PUT_PROGS = @MAKE_TERMINFO@ tic$x toe$x
+PROGS = $(PUT_PROGS) $(GET_PROGS)
 
 TESTPROGS = mvcur$x tctest$x hardscroll$x hashmap$x
 
 
 TESTPROGS = mvcur$x tctest$x hardscroll$x hashmap$x
 
@@ -147,35 +150,35 @@ transform.h :
        echo "#define PROG_INIT      \"$(actual_init)\""      >>$@
 
 install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
        echo "#define PROG_INIT      \"$(actual_init)\""      >>$@
 
 install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
-       $(LIBTOOL) $(INSTALL_PROGRAM) tic$x     $(DESTDIR)$(bindir)/$(actual_tic)
-       $(LIBTOOL) $(INSTALL_PROGRAM) toe$x     $(DESTDIR)$(bindir)/$(actual_toe)
+@MAKE_TERMINFO@        $(LIBTOOL) $(INSTALL_PROGRAM) tic$x     $(DESTDIR)$(bindir)/$(actual_tic)
+@MAKE_TERMINFO@        $(LIBTOOL) $(INSTALL_PROGRAM) toe$x     $(DESTDIR)$(bindir)/$(actual_toe)
+@MAKE_TERMINFO@        @echo "linking $(actual_infotocap) to $(actual_tic)"
+@MAKE_TERMINFO@        -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
+@MAKE_TERMINFO@        (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_infotocap))
+@MAKE_TERMINFO@        @echo "linking $(actual_captoinfo) to $(actual_tic)"
+@MAKE_TERMINFO@        -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
+@MAKE_TERMINFO@        (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_captoinfo))
        $(LIBTOOL) $(INSTALL_PROGRAM) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
        $(LIBTOOL) $(INSTALL_PROGRAM) clear$x   $(DESTDIR)$(bindir)/$(actual_clear)
        $(LIBTOOL) $(INSTALL_PROGRAM) tput$x    $(DESTDIR)$(bindir)/$(actual_tput)
        $(LIBTOOL) $(INSTALL_PROGRAM) tset$x    $(DESTDIR)$(bindir)/$(actual_tset)
        $(LIBTOOL) $(INSTALL_PROGRAM) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
        $(LIBTOOL) $(INSTALL_PROGRAM) clear$x   $(DESTDIR)$(bindir)/$(actual_clear)
        $(LIBTOOL) $(INSTALL_PROGRAM) tput$x    $(DESTDIR)$(bindir)/$(actual_tput)
        $(LIBTOOL) $(INSTALL_PROGRAM) tset$x    $(DESTDIR)$(bindir)/$(actual_tset)
-       @echo "linking $(actual_captoinfo) to $(actual_tic)"
-       -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
-       (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_captoinfo))
-       @echo "linking $(actual_infotocap) to $(actual_tic)"
-       -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
-       (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_infotocap))
        @echo "linking $(actual_reset) to $(actual_tset)"
        -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
        (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tset) $(actual_reset))
 
 uninstall.progs:
        @echo "linking $(actual_reset) to $(actual_tset)"
        -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
        (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tset) $(actual_reset))
 
 uninstall.progs:
-       -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
-       -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
+@MAKE_TERMINFO@        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
+@MAKE_TERMINFO@        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
+@MAKE_TERMINFO@        -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
+@MAKE_TERMINFO@        -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
        -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
-       -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
-       -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
        -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
 
 $(DESTDIR)$(bindir) :
        -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
 
 $(DESTDIR)$(bindir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 #
 # Utilities normally built by make all start here
 
 #
 # Utilities normally built by make all start here
@@ -222,7 +225,7 @@ tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
        @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
 
 termsort.c: $(srcdir)/MKtermsort.sh
        @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
 
 termsort.c: $(srcdir)/MKtermsort.sh
-       sh -c "$(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/Caps" >$@
+       sh -c "$(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@" >$@
 
 #
 # Utility productions start here
 
 #
 # Utility productions start here
@@ -235,7 +238,7 @@ tags:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
        -rm -f $(TESTPROGS)
 
 clean :: mostlyclean
        -rm -f $(TESTPROGS)
 
 clean :: mostlyclean
@@ -257,10 +260,10 @@ $(DEPS_CURSES) :
        cd ../ncurses; $(MAKE) $(CF_MFLAGS)
 
 lint:
        cd ../ncurses; $(MAKE) $(CF_MFLAGS)
 
 lint:
+@MAKE_TERMINFO@        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tic.c     $(srcdir)/dump_entry.c $(LINT_LIBS)
+@MAKE_TERMINFO@        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c     $(srcdir)/dump_entry.c $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/clear.c                          $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/infocmp.c $(srcdir)/dump_entry.c $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/clear.c                          $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/infocmp.c $(srcdir)/dump_entry.c $(LINT_LIBS)
-       $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tic.c     $(srcdir)/dump_entry.c $(LINT_LIBS)
-       $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c     $(srcdir)/dump_entry.c $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tput.c                           $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c    $(srcdir)/dump_entry.c $(LINT_LIBS)
 
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tput.c                           $(LINT_LIBS)
        $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c    $(srcdir)/dump_entry.c $(LINT_LIBS)
 
index 60c88d3f9cab2593702ac52f9db86d1050e41def..b8d82b77ed39d9c4f06777d73caf2326d7e6d81c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 1996 on                                        *
  ****************************************************************************/
 
 #define __INTERNAL_CAPS_VISIBLE
  ****************************************************************************/
 
 #define __INTERNAL_CAPS_VISIBLE
@@ -38,7 +39,7 @@
 #include "termsort.c"          /* this C file is generated */
 #include <parametrized.h>      /* so is this */
 
 #include "termsort.c"          /* this C file is generated */
 #include <parametrized.h>      /* so is this */
 
-MODULE_ID("$Id: dump_entry.c,v 1.54 2000/10/01 01:34:06 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.64 2002/09/01 17:54:43 tom Exp $")
 
 #define INDENT                 8
 #define DISCARD(string) string = ABSENT_STRING
 
 #define INDENT                 8
 #define DISCARD(string) string = ABSENT_STRING
@@ -56,7 +57,6 @@ static int sortmode;          /* sort mode to use */
 static int width = 60;         /* max line width for listings */
 static int column;             /* current column, limited by 'width' */
 static int oldcol;             /* last value of column before wrap */
 static int width = 60;         /* max line width for listings */
 static int column;             /* current column, limited by 'width' */
 static int oldcol;             /* last value of column before wrap */
-static int tracelevel;         /* level of debug output */
 static bool pretty;            /* true if we format if-then-else strings */
 
 static DYNBUF outbuf;
 static bool pretty;            /* true if we format if-then-else strings */
 
 static DYNBUF outbuf;
@@ -167,18 +167,17 @@ nametrans(const char *name)
 
 void
 dump_init(const char *version, int mode, int sort, int twidth, int traceval,
 
 void
 dump_init(const char *version, int mode, int sort, int twidth, int traceval,
-    bool formatted)
+         bool formatted)
 /* set up for entry display */
 {
     width = twidth;
     pretty = formatted;
 /* set up for entry display */
 {
     width = twidth;
     pretty = formatted;
-    tracelevel = traceval;
 
     /* versions */
     if (version == 0)
        tversion = V_ALLCAPS;
     else if (!strcmp(version, "SVr1") || !strcmp(version, "SVR1")
 
     /* versions */
     if (version == 0)
        tversion = V_ALLCAPS;
     else if (!strcmp(version, "SVr1") || !strcmp(version, "SVR1")
-       || !strcmp(version, "Ultrix"))
+            || !strcmp(version, "Ultrix"))
        tversion = V_SVR1;
     else if (!strcmp(version, "HP"))
        tversion = V_HPUX;
        tversion = V_SVR1;
     else if (!strcmp(version, "HP"))
        tversion = V_HPUX;
@@ -223,13 +222,13 @@ dump_init(const char *version, int mode, int sort, int twidth, int traceval,
     case S_NOSORT:
        if (traceval)
            (void) fprintf(stderr,
     case S_NOSORT:
        if (traceval)
            (void) fprintf(stderr,
-               "%s: sorting by term structure order\n", _nc_progname);
+                          "%s: sorting by term structure order\n", _nc_progname);
        break;
 
     case S_TERMINFO:
        if (traceval)
            (void) fprintf(stderr,
        break;
 
     case S_TERMINFO:
        if (traceval)
            (void) fprintf(stderr,
-               "%s: sorting by terminfo name order\n", _nc_progname);
+                          "%s: sorting by terminfo name order\n", _nc_progname);
        bool_indirect = bool_terminfo_sort;
        num_indirect = num_terminfo_sort;
        str_indirect = str_terminfo_sort;
        bool_indirect = bool_terminfo_sort;
        num_indirect = num_terminfo_sort;
        str_indirect = str_terminfo_sort;
@@ -238,7 +237,7 @@ dump_init(const char *version, int mode, int sort, int twidth, int traceval,
     case S_VARIABLE:
        if (traceval)
            (void) fprintf(stderr,
     case S_VARIABLE:
        if (traceval)
            (void) fprintf(stderr,
-               "%s: sorting by C variable order\n", _nc_progname);
+                          "%s: sorting by C variable order\n", _nc_progname);
        bool_indirect = bool_variable_sort;
        num_indirect = num_variable_sort;
        str_indirect = str_variable_sort;
        bool_indirect = bool_variable_sort;
        num_indirect = num_variable_sort;
        str_indirect = str_variable_sort;
@@ -247,7 +246,7 @@ dump_init(const char *version, int mode, int sort, int twidth, int traceval,
     case S_TERMCAP:
        if (traceval)
            (void) fprintf(stderr,
     case S_TERMCAP:
        if (traceval)
            (void) fprintf(stderr,
-               "%s: sorting by termcap name order\n", _nc_progname);
+                          "%s: sorting by termcap name order\n", _nc_progname);
        bool_indirect = bool_termcap_sort;
        num_indirect = num_termcap_sort;
        str_indirect = str_termcap_sort;
        bool_indirect = bool_termcap_sort;
        num_indirect = num_termcap_sort;
        str_indirect = str_termcap_sort;
@@ -256,8 +255,8 @@ dump_init(const char *version, int mode, int sort, int twidth, int traceval,
 
     if (traceval)
        (void) fprintf(stderr,
 
     if (traceval)
        (void) fprintf(stderr,
-           "%s: width = %d, tversion = %d, outform = %d\n",
-           _nc_progname, width, tversion, outform);
+                      "%s: width = %d, tversion = %d, outform = %d\n",
+                      _nc_progname, width, tversion, outform);
 }
 
 static TERMTYPE *cur_type;
 }
 
 static TERMTYPE *cur_type;
@@ -288,6 +287,14 @@ 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))
 
 /* is this the index of a function key string? */
 #define FNKEY(i)       (((i)<= 65 && (i)>= 75) || ((i)<= 216 && (i)>= 268))
 
+/*
+ * If we configure with a different Caps file, the offsets into the arrays
+ * will change.  So we use an address expression.
+ */
+#define BOOL_IDX(name) (&(name) - &(CUR Booleans[0]))
+#define NUM_IDX(name)  (&(name) - &(CUR Numbers[0]))
+#define STR_IDX(name)  (&(name) - &(CUR Strings[0]))
+
 static bool
 version_filter(int type, int idx)
 /* filter out capabilities we may want to suppress */
 static bool
 version_filter(int type, int idx)
 /* filter out capabilities we may want to suppress */
@@ -299,31 +306,28 @@ version_filter(int type, int idx)
     case V_SVR1:               /* System V Release 1, Ultrix */
        switch (type) {
        case BOOLEAN:
     case V_SVR1:               /* System V Release 1, Ultrix */
        switch (type) {
        case BOOLEAN:
-           /* below and including xon_xoff */
-           return ((idx <= 20) ? TRUE : FALSE);
+           return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
        case NUMBER:
        case NUMBER:
-           /* below and including width_status_line */
-           return ((idx <= 7) ? TRUE : FALSE);
+           return ((idx <= NUM_IDX(width_status_line)) ? TRUE : FALSE);
        case STRING:
        case STRING:
-           /* below and including prtr_non */
-           return ((idx <= 144) ? TRUE : FALSE);
+           return ((idx <= STR_IDX(prtr_non)) ? TRUE : FALSE);
        }
        break;
 
     case V_HPUX:               /* Hewlett-Packard */
        switch (type) {
        case BOOLEAN:
        }
        break;
 
     case V_HPUX:               /* Hewlett-Packard */
        switch (type) {
        case BOOLEAN:
-           /* below and including xon_xoff */
-           return ((idx <= 20) ? TRUE : FALSE);
+           return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
        case NUMBER:
        case NUMBER:
-           /* below and including label_width */
-           return ((idx <= 10) ? TRUE : FALSE);
+           return ((idx <= NUM_IDX(label_width)) ? TRUE : FALSE);
        case STRING:
        case STRING:
-           if (idx <= 144)     /* below and including prtr_non */
+           if (idx <= STR_IDX(prtr_non))
                return (TRUE);
            else if (FNKEY(idx))        /* function keys */
                return (TRUE);
                return (TRUE);
            else if (FNKEY(idx))        /* function keys */
                return (TRUE);
-           else if (idx == 147 || idx == 156 || idx == 157)    /* plab_norm,label_on,label_off */
+           else if (idx == STR_IDX(plab_norm)
+                    || idx == STR_IDX(label_on)
+                    || idx == STR_IDX(label_off))
                return (TRUE);
            else
                return (FALSE);
                return (TRUE);
            else
                return (FALSE);
@@ -333,13 +337,11 @@ version_filter(int type, int idx)
     case V_AIX:                /* AIX */
        switch (type) {
        case BOOLEAN:
     case V_AIX:                /* AIX */
        switch (type) {
        case BOOLEAN:
-           /* below and including xon_xoff */
-           return ((idx <= 20) ? TRUE : FALSE);
+           return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
        case NUMBER:
        case NUMBER:
-           /* below and including width_status_line */
-           return ((idx <= 7) ? TRUE : FALSE);
+           return ((idx <= NUM_IDX(width_status_line)) ? TRUE : FALSE);
        case STRING:
        case STRING:
-           if (idx <= 144)     /* below and including prtr_non */
+           if (idx <= STR_IDX(prtr_non))
                return (TRUE);
            else if (FNKEY(idx))        /* function keys */
                return (TRUE);
                return (TRUE);
            else if (FNKEY(idx))        /* function keys */
                return (TRUE);
@@ -498,10 +500,11 @@ fmt_complex(char *src, int level)
 
 int
 fmt_entry(TERMTYPE * tterm,
 
 int
 fmt_entry(TERMTYPE * tterm,
-    int (*pred) (int type, int idx),
-    bool suppress_untranslatable,
-    bool infodump,
-    int numbers)
+         int (*pred) (int type, int idx),
+         bool content_only,
+         bool suppress_untranslatable,
+         bool infodump,
+         int numbers)
 {
     int i, j;
     char buffer[MAX_TERMINFO_LENGTH];
 {
     int i, j;
     char buffer[MAX_TERMINFO_LENGTH];
@@ -524,10 +527,14 @@ fmt_entry(TERMTYPE * tterm,
     }
 
     strcpy_DYN(&outbuf, 0);
     }
 
     strcpy_DYN(&outbuf, 0);
-    strcpy_DYN(&outbuf, tterm->term_names);
-    strcpy_DYN(&outbuf, separator);
-    column = outbuf.used;
-    force_wrap();
+    if (content_only) {
+       column = INDENT;        /* FIXME: workaround to prevent empty lines */
+    } else {
+       strcpy_DYN(&outbuf, tterm->term_names);
+       strcpy_DYN(&outbuf, separator);
+       column = outbuf.used;
+       force_wrap();
+    }
 
     for_each_boolean(j, tterm) {
        i = BoolIndirect(j);
 
     for_each_boolean(j, tterm) {
        i = BoolIndirect(j);
@@ -641,14 +648,16 @@ fmt_entry(TERMTYPE * tterm,
                sprintf(buffer, "%s@", name);
                WRAP_CONCAT;
            } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
                sprintf(buffer, "%s@", name);
                WRAP_CONCAT;
            } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
-               int params = (i < (int) SIZEOF(parametrized)) ? parametrized[i] : 0;
+               int params = ((i < (int) SIZEOF(parametrized))
+                             ? parametrized[i]
+                             : 0);
                char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers);
                char *cv = _nc_infotocap(name, srccap, params);
 
                if (cv == 0) {
                    if (outform == F_TCONVERR) {
                        sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
                char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers);
                char *cv = _nc_infotocap(name, srccap, params);
 
                if (cv == 0) {
                    if (outform == F_TCONVERR) {
                        sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
-                           name, srccap);
+                               name, srccap);
                    } else if (suppress_untranslatable) {
                        continue;
                    } else {
                    } else if (suppress_untranslatable) {
                        continue;
                    } else {
@@ -672,7 +681,7 @@ fmt_entry(TERMTYPE * tterm,
                WRAP_CONCAT;
            } else {
                char *src = _nc_tic_expand(tterm->Strings[i],
                WRAP_CONCAT;
            } else {
                char *src = _nc_tic_expand(tterm->Strings[i],
-                   outform == F_TERMINFO, numbers);
+                                          outform == F_TERMINFO, numbers);
 
                strcpy_DYN(&tmpbuf, 0);
                strcpy_DYN(&tmpbuf, name);
 
                strcpy_DYN(&tmpbuf, 0);
                strcpy_DYN(&tmpbuf, name);
@@ -728,7 +737,7 @@ fmt_entry(TERMTYPE * tterm,
            if (box_ok) {
                (void) strcpy(buffer, "box1=");
                (void) strcat(buffer, _nc_tic_expand(boxchars,
            if (box_ok) {
                (void) strcpy(buffer, "box1=");
                (void) strcat(buffer, _nc_tic_expand(boxchars,
-                       outform == F_TERMINFO, numbers));
+                                                    outform == F_TERMINFO, numbers));
                WRAP_CONCAT;
            }
        }
                WRAP_CONCAT;
            }
        }
@@ -747,10 +756,10 @@ fmt_entry(TERMTYPE * tterm,
            outbuf.used -= 2;
            trimmed = TRUE;
        } else if (j >= 4
            outbuf.used -= 2;
            trimmed = TRUE;
        } else if (j >= 4
-               && outbuf.text[j - 1] == ':'
-               && outbuf.text[j - 2] == '\t'
-               && outbuf.text[j - 3] == '\n'
-           && outbuf.text[j - 4] == '\\') {
+                  && outbuf.text[j - 1] == ':'
+                  && outbuf.text[j - 2] == '\t'
+                  && outbuf.text[j - 3] == '\n'
+                  && outbuf.text[j - 4] == '\\') {
            outbuf.used -= 4;
            trimmed = TRUE;
        }
            outbuf.used -= 4;
            trimmed = TRUE;
        }
@@ -764,7 +773,7 @@ fmt_entry(TERMTYPE * tterm,
     fprintf(stderr, "num_values = %d\n", num_values);
     fprintf(stderr, "num_strings = %d\n", num_strings);
     fprintf(stderr, "term_names=%s, len=%d, strlen(outbuf)=%d, outbuf=%s\n",
     fprintf(stderr, "num_values = %d\n", num_values);
     fprintf(stderr, "num_strings = %d\n", num_strings);
     fprintf(stderr, "term_names=%s, len=%d, strlen(outbuf)=%d, outbuf=%s\n",
-       tterm->term_names, len, outbuf.used, outbuf.text);
+           tterm->term_names, len, outbuf.used, outbuf.text);
 #endif
     /*
      * Here's where we use infodump to trigger a more stringent length check
 #endif
     /*
      * Here's where we use infodump to trigger a more stringent length check
@@ -773,12 +782,104 @@ fmt_entry(TERMTYPE * tterm,
      * It gives an idea of which entries are deadly to even *scan past*,
      * as opposed to *use*.
      */
      * It gives an idea of which entries are deadly to even *scan past*,
      * as opposed to *use*.
      */
-    return (infodump ? len : termcap_length(outbuf.text));
+    return (infodump ? len : (int) termcap_length(outbuf.text));
 }
 
 }
 
+static bool
+kill_string(TERMTYPE * tterm, char *cap)
+{
+    int n;
+    for (n = 0; n < NUM_STRINGS(tterm); ++n) {
+       if (cap == tterm->Strings[n]) {
+           tterm->Strings[n] = ABSENT_STRING;
+           return TRUE;
+       }
+    }
+    return FALSE;
+}
+
+static char *
+find_string(TERMTYPE * tterm, char *name)
+{
+    int n;
+    for (n = 0; n < NUM_STRINGS(tterm); ++n) {
+       if (version_filter(STRING, n)
+           && !strcmp(name, strnames[n])) {
+           char *cap = tterm->Strings[n];
+           if (VALID_STRING(cap)) {
+               return cap;
+           }
+           break;
+       }
+    }
+    return ABSENT_STRING;
+}
+
+/*
+ * This is used to remove function-key labels from a termcap entry to
+ * make it smaller.
+ */
+static int
+kill_labels(TERMTYPE * tterm, int target)
+{
+    int n;
+    int result = 0;
+    char *cap;
+    char name[10];
+
+    for (n = 0; n <= 10; ++n) {
+       sprintf(name, "lf%d", n);
+       if ((cap = find_string(tterm, name)) != ABSENT_STRING
+           && kill_string(tterm, cap)) {
+           target -= (strlen(cap) + 5);
+           ++result;
+           if (target < 0)
+               break;
+       }
+    }
+    return result;
+}
+
+/*
+ * This is used to remove function-key definitions from a termcap entry to
+ * make it smaller.
+ */
+static int
+kill_fkeys(TERMTYPE * tterm, int target)
+{
+    int n;
+    int result = 0;
+    char *cap;
+    char name[10];
+
+    for (n = 60; n >= 0; --n) {
+       sprintf(name, "kf%d", n);
+       if ((cap = find_string(tterm, name)) != ABSENT_STRING
+           && kill_string(tterm, cap)) {
+           target -= (strlen(cap) + 5);
+           ++result;
+           if (target < 0)
+               break;
+       }
+    }
+    return result;
+}
+
+#define FMT_ENTRY() \
+               fmt_entry(tterm, pred, \
+                       (already_used > 0), \
+                       suppress_untranslatable, \
+                       infodump, numbers)
+
+#define SHOW_WHY if (!already_used) PRINTF
+
 int
 int
-dump_entry(TERMTYPE * tterm, bool limited, int numbers, int (*pred) (int
-       type, int idx))
+dump_entry(TERMTYPE * tterm,
+          bool suppress_untranslatable,
+          bool limited,
+          int already_used,
+          int numbers,
+          int (*pred) (int type, int idx))
 /* dump a single entry */
 {
     int len, critlen;
 /* dump a single entry */
 {
     int len, critlen;
@@ -795,12 +896,16 @@ dump_entry(TERMTYPE * tterm, bool limited, int numbers, int (*pred) (int
        legend = "terminfo";
        infodump = TRUE;
     }
        legend = "terminfo";
        infodump = TRUE;
     }
+    critlen -= already_used;
 
 
-    if (((len = fmt_entry(tterm, pred, FALSE, infodump, numbers)) > critlen)
+    if (((len = FMT_ENTRY()) > critlen)
        && limited) {
        && limited) {
-       PRINTF("# (untranslatable capabilities removed to fit entry within %d bytes)\n",
-           critlen);
-       if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers)) > critlen) {
+       if (!suppress_untranslatable) {
+           SHOW_WHY("# (untranslatable capabilities removed to fit entry within %d bytes)\n",
+                    critlen);
+           suppress_untranslatable = TRUE;
+       }
+       if ((len = FMT_ENTRY()) > critlen) {
            /*
             * We pick on sgr because it's a nice long string capability that
             * is really just an optimization hack.  Another good candidate is
            /*
             * We pick on sgr because it's a nice long string capability that
             * is really just an optimization hack.  Another good candidate is
@@ -809,29 +914,40 @@ dump_entry(TERMTYPE * tterm, bool limited, int numbers, int (*pred) (int
            char *oldsgr = set_attributes;
            char *oldacsc = acs_chars;
            set_attributes = ABSENT_STRING;
            char *oldsgr = set_attributes;
            char *oldacsc = acs_chars;
            set_attributes = ABSENT_STRING;
-           PRINTF("# (sgr removed to fit entry within %d bytes)\n",
-               critlen);
-           if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers)) > critlen) {
+           SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
+                    critlen);
+           if ((len = FMT_ENTRY()) > critlen) {
                acs_chars = ABSENT_STRING;
                acs_chars = ABSENT_STRING;
-               PRINTF("# (acsc removed to fit entry within %d bytes)\n",
-                   critlen);
+               SHOW_WHY("# (acsc removed to fit entry within %d bytes)\n",
+                        critlen);
            }
            }
-           if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers)) > critlen) {
+           if ((len = FMT_ENTRY()) > critlen) {
                int oldversion = tversion;
 
                tversion = V_BSD;
                int oldversion = tversion;
 
                tversion = V_BSD;
-               PRINTF("# (terminfo-only capabilities suppressed to fit entry within %d bytes)\n",
-                   critlen);
-
-               if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers))
-                   > critlen) {
+               SHOW_WHY("# (terminfo-only capabilities suppressed to fit entry within %d bytes)\n",
+                        critlen);
+
+               len = FMT_ENTRY();
+               if (len > critlen
+                   && kill_labels(tterm, len - critlen)) {
+                   SHOW_WHY("# (some labels capabilities suppressed to fit entry within %d bytes)\n",
+                            critlen);
+                   len = FMT_ENTRY();
+               }
+               if (len > critlen
+                   && kill_fkeys(tterm, len - critlen)) {
+                   SHOW_WHY("# (some function-key capabilities suppressed to fit entry within %d bytes)\n",
+                            critlen);
+                   len = FMT_ENTRY();
+               }
+               if (len > critlen && !already_used) {
                    (void) fprintf(stderr,
                    (void) fprintf(stderr,
-                       "warning: %s entry is %d bytes long\n",
-                       _nc_first_name(tterm->term_names),
-                       len);
-                   PRINTF(
-                       "# WARNING: this entry, %d bytes long, may core-dump %s libraries!\n",
-                       len, legend);
+                                  "warning: %s entry is %d bytes long\n",
+                                  _nc_first_name(tterm->term_names),
+                                  len);
+                   SHOW_WHY("# WARNING: this entry, %d bytes long, may core-dump %s libraries!\n",
+                            already_used + len, legend);
                }
                tversion = oldversion;
            }
                }
                tversion = oldversion;
            }
@@ -859,7 +975,7 @@ dump_uses(const char *name, bool infodump)
 
 void
 compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
 
 void
 compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
-    GCC_UNUSED, bool quiet)
+             GCC_UNUSED, bool quiet)
 /* compare two entries */
 {
     int i, j;
 /* compare two entries */
 {
     int i, j;
index 57354702840ccc36e2fb77be12ea5be98bf02585..bf67ddd82363afed61cbdd3b9073d881f36c64cf 100644 (file)
@@ -58,8 +58,8 @@
 
 extern NCURSES_CONST char *nametrans(const char *);
 extern void dump_init(const char *, int, int, int, int, bool);
 
 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, int);
-extern int dump_entry(TERMTYPE *, bool, int, int (*)(int, int));
+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 dump_uses(const char *, bool);
 extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
 extern void repair_acsc(TERMTYPE * tp);
 extern int dump_uses(const char *, bool);
 extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
 extern void repair_acsc(TERMTYPE * tp);
index bf7ff1c54b07927b669232be416500c15e3f1948..5d80511cca323c6e9e06f100293a76477e50af53 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,7 +41,7 @@
 #include <term_entry.h>
 #include <dump_entry.h>
 
 #include <term_entry.h>
 #include <dump_entry.h>
 
-MODULE_ID("$Id: infocmp.c,v 1.57 2000/10/01 01:26:25 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.68 2002/10/06 01:13:04 tom Exp $")
 
 #define L_CURL "{"
 #define R_CURL "}"
 
 #define L_CURL "{"
 #define R_CURL "}"
@@ -710,7 +710,6 @@ file_comparison(int argc, char *argv[])
     /* someday we may allow comparisons on more files */
     int filecount = 0;
     ENTRY *heads[MAXCOMPARE];
     /* someday we may allow comparisons on more files */
     int filecount = 0;
     ENTRY *heads[MAXCOMPARE];
-    ENTRY *tails[MAXCOMPARE];
     ENTRY *qp, *rp;
     int i, n;
 
     ENTRY *qp, *rp;
     int i, n;
 
@@ -744,7 +743,6 @@ file_comparison(int argc, char *argv[])
        }
 
        heads[filecount] = _nc_head;
        }
 
        heads[filecount] = _nc_head;
-       tails[filecount] = _nc_tail;
        filecount++;
     }
 
        filecount++;
     }
 
@@ -919,6 +917,9 @@ usage(void)
        ,"  -r    with -C, output in termcap form"
        ,"  -r    with -F, resolve use-references"
        ,"  -s [d|i|l|c] sort fields"
        ,"  -r    with -C, output in termcap form"
        ,"  -r    with -F, resolve use-references"
        ,"  -s [d|i|l|c] sort fields"
+#if NCURSES_XNAMES
+       ,"  -t    suppress commented-out capabilities"
+#endif
        ,"  -u    produce source with 'use='"
        ,"  -v number  (verbose)"
        ,"  -w number  (width)"
        ,"  -u    produce source with 'use='"
        ,"  -v number  (verbose)"
        ,"  -w number  (width)"
@@ -939,30 +940,75 @@ usage(void)
 }
 
 static char *
 }
 
 static char *
-name_initializer(const char *type)
+any_initializer(const char *fmt, const char *type)
 {
     static char *initializer;
     char *s;
 
     if (initializer == 0)
 {
     static char *initializer;
     char *s;
 
     if (initializer == 0)
-       initializer = (char *) malloc(strlen(entries->tterm.term_names) + 20);
+       initializer = (char *) malloc(strlen(entries->tterm.term_names) +
+                                     strlen(type) + strlen(fmt));
 
 
-    (void) sprintf(initializer, "%s_data_%s", type, entries->tterm.term_names);
+    (void) strcpy(initializer, entries->tterm.term_names);
     for (s = initializer; *s != 0 && *s != '|'; s++) {
     for (s = initializer; *s != 0 && *s != '|'; s++) {
-       if (!isalnum(*s))
+       if (!isalnum(UChar(*s)))
            *s = '_';
     }
     *s = 0;
            *s = '_';
     }
     *s = 0;
+    (void) sprintf(s, fmt, type);
     return initializer;
 }
 
     return initializer;
 }
 
+static char *
+name_initializer(const char *type)
+{
+    return any_initializer("_%s_data", type);
+}
+
+static char *
+string_variable(const char *type)
+{
+    return any_initializer("_s_%s", type);
+}
+
 /* dump C initializers for the terminal type */
 static void
 dump_initializers(TERMTYPE * term)
 {
     int n;
 /* dump C initializers for the terminal type */
 static void
 dump_initializers(TERMTYPE * term)
 {
     int n;
-    const char *str = 0;
     int size;
     int size;
+    const char *str = 0;
+
+    printf("\nstatic char %s[] = \"%s\";\n\n",
+          name_initializer("alias"), entries->tterm.term_names);
+
+    for_each_string(n, term) {
+       char buf[MAX_STRING], *sp, *tp;
+
+       if (VALID_STRING(term->Strings[n])) {
+           tp = buf;
+           *tp++ = '"';
+           for (sp = term->Strings[n];
+                *sp != 0 && (tp - buf) < MAX_STRING - 6;
+                sp++) {
+               if (isascii(UChar(*sp))
+                   && isprint(UChar(*sp))
+                   && *sp != '\\'
+                   && *sp != '"')
+                   *tp++ = *sp;
+               else {
+                   (void) sprintf(tp, "\\%03o", UChar(*sp));
+                   tp += 4;
+               }
+           }
+           *tp++ = '"';
+           *tp = '\0';
+           size += (strlen(term->Strings[n]) + 1);
+           (void) printf("static char %-20s[] = %s;\n",
+                         string_variable(ExtStrname(term, n, strnames)), buf);
+       }
+    }
+    printf("\n");
 
     (void) printf("static char %s[] = %s\n", name_initializer("bool"), L_CURL);
 
 
     (void) printf("static char %s[] = %s\n", name_initializer("bool"), L_CURL);
 
@@ -1017,49 +1063,47 @@ dump_initializers(TERMTYPE * term)
     (void) printf("static char * %s[] = %s\n", name_initializer("string"), L_CURL);
 
     for_each_string(n, term) {
     (void) printf("static char * %s[] = %s\n", name_initializer("string"), L_CURL);
 
     for_each_string(n, term) {
-       char buf[MAX_STRING], *sp, *tp;
 
        if (term->Strings[n] == ABSENT_STRING)
            str = "ABSENT_STRING";
        else if (term->Strings[n] == CANCELLED_STRING)
            str = "CANCELLED_STRING";
        else {
 
        if (term->Strings[n] == ABSENT_STRING)
            str = "ABSENT_STRING";
        else if (term->Strings[n] == CANCELLED_STRING)
            str = "CANCELLED_STRING";
        else {
-           tp = buf;
-           *tp++ = '"';
-           for (sp = term->Strings[n];
-                *sp != 0 && (tp - buf) < MAX_STRING - 6;
-                sp++) {
-               if (isascii(*sp) && isprint(*sp) && *sp != '\\' && *sp != '"')
-                   *tp++ = *sp;
-               else {
-                   (void) sprintf(tp, "\\%03o", *sp & 0xff);
-                   tp += 4;
-               }
-           }
-           *tp++ = '"';
-           *tp = '\0';
-           size += (strlen(term->Strings[n]) + 1);
-           str = buf;
+           str = string_variable(ExtStrname(term, n, strnames));
        }
        }
-#if NCURSES_XNAMES
-       if (n == STRCOUNT) {
-           (void) printf("%s;\n", R_CURL);
-
-           (void) printf("static char * %s[] = %s\n",
-                         name_initializer("string_ext"), L_CURL);
-       }
-#endif
        (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
                      ExtStrname(term, n, strnames), str);
     }
     (void) printf("%s;\n", R_CURL);
        (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
                      ExtStrname(term, n, strnames), str);
     }
     (void) printf("%s;\n", R_CURL);
+
+#if NCURSES_XNAMES
+    if ((NUM_BOOLEANS(term) != BOOLCOUNT)
+       || (NUM_NUMBERS(term) != NUMCOUNT)
+       || (NUM_STRINGS(term) != STRCOUNT)) {
+       (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",
+                         n, ExtBoolname(term, n, boolnames));
+       }
+       for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
+           (void) printf("\t/* %3d: 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",
+                         n, ExtStrname(term, n, strnames));
+       }
+       (void) printf("%s;\n", R_CURL);
+    }
+#endif
 }
 
 /* dump C initializers for the terminal type */
 static void
 dump_termtype(TERMTYPE * term)
 {
 }
 
 /* dump C initializers for the terminal type */
 static void
 dump_termtype(TERMTYPE * term)
 {
-    (void) printf("\t%s\n\t\t\"%s\",\n", L_CURL, term->term_names);
+    (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");
 
     (void) printf("\t\t%s,\n", name_initializer("bool"));
     (void) printf("\t\t(char *)0,\t/* pointer to string table */\n");
 
     (void) printf("\t\t%s,\n", name_initializer("bool"));
@@ -1071,7 +1115,9 @@ dump_termtype(TERMTYPE * term)
     (void) printf("#if NCURSES_XNAMES\n");
     (void) printf("\t\t(char *)0,\t/* pointer to extended string table */\n");
     (void) printf("\t\t%s,\t/* ...corresponding names */\n",
     (void) printf("#if NCURSES_XNAMES\n");
     (void) printf("\t\t(char *)0,\t/* pointer to extended string table */\n");
     (void) printf("\t\t%s,\t/* ...corresponding names */\n",
-                 (NUM_STRINGS(term) != STRCOUNT)
+                 ((NUM_BOOLEANS(term) != BOOLCOUNT)
+                  || (NUM_NUMBERS(term) != NUMCOUNT)
+                  || (NUM_STRINGS(term) != STRCOUNT))
                  ? name_initializer("string_ext")
                  : "(char **)0");
 
                  ? name_initializer("string_ext")
                  : "(char **)0");
 
@@ -1122,6 +1168,7 @@ main(int argc, char *argv[])
     bool filecompare = FALSE;
     int initdump = 0;
     bool init_analyze = FALSE;
     bool filecompare = FALSE;
     int initdump = 0;
     bool init_analyze = FALSE;
+    bool suppress_untranslatable = FALSE;
 
     if ((terminal = getenv("TERM")) == 0) {
        (void) fprintf(stderr,
 
     if ((terminal = getenv("TERM")) == 0) {
        (void) fprintf(stderr,
@@ -1132,35 +1179,53 @@ main(int argc, char *argv[])
     /* where is the terminfo database location going to default to? */
     restdir = firstdir = 0;
 
     /* where is the terminfo database location going to default to? */
     restdir = firstdir = 0;
 
-    while ((c = getopt(argc, argv, "adeEcCfFGgIinlLpqrR:s:uv:Vw:A:B:1T")) != EOF)
+    while ((c = getopt(argc,
+                      argv,
+                      "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtuVv:w:")) != EOF)
        switch (c) {
        switch (c) {
+       case '1':
+           mwidth = 0;
+           break;
+
+       case 'A':
+           firstdir = optarg;
+           break;
+
 #if NCURSES_XNAMES
        case 'a':
            _nc_disable_period = TRUE;
            use_extended_names(TRUE);
            break;
 #endif
 #if NCURSES_XNAMES
        case 'a':
            _nc_disable_period = TRUE;
            use_extended_names(TRUE);
            break;
 #endif
-       case 'd':
-           compare = C_DIFFERENCE;
+       case 'B':
+           restdir = optarg;
            break;
 
            break;
 
-       case 'e':
-           initdump |= 1;
+       case 'C':
+           outform = F_TERMCAP;
+           tversion = "BSD";
+           if (sortmode == S_DEFAULT)
+               sortmode = S_TERMCAP;
+           break;
+
+       case 'c':
+           compare = C_COMMON;
+           break;
+
+       case 'd':
+           compare = C_DIFFERENCE;
            break;
 
        case 'E':
            initdump |= 2;
            break;
 
            break;
 
        case 'E':
            initdump |= 2;
            break;
 
-       case 'c':
-           compare = C_COMMON;
+       case 'e':
+           initdump |= 1;
            break;
 
            break;
 
-       case 'C':
-           outform = F_TERMCAP;
-           tversion = "BSD";
-           if (sortmode == S_DEFAULT)
-               sortmode = S_TERMCAP;
+       case 'F':
+           filecompare = TRUE;
            break;
 
        case 'f':
            break;
 
        case 'f':
@@ -1175,10 +1240,6 @@ main(int argc, char *argv[])
            numbers = -1;
            break;
 
            numbers = -1;
            break;
 
-       case 'F':
-           filecompare = TRUE;
-           break;
-
        case 'I':
            outform = F_TERMINFO;
            if (sortmode == S_DEFAULT)
        case 'I':
            outform = F_TERMINFO;
            if (sortmode == S_DEFAULT)
@@ -1190,16 +1251,16 @@ main(int argc, char *argv[])
            init_analyze = TRUE;
            break;
 
            init_analyze = TRUE;
            break;
 
-       case 'l':
-           outform = F_TERMINFO;
-           break;
-
        case 'L':
            outform = F_VARIABLE;
            if (sortmode == S_DEFAULT)
                sortmode = S_VARIABLE;
            break;
 
        case 'L':
            outform = F_VARIABLE;
            if (sortmode == S_DEFAULT)
                sortmode = S_VARIABLE;
            break;
 
+       case 'l':
+           outform = F_TERMINFO;
+           break;
+
        case 'n':
            compare = C_NAND;
            break;
        case 'n':
            compare = C_NAND;
            break;
@@ -1215,15 +1276,15 @@ main(int argc, char *argv[])
            bool_sep = ", ";
            break;
 
            bool_sep = ", ";
            break;
 
+       case 'R':
+           tversion = optarg;
+           break;
+
        case 'r':
            tversion = 0;
            limited = FALSE;
            break;
 
        case 'r':
            tversion = 0;
            limited = FALSE;
            break;
 
-       case 'R':
-           tversion = optarg;
-           break;
-
        case 's':
            if (*optarg == 'd')
                sortmode = S_NOSORT;
        case 's':
            if (*optarg == 'd')
                sortmode = S_NOSORT;
@@ -1240,38 +1301,34 @@ main(int argc, char *argv[])
            }
            break;
 
            }
            break;
 
+       case 'T':
+           limited = FALSE;
+           break;
+
+#if NCURSES_XNAMES
+       case 't':
+           _nc_disable_period = FALSE;
+           suppress_untranslatable = TRUE;
+           break;
+#endif
+
        case 'u':
            compare = C_USEALL;
            break;
 
        case 'u':
            compare = C_USEALL;
            break;
 
+       case 'V':
+           puts(curses_version());
+           ExitProgram(EXIT_SUCCESS);
+
        case 'v':
            itrace = optarg_to_number();
            set_trace_level(itrace);
            break;
 
        case 'v':
            itrace = optarg_to_number();
            set_trace_level(itrace);
            break;
 
-       case 'V':
-           puts(curses_version());
-           ExitProgram(EXIT_SUCCESS);
-
        case 'w':
            mwidth = optarg_to_number();
            break;
 
        case 'w':
            mwidth = optarg_to_number();
            break;
 
-       case 'A':
-           firstdir = optarg;
-           break;
-
-       case 'B':
-           restdir = optarg;
-           break;
-
-       case '1':
-           mwidth = 0;
-           break;
-
-       case 'T':
-           limited = FALSE;
-           break;
        default:
            usage();
        }
        default:
            usage();
        }
@@ -1384,7 +1441,12 @@ main(int argc, char *argv[])
                               tname[0]);
            (void) printf("#\tReconstructed via infocmp from file: %s\n",
                          tfile[0]);
                               tname[0]);
            (void) printf("#\tReconstructed via infocmp from file: %s\n",
                          tfile[0]);
-           len = dump_entry(&entries[0].tterm, limited, numbers, NULL);
+           len = dump_entry(&entries[0].tterm,
+                            suppress_untranslatable,
+                            limited,
+                            0,
+                            numbers,
+                            NULL);
            putchar('\n');
            if (itrace)
                (void) fprintf(stderr, "infocmp: length %d\n", len);
            putchar('\n');
            if (itrace)
                (void) fprintf(stderr, "infocmp: length %d\n", len);
@@ -1416,10 +1478,15 @@ main(int argc, char *argv[])
        case C_USEALL:
            if (itrace)
                (void) fprintf(stderr, "infocmp: dumping use entry\n");
        case C_USEALL:
            if (itrace)
                (void) fprintf(stderr, "infocmp: dumping use entry\n");
-           len = dump_entry(&entries[0].tterm, limited, numbers, use_predicate);
+           len = dump_entry(&entries[0].tterm,
+                            suppress_untranslatable,
+                            limited,
+                            0,
+                            numbers,
+                            use_predicate);
            for (i = 1; i < termcount; i++)
            for (i = 1; i < termcount; i++)
-               len += dump_uses(tname[i], !(outform == F_TERMCAP || outform
-                                            == F_TCONVERR));
+               len += dump_uses(tname[i], !(outform == F_TERMCAP
+                                            || outform == F_TCONVERR));
            putchar('\n');
            if (itrace)
                (void) fprintf(stderr, "infocmp: length %d\n", len);
            putchar('\n');
            if (itrace)
                (void) fprintf(stderr, "infocmp: length %d\n", len);
index d704c0989b33ebae90e6ab14211ceae4447d14f6..9d13b3c7acb869ee3d54701f9bf880db2df48697 100644 (file)
@@ -30,7 +30,7 @@
  *  Author: Thomas E. Dickey <dickey@clark.net> 1997,1998                   *
  ****************************************************************************/
 /*
  *  Author: Thomas E. Dickey <dickey@clark.net> 1997,1998                   *
  ****************************************************************************/
 /*
- * $Id: progs.priv.h,v 1.24 2000/10/01 01:33:34 tom Exp $
+ * $Id: progs.priv.h,v 1.27 2001/06/18 18:43:52 tom Exp $
  *
  *     progs.priv.h
  *
  *
  *     progs.priv.h
  *
@@ -165,10 +165,12 @@ extern int optind;
 #if !HAVE_ISASCII
 # undef isascii
 # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
 #if !HAVE_ISASCII
 # undef isascii
 # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
-#  define isascii(c) (((c) & 0xff) <= 127)
+#  define isascii(c) (UChar(c) <= 127)
 # else
 #  define isascii(c) 1 /* not really ascii anyway */
 # endif
 #endif
 
 # else
 #  define isascii(c) 1 /* not really ascii anyway */
 # endif
 #endif
 
+#define UChar(c)    ((unsigned char)(c))
+
 #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
 #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
index 620704fca633edcf2cf39a828f12b8d68ce9b0ef..594474de44cab20b570ddfacbea68f88ef3e8d7b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 1996 on                                        *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
@@ -44,7 +45,7 @@
 #include <term_entry.h>
 #include <transform.h>
 
 #include <term_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.83 2000/10/14 17:30:26 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.102 2002/10/05 19:59:41 tom Exp $")
 
 const char *_nc_progname = "tic";
 
 
 const char *_nc_progname = "tic";
 
@@ -52,6 +53,7 @@ static FILE *log_fp;
 static FILE *tmp_fp;
 static bool showsummary = FALSE;
 static const char *to_remove;
 static FILE *tmp_fp;
 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 void (*save_check_termtype) (TERMTYPE *);
 static void check_termtype(TERMTYPE * tt);
@@ -87,24 +89,27 @@ usage(void)
     {
        "Options:",
        "  -1         format translation output one capability per line",
     {
        "Options:",
        "  -1         format translation output one capability per line",
-       "  -C         translate entries to termcap source form",
-       "  -I         translate entries to terminfo source form",
-       "  -L         translate entries to full terminfo source form",
-       "  -N         disable smart defaults for source translation",
-       "  -R         restrict translation to given terminfo/termcap version",
-       "  -T         remove size-restrictions on compiled description",
-       "  -V         print version",
 #if NCURSES_XNAMES
        "  -a         retain commented-out capabilities (sets -x also)",
 #endif
 #if NCURSES_XNAMES
        "  -a         retain commented-out capabilities (sets -x also)",
 #endif
+       "  -C         translate entries to termcap source form",
        "  -c         check only, validate input without compiling or translating",
        "  -c         check only, validate input without compiling or translating",
+       "  -e<names>  translate/compile only entries named by comma-separated list",
        "  -f         format complex strings for readability",
        "  -G         format %{number} to %'char'",
        "  -g         format %'char' to %{number}",
        "  -f         format complex strings for readability",
        "  -G         format %{number} to %'char'",
        "  -g         format %'char' to %{number}",
-       "  -e<names>  translate/compile only entries named by comma-separated list",
+       "  -I         translate entries to terminfo source form",
+       "  -L         translate entries to full terminfo source form",
+       "  -N         disable smart defaults for source translation",
        "  -o<dir>    set output directory for compiled entry writes",
        "  -o<dir>    set output directory for compiled entry writes",
+       "  -R<name>   restrict translation to given terminfo/termcap version",
        "  -r         force resolution of all use entries in source translation",
        "  -s         print summary statistics",
        "  -r         force resolution of all use entries in source translation",
        "  -s         print summary statistics",
+       "  -T         remove size-restrictions on compiled description",
+#if NCURSES_XNAMES
+       "  -t         suppress commented-out capabilities",
+#endif
+       "  -V         print version",
        "  -v[n]      set verbosity level",
        "  -w[n]      set format width for translation output",
 #if NCURSES_XNAMES
        "  -v[n]      set verbosity level",
        "  -w[n]      set format width for translation output",
 #if NCURSES_XNAMES
@@ -292,12 +297,12 @@ put_translate(int c)
 static char *
 stripped(char *src)
 {
 static char *
 stripped(char *src)
 {
-    while (isspace(*src))
+    while (isspace(UChar(*src)))
        src++;
     if (*src != '\0') {
        char *dst = strcpy(malloc(strlen(src) + 1), src);
        size_t len = strlen(dst);
        src++;
     if (*src != '\0') {
        char *dst = strcpy(malloc(strlen(src) + 1), src);
        size_t len = strlen(dst);
-       while (--len != 0 && isspace(dst[len]))
+       while (--len != 0 && isspace(UChar(dst[len])))
            dst[len] = '\0';
        return dst;
     }
            dst[len] = '\0';
        return dst;
     }
@@ -441,10 +446,11 @@ main(int argc, char *argv[])
     const char **namelst = 0;
     char *outdir = (char *) NULL;
     bool check_only = FALSE;
     const char **namelst = 0;
     char *outdir = (char *) NULL;
     bool check_only = FALSE;
+    bool suppress_untranslatable = FALSE;
 
     log_fp = stderr;
 
 
     log_fp = stderr;
 
-    _nc_progname = _nc_basename(argv[0]);
+    _nc_progname = _nc_rootname(argv[0]);
 
     if ((infodump = (strcmp(_nc_progname, PROG_CAPTOINFO) == 0)) != FALSE) {
        outform = F_TERMINFO;
 
     if ((infodump = (strcmp(_nc_progname, PROG_CAPTOINFO) == 0)) != FALSE) {
        outform = F_TERMINFO;
@@ -464,7 +470,7 @@ main(int argc, char *argv[])
      * be optional.
      */
     while ((this_opt = getopt(argc, argv,
      * be optional.
      */
     while ((this_opt = getopt(argc, argv,
-                             "0123456789CILNR:TVace:fGgo:rsvwx")) != EOF) {
+                             "0123456789CILNR:TVace:fGgo:rstvwx")) != EOF) {
        if (isdigit(this_opt)) {
            switch (last_opt) {
            case 'v':
        if (isdigit(this_opt)) {
            switch (last_opt) {
            case 'v':
@@ -540,6 +546,10 @@ main(int argc, char *argv[])
            width = 0;
            break;
 #if NCURSES_XNAMES
            width = 0;
            break;
 #if NCURSES_XNAMES
+       case 't':
+           _nc_disable_period = FALSE;
+           suppress_untranslatable = TRUE;
+           break;
        case 'a':
            _nc_disable_period = TRUE;
            /* FALLTHRU */
        case 'a':
            _nc_disable_period = TRUE;
            /* FALLTHRU */
@@ -658,7 +668,7 @@ main(int argc, char *argv[])
     if (check_only && (capdump || infodump)) {
        for_entry_list(qp) {
            if (matches(namelst, qp->tterm.term_names)) {
     if (check_only && (capdump || infodump)) {
        for_entry_list(qp) {
            if (matches(namelst, qp->tterm.term_names)) {
-               int len = fmt_entry(&qp->tterm, NULL, TRUE, infodump, numbers);
+               int len = fmt_entry(&qp->tterm, NULL, FALSE, TRUE, infodump, numbers);
 
                if (len > (infodump ? MAX_TERMINFO_LENGTH : MAX_TERMCAP_LENGTH))
                    (void) fprintf(stderr,
 
                if (len > (infodump ? MAX_TERMINFO_LENGTH : MAX_TERMCAP_LENGTH))
                    (void) fprintf(stderr,
@@ -697,7 +707,8 @@ main(int argc, char *argv[])
                            put_translate(fgetc(tmp_fp));
                    }
 
                            put_translate(fgetc(tmp_fp));
                    }
 
-                   len = dump_entry(&qp->tterm, limited, numbers, NULL);
+                   len = dump_entry(&qp->tterm, suppress_untranslatable,
+                                    limited, 0, numbers, NULL);
                    for (j = 0; j < qp->nuses; j++)
                        len += dump_uses(qp->uses[j].name, !capdump);
                    (void) putchar('\n');
                    for (j = 0; j < qp->nuses; j++)
                        len += dump_uses(qp->uses[j].name, !capdump);
                    (void) putchar('\n');
@@ -705,7 +716,7 @@ main(int argc, char *argv[])
                        printf("# length=%d\n", len);
                }
            }
                        printf("# length=%d\n", len);
                }
            }
-           if (!namelst) {
+           if (!namelst && _nc_tail) {
                int c, oldc = '\0';
                bool in_comment = FALSE;
                bool trailing_comment = FALSE;
                int c, oldc = '\0';
                bool in_comment = FALSE;
                bool trailing_comment = FALSE;
@@ -761,13 +772,14 @@ TERMINAL *cur_term;               /* tweak to avoid linking lib_cur_term.c */
  * Returns the expected number of parameters for the given capability.
  */
 static int
  * Returns the expected number of parameters for the given capability.
  */
 static int
-expected_params(char *name)
+expected_params(const char *name)
 {
     /* *INDENT-OFF* */
     static const struct {
        const char *name;
        int count;
     } table[] = {
 {
     /* *INDENT-OFF* */
     static const struct {
        const char *name;
        int count;
     } table[] = {
+       { "S0",                 1 },    /* 'screen' extension */
        { "birep",              2 },
        { "chr",                1 },
        { "colornm",            1 },
        { "birep",              2 },
        { "chr",                1 },
        { "colornm",            1 },
@@ -820,8 +832,8 @@ expected_params(char *name)
        { "sgr1",               6 },
        { "slength",            1 },
        { "slines",             1 },
        { "sgr1",               6 },
        { "slength",            1 },
        { "slines",             1 },
-       { "smgbp",              2 },
-       { "smglp",              2 },
+       { "smgbp",              1 },    /* 2 if smgtp is not given */
+       { "smglp",              1 },
        { "smglr",              2 },
        { "smgrp",              1 },
        { "smgtb",              2 },
        { "smglr",              2 },
        { "smgrp",              1 },
        { "smgtb",              2 },
@@ -853,7 +865,7 @@ expected_params(char *name)
  * markers.
  */
 static void
  * markers.
  */
 static void
-check_params(TERMTYPE * tp, char *name, char *value)
+check_params(TERMTYPE * tp, const char *name, char *value)
 {
     int expected = expected_params(name);
     int actual = 0;
 {
     int expected = expected_params(name);
     int actual = 0;
@@ -861,6 +873,12 @@ check_params(TERMTYPE * tp, char *name, char *value)
     bool params[10];
     char *s = value;
 
     bool params[10];
     char *s = value;
 
+#ifdef set_top_margin_parm
+    if (!strcmp(name, "smgbp")
+       && set_top_margin_parm == 0)
+       expected = 2;
+#endif
+
     for (n = 0; n < 10; n++)
        params[n] = FALSE;
 
     for (n = 0; n < 10; n++)
        params[n] = FALSE;
 
@@ -899,6 +917,14 @@ check_params(TERMTYPE * tp, char *name, char *value)
     }
 }
 
     }
 }
 
+static char *
+skip_delay(char *s)
+{
+    while (*s == '/' || isdigit(UChar(*s)))
+       ++s;
+    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
 /*
  * An sgr string may contain several settings other than the one we're
  * interested in, essentially sgr0 + rmacs + whatever.  As long as the
@@ -906,13 +932,57 @@ check_params(TERMTYPE * tp, char *name, char *value)
  * sanity check.
  */
 static bool
  * sanity check.
  */
 static bool
-similar_sgr(char *a, char *b)
+similar_sgr(int num, char *a, char *b)
 {
 {
+    static const char *names[] =
+    {
+       "none"
+       ,"standout"
+       ,"underline"
+       ,"reverse"
+       ,"blink"
+       ,"dim"
+       ,"bold"
+       ,"invis"
+       ,"protect"
+       ,"altcharset"
+    };
+    char *base_a = a;
+    char *base_b = b;
+    int delaying = 0;
+
     while (*b != 0) {
        while (*a != *b) {
     while (*b != 0) {
        while (*a != *b) {
-           if (*a == 0)
+           if (*a == 0) {
+               if (b[0] == '$'
+                   && b[1] == '<') {
+                   _nc_warning("Did not find delay %s", _nc_visbuf(b));
+               } else {
+                   _nc_warning("checking sgr(%s) %s\n\tcompare to %s\n\tunmatched %s",
+                               names[num], _nc_visbuf2(1, base_a),
+                               _nc_visbuf2(2, base_b),
+                               _nc_visbuf2(3, b));
+               }
                return FALSE;
                return FALSE;
-           a++;
+           } else if (delaying) {
+               a = skip_delay(a);
+               b = skip_delay(b);
+           } else {
+               a++;
+           }
+       }
+       switch (*a) {
+       case '$':
+           if (delaying == 0)
+               delaying = 1;
+           break;
+       case '<':
+           if (delaying == 1)
+               delaying = 2;
+           break;
+       default:
+           delaying = 0;
+           break;
        }
        a++;
        b++;
        }
        a++;
        b++;
@@ -933,11 +1003,14 @@ check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
                       num == 7,
                       num == 8,
                       num == 9);
                       num == 7,
                       num == 8,
                       num == 9);
+    tparm_errs += _nc_tparm_err;
     if (test != 0) {
        if (PRESENT(cap)) {
     if (test != 0) {
        if (PRESENT(cap)) {
-           if (!similar_sgr(test, cap)) {
-               _nc_warning("%s differs from sgr(%d): %s", name, num,
-                           _nc_visbuf(test));
+           if (!similar_sgr(num, test, cap)) {
+               _nc_warning("%s differs from sgr(%d)\n\t%s=%s\n\tsgr(%d)=%s",
+                           name, num,
+                           name, _nc_visbuf2(1, cap),
+                           num, _nc_visbuf2(2, test));
            }
        } else if (strcmp(test, zero)) {
            _nc_warning("sgr(%d) present, but not %s", num, name);
            }
        } else if (strcmp(test, zero)) {
            _nc_warning("sgr(%d) present, but not %s", num, name);
@@ -1008,8 +1081,9 @@ check_termtype(TERMTYPE * tp)
      * non-ANSI strings are misused.
      */
     if ((max_colors > 0) != (max_pairs > 0)
      * non-ANSI strings are misused.
      */
     if ((max_colors > 0) != (max_pairs > 0)
-       || (max_colors > max_pairs))
-       _nc_warning("inconsistent values for max_colors and max_pairs");
+       || ((max_colors > max_pairs) && (initialize_pair == 0)))
+       _nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
+                   max_colors, max_pairs);
 
     PAIRED(set_foreground, set_background);
     PAIRED(set_a_foreground, set_a_background);
 
     PAIRED(set_foreground, set_background);
     PAIRED(set_a_foreground, set_a_background);
@@ -1033,6 +1107,7 @@ check_termtype(TERMTYPE * tp)
     ANDMISSING(change_scroll_region, save_cursor);
     ANDMISSING(change_scroll_region, restore_cursor);
 
     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);
 
     if (PRESENT(set_attributes)) {
        char *zero = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0);
 
@@ -1047,17 +1122,19 @@ check_termtype(TERMTYPE * tp)
        CHECK_SGR(8, enter_protected_mode);
        CHECK_SGR(9, enter_alt_charset_mode);
        free(zero);
        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");
     }
 
     /*
      * Some standard applications (e.g., vi) and some non-curses
     }
 
     /*
      * Some standard applications (e.g., vi) and some non-curses
-     * applications (e.g., jove) get confused if we have both ich/ich1 and
+     * applications (e.g., jove) get confused if we have both ich1 and
      * smir/rmir.  Let's be nice and warn about that, too, even though
      * ncurses handles it.
      */
     if ((PRESENT(enter_insert_mode) || PRESENT(exit_insert_mode))
      * smir/rmir.  Let's be nice and warn about that, too, even though
      * ncurses handles it.
      */
     if ((PRESENT(enter_insert_mode) || PRESENT(exit_insert_mode))
-       && (PRESENT(insert_character) || PRESENT(parm_ich))) {
-       _nc_warning("non-curses applications may be confused by ich/ich1 with smir/rmir");
+       && PRESENT(parm_ich)) {
+       _nc_warning("non-curses applications may be confused by ich1 with smir/rmir");
     }
 
     /*
     }
 
     /*
index b7afb676b015ee234a3db4b053c4a8475dbcb5b4..abeffde18c487e05c68e1c6c08b4a4ddaaf7d692 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <dump_entry.h>
 #include <term_entry.h>
 
 #include <dump_entry.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: toe.c,v 1.24 2000/09/09 19:52:35 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.27 2002/10/06 01:22:05 tom Exp $")
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
 const char *_nc_progname;
 
 static int typelist(int eargc, char *eargv[], bool,
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
 const char *_nc_progname;
 
 static int typelist(int eargc, char *eargv[], bool,
-    void (*)(const char *, TERMTYPE *));
+                   void (*)(const char *, TERMTYPE *));
 static void deschook(const char *, TERMTYPE *);
 
 #if NO_LEAKS
 static void deschook(const char *, TERMTYPE *);
 
 #if NO_LEAKS
@@ -65,13 +65,27 @@ ExitProgram(int code) GCC_NORETURN;
 }
 #endif
 
 }
 #endif
 
+static bool
+is_a_file(char *path)
+{
+    struct stat sb;
+    return (stat(path, &sb) == 0
+           && (sb.st_mode & S_IFMT) == S_IFREG);
+}
+
+static bool
+is_a_directory(char *path)
+{
+    struct stat sb;
+    return (stat(path, &sb) == 0
+           && (sb.st_mode & S_IFMT) == S_IFDIR);
+}
+
 static char *
 get_directory(char *path)
 {
     if (path != 0) {
 static char *
 get_directory(char *path)
 {
     if (path != 0) {
-       struct stat sb;
-       if (stat(path, &sb) != 0
-           || (sb.st_mode & S_IFMT) != S_IFDIR
+       if (!is_a_directory(path)
            || access(path, R_OK | X_OK) != 0)
            path = 0;
     }
            || access(path, R_OK | X_OK) != 0)
            path = 0;
     }
@@ -87,7 +101,7 @@ main(int argc, char *argv[])
     int i, c;
     int code;
 
     int i, c;
     int code;
 
-    _nc_progname = _nc_basename(argv[0]);
+    _nc_progname = _nc_rootname(argv[0]);
 
     while ((c = getopt(argc, argv, "huv:UV")) != EOF)
        switch (c) {
 
     while ((c = getopt(argc, argv, "huv:UV")) != EOF)
        switch (c) {
@@ -127,14 +141,15 @@ main(int argc, char *argv[])
     if (direct_dependencies) {
        ENTRY *qp;
 
     if (direct_dependencies) {
        ENTRY *qp;
 
-       for_entry_list(qp)
+       for_entry_list(qp) {
            if (qp->nuses) {
            if (qp->nuses) {
-           int j;
+               int j;
 
 
-           (void) printf("%s:", _nc_first_name(qp->tterm.term_names));
-           for (j = 0; j < qp->nuses; j++)
-               (void) printf(" %s", qp->uses[j].name);
-           putchar('\n');
+               (void) printf("%s:", _nc_first_name(qp->tterm.term_names));
+               for (j = 0; j < qp->nuses; j++)
+                   (void) printf(" %s", qp->uses[j].name);
+               putchar('\n');
+           }
        }
 
        ExitProgram(EXIT_SUCCESS);
        }
 
        ExitProgram(EXIT_SUCCESS);
@@ -153,12 +168,12 @@ main(int argc, char *argv[])
 
                for (i = 0; i < rp->nuses; i++)
                    if (_nc_name_match(qp->tterm.term_names,
 
                for (i = 0; i < rp->nuses; i++)
                    if (_nc_name_match(qp->tterm.term_names,
-                           rp->uses[i].name, "|")) {
+                                      rp->uses[i].name, "|")) {
                        if (matchcount++ == 0)
                            (void) printf("%s:",
                        if (matchcount++ == 0)
                            (void) printf("%s:",
-                               _nc_first_name(qp->tterm.term_names));
+                                         _nc_first_name(qp->tterm.term_names));
                        (void) printf(" %s",
                        (void) printf(" %s",
-                           _nc_first_name(rp->tterm.term_names));
+                                     _nc_first_name(rp->tterm.term_names));
                    }
            }
            if (matchcount)
                    }
            }
            if (matchcount)
@@ -214,8 +229,8 @@ deschook(const char *cn, TERMTYPE * tp)
 
 static int
 typelist(int eargc, char *eargv[],
 
 static int
 typelist(int eargc, char *eargv[],
-    bool verbosity,
-    void (*hook) (const char *, TERMTYPE * tp))
+        bool verbosity,
+        void (*hook) (const char *, TERMTYPE * tp))
 /* apply a function to each entry in given terminfo directories */
 {
     int i;
 /* apply a function to each entry in given terminfo directories */
 {
     int i;
@@ -227,8 +242,8 @@ typelist(int eargc, char *eargv[],
        if ((termdir = opendir(eargv[i])) == 0) {
            (void) fflush(stdout);
            (void) fprintf(stderr,
        if ((termdir = opendir(eargv[i])) == 0) {
            (void) fflush(stdout);
            (void) fprintf(stderr,
-               "%s: can't open terminfo directory %s\n",
-               _nc_progname, eargv[i]);
+                          "%s: can't open terminfo directory %s\n",
+                          _nc_progname, eargv[i]);
            return (EXIT_FAILURE);
        } else if (verbosity)
            (void) printf("#\n#%s:\n#\n", eargv[i]);
            return (EXIT_FAILURE);
        } else if (verbosity)
            (void) printf("#\n#%s:\n#\n", eargv[i]);
@@ -245,7 +260,9 @@ typelist(int eargc, char *eargv[],
                continue;
 
            (void) sprintf(buf, "%s/%s/", eargv[i], name_1);
                continue;
 
            (void) sprintf(buf, "%s/%s/", eargv[i], name_1);
-           chdir(buf);
+           if (chdir(buf) != 0)
+               continue;
+
            entrydir = opendir(".");
            while ((entry = readdir(entrydir)) != 0) {
                char name_2[PATH_MAX];
            entrydir = opendir(".");
            while ((entry = readdir(entrydir)) != 0) {
                char name_2[PATH_MAX];
@@ -255,15 +272,15 @@ typelist(int eargc, char *eargv[],
 
                len = NAMLEN(entry);
                strncpy(name_2, entry->d_name, len)[len] = '\0';
 
                len = NAMLEN(entry);
                strncpy(name_2, entry->d_name, len)[len] = '\0';
-               if (isDotname(name_2))
+               if (isDotname(name_2) || !is_a_file(name_2))
                    continue;
 
                status = _nc_read_file_entry(name_2, &lterm);
                if (status <= 0) {
                    (void) fflush(stdout);
                    (void) fprintf(stderr,
                    continue;
 
                status = _nc_read_file_entry(name_2, &lterm);
                if (status <= 0) {
                    (void) fflush(stdout);
                    (void) fprintf(stderr,
-                       "toe: couldn't open terminfo file %s.\n",
-                       name_2);
+                                  "toe: couldn't open terminfo file %s.\n",
+                                  name_2);
                    return (EXIT_FAILURE);
                }
 
                    return (EXIT_FAILURE);
                }
 
index a72a2e892fdf6095a31d4871bdfe7973061c8e6c..3e09eab22ddb357ad8d504e62b72ea192a1e21fc 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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>
 
 #endif
 #include <transform.h>
 
-MODULE_ID("$Id: tput.c,v 1.24 2000/10/05 00:05:04 tom Exp $")
+MODULE_ID("$Id: tput.c,v 1.31 2002/07/20 19:09:47 tom Exp $")
 
 #define PUTS(s)                fputs(s, stdout)
 #define PUTCHAR(c)     putchar(c)
 
 #define PUTS(s)                fputs(s, stdout)
 #define PUTCHAR(c)     putchar(c)
@@ -96,7 +96,7 @@ check_aliases(const char *name)
  * in tparm() to decide how to parse the varargs list.
  */
 static TParams
  * in tparm() to decide how to parse the varargs list.
  */
 static TParams
-tparm_type(char *name)
+tparm_type(const char *name)
 {
 #define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
     TParams result = Numbers;
 {
 #define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
     TParams result = Numbers;
@@ -123,6 +123,25 @@ tparm_type(char *name)
     return result;
 }
 
     return result;
 }
 
+static int
+exit_code(int token, int value)
+{
+    int result = 99;
+
+    switch (token) {
+    case BOOLEAN:
+       result = !value;        /* TRUE=0, FALSE=1 */
+       break;
+    case NUMBER:
+       result = 0;             /* always zero */
+       break;
+    case STRING:
+       result = value;         /* 0=normal, 1=missing */
+       break;
+    }
+    return result;
+}
+
 static int
 tput(int argc, char *argv[])
 {
 static int
 tput(int argc, char *argv[])
 {
@@ -131,8 +150,11 @@ tput(int argc, char *argv[])
     int i, j, c;
     int status;
     FILE *f;
     int i, j, c;
     int status;
     FILE *f;
+    int token = UNDEF;
 
 
-    check_aliases(name = argv[0]);
+    if ((name = argv[0]) == 0)
+       name = "";
+    check_aliases(name);
     if (is_reset || is_init) {
        if (init_prog != 0) {
            system(init_prog);
     if (is_reset || is_init) {
        if (init_prog != 0) {
            system(init_prog);
@@ -153,15 +175,21 @@ tput(int argc, char *argv[])
        }
        FLUSH;
 
        }
        FLUSH;
 
+#ifdef set_lr_margin
        if (set_lr_margin != 0) {
            PUTS(tparm(set_lr_margin, 0, columns - 1));
        if (set_lr_margin != 0) {
            PUTS(tparm(set_lr_margin, 0, columns - 1));
-       } else if (set_left_margin_parm != 0
-                  && set_right_margin_parm != 0) {
+       } else
+#endif
+#ifdef set_left_margin_parm
+           if (set_left_margin_parm != 0
+               && set_right_margin_parm != 0) {
            PUTS(tparm(set_left_margin_parm, 0));
            PUTS(tparm(set_right_margin_parm, columns - 1));
            PUTS(tparm(set_left_margin_parm, 0));
            PUTS(tparm(set_right_margin_parm, columns - 1));
-       } else if (clear_margins != 0
-                  && set_left_margin != 0
-                  && set_right_margin != 0) {
+       } else
+#endif
+           if (clear_margins != 0
+               && set_left_margin != 0
+               && set_right_margin != 0) {
            PUTS(clear_margins);
            if (carriage_return != 0) {
                PUTS(carriage_return);
            PUTS(clear_margins);
            if (carriage_return != 0) {
                PUTS(carriage_return);
@@ -203,7 +231,7 @@ tput(int argc, char *argv[])
        if (is_reset && reset_file != 0) {
            f = fopen(reset_file, "r");
            if (f == 0) {
        if (is_reset && reset_file != 0) {
            f = fopen(reset_file, "r");
            if (f == 0) {
-               quit(errno, "Can't open reset_file: '%s'", reset_file);
+               quit(4 + errno, "Can't open reset_file: '%s'", reset_file);
            }
            while ((c = fgetc(f)) != EOF) {
                PUTCHAR(c);
            }
            while ((c = fgetc(f)) != EOF) {
                PUTCHAR(c);
@@ -212,7 +240,7 @@ tput(int argc, char *argv[])
        } else if (init_file != 0) {
            f = fopen(init_file, "r");
            if (f == 0) {
        } else if (init_file != 0) {
            f = fopen(init_file, "r");
            if (f == 0) {
-               quit(errno, "Can't open init_file: '%s'", init_file);
+               quit(4 + errno, "Can't open init_file: '%s'", init_file);
            }
            while ((c = fgetc(f)) != EOF) {
                PUTCHAR(c);
            }
            while ((c = fgetc(f)) != EOF) {
                PUTCHAR(c);
@@ -259,13 +287,14 @@ tput(int argc, char *argv[])
 #endif
 
     if ((status = tigetflag(name)) != -1) {
 #endif
 
     if ((status = tigetflag(name)) != -1) {
-       return (status != 0);
+       return exit_code(BOOLEAN, status);
     } else if ((status = tigetnum(name)) != CANCELLED_NUMERIC) {
        (void) printf("%d\n", status);
     } else if ((status = tigetnum(name)) != CANCELLED_NUMERIC) {
        (void) printf("%d\n", status);
-       return (0);
+       return exit_code(NUMBER, 0);
     } else if ((s = tigetstr(name)) == CANCELLED_STRING) {
        quit(4, "%s: unknown terminfo capability '%s'", prg_name, name);
     } else if (s != ABSENT_STRING) {
     } else if ((s = tigetstr(name)) == CANCELLED_STRING) {
        quit(4, "%s: unknown terminfo capability '%s'", prg_name, name);
     } else if (s != ABSENT_STRING) {
+       token = STRING;
        if (argc > 1) {
            int k;
            int numbers[10];
        if (argc > 1) {
            int k;
            int numbers[10];
@@ -306,9 +335,9 @@ tput(int argc, char *argv[])
 
        /* use putp() in order to perform padding */
        putp(s);
 
        /* use putp() in order to perform padding */
        putp(s);
-       return (0);
+       return exit_code(STRING, 0);
     }
     }
-    return (0);
+    return exit_code(STRING, 1);
 }
 
 int
 }
 
 int
@@ -319,9 +348,10 @@ main(int argc, char **argv)
     bool cmdline = TRUE;
     int c;
     char buf[BUFSIZ];
     bool cmdline = TRUE;
     int c;
     char buf[BUFSIZ];
-    int errors = 0;
+    int result = 0;
+    int err;
 
 
-    check_aliases(prg_name = _nc_basename(argv[0]));
+    check_aliases(prg_name = _nc_rootname(argv[0]));
 
     term = getenv("TERM");
 
 
     term = getenv("TERM");
 
@@ -376,16 +406,23 @@ main(int argc, char **argv)
 
        /* crack the argument list into a dope vector */
        for (cp = buf; *cp; cp++) {
 
        /* crack the argument list into a dope vector */
        for (cp = buf; *cp; cp++) {
-           if (isspace(*cp))
+           if (isspace(UChar(*cp))) {
                *cp = '\0';
                *cp = '\0';
-           else if (cp == buf || cp[-1] == 0)
+           } else if (cp == buf || cp[-1] == 0) {
                argvec[argnum++] = cp;
                argvec[argnum++] = cp;
+               if (argnum >= (int) SIZEOF(argvec) - 1)
+                   break;
+           }
        }
        argvec[argnum] = 0;
 
        }
        argvec[argnum] = 0;
 
-       if (tput(argnum, argvec) != 0)
-           errors++;
+       if (argnum != 0
+           && (err = tput(argnum, argvec)) != 0) {
+           if (result == 0)
+               result = 4;     /* will return value >4 */
+           ++result;
+       }
     }
 
     }
 
-    return errors > 0;
+    return result;
 }
 }
index d8dbda4974f5d49fa966590fdabfa672a30aecb3..03c8ffde33afa611a7391dbc012ef29f8dda23c4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -95,15 +95,15 @@ char *ttyname(int fd);
 #if NEED_PTEM_H
 /* they neglected to define struct winsize in termios.h -- it's only
    in termio.h */
 #if NEED_PTEM_H
 /* they neglected to define struct winsize in termios.h -- it's only
    in termio.h */
-#include       <sys/stream.h>
-#include       <sys/ptem.h>
+#include <sys/stream.h>
+#include <sys/ptem.h>
 #endif
 
 #include <curses.h>            /* for bool typedef */
 #include <dump_entry.h>
 #include <transform.h>
 
 #endif
 
 #include <curses.h>            /* for bool typedef */
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tset.c,v 0.47 2000/10/08 01:01:08 tom Exp $")
+MODULE_ID("$Id: tset.c,v 0.53 2002/08/24 23:18:16 tom Exp $")
 
 extern char **environ;
 
 
 extern char **environ;
 
@@ -112,15 +112,16 @@ extern char **environ;
 
 const char *_nc_progname = "tset";
 
 
 const char *_nc_progname = "tset";
 
-static TTY mode, oldmode;
+static TTY mode, oldmode, original;
 
 
+static bool can_restore = FALSE;
 static bool isreset = FALSE;   /* invoked as reset */
 static int terasechar = -1;    /* new erase character */
 static int intrchar = -1;      /* new interrupt character */
 static int tkillchar = -1;     /* new kill character */
 static int tlines, tcolumns;   /* window size */
 
 static bool isreset = FALSE;   /* invoked as reset */
 static int terasechar = -1;    /* new erase character */
 static int intrchar = -1;      /* new interrupt character */
 static int tkillchar = -1;     /* new kill character */
 static int tlines, tcolumns;   /* window size */
 
-#define LOWERCASE(c) ((isalpha(c) && isupper(c)) ? tolower(c) : (c))
+#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
 
 static int
 CaselessCmp(const char *a, const char *b)
 
 static int
 CaselessCmp(const char *a, const char *b)
@@ -134,6 +135,17 @@ CaselessCmp(const char *a, const char *b)
     return LOWERCASE(*a) - LOWERCASE(*b);
 }
 
     return LOWERCASE(*a) - LOWERCASE(*b);
 }
 
+static void
+exit_error(void)
+{
+    if (can_restore)
+       SET_TTY(STDERR_FILENO, &original);
+    (void) fprintf(stderr, "\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+    /* NOTREACHED */
+}
+
 static void
 err(const char *fmt,...)
 {
 static void
 err(const char *fmt,...)
 {
@@ -142,8 +154,7 @@ err(const char *fmt,...)
     (void) fprintf(stderr, "tset: ");
     (void) vfprintf(stderr, fmt, ap);
     va_end(ap);
     (void) fprintf(stderr, "tset: ");
     (void) vfprintf(stderr, fmt, ap);
     va_end(ap);
-    (void) fprintf(stderr, "\n");
-    exit(EXIT_FAILURE);
+    exit_error();
     /* NOTREACHED */
 }
 
     /* NOTREACHED */
 }
 
@@ -152,25 +163,24 @@ failed(const char *msg)
 {
     char temp[BUFSIZ];
     perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
 {
     char temp[BUFSIZ];
     perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
-    exit(EXIT_FAILURE);
+    exit_error();
     /* NOTREACHED */
 }
 
 static void
 cat(char *file)
 {
     /* NOTREACHED */
 }
 
 static void
 cat(char *file)
 {
-    register int fd, nr, nw;
+    FILE *fp;
+    size_t nr;
     char buf[BUFSIZ];
 
     char buf[BUFSIZ];
 
-    if ((fd = open(file, O_RDONLY, 0)) < 0)
+    if ((fp = fopen(file, "r")) == 0)
        failed(file);
 
        failed(file);
 
-    while ((nr = read(fd, buf, sizeof(buf))) > 0)
-       if ((nw = write(STDERR_FILENO, buf, (size_t) nr)) == -1)
-           failed("write to stderr");
-    if (nr != 0)
-       failed(file);
-    (void) close(fd);
+    while ((nr = fread(buf, sizeof(char), sizeof(buf), fp)) != 0)
+       if (fwrite(buf, sizeof(char), nr, stderr) != nr)
+             failed("write to stderr");
+    fclose(fp);
 }
 
 static int
 }
 
 static int
@@ -187,9 +197,11 @@ askuser(const char *dflt)
     char *p;
 
     /* We can get recalled; if so, don't continue uselessly. */
     char *p;
 
     /* We can get recalled; if so, don't continue uselessly. */
+    clearerr(stdin);
     if (feof(stdin) || ferror(stdin)) {
        (void) fprintf(stderr, "\n");
     if (feof(stdin) || ferror(stdin)) {
        (void) fprintf(stderr, "\n");
-       exit(EXIT_FAILURE);
+       exit_error();
+       /* NOTREACHED */
     }
     for (;;) {
        if (dflt)
     }
     for (;;) {
        if (dflt)
@@ -200,8 +212,8 @@ askuser(const char *dflt)
 
        if (fgets(answer, sizeof(answer), stdin) == 0) {
            if (dflt == 0) {
 
        if (fgets(answer, sizeof(answer), stdin) == 0) {
            if (dflt == 0) {
-               (void) fprintf(stderr, "\n");
-               exit(EXIT_FAILURE);
+               exit_error();
+               /* NOTREACHED */
            }
            return (dflt);
        }
            }
            return (dflt);
        }
@@ -495,7 +507,7 @@ mapped(const char *type)
 static const char *
 get_termcap_entry(char *userarg)
 {
 static const char *
 get_termcap_entry(char *userarg)
 {
-    int rval, errret;
+    int errret;
     char *p;
     const char *ttype;
 #if HAVE_GETTTYNAM
     char *p;
     const char *ttype;
 #if HAVE_GETTTYNAM
@@ -534,7 +546,7 @@ get_termcap_entry(char *userarg)
 
            while (fgets(buffer, sizeof(buffer) - 1, fp) != 0) {
                for (s = buffer, t = d = 0; *s; s++) {
 
            while (fgets(buffer, sizeof(buffer) - 1, fp) != 0) {
                for (s = buffer, t = d = 0; *s; s++) {
-                   if (isspace(*s))
+                   if (isspace(UChar(*s)))
                        *s = '\0';
                    else if (t == 0)
                        t = s;
                        *s = '\0';
                    else if (t == 0)
                        t = s;
@@ -588,8 +600,8 @@ get_termcap_entry(char *userarg)
            ttype = askuser(0);
     }
     /* Find the terminfo entry.  If it doesn't exist, ask the user. */
            ttype = askuser(0);
     }
     /* Find the terminfo entry.  If it doesn't exist, ask the user. */
-    while ((rval = setupterm((NCURSES_CONST char *) ttype, STDOUT_FILENO,
-                            &errret)) != OK) {
+    while (setupterm((NCURSES_CONST char *) ttype, STDOUT_FILENO, &errret)
+          != OK) {
        if (errret == 0) {
            (void) fprintf(stderr, "tset: unknown terminal type %s\n",
                           ttype);
        if (errret == 0) {
            (void) fprintf(stderr, "tset: unknown terminal type %s\n",
                           ttype);
@@ -757,11 +769,7 @@ reset_mode(void)
        );
 #endif
 
        );
 #endif
 
-#ifdef TERMIOS
-    tcsetattr(STDERR_FILENO, TCSADRAIN, &mode);
-#else
-    stty(STDERR_FILENO, &mode);
-#endif
+    SET_TTY(STDERR_FILENO, &mode);
 }
 
 /*
 }
 
 /*
@@ -891,7 +899,7 @@ set_init(void)
 #ifdef TAB3
     if (oldmode.c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
        oldmode.c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
 #ifdef TAB3
     if (oldmode.c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
        oldmode.c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
-       tcsetattr(STDERR_FILENO, TCSADRAIN, &oldmode);
+       SET_TTY(STDERR_FILENO, &oldmode);
     }
 #endif
     settle = set_tabs();
     }
 #endif
     settle = set_tabs();
@@ -1034,8 +1042,9 @@ static void
 usage(const char *pname)
 {
     (void) fprintf(stderr,
 usage(const char *pname)
 {
     (void) fprintf(stderr,
-                  "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]\n", pname);
-    exit(EXIT_FAILURE);
+                  "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]", pname);
+    exit_error();
+    /* NOTREACHED */
 }
 
 static char
 }
 
 static char
@@ -1058,14 +1067,15 @@ main(int argc, char **argv)
 
     if (GET_TTY(STDERR_FILENO, &mode) < 0)
        failed("standard error");
 
     if (GET_TTY(STDERR_FILENO, &mode) < 0)
        failed("standard error");
-    oldmode = mode;
+    can_restore = TRUE;
+    original = oldmode = mode;
 #ifdef TERMIOS
     ospeed = cfgetospeed(&mode);
 #else
     ospeed = mode.sg_ospeed;
 #endif
 
 #ifdef TERMIOS
     ospeed = cfgetospeed(&mode);
 #else
     ospeed = mode.sg_ospeed;
 #endif
 
-    p = _nc_basename(*argv);
+    p = _nc_rootname(*argv);
     if (!strcmp(p, PROG_RESET)) {
        isreset = TRUE;
        reset_mode();
     if (!strcmp(p, PROG_RESET)) {
        isreset = TRUE;
        reset_mode();
@@ -1154,11 +1164,7 @@ main(int argc, char **argv)
 
        /* Set the modes if they've changed. */
        if (memcmp(&mode, &oldmode, sizeof(mode))) {
 
        /* Set the modes if they've changed. */
        if (memcmp(&mode, &oldmode, sizeof(mode))) {
-#ifdef TERMIOS
-           tcsetattr(STDERR_FILENO, TCSADRAIN, &mode);
-#else
-           stty(STDERR_FILENO, &mode);
-#endif
+           SET_TTY(STDERR_FILENO, &mode);
        }
     }
 
        }
     }
 
index b2237cca0aecae8c97574a629263e2d01fcbeea6..732da7f96e7668187afcf3461decf2abba82fca5 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.24 2000/10/14 22:19:37 tom Exp $
+# $Id: Makefile.in,v 1.27 2001/12/08 18:48:01 tom Exp $
 # Makefile for tack
 #
 # The variable 'srcdir' refers to the source-distribution, and can be set with
 # Makefile for tack
 #
 # The variable 'srcdir' refers to the source-distribution, and can be set with
@@ -101,7 +101,7 @@ uninstall.tack:
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(mandir) :
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(mandir) :
-       $(srcdir)/../mkinstalldirs $@
+       sh $(srcdir)/../mkinstalldirs $@
 
 #
 # Rules for building tack
 
 #
 # Rules for building tack
@@ -138,16 +138,16 @@ tags:
 @MAKE_UPPER_TAGS@TAGS:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
 @MAKE_UPPER_TAGS@TAGS:
 @MAKE_UPPER_TAGS@      etags *.[ch]
 
-clean ::
-       -rm -f tags TAGS do.tic *~
+mostlyclean ::
+       -rm -f core tags TAGS *~ *.bak *.i *.atac trace
+
+clean :: mostlyclean
        -rm -f $(PROGS)
        -rm -rf .libs
 
 distclean :: clean
        -rm -f Makefile
 
        -rm -f $(PROGS)
        -rm -rf .libs
 
 distclean :: clean
        -rm -f Makefile
 
-mostlyclean :: clean
-
 realclean :: distclean
 
 tack.tar: Makefile.in modules *.[ch] tack.1 HISTORY COPYING
 realclean :: distclean
 
 tack.tar: Makefile.in modules *.[ch] tack.1 HISTORY COPYING
index df7b39f31e2b0de5f8f8547f41a26c432b3c451f..807bc539a6c89c3cdc04a4332d07b9769411b46a 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <tack.h>
 
 
 #include <tack.h>
 
-MODULE_ID("$Id: ansi.c,v 1.5 2000/04/22 21:06:57 tom Exp $")
+MODULE_ID("$Id: ansi.c,v 1.9 2001/06/18 18:44:17 tom Exp $")
 
 /*
  * Standalone tests for ANSI terminals.  Three entry points:
 
 /*
  * Standalone tests for ANSI terminals.  Three entry points:
@@ -135,7 +135,7 @@ read_ansi(void)
        int ch, i, j, last_escape;
 
        fflush(stdout);
        int ch, i, j, last_escape;
 
        fflush(stdout);
-       read_key(ansi_buf, sizeof(ansi_buf));
+       read_key((char *)ansi_buf, sizeof(ansi_buf));
        /* Throw away control characters inside CSI sequences.
           Convert two character 7-bit sequences into 8-bit sequences. */
        for (i = j = last_escape = 0; (ch = ansi_buf[i]) != 0; i++) {
        /* Throw away control characters inside CSI sequences.
           Convert two character 7-bit sequences into 8-bit sequences. */
        for (i = j = last_escape = 0; (ch = ansi_buf[i]) != 0; i++) {
@@ -174,13 +174,13 @@ read_ansi(void)
 static int
 valid_mode(int expected)
 {
 static int
 valid_mode(int expected)
 {
-       char *s;
+       unsigned char *s;
        int ch, terminator;
 
        read_ansi();
 
        ape = 0;
        int ch, terminator;
 
        read_ansi();
 
        ape = 0;
-       ch = pack_buf[0] & 0xff;
+       ch = UChar(pack_buf[0]);
        ansi_value[0] = 0;
        if (ch != A_CSI && ch != A_DCS)
                return FALSE;
        ansi_value[0] = 0;
        if (ch != A_CSI && ch != A_DCS)
                return FALSE;
@@ -216,6 +216,7 @@ read_reports(void)
 {
        int i, j, k, tc, vcr, lc;
        char *s;
 {
        int i, j, k, tc, vcr, lc;
        char *s;
+       const char *t;
 
        lc = 5;
        terminal_class = tc = 0;
 
        lc = 5;
        terminal_class = tc = 0;
@@ -254,15 +255,15 @@ read_reports(void)
                                vcr = TRUE;
                                break;
                        }
                                vcr = TRUE;
                                break;
                        }
-               j = pack_buf[0] & 0xff;
+               j = UChar(pack_buf[0]);
                if (j != A_CSI && j != A_DCS) {
                        put_crlf();
                if (j != A_CSI && j != A_DCS) {
                        put_crlf();
-                       s = "*** The above request gives illegal response ***";
-                       ptext(s);
-                       for (j = strlen(s); j < 49; j++)
+                       t = "*** The above request gives illegal response ***";
+                       ptext(t);
+                       for (j = strlen(t); j < 49; j++)
                                putchp(' ');
                }
                                putchp(' ');
                }
-               s = expand(ansi_buf);
+               s = expand((const char *)ansi_buf);
                if (char_count + expand_chars >= columns) {
                        put_str("\r\n        ");
                        lc++;
                if (char_count + expand_chars >= columns) {
                        put_str("\r\n        ");
                        lc++;
@@ -322,14 +323,14 @@ request_cfss(void)
                putchp(' ');
                for (j = 0; ansi_buf[j]; j++) {
                        if (ansi_buf[j] == 'r') {
                putchp(' ');
                for (j = 0; ansi_buf[j]; j++) {
                        if (ansi_buf[j] == 'r') {
-                               for (k = j++; (ch = (ansi_buf[k] & 0xff)); k++)
+                               for (k = j++; (ch = UChar(ansi_buf[k])) != 0; k++)
                                        if (ch == A_ESC) {
                                                break;
                                        } else if (ch == A_ST) {
                                                break;
                                        }
                                ansi_buf[k] = '\0';
                                        if (ch == A_ESC) {
                                                break;
                                        } else if (ch == A_ST) {
                                                break;
                                        }
                                ansi_buf[k] = '\0';
-                               s = expand(&ansi_buf[j]);
+                               s = expand((const char *)&ansi_buf[j]);
                                if (char_count + expand_chars >= columns)
                                        put_str("\r\n        ");
                                put_str(s);
                                if (char_count + expand_chars >= columns)
                                        put_str("\r\n        ");
                                put_str(s);
@@ -432,7 +433,7 @@ terminal_state(void)
                                tc_putp(temp);
                                if (!valid_mode(('$' << 8) | 'y')) {
                                        /* not valid, save terminating value */
                                tc_putp(temp);
                                if (!valid_mode(('$' << 8) | 'y')) {
                                        /* not valid, save terminating value */
-                                       s = expand(ansi_buf);
+                                       s = expand((const char *)ansi_buf);
                                        sprintf(tms, "%s%s%d %s  ", tms,
                                                puc[i], j, s);
                                        break;
                                        sprintf(tms, "%s%s%d %s  ", tms,
                                                puc[i], j, s);
                                        break;
index ca0ac6ff20d6f8ce12405c71201322211899ca18..991401f37437479336fa9b93d1a230ddce979516 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <tack.h>
 
 
 #include <tack.h>
 
-MODULE_ID("$Id: charset.c,v 1.4 2000/03/04 20:30:52 tom Exp $")
+MODULE_ID("$Id: charset.c,v 1.8 2001/06/18 18:44:26 tom Exp $")
 
 /*
        Menu definitions for alternate character set and SGR tests.
 
 /*
        Menu definitions for alternate character set and SGR tests.
@@ -285,10 +285,12 @@ charset_sgr(
        }
        put_crlf();
 
        }
        put_crlf();
 
+#ifdef max_attributes 
        if (max_attributes >= 0) {
                sprintf(temp, "(ma) Maximum attributes %d  ", max_attributes);
                ptext(temp);
        }
        if (max_attributes >= 0) {
                sprintf(temp, "(ma) Maximum attributes %d  ", max_attributes);
                ptext(temp);
        }
+#endif
        generic_done_message(t, state, ch);
 }
 
        generic_done_message(t, state, ch);
 }
 
@@ -433,12 +435,12 @@ test_acs(
                                        break;
                                }
                                if (glyph[j].name[0] == '\0') {
                                        break;
                                }
                                if (glyph[j].name[0] == '\0') {
-                                       if (isgraph(acs_chars[i])) {
+                                       if (isgraph(UChar(acs_chars[i]))) {
                                                sprintf(temp, "    %c",
                                                        acs_chars[i]);
                                        } else {
                                                sprintf(temp, " 0x%02x",
                                                sprintf(temp, "    %c",
                                                        acs_chars[i]);
                                        } else {
                                                sprintf(temp, " 0x%02x",
-                                                       (acs_chars[i] & 0xff));
+                                                       UChar(acs_chars[i]));
                                        }
                                        strcpy(&temp[5], " *** has no mapping ***");
                                        putln(temp);
                                        }
                                        strcpy(&temp[5], " *** has no mapping ***");
                                        putln(temp);
index a62810367d45d2c058f5c0926c0048123059c605..2d1a780d36a8e747e644682516b29770306f117c 100644 (file)
@@ -23,7 +23,7 @@
 #include <time.h>
 #include <tic.h>
 
 #include <time.h>
 #include <tic.h>
 
-MODULE_ID("$Id: edit.c,v 1.5 2000/03/25 17:26:12 tom Exp $")
+MODULE_ID("$Id: edit.c,v 1.8 2001/06/18 18:44:32 tom Exp $")
 
 /*
  * Terminfo edit features
 
 /*
  * Terminfo edit features
@@ -563,11 +563,11 @@ can_test(
        const char *s,
        int flags)
 {
        const char *s,
        int flags)
 {
-       int ch, i, j;
+       int ch, j;
        char name[32];
 
        if (s) {
        char name[32];
 
        if (s) {
-               for (i = j = 0; (name[j] = ch = *s); s++) {
+               for (j = 0; (name[j] = ch = *s); s++) {
                        if (ch == ' ' || ch == ')' || ch == '(') {
                                if (j) {
                                        name[j] = '\0';
                        if (ch == ' ' || ch == ')' || ch == '(') {
                                if (j) {
                                        name[j] = '\0';
@@ -597,11 +597,11 @@ cap_index(
        int *inx)
 {
        struct name_table_entry const *nt;
        int *inx)
 {
        struct name_table_entry const *nt;
-       int ch, i, j;
+       int ch, j;
        char name[32];
 
        if (s) {
        char name[32];
 
        if (s) {
-               for (i = j = 0; ; s++) {
+               for (j = 0; ; s++) {
                        name[j] = ch = *s;
                        if (ch == ' ' || ch == ')' || ch == '(' || ch == 0) {
                                if (j) {
                        name[j] = ch = *s;
                        if (ch == ' ' || ch == ')' || ch == '(' || ch == 0) {
                                if (j) {
@@ -876,7 +876,7 @@ change_one_entry(
        putln(buf);
        ptextln("Enter new pad.  0 for no pad.  CR for no change.");
        read_string(buf, 32);
        putln(buf);
        ptextln("Enter new pad.  0 for no pad.  CR for no change.");
        read_string(buf, 32);
-       if (buf[0] == '\0' || (buf[1] == '\0' && isalpha(buf[0]))) {
+       if (buf[0] == '\0' || (buf[1] == '\0' && isalpha(UChar(buf[0])))) {
                *chp = buf[0];
                return;
        }
                *chp = buf[0];
                return;
        }
index 4255452606da64414ab146c748b523e29a215058..8a2e44fa3cc5dade99b45ab75de99094d6c6f0f6 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <tack.h>
 
 
 #include <tack.h>
 
-MODULE_ID("$Id: init.c,v 1.2 2000/05/13 19:58:48 Daniel.Weaver Exp $")
+MODULE_ID("$Id: init.c,v 1.3 2001/06/16 17:54:19 tom Exp $")
 
 #if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
 #define _nc_get_curterm(p) _nc_get_tty_mode(p)
 
 #if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
 #define _nc_get_curterm(p) _nc_get_tty_mode(p)
@@ -163,8 +163,12 @@ display_basic(void)
        } else {
                report_cap("      (home)", cursor_home);
        }
        } else {
                report_cap("      (home)", cursor_home);
        }
+#ifdef user9
        report_cap("ENQ   (u9)", user9);
        report_cap("ENQ   (u9)", user9);
+#endif
+#ifdef user8
        report_cap("ACK   (u8)", user8);
        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);
        putln(temp);
 
        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);
        putln(temp);
index fac566e3b8a0b4adc0d9612fe68efa7e51904f8f..5825bea8e960f95b0efdc2b151838d5d27923c32 100644 (file)
@@ -23,7 +23,7 @@
 #include <tack.h>
 #include <time.h>
 
 #include <tack.h>
 #include <time.h>
 
-MODULE_ID("$Id: output.c,v 1.5 2000/03/04 21:06:57 tom Exp $")
+MODULE_ID("$Id: output.c,v 1.7 2001/06/18 18:44:40 tom Exp $")
 
 /* globals */
 long char_sent;                        /* number of characters sent */
 
 /* globals */
 long char_sent;                        /* number of characters sent */
@@ -122,7 +122,7 @@ tc_putch(int c)
        }
        if (log_fp) {
                /* terminal output logging */
        }
        if (log_fp) {
                /* terminal output logging */
-               c &= 0xff;
+               c = UChar(c);
                if (c < 32) {
                        fprintf(log_fp, "<%s>", c0[c]);
                        log_count += 5;
                if (c < 32) {
                        fprintf(log_fp, "<%s>", c0[c]);
                        log_count += 5;
@@ -561,7 +561,7 @@ hex_expand_to(char *s, int l)
        char *t;
 
        for (t = buf; *s; s++) {
        char *t;
 
        for (t = buf; *s; s++) {
-               sprintf(t, "%02X ", *s & 0xff);
+               sprintf(t, "%02X ", UChar(*s));
                t += 3;
                if (t - buf > (int) sizeof(buf) - 4) {
                        break;
                t += 3;
                if (t - buf > (int) sizeof(buf) - 4) {
                        break;
@@ -584,13 +584,13 @@ expand_command(const char *c)
        char *s;
 
        s = buf;
        char *s;
 
        s = buf;
-       for (i = FALSE; (ch = (*c & 0xff)); c++) {
+       for (i = FALSE; (ch = UChar(*c)) != 0; c++) {
                if (i) {
                        *s++ = ' ';
                }
                i = TRUE;
                if (ch < 32) {
                if (i) {
                        *s++ = ' ';
                }
                i = TRUE;
                if (ch < 32) {
-                       j = c[1] & 0xff;
+                       j = UChar(c[1]);
                        if (ch == '\033' && j >= '@' && j <= '_') {
                                ch = j - '@';
                                c++;
                        if (ch == '\033' && j >= '@' && j <= '_') {
                                ch = j - '@';
                                c++;
@@ -599,7 +599,7 @@ expand_command(const char *c)
                                for (j = 0; (*s = c0[ch][j++]); s++);
                } else {
                        *s++ = ch;
                                for (j = 0; (*s = c0[ch][j++]); s++);
                } else {
                        *s++ = ch;
-                       j = c[1] & 0xff;
+                       j = UChar(c[1]);
                        if (ch >= '0' && ch <= '9' &&
                                j >= '0' && j <= '9') {
                                i = FALSE;
                        if (ch >= '0' && ch <= '9' &&
                                j >= '0' && j <= '9') {
                                i = FALSE;
index 3323b93f9ec27e2f5717b769f0c08e6e52456774..6eb91b256a75a37e94efd541e17f162a5876653c 100644 (file)
@@ -22,7 +22,7 @@
 #include <tack.h>
 #include <time.h>
 
 #include <tack.h>
 #include <time.h>
 
-MODULE_ID("$Id: sync.c,v 1.2 2000/03/04 20:28:16 tom Exp $")
+MODULE_ID("$Id: sync.c,v 1.3 2001/06/16 17:55:48 tom Exp $")
 
 /* terminal-synchronization and performance tests */
 
 
 /* terminal-synchronization and performance tests */
 
@@ -143,7 +143,11 @@ probe_enq_ok(void)
        fflush(stdout);
        can_test("u8 u9", FLAG_TESTED);
 
        fflush(stdout);
        can_test("u8 u9", FLAG_TESTED);
 
+#ifdef user9
        tty_ENQ = user9 ? user9 : "\005";
        tty_ENQ = user9 ? user9 : "\005";
+#else
+       tty_ENQ = "\005";
+#endif
        tc_putp(tty_ENQ);
        event_start(TIME_SYNC); /* start the timer */
        read_key(tty_ACK, TTY_ACK_SIZE - 1);
        tc_putp(tty_ENQ);
        event_start(TIME_SYNC); /* start the timer */
        read_key(tty_ACK, TTY_ACK_SIZE - 1);
@@ -159,16 +163,22 @@ probe_enq_ok(void)
                putln(expand(tty_ENQ));
                ptext("ACK received: ");
                putln(expand(tty_ACK));
                putln(expand(tty_ENQ));
                ptext("ACK received: ");
                putln(expand(tty_ACK));
+#ifdef user8
                len = user8 ? strlen(user8) : 0;
                len = user8 ? strlen(user8) : 0;
+#else
+               len = 0;
+#endif
                sprintf(temp, "Length of ACK %d.  Expected length of ACK %d.",
                        (int) strlen(tty_ACK), len);
                ptextln(temp);
                sprintf(temp, "Length of ACK %d.  Expected length of ACK %d.",
                        (int) strlen(tty_ACK), len);
                ptextln(temp);
+#ifdef user8
                if (len) {
                        temp[0] = user8[len - 1];
                        temp[1] = '\0';
                        ptext("Terminating character found in (u8): ");
                        putln(expand(temp));
                }
                if (len) {
                        temp[0] = user8[len - 1];
                        temp[1] = '\0';
                        ptext("Terminating character found in (u8): ");
                        putln(expand(temp));
                }
+#endif
                return;
        }
 
                return;
        }
 
@@ -180,6 +190,7 @@ probe_enq_ok(void)
                return;
        }
        tc = tty_ACK[len - 1];
                return;
        }
        tc = tty_ACK[len - 1];
+#ifdef user8
        if (user8) {
                ulen = strlen(user8);
                if (tc == user8[ulen - 1]) {
        if (user8) {
                ulen = strlen(user8);
                if (tc == user8[ulen - 1]) {
@@ -189,6 +200,7 @@ probe_enq_ok(void)
                        return;
                }
        }
                        return;
                }
        }
+#endif
        /* fixed length acknowledge string */
        ACK_length = len;
        ACK_terminator = -2;
        /* fixed length acknowledge string */
        ACK_length = len;
        ACK_terminator = -2;
index 25376578fbcd92c0a76914faa0aaf6d205509290..d8b4802377151c7b8d5441c37c777e2c539f9314 100644 (file)
  * global has no effect.
  */
 
  * global has no effect.
  */
 
-#if defined(__BEOS__)
-#include <OS.h>
-#endif
+#include <signal.h>    /* include before curses.h to work around glibc bug */
 
 #include <tack.h>
 
 
 #include <tack.h>
 
-#include <signal.h>
 #include <term.h>
 #include <errno.h>
 
 #include <term.h>
 #include <errno.h>
 
+#if defined(__BEOS__)
+#undef false
+#undef true
+#include <OS.h>
+#endif
+
 #if HAVE_SELECT
 #if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
 #include <sys/time.h>
 #if HAVE_SELECT
 #if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
 #include <sys/time.h>
@@ -43,7 +46,7 @@
 #endif
 #endif
 
 #endif
 #endif
 
-MODULE_ID("$Id: sysdep.c,v 1.9 2000/09/02 19:17:39 tom Exp $")
+MODULE_ID("$Id: sysdep.c,v 1.11 2002/04/21 19:40:43 tom Exp $")
 
 #if DECL_ERRNO
 extern int errno;
 
 #if DECL_ERRNO
 extern int errno;
index 8ada023ff4b08ea8e6ce18e101ab75e49c25a8be..f6e37d44181be3d29ec755f7afcf556b0a1d3f17 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <tack.h>
 
 
 #include <tack.h>
 
-MODULE_ID("$Id: tack.c,v 1.1 1998/01/10 01:34:45 tom Exp $")
+MODULE_ID("$Id: tack.c,v 1.2 2001/10/28 01:05:35 tom Exp $")
 
 /*
    This program is designed to test terminfo, not curses.  Therefore
 
 /*
    This program is designed to test terminfo, not curses.  Therefore
@@ -126,7 +126,7 @@ struct test_menu edit_menu = {
 extern struct test_list mode_test_list[];
 
 struct test_menu mode_menu = {
 extern struct test_list mode_test_list[];
 
 struct test_menu mode_menu = {
-       0, 'n', 0, "Mode test menu",
+       0, 'n', 0, "Test modes and glitches:",
        "mode", "n) run standard tests",
        0, mode_test_list, 0, 0, 0
 };
        "mode", "n) run standard tests",
        0, mode_test_list, 0, 0, 0
 };
@@ -135,7 +135,7 @@ extern struct test_list acs_test_list[];
 
 static struct test_menu acs_menu = {
        0, 'n', 0,
 
 static struct test_menu acs_menu = {
        0, 'n', 0,
-       "Alternate character set and graphics rendition test menu",
+       "Test alternate character set and graphics rendition:",
        "acs", "n) run standard tests",
        0, acs_test_list, 0, 0, 0
 };
        "acs", "n) run standard tests",
        0, acs_test_list, 0, 0, 0
 };
@@ -144,7 +144,7 @@ extern struct test_list color_test_list[];
 
 struct test_menu color_menu = {
        0, 'n', 0,
 
 struct test_menu color_menu = {
        0, 'n', 0,
-       "Color test menu",
+       "Test color:",
        "color", "n) run standard tests",
        0, color_test_list, 0, 0, 0
 };
        "color", "n) run standard tests",
        0, color_test_list, 0, 0, 0
 };
@@ -153,7 +153,7 @@ extern struct test_list crum_test_list[];
 
 static struct test_menu crum_menu = {
        0, 'n', 0,
 
 static struct test_menu crum_menu = {
        0, 'n', 0,
-       "Cursor movement test menu",
+       "Test cursor movement:",
        "move", "n) run standard tests",
        0, crum_test_list, 0, 0, 0
 };
        "move", "n) run standard tests",
        0, crum_test_list, 0, 0, 0
 };
@@ -162,7 +162,7 @@ extern struct test_list funkey_test_list[];
 
 static struct test_menu funkey_menu = {
        0, 'n', 0,
 
 static struct test_menu funkey_menu = {
        0, 'n', 0,
-       "Function key test menu",
+       "Test function keys:",
        "fkey", "n) run standard tests",
        sync_test, funkey_test_list, 0, 0, 0
 };
        "fkey", "n) run standard tests",
        sync_test, funkey_test_list, 0, 0, 0
 };
@@ -171,7 +171,7 @@ extern struct test_list printer_test_list[];
 
 static struct test_menu printer_menu = {
        0, 'n', 0,
 
 static struct test_menu printer_menu = {
        0, 'n', 0,
-       "Printer test menu",
+       "Test printer:",
        "printer", "n) run standard tests",
        0, printer_test_list, 0, 0, 0
 };
        "printer", "n) run standard tests",
        0, printer_test_list, 0, 0, 0
 };
@@ -181,7 +181,7 @@ extern struct test_list pad_test_list[];
 
 static struct test_menu pad_menu = {
        0, 'n', 0,
 
 static struct test_menu pad_menu = {
        0, 'n', 0,
-       "Pad test menu",
+       "Test padding and string capabilities:",
        "pad", "n) run standard tests",
        sync_test, pad_test_list, 0, 0, 0
 };
        "pad", "n) run standard tests",
        sync_test, pad_test_list, 0, 0, 0
 };
@@ -190,11 +190,11 @@ static struct test_list normal_test_list[] = {
        {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
        {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
        {MENU_NEXT, 0, 0, 0, "x) test modes and glitches", 0, &mode_menu},
        {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
        {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
        {MENU_NEXT, 0, 0, 0, "x) test modes and glitches", 0, &mode_menu},
-       {MENU_NEXT, 0, 0, 0, "a) test alternate character sets", 0, &acs_menu},
+       {MENU_NEXT, 0, 0, 0, "a) test alternate character set and graphic rendition", 0, &acs_menu},
        {MENU_NEXT, 0, 0, 0, "c) test color", 0, &color_menu},
        {MENU_NEXT, 0, 0, 0, "m) test cursor movement", 0, &crum_menu},
        {MENU_NEXT, 0, 0, 0, "f) test function keys", 0, &funkey_menu},
        {MENU_NEXT, 0, 0, 0, "c) test color", 0, &color_menu},
        {MENU_NEXT, 0, 0, 0, "m) test cursor movement", 0, &crum_menu},
        {MENU_NEXT, 0, 0, 0, "f) test function keys", 0, &funkey_menu},
-       {MENU_NEXT, 0, 0, 0, "p) test string capabilities", 0, &pad_menu},
+       {MENU_NEXT, 0, 0, 0, "p) test padding and string capabilities", 0, &pad_menu},
        {0, 0, 0, 0, "P) test printer", 0, &printer_menu},
        {MENU_MENU, 0, 0, 0, "/) test a specific capability", 0, 0},
        {0, 0, 0, 0, "t) auto generate pad delays", pad_gen, &pad_menu},
        {0, 0, 0, 0, "P) test printer", 0, &printer_menu},
        {MENU_MENU, 0, 0, 0, "/) test a specific capability", 0, 0},
        {0, 0, 0, 0, "t) auto generate pad delays", pad_gen, &pad_menu},
index 52464d3e2a3479f8b54d37c77453f28b27a5c541..daca1e12c4890a5c6779a40f42bee40496f874a2 100644 (file)
 ** Boston, MA 02111-1307, USA.
 */
 
 ** Boston, MA 02111-1307, USA.
 */
 
-/* $Id: tack.h,v 1.6 2000/03/04 21:10:07 tom Exp $ */
+/* $Id: tack.h,v 1.9 2001/06/18 18:44:49 tom Exp $ */
 
 
-#ifndef _TACK_H
-#define _TACK_H 1
+#ifndef NCURSES_TACK_H_incl
+#define NCURSES_TACK_H_incl 1
 
 /* terminfo action checker include file */
 
 
 /* terminfo action checker include file */
 
@@ -60,6 +60,8 @@ extern char *_nc_strstr(const char *, const char *);
 #define strstr(h,n) _nc_strstr(h,n)
 #endif
 
 #define strstr(h,n) _nc_strstr(h,n)
 #endif
 
+#define UChar(c)    ((unsigned char)(c))
+
 extern FILE *log_fp;
 extern FILE *debug_fp;
 extern int debug_level;
 extern FILE *log_fp;
 extern FILE *debug_fp;
 extern int debug_level;
@@ -400,4 +402,4 @@ extern void menu_clear_screen(struct test_list *, int *, int *);
 extern void menu_reset_init(struct test_list *, int *, int *);
 extern int subtest_menu(struct test_list *, int *, int *);
 
 extern void menu_reset_init(struct test_list *, int *, int *);
 extern int subtest_menu(struct test_list *, int *, int *);
 
-#endif /* _TACK_H */
+#endif /* NCURSES_TACK_H_incl */
index 4cab57422b47c8e29132bd6b46d12f75de67e342..833b57f7a0914dfbbf644ce3186ebca2811cbce1 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.60 2000/10/14 22:51:19 tom Exp $
+# $Id: Makefile.in,v 1.63 2002/02/03 00:54:10 china Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.                #
+# Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.           #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -69,7 +69,7 @@ LOCAL_LIBS    = @TEST_DEPS@
 MATH_LIB       = @MATH_LIB@
 
 LD             = @LD@
 MATH_LIB       = @MATH_LIB@
 
 LD             = @LD@
-LINK           = @LINK_TESTS@ $(LIBTOOL) $(CC)
+LINK           = @LINK_TESTS@ $(LIBTOOL) $(CC) $(CFLAGS)
 
 LDFLAGS                = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
 
 LDFLAGS                = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
@@ -201,7 +201,7 @@ uninstall.libs:
 uninstall.test:
 
 mostlyclean ::
 uninstall.test:
 
 mostlyclean ::
-       -rm -f core tags TAGS *~ *.ln *.atac trace
+       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
 
 clean :: mostlyclean
        -rm -rf *.o screendump *.lis $(TESTS) .libs
 
 clean :: mostlyclean
        -rm -rf *.o screendump *.lis $(TESTS) .libs
index 4f7335132bbaa4bb4e94b85fe6c3b814dabdc811..cd0ccdaa2bfd5a42b4d3ff409cb686ded1362ae1 100644 (file)
  * results, use the ncurses(3) library.  On non-Intel machines, SVr4 curses is
  * just as good.
  *
  * results, use the ncurses(3) library.  On non-Intel machines, SVr4 curses is
  * just as good.
  *
- * $Id: blue.c,v 1.18 1999/01/17 00:11:56 tom Exp $
+ * $Id: blue.c,v 1.24 2002/06/29 23:32:18 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
-#include <string.h>
-#include <signal.h>
 #include <time.h>
 
 #include <time.h>
 
-#include <term.h>
+#include <test.priv.h>
 
 #define NOCARD         (-1)
 
 
 #define NOCARD         (-1)
 
@@ -55,7 +51,7 @@ static int deck[PACK_SIZE];
 static int grid[GRID_LENGTH];  /* card layout grid */
 static int freeptr[4];         /* free card space pointers */
 
 static int grid[GRID_LENGTH];  /* card layout grid */
 static int freeptr[4];         /* free card space pointers */
 
-static int deal_number=0;
+static int deal_number = 0;
 
 static chtype ranks[SUIT_LENGTH][2] =
 {
 
 static chtype ranks[SUIT_LENGTH][2] =
 {
@@ -106,75 +102,75 @@ static chtype glyphs[] =
 
 static chtype *suits = letters;        /* this may change to glyphs below */
 
 
 static chtype *suits = letters;        /* this may change to glyphs below */
 
-static RETSIGTYPE die(int onsig)
+static RETSIGTYPE
+die(int onsig)
 {
     (void) signal(onsig, SIG_IGN);
     endwin();
 {
     (void) signal(onsig, SIG_IGN);
     endwin();
-    exit(EXIT_SUCCESS);
+    ExitProgram(EXIT_SUCCESS);
 }
 
 }
 
-static void init_vars(void)
+static void
+init_vars(void)
 {
     int i;
 
     deck_size = PACK_SIZE;
 {
     int i;
 
     deck_size = PACK_SIZE;
-    for (i=0; i < PACK_SIZE; i++)
-       deck[i]=i;
+    for (i = 0; i < PACK_SIZE; i++)
+       deck[i] = i;
     for (i = 0; i < 4; i++)
     for (i = 0; i < 4; i++)
-       freeptr[i]=i * GRID_WIDTH;
+       freeptr[i] = i * GRID_WIDTH;
 }
 
 }
 
-static void shuffle(int size)
+static void
+shuffle(int size)
 {
 {
-    int i,j,numswaps,swapnum,temp;
+    int i, j, numswaps, swapnum, temp;
 
 
-    numswaps=size*10;          /* an arbitrary figure */
+    numswaps = size * 10;      /* an arbitrary figure */
 
 
-    for (swapnum=0;swapnum<numswaps;swapnum++)
-    {
-       i=rand() % size;
-       j=rand() % size;
-       temp=deck[i];
-       deck[i]=deck[j];
-       deck[j]=temp;
+    for (swapnum = 0; swapnum < numswaps; swapnum++) {
+       i = rand() % size;
+       j = rand() % size;
+       temp = deck[i];
+       deck[i] = deck[j];
+       deck[j] = temp;
     }
 }
 
     }
 }
 
-static void deal_cards(void)
+static void
+deal_cards(void)
 {
 {
-    int ptr, card=0, value, csuit, crank, suit, aces[4];
-
-    for (suit=HEARTS;suit<=CLUBS;suit++)
-    {
-       ptr=freeptr[suit];
-       grid[ptr++]=NOCARD;     /* 1st card space is blank */
-       while ((ptr % GRID_WIDTH) != 0)
-       {
-           value=deck[card++];
-           crank=value % SUIT_LENGTH;
-           csuit=value / SUIT_LENGTH;
-           if (crank==ACE)
-               aces[csuit]=ptr;
-           grid[ptr++]=value;
+    int ptr, card = 0, value, csuit, crank, suit, aces[4];
+
+    for (suit = HEARTS; suit <= CLUBS; suit++) {
+       ptr = freeptr[suit];
+       grid[ptr++] = NOCARD;   /* 1st card space is blank */
+       while ((ptr % GRID_WIDTH) != 0) {
+           value = deck[card++];
+           crank = value % SUIT_LENGTH;
+           csuit = value / SUIT_LENGTH;
+           if (crank == ACE)
+               aces[csuit] = ptr;
+           grid[ptr++] = value;
        }
     }
 
        }
     }
 
-    if (deal_number==1)                /* shift the aces down to the 1st column */
-       for (suit=HEARTS;suit<=CLUBS;suit++)
-       {
+    if (deal_number == 1)      /* shift the aces down to the 1st column */
+       for (suit = HEARTS; suit <= CLUBS; suit++) {
            grid[suit * GRID_WIDTH] = suit * SUIT_LENGTH;
            grid[suit * GRID_WIDTH] = suit * SUIT_LENGTH;
-           grid[aces[suit]]=NOCARD;
-           freeptr[suit]=aces[suit];
+           grid[aces[suit]] = NOCARD;
+           freeptr[suit] = aces[suit];
        }
 }
 
        }
 }
 
-static void printcard(int value)
+static void
+printcard(int value)
 {
     (void) addch(' ');
     if (value == NOCARD)
        (void) addstr("   ");
 {
     (void) addch(' ');
     if (value == NOCARD)
        (void) addstr("   ");
-    else
-    {
+    else {
        addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
        addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
        addch(suits[value / SUIT_LENGTH]);
        addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
        addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
        addch(suits[value / SUIT_LENGTH]);
@@ -182,151 +178,144 @@ static void printcard(int value)
     (void) addch(' ');
 }
 
     (void) addch(' ');
 }
 
-static void display_cards(int deal)
+static void
+display_cards(int deal)
 {
     int row, card;
 
     clear();
 {
     int row, card;
 
     clear();
-    (void)printw(
-                "Blue Moon 2.1 - by Tim Lister & Eric Raymond - Deal %d.\n",
-                deal);
-    for(row=HEARTS;row<=CLUBS;row++)
-    {
+    (void) printw(
+                    "Blue Moon 2.1 - by Tim Lister & Eric Raymond - Deal %d.\n",
+                    deal);
+    for (row = HEARTS; row <= CLUBS; row++) {
        move(BASEROW + row + row + 2, 1);
        move(BASEROW + row + row + 2, 1);
-       for(card=0;card<GRID_WIDTH;card++)
+       for (card = 0; card < GRID_WIDTH; card++)
            printcard(grid[row * GRID_WIDTH + card]);
     }
 
            printcard(grid[row * GRID_WIDTH + card]);
     }
 
-    move(PROMPTROW + 2, 0); refresh();
+    move(PROMPTROW + 2, 0);
+    refresh();
 #define P(x)   (void)printw("%s\n", x)
 #define P(x)   (void)printw("%s\n", x)
-P("   This 52-card solitaire starts with  the entire deck shuffled and dealt");
-P("out in four rows.  The aces are then moved to the left end of the layout,");
-P("making 4 initial free spaces.  You may move to a space only the card that");
-P("matches the left neighbor in suit, and is one greater in rank.  Kings are");
-P("high, so no cards may be placed to their right (they create dead spaces).");
-P("  When no moves can be made,  cards still out of sequence are  reshuffled");
-P("and dealt face up after the ends of the partial sequences, leaving a card");
-P("space after each sequence, so that each row looks like a partial sequence");
-P("followed by a space, followed by enough cards to make a row of 14.       ");
-P("  A moment's reflection will show that this game cannot take more than 13");
-P("deals. A good score is 1-3 deals, 4-7 is average, 8 or more is poor.     ");
+    P("   This 52-card solitaire starts with  the entire deck shuffled and dealt");
+    P("out in four rows.  The aces are then moved to the left end of the layout,");
+    P("making 4 initial free spaces.  You may move to a space only the card that");
+    P("matches the left neighbor in suit, and is one greater in rank.  Kings are");
+    P("high, so no cards may be placed to their right (they create dead spaces).");
+    P("  When no moves can be made,  cards still out of sequence are  reshuffled");
+    P("and dealt face up after the ends of the partial sequences, leaving a card");
+    P("space after each sequence, so that each row looks like a partial sequence");
+    P("followed by a space, followed by enough cards to make a row of 14.       ");
+    P("  A moment's reflection will show that this game cannot take more than 13");
+    P("deals. A good score is 1-3 deals, 4-7 is average, 8 or more is poor.     ");
 #undef P
     refresh();
 }
 
 #undef P
     refresh();
 }
 
-static int find(int card)
+static int
+find(int card)
 {
     int i;
 
 {
     int i;
 
-    if ((card<0) || (card>=PACK_SIZE))
-       return(NOCARD);
-    for(i = 0; i < GRID_LENGTH; i++)
+    if ((card < 0) || (card >= PACK_SIZE))
+       return (NOCARD);
+    for (i = 0; i < GRID_LENGTH; i++)
        if (grid[i] == card)
            return i;
        if (grid[i] == card)
            return i;
-    return(NOCARD);
+    return (NOCARD);
 }
 
 }
 
-static void movecard(int src, int dst)
+static void
+movecard(int src, int dst)
 {
 {
-    grid[dst]=grid[src];
-    grid[src]=NOCARD;
+    grid[dst] = grid[src];
+    grid[src] = NOCARD;
 
 
-    move( BASEROW + (dst / GRID_WIDTH)*2+2, (dst % GRID_WIDTH)*5 + 1);
+    move(BASEROW + (dst / GRID_WIDTH) * 2 + 2, (dst % GRID_WIDTH) * 5 + 1);
     printcard(grid[dst]);
 
     printcard(grid[dst]);
 
-    move( BASEROW + (src / GRID_WIDTH)*2+2, (src % GRID_WIDTH)*5 + 1);
+    move(BASEROW + (src / GRID_WIDTH) * 2 + 2, (src % GRID_WIDTH) * 5 + 1);
     printcard(grid[src]);
 
     refresh();
 }
 
     printcard(grid[src]);
 
     refresh();
 }
 
-static void play_game(void)
+static void
+play_game(void)
 {
 {
-    int dead=0, i, j;
+    int dead = 0, i, j;
     char c;
     int selection[4], card;
 
     char c;
     int selection[4], card;
 
-    while (dead<4)
-    {
-       dead=0;
-       for (i=0;i<4;i++)
-       {
-           card=grid[freeptr[i]-1];
+    while (dead < 4) {
+       dead = 0;
+       for (i = 0; i < 4; i++) {
+           card = grid[freeptr[i] - 1];
 
 
-           if (        ((card % SUIT_LENGTH)==KING)
+           if (((card % SUIT_LENGTH) == KING)
                ||
                ||
-               (card==NOCARD)  )
-               selection[i]=NOCARD;
+               (card == NOCARD))
+               selection[i] = NOCARD;
            else
            else
-               selection[i]=find(card+1);
+               selection[i] = find(card + 1);
 
 
-           if (selection[i]==NOCARD)
+           if (selection[i] == NOCARD)
                dead++;
        };
 
                dead++;
        };
 
-       if (dead < 4)
-       {
-           char        live[NSUITS+1], *lp = live;
-
-           for (i=0;i<4;i++)
-           {
-               if (selection[i] != NOCARD)
-               {
-                   move(BASEROW + (selection[i] / GRID_WIDTH)*2+3,
-                        (selection[i] % GRID_WIDTH)*5);
-                   (void)printw("   %c ", *lp++ = 'a' + i);
+       if (dead < 4) {
+           char live[NSUITS + 1], *lp = live;
+
+           for (i = 0; i < 4; i++) {
+               if (selection[i] != NOCARD) {
+                   move(BASEROW + (selection[i] / GRID_WIDTH) * 2 + 3,
+                        (selection[i] % GRID_WIDTH) * 5);
+                   (void) printw("   %c ", *lp++ = 'a' + i);
                }
            };
            *lp = '\0';
 
                }
            };
            *lp = '\0';
 
-           if (strlen(live) == 1)
-           {
-               move(PROMPTROW,0);
-               (void)printw(
-                   "Making forced moves...                                 ");
+           if (strlen(live) == 1) {
+               move(PROMPTROW, 0);
+               (void) printw(
+                                "Making forced moves...                                 ");
                refresh();
                (void) sleep(1);
                c = live[0];
                refresh();
                (void) sleep(1);
                c = live[0];
-           }
-           else
-           {
-               char    buf[BUFSIZ];
+           } else {
+               char buf[BUFSIZ];
 
 
-               (void)sprintf(buf,
-                       "Type [%s] to move, r to redraw, q or INTR to quit: ",
-                       live);
+               (void) sprintf(buf,
+                              "Type [%s] to move, r to redraw, q or INTR to quit: ",
+                              live);
 
                do {
 
                do {
-                   move(PROMPTROW,0);
+                   move(PROMPTROW, 0);
                    (void) addstr(buf);
                    (void) addstr(buf);
-                   move(PROMPTROW, (int)strlen(buf));
+                   move(PROMPTROW, (int) strlen(buf));
                    clrtoeol();
                    (void) addch(' ');
                } while
                    clrtoeol();
                    (void) addch(' ');
                } while
-                   (((c = getch())<'a' || c>'d') && (c!='r') && (c!='q'));
+                   (((c = getch()) < 'a' || c > 'd') && (c != 'r') && (c != 'q'));
            }
 
            for (j = 0; j < 4; j++)
            }
 
            for (j = 0; j < 4; j++)
-               if (selection[j]!=NOCARD)
-               {
-                   move(BASEROW + (selection[j] / GRID_WIDTH)*2+3,
-                        (selection[j] % GRID_WIDTH)*5);
-                   (void)printw("     ");
+               if (selection[j] != NOCARD) {
+                   move(BASEROW + (selection[j] / GRID_WIDTH) * 2 + 3,
+                        (selection[j] % GRID_WIDTH) * 5);
+                   (void) printw("     ");
                }
 
            if (c == 'r')
                display_cards(deal_number);
            else if (c == 'q')
                die(SIGINT);
                }
 
            if (c == 'r')
                display_cards(deal_number);
            else if (c == 'q')
                die(SIGINT);
-           else
-           {
-               i = c-'a';
+           else {
+               i = c - 'a';
                if (selection[i] == NOCARD)
                    beep();
                if (selection[i] == NOCARD)
                    beep();
-               else
-               {
+               else {
                    movecard(selection[i], freeptr[i]);
                    movecard(selection[i], freeptr[i]);
-                   freeptr[i]=selection[i];
+                   freeptr[i] = selection[i];
                }
            }
        }
                }
            }
        }
@@ -334,76 +323,79 @@ static void play_game(void)
 
     move(PROMPTROW, 0);
     standout();
 
     move(PROMPTROW, 0);
     standout();
-    (void)printw("Finished deal %d - type any character to continue...", deal_number);
+    (void) printw("Finished deal %d - type any character to continue...", deal_number);
     standend();
     (void) getch();
 }
 
     standend();
     (void) getch();
 }
 
-static int collect_discards(void)
+static int
+collect_discards(void)
 {
 {
-    int row, col, cardno=0, finish, gridno;
-
-    for (row=HEARTS;row<=CLUBS;row++)
-    {
-       finish=0;
-       for (col=1;col<GRID_WIDTH;col++)
-       {
-           gridno=row * GRID_WIDTH + col;
-
-           if ((grid[gridno]!=(grid[gridno-1]+1))&&(finish==0))
-           {
-               finish=1;
-               freeptr[row]=gridno;
+    int row, col, cardno = 0, finish, gridno;
+
+    for (row = HEARTS; row <= CLUBS; row++) {
+       finish = 0;
+       for (col = 1; col < GRID_WIDTH; col++) {
+           gridno = row * GRID_WIDTH + col;
+
+           if ((grid[gridno] != (grid[gridno - 1] + 1)) && (finish == 0)) {
+               finish = 1;
+               freeptr[row] = gridno;
            };
 
            };
 
-           if ((finish!=0)&&(grid[gridno]!=NOCARD))
-               deck[cardno++]=grid[gridno];
+           if ((finish != 0) && (grid[gridno] != NOCARD))
+               deck[cardno++] = grid[gridno];
        }
     }
     return cardno;
 }
 
        }
     }
     return cardno;
 }
 
-static void game_finished(int deal)
+static void
+game_finished(int deal)
 {
     clear();
 {
     clear();
-    (void)printw("You finished the game in %d deals. This is ",deal);
+    (void) printw("You finished the game in %d deals. This is ", deal);
     standout();
     standout();
-    if (deal<2)
-       (void)addstr("excellent");
-    else if (deal<4)
-       (void)addstr("good");
-    else if (deal<8)
-       (void)addstr("average");
+    if (deal < 2)
+       (void) addstr("excellent");
+    else if (deal < 4)
+       (void) addstr("good");
+    else if (deal < 8)
+       (void) addstr("average");
     else
     else
-       (void)addstr("poor");
+       (void) addstr("poor");
     standend();
     (void) addstr(".         ");
     refresh();
 }
 
     standend();
     (void) addstr(".         ");
     refresh();
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
     (void) signal(SIGINT, die);
 {
     (void) signal(SIGINT, die);
+
+    setlocale(LC_ALL, "");
+
     initscr();
 
     /*
      * We use COLOR_GREEN because COLOR_BLACK is wired to the wrong thing.
      */
     start_color();
     initscr();
 
     /*
      * We use COLOR_GREEN because COLOR_BLACK is wired to the wrong thing.
      */
     start_color();
-    init_pair(RED_ON_WHITE,    COLOR_RED,   COLOR_WHITE);
-    init_pair(BLUE_ON_WHITE,   COLOR_BLUE,  COLOR_WHITE);
-    init_pair(BLACK_ON_WHITE,  COLOR_BLACK, COLOR_WHITE);
+    init_pair(RED_ON_WHITE, COLOR_RED, COLOR_WHITE);
+    init_pair(BLUE_ON_WHITE, COLOR_BLUE, COLOR_WHITE);
+    init_pair(BLACK_ON_WHITE, COLOR_BLACK, COLOR_WHITE);
 
 #ifndef COLOR_PAIR
 
 #ifndef COLOR_PAIR
-    letters[0] = OR_COLORS('h', RED_ON_WHITE);         /* hearts */
+    letters[0] = OR_COLORS('h', RED_ON_WHITE); /* hearts */
     letters[1] = OR_COLORS('s', BLACK_ON_WHITE);       /* spades */
     letters[1] = OR_COLORS('s', BLACK_ON_WHITE);       /* spades */
-    letters[2] = OR_COLORS('d', RED_ON_WHITE);         /* diamonds */
+    letters[2] = OR_COLORS('d', RED_ON_WHITE); /* diamonds */
     letters[3] = OR_COLORS('c', BLACK_ON_WHITE);       /* clubs */
 #if defined(__i386__) && defined(A_ALTCHARSET)
     letters[3] = OR_COLORS('c', BLACK_ON_WHITE);       /* clubs */
 #if defined(__i386__) && defined(A_ALTCHARSET)
-    glyphs[0]  = PC_COLORS('\003', RED_ON_WHITE);      /* hearts */
-    glyphs[1]  = PC_COLORS('\006', BLACK_ON_WHITE);    /* spades */
-    glyphs[2]  = PC_COLORS('\004', RED_ON_WHITE);      /* diamonds */
-    glyphs[3]  = PC_COLORS('\005', BLACK_ON_WHITE);    /* clubs */
+    glyphs[0] = PC_COLORS('\003', RED_ON_WHITE);       /* hearts */
+    glyphs[1] = PC_COLORS('\006', BLACK_ON_WHITE);     /* spades */
+    glyphs[2] = PC_COLORS('\004', RED_ON_WHITE);       /* diamonds */
+    glyphs[3] = PC_COLORS('\005', BLACK_ON_WHITE);     /* clubs */
 #endif
 #endif
 
 #endif
 #endif
 
@@ -415,13 +407,13 @@ int main(int argc, char *argv[])
     cbreak();
 
     if (argc == 2)
     cbreak();
 
     if (argc == 2)
-       srand((unsigned)atoi(argv[1]));
+       srand((unsigned) atoi(argv[1]));
     else
     else
-       srand((unsigned)time((time_t *)0));
+       srand((unsigned) time((time_t *) 0));
 
     init_vars();
 
 
     init_vars();
 
-    do{
+    do {
        deal_number++;
        shuffle(deck_size);
        deal_cards();
        deal_number++;
        shuffle(deck_size);
        deal_cards();
@@ -429,12 +421,12 @@ int main(int argc, char *argv[])
        play_game();
     }
     while
        play_game();
     }
     while
-       ((deck_size=collect_discards()) != 0);
+       ((deck_size = collect_discards()) != 0);
 
     game_finished(deal_number);
 
     die(SIGINT);
 
     game_finished(deal_number);
 
     die(SIGINT);
-    /*NOTREACHED*/
+    /*NOTREACHED */
 }
 
 /* blue.c ends here */
 }
 
 /* blue.c ends here */
index 368abcd8f28d8e24898345966a4d02c985271a0d..518308a0f31437878e60c33f979b1439fd84c9aa 100644 (file)
--- a/test/bs.c
+++ b/test/bs.c
@@ -7,30 +7,19 @@
  * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
  * v2.1 with ncurses mouse support, September 1995
  *
  * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
  * v2.1 with ncurses mouse support, September 1995
  *
- * $Id: bs.c,v 1.24 1999/08/21 23:14:38 tom Exp $
+ * $Id: bs.c,v 1.36 2002/06/29 23:32:18 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
-#include <signal.h>
 #include <ctype.h>
 #include <ctype.h>
-#include <string.h>
 #include <assert.h>
 #include <time.h>
 
 #include <assert.h>
 #include <time.h>
 
+#include <test.priv.h>
+
 #ifndef SIGIOT
 #define SIGIOT SIGABRT
 #endif
 
 #ifndef SIGIOT
 #define SIGIOT SIGABRT
 #endif
 
-#ifndef A_UNDERLINE    /* BSD curses */
-#define        beep()  write(1,"\007",1);
-#define        cbreak  crmode
-#define        saveterm savetty
-#define        resetterm resetty
-#define        nocbreak nocrmode
-#define strchr index
-#endif /* !A_UNDERLINE */
-
 static int getcoord(int);
 
 /*
 static int getcoord(int);
 
 /*
@@ -57,7 +46,7 @@ static int getcoord(int);
 /* display symbols */
 #define SHOWHIT                '*'
 #define SHOWSPLASH     ' '
 /* display symbols */
 #define SHOWHIT                '*'
 #define SHOWSPLASH     ' '
-#define IS_SHIP(c)     (isupper(c) ? TRUE : FALSE)
+#define IS_SHIP(c)     (isupper(UChar(c)) ? TRUE : FALSE)
 
 /* how to position us on player board */
 #define PYBASE 3
 
 /* how to position us on player board */
 #define PYBASE 3
@@ -79,12 +68,12 @@ static int getcoord(int);
 
 /* other board locations */
 #define COLWIDTH       80
 
 /* other board locations */
 #define COLWIDTH       80
-#define PROMPTLINE     21                      /* prompt line */
+#define PROMPTLINE     21      /* prompt line */
 #define SYBASE         CYBASE + BDEPTH + 3     /* move key diagram */
 #define SXBASE         63
 #define SYBASE         CYBASE + BDEPTH + 3     /* move key diagram */
 #define SXBASE         63
-#define MYBASE         SYBASE - 1              /* diagram caption */
+#define MYBASE         SYBASE - 1      /* diagram caption */
 #define MXBASE         64
 #define MXBASE         64
-#define HYBASE         SYBASE - 1              /* help area */
+#define HYBASE         SYBASE - 1      /* help area */
 #define HXBASE         0
 
 /* this will need to be changed if BWIDTH changes */
 #define HXBASE         0
 
 /* this will need to be changed if BWIDTH changes */
@@ -108,76 +97,76 @@ static char dftname[] = "stranger";
 #define NW     5
 #define N      6
 #define NE     7
 #define NW     5
 #define N      6
 #define NE     7
-static int xincr[8] = {1,  1,  0, -1, -1, -1,  0,  1};
-static int yincr[8] = {0,  1,  1,  1,  0, -1, -1, -1};
+static int xincr[8] =
+{1, 1, 0, -1, -1, -1, 0, 1};
+static int yincr[8] =
+{0, 1, 1, 1, 0, -1, -1, -1};
 
 /* current ship position and direction */
 static int curx = (BWIDTH / 2);
 static int cury = (BDEPTH / 2);
 
 
 /* current ship position and direction */
 static int curx = (BWIDTH / 2);
 static int cury = (BDEPTH / 2);
 
-typedef struct
-{
+typedef struct {
     char *name;                        /* name of the ship type */
     int hits;                  /* how many times has this ship been hit? */
     char symbol;               /* symbol for game purposes */
     int length;                        /* length of ship */
     char *name;                        /* name of the ship type */
     int hits;                  /* how many times has this ship been hit? */
     char symbol;               /* symbol for game purposes */
     int length;                        /* length of ship */
-    char x, y;                 /* coordinates of ship start point */
-    unsigned char dir;         /* direction of `bow' */
+    int x, y;                  /* coordinates of ship start point */
+    int dir;                   /* direction of `bow' */
     bool placed;               /* has it been placed on the board? */
     bool placed;               /* has it been placed on the board? */
-}
-ship_t;
+} ship_t;
 
 
-static bool checkplace(int b, ship_t *ss, int vis);
+static bool checkplace(int b, ship_t * ss, int vis);
 
 #define SHIPIT(name, symbol, length) { name, 0, symbol, length, 0,0, 0, FALSE }
 
 static ship_t plyship[SHIPTYPES] =
 {
 
 #define SHIPIT(name, symbol, length) { name, 0, symbol, length, 0,0, 0, FALSE }
 
 static ship_t plyship[SHIPTYPES] =
 {
-    SHIPIT(carrier,    'A', 5),
-    SHIPIT(battle,     'B', 4),
-    SHIPIT(destroy,    'D', 3),
-    SHIPIT(sub,                'S', 3),
-    SHIPIT(ptboat,     'P', 2),
+    SHIPIT(carrier, 'A', 5),
+    SHIPIT(battle, 'B', 4),
+    SHIPIT(destroy, 'D', 3),
+    SHIPIT(sub, 'S', 3),
+    SHIPIT(ptboat, 'P', 2),
 };
 
 static ship_t cpuship[SHIPTYPES] =
 {
 };
 
 static ship_t cpuship[SHIPTYPES] =
 {
-    SHIPIT(carrier,    'A', 5),
-    SHIPIT(battle,     'B', 4),
-    SHIPIT(destroy,    'D', 3),
-    SHIPIT(sub,                'S', 3),
-    SHIPIT(ptboat,     'P', 2),
+    SHIPIT(carrier, 'A', 5),
+    SHIPIT(battle, 'B', 4),
+    SHIPIT(destroy, 'D', 3),
+    SHIPIT(sub, 'S', 3),
+    SHIPIT(ptboat, 'P', 2),
 };
 
 /* "Hits" board, and main board. */
 static char hits[2][BWIDTH][BDEPTH];
 static char board[2][BWIDTH][BDEPTH];
 
 };
 
 /* "Hits" board, and main board. */
 static char hits[2][BWIDTH][BDEPTH];
 static char board[2][BWIDTH][BDEPTH];
 
-static int turn;                       /* 0=player, 1=computer */
-static int plywon=0, cpuwon=0;         /* How many games has each won? */
+static int turn;               /* 0=player, 1=computer */
+static int plywon = 0, cpuwon = 0;     /* How many games has each won? */
 
 static int salvo, blitz, closepack;
 
 #define        PR      (void)addstr
 
 
 static int salvo, blitz, closepack;
 
 #define        PR      (void)addstr
 
-static RETSIGTYPE uninitgame(int sig)  GCC_NORETURN;
+static RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
 
 static RETSIGTYPE uninitgame(int sig GCC_UNUSED)
 /* end the game, either normally or due to signal */
 {
     clear();
 
 static RETSIGTYPE uninitgame(int sig GCC_UNUSED)
 /* end the game, either normally or due to signal */
 {
     clear();
-    (void)refresh();
-    (void)resetterm();
-    (void)echo();
-    (void)endwin();
-    exit(EXIT_FAILURE);
+    (void) refresh();
+    (void) reset_shell_mode();
+    (void) echo();
+    (void) endwin();
+    ExitProgram(sig ? EXIT_FAILURE : EXIT_SUCCESS);
 }
 
 }
 
-static void announceopts(void)
+static void
+announceopts(void)
 /* announce which game options are enabled */
 {
 /* announce which game options are enabled */
 {
-    if (salvo || blitz || closepack)
-    {
+    if (salvo || blitz || closepack) {
        (void) printw("Playing optional game (");
        if (salvo)
            (void) printw("salvo, ");
        (void) printw("Playing optional game (");
        if (salvo)
            (void) printw("salvo, ");
@@ -191,45 +180,41 @@ static void announceopts(void)
            (void) printw("closepack)");
        else
            (void) printw("noclosepack)");
            (void) printw("closepack)");
        else
            (void) printw("noclosepack)");
-    }
-    else
+    } else
        (void) printw(
        (void) printw(
-       "Playing standard game (noblitz, nosalvo, noclosepack)");
+                        "Playing standard game (noblitz, nosalvo, noclosepack)");
 }
 
 }
 
-static void intro(void)
+static void
+intro(void)
 {
     char *tmpname;
 
 {
     char *tmpname;
 
-    srand((unsigned)(time(0L)+getpid()));      /* Kick the random number generator */
+    srand((unsigned) (time(0L) + getpid()));   /* Kick the random number generator */
 
 
-    (void) signal(SIGINT,uninitgame);
-    (void) signal(SIGINT,uninitgame);
-    (void) signal(SIGIOT,uninitgame);          /* for assert(3) */
-    if(signal(SIGQUIT,SIG_IGN) != SIG_IGN)
-       (void)signal(SIGQUIT,uninitgame);
+    (void) signal(SIGINT, uninitgame);
+    (void) signal(SIGINT, uninitgame);
+    (void) signal(SIGIOT, uninitgame); /* for assert(3) */
+    if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)
+       (void) signal(SIGQUIT, uninitgame);
 
 
-    if((tmpname = getlogin()) != 0)
-    {
-       (void)strcpy(name,tmpname);
+    if ((tmpname = getlogin()) != 0) {
+       (void) strcpy(name, tmpname);
        name[0] = toupper(name[0]);
        name[0] = toupper(name[0]);
-    }
-    else
-       (void)strcpy(name,dftname);
+    } else
+       (void) strcpy(name, dftname);
 
 
-    (void)initscr();
-#ifdef KEY_MIN
+    (void) initscr();
     keypad(stdscr, TRUE);
     keypad(stdscr, TRUE);
-#endif /* KEY_MIN */
-    (void)saveterm();
-    (void)nonl();
-    (void)cbreak();
-    (void)noecho();
+    (void) def_prog_mode();
+    (void) nonl();
+    (void) cbreak();
+    (void) noecho();
 
 #ifdef PENGUIN
 
 #ifdef PENGUIN
-    (void)clear();
-    (void)mvaddstr(4,29,"Welcome to Battleship!");
-    (void)move(8,0);
+    (void) clear();
+    (void) mvaddstr(4, 29, "Welcome to Battleship!");
+    (void) move(8, 0);
     PR("                                                  \\\n");
     PR("                           \\                     \\ \\\n");
     PR("                          \\ \\                   \\ \\ \\_____________\n");
     PR("                                                  \\\n");
     PR("                           \\                     \\ \\\n");
     PR("                          \\ \\                   \\ \\ \\_____________\n");
@@ -241,7 +226,8 @@ static void intro(void)
     PR("            \\                                                     /\n");
     PR("             \\___________________________________________________/\n");
 
     PR("            \\                                                     /\n");
     PR("             \\___________________________________________________/\n");
 
-    (void) mvaddstr(22,27,"Hit any key to continue..."); (void)refresh();
+    (void) mvaddstr(22, 27, "Hit any key to continue...");
+    (void) refresh();
     (void) getch();
 #endif /* PENGUIN */
 
     (void) getch();
 #endif /* PENGUIN */
 
@@ -259,12 +245,13 @@ static void intro(void)
 #endif /* A_COLOR */
 
 #ifdef NCURSES_MOUSE_VERSION
 #endif /* A_COLOR */
 
 #ifdef NCURSES_MOUSE_VERSION
-    (void) mousemask(BUTTON1_CLICKED, (mmask_t *)NULL);
-#endif /* NCURSES_MOUSE_VERSION*/
-}                  
+    (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
+#endif /* NCURSES_MOUSE_VERSION */
+}
 
 /* VARARGS1 */
 
 /* VARARGS1 */
-static void prompt(int n, NCURSES_CONST char *f, const char *s)
+static void
+prompt(int n, NCURSES_CONST char *f, const char *s)
 /* print a message at the prompt line */
 {
     (void) move(PROMPTLINE + n, 0);
 /* print a message at the prompt line */
 {
     (void) move(PROMPTLINE + n, 0);
@@ -273,92 +260,90 @@ static void prompt(int n, NCURSES_CONST char *f, const char *s)
     (void) refresh();
 }
 
     (void) refresh();
 }
 
-static void error(NCURSES_CONST char *s)
+static void
+error(NCURSES_CONST char *s)
 {
     (void) move(PROMPTLINE + 2, 0);
     (void) clrtoeol();
 {
     (void) move(PROMPTLINE + 2, 0);
     (void) clrtoeol();
-    if (s)
-    {
+    if (s) {
        (void) addstr(s);
        (void) beep();
     }
 }
 
        (void) addstr(s);
        (void) beep();
     }
 }
 
-static void placeship(int b, ship_t *ss, int vis)
+static void
+placeship(int b, ship_t * ss, int vis)
 {
     int l;
 
 {
     int l;
 
-    for(l = 0; l < ss->length; ++l)
-    {
+    for (l = 0; l < ss->length; ++l) {
        int newx = ss->x + l * xincr[ss->dir];
        int newy = ss->y + l * yincr[ss->dir];
 
        board[b][newx][newy] = ss->symbol;
        int newx = ss->x + l * xincr[ss->dir];
        int newy = ss->y + l * yincr[ss->dir];
 
        board[b][newx][newy] = ss->symbol;
-       if (vis)
-       {
+       if (vis) {
            pgoto(newy, newx);
            pgoto(newy, newx);
-           (void) addch((chtype)ss->symbol);
+           (void) addch((chtype) ss->symbol);
        }
     }
     ss->hits = 0;
 }
 
        }
     }
     ss->hits = 0;
 }
 
-static int rnd(int n)
+static int
+rnd(int n)
 {
 {
-    return(((rand() & 0x7FFF) % n));
+    return (((rand() & 0x7FFF) % n));
 }
 
 }
 
-static void randomplace(int b, ship_t *ss)
+static void
+randomplace(int b, ship_t * ss)
 /* generate a valid random ship placement into px,py */
 {
 /* generate a valid random ship placement into px,py */
 {
-    register int bwidth = BWIDTH - ss->length;
-    register int bdepth = BDEPTH - ss->length;
 
     do {
 
     do {
-       ss->y = rnd(bdepth);
-       ss->x = rnd(bwidth);
        ss->dir = rnd(2) ? E : S;
        ss->dir = rnd(2) ? E : S;
+       ss->x = rnd(BWIDTH - (ss->dir == E ? ss->length : 0));
+       ss->y = rnd(BDEPTH - (ss->dir == S ? ss->length : 0));
     } while
        (!checkplace(b, ss, FALSE));
 }
 
     } while
        (!checkplace(b, ss, FALSE));
 }
 
-static void initgame(void)
+static void
+initgame(void)
 {
     int i, j, unplaced;
     ship_t *ss;
 
     (void) clear();
 {
     int i, j, unplaced;
     ship_t *ss;
 
     (void) clear();
-    (void) mvaddstr(0,35,"BATTLESHIPS");
+    (void) mvaddstr(0, 35, "BATTLESHIPS");
     (void) move(PROMPTLINE + 2, 0);
     announceopts();
 
     memset(board, 0, sizeof(char) * BWIDTH * BDEPTH * 2);
     (void) move(PROMPTLINE + 2, 0);
     announceopts();
 
     memset(board, 0, sizeof(char) * BWIDTH * BDEPTH * 2);
-    memset(hits,  0, sizeof(char) * BWIDTH * BDEPTH * 2);
-    for (i = 0; i < SHIPTYPES; i++)
-    {
+    memset(hits, 0, sizeof(char) * BWIDTH * BDEPTH * 2);
+    for (i = 0; i < SHIPTYPES; i++) {
        ss = cpuship + i;
 
        ss->x =
        ss = cpuship + i;
 
        ss->x =
-       ss->y =
-       ss->dir =
-       ss->hits = 0;
+           ss->y =
+           ss->dir =
+           ss->hits = 0;
        ss->placed = FALSE;
 
        ss = plyship + i;
 
        ss->x =
        ss->placed = FALSE;
 
        ss = plyship + i;
 
        ss->x =
-       ss->y =
-       ss->dir =
-       ss->hits = 0;
+           ss->y =
+           ss->dir =
+           ss->hits = 0;
        ss->placed = FALSE;
     }
 
     /* draw empty boards */
     (void) mvaddstr(PYBASE - 2, PXBASE + 5, "Main Board");
        ss->placed = FALSE;
     }
 
     /* draw empty boards */
     (void) mvaddstr(PYBASE - 2, PXBASE + 5, "Main Board");
-    (void) mvaddstr(PYBASE - 1, PXBASE - 3,numbers);
-    for(i=0; i < BDEPTH; ++i)
-    {
-       (void) mvaddch(PYBASE + i, PXBASE - 3, (chtype)(i + 'A'));
+    (void) mvaddstr(PYBASE - 1, PXBASE - 3, numbers);
+    for (i = 0; i < BDEPTH; ++i) {
+       (void) mvaddch(PYBASE + i, PXBASE - 3, (chtype) (i + 'A'));
 #ifdef A_COLOR
        if (has_colors())
            attron(COLOR_PAIR(COLOR_BLUE));
 #ifdef A_COLOR
        if (has_colors())
            attron(COLOR_PAIR(COLOR_BLUE));
@@ -370,14 +355,13 @@ static void initgame(void)
        attrset(0);
 #endif /* A_COLOR */
        (void) addch(' ');
        attrset(0);
 #endif /* A_COLOR */
        (void) addch(' ');
-       (void) addch((chtype)(i + 'A'));
+       (void) addch((chtype) (i + 'A'));
     }
     }
-    (void) mvaddstr(PYBASE + BDEPTH, PXBASE - 3,numbers);
-    (void) mvaddstr(CYBASE - 2, CXBASE + 7,"Hit/Miss Board");
+    (void) mvaddstr(PYBASE + BDEPTH, PXBASE - 3, numbers);
+    (void) mvaddstr(CYBASE - 2, CXBASE + 7, "Hit/Miss Board");
     (void) mvaddstr(CYBASE - 1, CXBASE - 3, numbers);
     (void) mvaddstr(CYBASE - 1, CXBASE - 3, numbers);
-    for(i=0; i < BDEPTH; ++i)
-    {
-       (void) mvaddch(CYBASE + i, CXBASE - 3, (chtype)(i + 'A'));
+    for (i = 0; i < BDEPTH; ++i) {
+       (void) mvaddch(CYBASE + i, CXBASE - 3, (chtype) (i + 'A'));
 #ifdef A_COLOR
        if (has_colors())
            attron(COLOR_PAIR(COLOR_BLUE));
 #ifdef A_COLOR
        if (has_colors())
            attron(COLOR_PAIR(COLOR_BLUE));
@@ -389,39 +373,38 @@ static void initgame(void)
        attrset(0);
 #endif /* A_COLOR */
        (void) addch(' ');
        attrset(0);
 #endif /* A_COLOR */
        (void) addch(' ');
-       (void) addch((chtype)(i + 'A'));
+       (void) addch((chtype) (i + 'A'));
     }
 
     }
 
-    (void) mvaddstr(CYBASE + BDEPTH,CXBASE - 3,numbers);
+    (void) mvaddstr(CYBASE + BDEPTH, CXBASE - 3, numbers);
 
 
-    (void) mvprintw(HYBASE,  HXBASE,
+    (void) mvprintw(HYBASE, HXBASE,
                    "To position your ships: move the cursor to a spot, then");
                    "To position your ships: move the cursor to a spot, then");
-    (void) mvprintw(HYBASE+1,HXBASE,
+    (void) mvprintw(HYBASE + 1, HXBASE,
                    "type the first letter of a ship type to select it, then");
                    "type the first letter of a ship type to select it, then");
-    (void) mvprintw(HYBASE+2,HXBASE,
+    (void) mvprintw(HYBASE + 2, HXBASE,
                    "type a direction ([hjkl] or [4862]), indicating how the");
                    "type a direction ([hjkl] or [4862]), indicating how the");
-    (void) mvprintw(HYBASE+3,HXBASE,
+    (void) mvprintw(HYBASE + 3, HXBASE,
                    "ship should be pointed. You may also type a ship letter");
                    "ship should be pointed. You may also type a ship letter");
-    (void) mvprintw(HYBASE+4,HXBASE,
+    (void) mvprintw(HYBASE + 4, HXBASE,
                    "followed by `r' to position it randomly, or type `R' to");
                    "followed by `r' to position it randomly, or type `R' to");
-    (void) mvprintw(HYBASE+5,HXBASE,
+    (void) mvprintw(HYBASE + 5, HXBASE,
                    "place all remaining ships randomly.");
 
                    "place all remaining ships randomly.");
 
-    (void) mvaddstr(MYBASE,   MXBASE, "Aiming keys:");
-    (void) mvaddstr(SYBASE,   SXBASE, "y k u    7 8 9");
-    (void) mvaddstr(SYBASE+1, SXBASE, " \\|/      \\|/ ");
-    (void) mvaddstr(SYBASE+2, SXBASE, "h-+-l    4-+-6");
-    (void) mvaddstr(SYBASE+3, SXBASE, " /|\\      /|\\ ");
-    (void) mvaddstr(SYBASE+4, SXBASE, "b j n    1 2 3");
+    (void) mvaddstr(MYBASE, MXBASE, "Aiming keys:");
+    (void) mvaddstr(SYBASE, SXBASE, "y k u    7 8 9");
+    (void) mvaddstr(SYBASE + 1, SXBASE, " \\|/      \\|/ ");
+    (void) mvaddstr(SYBASE + 2, SXBASE, "h-+-l    4-+-6");
+    (void) mvaddstr(SYBASE + 3, SXBASE, " /|\\      /|\\ ");
+    (void) mvaddstr(SYBASE + 4, SXBASE, "b j n    1 2 3");
 
     /* have the computer place ships */
 
     /* have the computer place ships */
-    for(ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
-    {
+    for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++) {
        randomplace(COMPUTER, ss);
        placeship(COMPUTER, ss, FALSE);
     }
 
        randomplace(COMPUTER, ss);
        placeship(COMPUTER, ss, FALSE);
     }
 
-    ss = (ship_t *)NULL;
+    ss = (ship_t *) NULL;
     do {
        char c, docked[SHIPTYPES + 2], *cp = docked;
 
     do {
        char c, docked[SHIPTYPES + 2], *cp = docked;
 
@@ -433,7 +416,7 @@ static void initgame(void)
        *cp = '\0';
 
        /* get a command letter */
        *cp = '\0';
 
        /* get a command letter */
-       prompt(1, "Type one of [%s] to pick a ship.", docked+1);
+       prompt(1, "Type one of [%s] to pick a ship.", docked + 1);
        do {
            c = getcoord(PLAYER);
        } while
        do {
            c = getcoord(PLAYER);
        } while
@@ -441,8 +424,7 @@ static void initgame(void)
 
        if (c == 'R')
            (void) ungetch('R');
 
        if (c == 'R')
            (void) ungetch('R');
-       else
-       {
+       else {
            /* map that into the corresponding symbol */
            for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
                if (ss->symbol == c)
            /* map that into the corresponding symbol */
            for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
                if (ss->symbol == c)
@@ -457,48 +439,50 @@ static void initgame(void)
        } while
            (!strchr("hjklrR", c) || c == FF);
 
        } while
            (!strchr("hjklrR", c) || c == FF);
 
-       if (c == FF)
-       {
-           (void)clearok(stdscr, TRUE);
-           (void)refresh();
-       }
-       else if (c == 'r')
-       {
+       if (c == FF) {
+           (void) clearok(stdscr, TRUE);
+           (void) refresh();
+       } else if (c == 'r') {
            prompt(1, "Random-placing your %s", ss->name);
            randomplace(PLAYER, ss);
            placeship(PLAYER, ss, TRUE);
            prompt(1, "Random-placing your %s", ss->name);
            randomplace(PLAYER, ss);
            placeship(PLAYER, ss, TRUE);
-           error((char *)NULL);
+           error((char *) NULL);
            ss->placed = TRUE;
            ss->placed = TRUE;
-       }           
-       else if (c == 'R')
-       {
+       } else if (c == 'R') {
            prompt(1, "Placing the rest of your fleet at random...", "");
            for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
            prompt(1, "Placing the rest of your fleet at random...", "");
            for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
-               if (!ss->placed)
-               {
+               if (!ss->placed) {
                    randomplace(PLAYER, ss);
                    placeship(PLAYER, ss, TRUE);
                    ss->placed = TRUE;
                }
                    randomplace(PLAYER, ss);
                    placeship(PLAYER, ss, TRUE);
                    ss->placed = TRUE;
                }
-           error((char *)NULL);
-       }           
-       else if (strchr("hjkl8462", c))
-       {
+           error((char *) NULL);
+       } else if (strchr("hjkl8462", c)) {
            ss->x = curx;
            ss->y = cury;
 
            ss->x = curx;
            ss->y = cury;
 
-           switch(c)
-           {
-           case 'k': case '8': ss->dir = N; break;
-           case 'j': case '2': ss->dir = S; break;
-           case 'h': case '4': ss->dir = W; break;
-           case 'l': case '6': ss->dir = E; break;
-           }       
+           switch (c) {
+           case 'k':
+           case '8':
+               ss->dir = N;
+               break;
+           case 'j':
+           case '2':
+               ss->dir = S;
+               break;
+           case 'h':
+           case '4':
+               ss->dir = W;
+               break;
+           case 'l':
+           case '6':
+               ss->dir = E;
+               break;
+           }
 
 
-           if (checkplace(PLAYER, ss, TRUE))
-           {
+           if (checkplace(PLAYER, ss, TRUE)) {
                placeship(PLAYER, ss, TRUE);
                placeship(PLAYER, ss, TRUE);
-               error((char *)NULL);
+               error((char *) NULL);
                ss->placed = TRUE;
            }
        }
                ss->placed = TRUE;
            }
        }
@@ -510,116 +494,112 @@ static void initgame(void)
 
     turn = rnd(2);
 
 
     turn = rnd(2);
 
-    (void) mvprintw(HYBASE,  HXBASE,
+    (void) mvprintw(HYBASE, HXBASE,
                    "To fire, move the cursor to your chosen aiming point   ");
                    "To fire, move the cursor to your chosen aiming point   ");
-    (void) mvprintw(HYBASE+1,  HXBASE,
+    (void) mvprintw(HYBASE + 1, HXBASE,
                    "and strike any key other than a motion key.            ");
                    "and strike any key other than a motion key.            ");
-    (void) mvprintw(HYBASE+2,  HXBASE,
+    (void) mvprintw(HYBASE + 2, HXBASE,
                    "                                                       ");
                    "                                                       ");
-    (void) mvprintw(HYBASE+3,  HXBASE,
+    (void) mvprintw(HYBASE + 3, HXBASE,
                    "                                                       ");
                    "                                                       ");
-    (void) mvprintw(HYBASE+4,  HXBASE,
+    (void) mvprintw(HYBASE + 4, HXBASE,
                    "                                                       ");
                    "                                                       ");
-    (void) mvprintw(HYBASE+5,  HXBASE,
+    (void) mvprintw(HYBASE + 5, HXBASE,
                    "                                                       ");
 
     (void) prompt(0, "Press any key to start...", "");
     (void) getch();
 }
 
                    "                                                       ");
 
     (void) prompt(0, "Press any key to start...", "");
     (void) getch();
 }
 
-static int getcoord(int atcpu)
+static int
+getcoord(int atcpu)
 {
     int ny, nx, c;
 
     if (atcpu)
 {
     int ny, nx, c;
 
     if (atcpu)
-       cgoto(cury,curx);
+       cgoto(cury, curx);
     else
        pgoto(cury, curx);
     else
        pgoto(cury, curx);
-    (void)refresh();
-    for (;;)
-    {
-       if (atcpu)
-       {
-           (void) mvprintw(CYBASE + BDEPTH+1, CXBASE+11, "(%d, %c)", curx, 'A'+cury);
+    (void) refresh();
+    for (;;) {
+       if (atcpu) {
+           (void) mvprintw(CYBASE + BDEPTH + 1, CXBASE + 11, "(%d, %c)",
+                           curx, 'A' + cury);
            cgoto(cury, curx);
            cgoto(cury, curx);
-       }
-       else
-       {
-           (void) mvprintw(PYBASE + BDEPTH+1, PXBASE+11, "(%d, %c)", curx, 'A'+cury);
+       } else {
+           (void) mvprintw(PYBASE + BDEPTH + 1, PXBASE + 11, "(%d, %c)",
+                           curx, 'A' + cury);
            pgoto(cury, curx);
        }
 
            pgoto(cury, curx);
        }
 
-       switch(c = getch())
-       {
-       case 'k': case '8':
-#ifdef KEY_MIN
+       switch (c = getch()) {
+       case 'k':
+       case '8':
        case KEY_UP:
        case KEY_UP:
-#endif /* KEY_MIN */
-           ny = cury+BDEPTH-1; nx = curx;
+           ny = cury + BDEPTH - 1;
+           nx = curx;
            break;
            break;
-       case 'j': case '2':
-#ifdef KEY_MIN
+       case 'j':
+       case '2':
        case KEY_DOWN:
        case KEY_DOWN:
-#endif /* KEY_MIN */
-           ny = cury+1;        nx = curx;
+           ny = cury + 1;
+           nx = curx;
            break;
            break;
-       case 'h': case '4':
-#ifdef KEY_MIN
+       case 'h':
+       case '4':
        case KEY_LEFT:
        case KEY_LEFT:
-#endif /* KEY_MIN */
-           ny = cury;          nx = curx+BWIDTH-1;
+           ny = cury;
+           nx = curx + BWIDTH - 1;
            break;
            break;
-       case 'l': case '6':
-#ifdef KEY_MIN
+       case 'l':
+       case '6':
        case KEY_RIGHT:
        case KEY_RIGHT:
-#endif /* KEY_MIN */
-           ny = cury;          nx = curx+1;
+           ny = cury;
+           nx = curx + 1;
            break;
            break;
-       case 'y': case '7':
-#ifdef KEY_MIN
+       case 'y':
+       case '7':
        case KEY_A1:
        case KEY_A1:
-#endif /* KEY_MIN */
-           ny = cury+BDEPTH-1; nx = curx+BWIDTH-1;
+           ny = cury + BDEPTH - 1;
+           nx = curx + BWIDTH - 1;
            break;
            break;
-       case 'b': case '1':
-#ifdef KEY_MIN
+       case 'b':
+       case '1':
        case KEY_C1:
        case KEY_C1:
-#endif /* KEY_MIN */
-           ny = cury+1;        nx = curx+BWIDTH-1;
+           ny = cury + 1;
+           nx = curx + BWIDTH - 1;
            break;
            break;
-       case 'u': case '9':
-#ifdef KEY_MIN
+       case 'u':
+       case '9':
        case KEY_A3:
        case KEY_A3:
-#endif /* KEY_MIN */
-           ny = cury+BDEPTH-1; nx = curx+1;
+           ny = cury + BDEPTH - 1;
+           nx = curx + 1;
            break;
            break;
-       case 'n': case '3':
-#ifdef KEY_MIN
+       case 'n':
+       case '3':
        case KEY_C3:
        case KEY_C3:
-#endif /* KEY_MIN */
-           ny = cury+1;        nx = curx+1;
+           ny = cury + 1;
+           nx = curx + 1;
            break;
        case FF:
            break;
        case FF:
-           nx = curx; ny = cury;
-           (void)clearok(stdscr, TRUE);
-           (void)refresh();
+           nx = curx;
+           ny = cury;
+           (void) clearok(stdscr, TRUE);
+           (void) refresh();
            break;
 #ifdef NCURSES_MOUSE_VERSION
        case KEY_MOUSE:
            {
            break;
 #ifdef NCURSES_MOUSE_VERSION
        case KEY_MOUSE:
            {
-               MEVENT  myevent;
+               MEVENT myevent;
 
                getmouse(&myevent);
                if (atcpu
 
                getmouse(&myevent);
                if (atcpu
-                       && myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
-                       && myevent.x >= CX(0) && myevent.x <= CX(BDEPTH))
-               {
+                   && myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
+                   && myevent.x >= CX(0) && myevent.x <= CX(BDEPTH)) {
                    curx = CXINV(myevent.x);
                    cury = CYINV(myevent.y);
                    curx = CXINV(myevent.x);
                    cury = CYINV(myevent.y);
-                   return(' ');
-               }
-               else
-               {
+                   return (' ');
+               } else {
                    beep();
                    continue;
                }
                    beep();
                    continue;
                }
@@ -632,7 +612,7 @@ static int getcoord(int atcpu)
                (void) mvaddstr(CYBASE + BDEPTH + 1, CXBASE + 11, "      ");
            else
                (void) mvaddstr(PYBASE + BDEPTH + 1, PXBASE + 11, "      ");
                (void) mvaddstr(CYBASE + BDEPTH + 1, CXBASE + 11, "      ");
            else
                (void) mvaddstr(PYBASE + BDEPTH + 1, PXBASE + 11, "      ");
-           return(c);
+           return (c);
        }
 
        curx = nx % BWIDTH;
        }
 
        curx = nx % BWIDTH;
@@ -640,48 +620,46 @@ static int getcoord(int atcpu)
     }
 }
 
     }
 }
 
-static bool collidecheck(int b, int y, int x)
+static bool
+collidecheck(int b, int y, int x)
 /* is this location on the selected zboard adjacent to a ship? */
 {
     bool collide;
 
     /* anything on the square */
     if ((collide = IS_SHIP(board[b][x][y])) != FALSE)
 /* is this location on the selected zboard adjacent to a ship? */
 {
     bool collide;
 
     /* anything on the square */
     if ((collide = IS_SHIP(board[b][x][y])) != FALSE)
-       return(collide);
+       return (collide);
 
     /* anything on the neighbors */
 
     /* anything on the neighbors */
-    if (!closepack)
-    {
+    if (!closepack) {
        int i;
 
        int i;
 
-       for (i = 0; i < 8; i++)
-       {
+       for (i = 0; i < 8; i++) {
            int xend, yend;
 
            yend = y + yincr[i];
            xend = x + xincr[i];
            if (ONBOARD(xend, yend)
            int xend, yend;
 
            yend = y + yincr[i];
            xend = x + xincr[i];
            if (ONBOARD(xend, yend)
-            && IS_SHIP(board[b][xend][yend])) {
+               && IS_SHIP(board[b][xend][yend])) {
                collide = TRUE;
                break;
            }
        }
     }
                collide = TRUE;
                break;
            }
        }
     }
-    return(collide);
+    return (collide);
 }
 
 }
 
-static bool checkplace(int b, ship_t *ss, int vis)
+static bool
+checkplace(int b, ship_t * ss, int vis)
 {
     int l, xend, yend;
 
     /* first, check for board edges */
 {
     int l, xend, yend;
 
     /* first, check for board edges */
-    xend = ss->x + ss->length * xincr[ss->dir];
-    yend = ss->y + ss->length * yincr[ss->dir];
-    if (!ONBOARD(xend, yend))
-    {
+    xend = ss->x + (ss->length - 1) * xincr[ss->dir];
+    yend = ss->y + (ss->length - 1) * yincr[ss->dir];
+    if (!ONBOARD(xend, yend)) {
        if (vis)
        if (vis)
-           switch(rnd(3))
-           {
+           switch (rnd(3)) {
            case 0:
                error("Ship is hanging from the edge of the world");
                break;
            case 0:
                error("Ship is hanging from the edge of the world");
                break;
@@ -692,50 +670,48 @@ static bool checkplace(int b, ship_t *ss, int vis)
                error("Figure I won't find it if you put it there?");
                break;
            }
                error("Figure I won't find it if you put it there?");
                break;
            }
-       return(FALSE);
+       return (FALSE);
     }
 
     }
 
-    for(l = 0; l < ss->length; ++l)
-    {
-       if(collidecheck(b, ss->y+l*yincr[ss->dir], ss->x+l*xincr[ss->dir]))
-       {
+    for (l = 0; l < ss->length; ++l) {
+       if (collidecheck(b, ss->y + l * yincr[ss->dir], ss->x + l * xincr[ss->dir])) {
            if (vis)
            if (vis)
-               switch(rnd(3))
-               {
-                   case 0:
-                       error("There's already a ship there");
-                       break;
-                   case 1:
-                       error("Collision alert!  Aaaaaagh!");
-                       break;
-                   case 2:
-                       error("Er, Admiral, what about the other ship?");
-                       break;
-                   }
-           return(FALSE);
-           }
+               switch (rnd(3)) {
+               case 0:
+                   error("There's already a ship there");
+                   break;
+               case 1:
+                   error("Collision alert!  Aaaaaagh!");
+                   break;
+               case 2:
+                   error("Er, Admiral, what about the other ship?");
+                   break;
+               }
+           return (FALSE);
        }
        }
-    return(TRUE);
+    }
+    return (TRUE);
 }
 
 }
 
-static int awinna(void)
+static int
+awinna(void)
 {
     int i, j;
     ship_t *ss;
 
 {
     int i, j;
     ship_t *ss;
 
-    for(i=0; i<2; ++i)
-    {
+    for (i = 0; i < 2; ++i) {
        ss = (i) ? cpuship : plyship;
        ss = (i) ? cpuship : plyship;
-       for(j=0; j < SHIPTYPES; ++j, ++ss)
-           if(ss->length > ss->hits)
+       for (j = 0; j < SHIPTYPES; ++j, ++ss)
+           if (ss->length > ss->hits)
                break;
        if (j == SHIPTYPES)
                break;
        if (j == SHIPTYPES)
-           return(OTHER);
+           return (OTHER);
     }
     }
-    return(-1);
+    return (-1);
 }
 
 }
 
-static ship_t *hitship(int x, int y)
+static ship_t *
+hitship(int x, int y)
 /* register a hit on the targeted ship */
 {
     ship_t *sb, *ss;
 /* register a hit on the targeted ship */
 {
     ship_t *sb, *ss;
@@ -744,85 +720,88 @@ static ship_t *hitship(int x, int y)
 
     getyx(stdscr, oldy, oldx);
     sb = (turn) ? plyship : cpuship;
 
     getyx(stdscr, oldy, oldx);
     sb = (turn) ? plyship : cpuship;
-    if((sym = board[OTHER][x][y]) == 0)
-       return((ship_t *)NULL);
-    for(ss = sb; ss < sb + SHIPTYPES; ++ss)
-       if(ss->symbol == sym)
-       {
+    if ((sym = board[OTHER][x][y]) == 0)
+       return ((ship_t *) NULL);
+    for (ss = sb; ss < sb + SHIPTYPES; ++ss)
+       if (ss->symbol == sym) {
            if (++ss->hits < ss->length)        /* still afloat? */
            if (++ss->hits < ss->length)        /* still afloat? */
-               return((ship_t *)NULL);
-           else                                /* sunk! */
-           {
+               return ((ship_t *) NULL);
+           else {              /* sunk! */
                int i, j;
 
                if (!closepack)
                int i, j;
 
                if (!closepack)
-                   for (j = -1; j <= 1; j++)
-                   {
+                   for (j = -1; j <= 1; j++) {
                        int bx = ss->x + j * xincr[(ss->dir + 2) % 8];
                        int by = ss->y + j * yincr[(ss->dir + 2) % 8];
 
                        int bx = ss->x + j * xincr[(ss->dir + 2) % 8];
                        int by = ss->y + j * yincr[(ss->dir + 2) % 8];
 
-                       for (i = -1; i <= ss->length; ++i)
-                       {
+                       for (i = -1; i <= ss->length; ++i) {
                            int x1, y1;
                            int x1, y1;
-                           
+
                            x1 = bx + i * xincr[ss->dir];
                            y1 = by + i * yincr[ss->dir];
                            x1 = bx + i * xincr[ss->dir];
                            y1 = by + i * yincr[ss->dir];
-                           if (ONBOARD(x1, y1))
-                           {
+                           if (ONBOARD(x1, y1)) {
                                hits[turn][x1][y1] = MARK_MISS;
                                hits[turn][x1][y1] = MARK_MISS;
-                               if (turn % 2 == PLAYER)
-                               {
+                               if (turn % 2 == PLAYER) {
                                    cgoto(y1, x1);
 #ifdef A_COLOR
                                    if (has_colors())
                                        attron(COLOR_PAIR(COLOR_GREEN));
 #endif /* A_COLOR */
                                    cgoto(y1, x1);
 #ifdef A_COLOR
                                    if (has_colors())
                                        attron(COLOR_PAIR(COLOR_GREEN));
 #endif /* A_COLOR */
-                                   (void)addch(MARK_MISS);
+                                   (void) addch(MARK_MISS);
 #ifdef A_COLOR
                                    attrset(0);
 #endif /* A_COLOR */
 #ifdef A_COLOR
                                    attrset(0);
 #endif /* A_COLOR */
+                               } else {
+                                   pgoto(y1, x1);
+                                   (void) addch(SHOWSPLASH);
                                }
                            }
                        }
                    }
 
                                }
                            }
                        }
                    }
 
-               for (i = 0; i < ss->length; ++i)
-               {
+               for (i = 0; i < ss->length; ++i) {
                    int x1 = ss->x + i * xincr[ss->dir];
                    int y1 = ss->y + i * yincr[ss->dir];
 
                    hits[turn][x1][y1] = ss->symbol;
                    int x1 = ss->x + i * xincr[ss->dir];
                    int y1 = ss->y + i * yincr[ss->dir];
 
                    hits[turn][x1][y1] = ss->symbol;
-                   if (turn % 2 == PLAYER)
-                   {
+                   if (turn % 2 == PLAYER) {
                        cgoto(y1, x1);
                        cgoto(y1, x1);
-                       (void) addch((chtype)(ss->symbol));
+                       (void) addch((chtype) (ss->symbol));
+                   } else {
+                       pgoto(y1, x1);
+#ifdef A_COLOR
+                       if (has_colors())
+                           attron(COLOR_PAIR(COLOR_RED));
+#endif /* A_COLOR */
+                       (void) addch(SHOWHIT);
+#ifdef A_COLOR
+                       attrset(0);
+#endif /* A_COLOR */
                    }
                }
 
                (void) move(oldy, oldx);
                    }
                }
 
                (void) move(oldy, oldx);
-               return(ss);
+               return (ss);
            }
        }
     (void) move(oldy, oldx);
            }
        }
     (void) move(oldy, oldx);
-    return((ship_t *)NULL);
+    return ((ship_t *) NULL);
 }
 
 }
 
-static int plyturn(void)
+static bool
+plyturn(void)
 {
     ship_t *ss;
     bool hit;
     NCURSES_CONST char *m = NULL;
 
     prompt(1, "Where do you want to shoot? ", "");
 {
     ship_t *ss;
     bool hit;
     NCURSES_CONST char *m = NULL;
 
     prompt(1, "Where do you want to shoot? ", "");
-    for (;;)
-    {
+    for (;;) {
        (void) getcoord(COMPUTER);
        (void) getcoord(COMPUTER);
-       if (hits[PLAYER][curx][cury])
-       {
+       if (hits[PLAYER][curx][cury]) {
            prompt(1, "You shelled this spot already! Try again.", "");
            beep();
            prompt(1, "You shelled this spot already! Try again.", "");
            beep();
-       }
-       else
+       } else
            break;
     }
     hit = IS_SHIP(board[COMPUTER][curx][cury]);
            break;
     }
     hit = IS_SHIP(board[COMPUTER][curx][cury]);
@@ -836,16 +815,14 @@ static int plyturn(void)
            attron(COLOR_PAIR(COLOR_GREEN));
     }
 #endif /* A_COLOR */
            attron(COLOR_PAIR(COLOR_GREEN));
     }
 #endif /* A_COLOR */
-    (void) addch((chtype)hits[PLAYER][curx][cury]);
+    (void) addch((chtype) hits[PLAYER][curx][cury]);
 #ifdef A_COLOR
     attrset(0);
 #endif /* A_COLOR */
 
     prompt(1, "You %s.", hit ? "scored a hit" : "missed");
 #ifdef A_COLOR
     attrset(0);
 #endif /* A_COLOR */
 
     prompt(1, "You %s.", hit ? "scored a hit" : "missed");
-    if(hit && (ss = hitship(curx, cury)))
-    {
-       switch(rnd(5))
-       {
+    if (hit && (ss = hitship(curx, cury))) {
+       switch (rnd(5)) {
        case 0:
            m = " You sank my %s!";
            break;
        case 0:
            m = " You sank my %s!";
            break;
@@ -862,44 +839,43 @@ static int plyturn(void)
            m = " You'll pick up survivors from my %s, I hope...!";
            break;
        }
            m = " You'll pick up survivors from my %s, I hope...!";
            break;
        }
-       (void)printw(m, ss->name);
-       (void)beep();
-       return(awinna() == -1);
+       (void) printw(m, ss->name);
+       (void) beep();
+       return (awinna() == -1);
     }
     return (hit);
 }
 
     }
     return (hit);
 }
 
-static int sgetc(const char *s)
+static int
+sgetc(const char *s)
 {
     const char *s1;
     int ch;
 
 {
     const char *s1;
     int ch;
 
-    (void)refresh();
-    for(;;)
-    {
+    (void) refresh();
+    for (;;) {
        ch = getch();
        if (islower(ch))
            ch = toupper(ch);
        if (ch == CTRLC)
            uninitgame(0);
        ch = getch();
        if (islower(ch))
            ch = toupper(ch);
        if (ch == CTRLC)
            uninitgame(0);
-       for (s1=s; *s1 && ch != *s1; ++s1)
+       for (s1 = s; *s1 && ch != *s1; ++s1)
            continue;
            continue;
-       if (*s1)
-       {
-           (void) addch((chtype)ch);
-           (void)refresh();
-           return(ch);
-           }
+       if (*s1) {
+           (void) addch((chtype) ch);
+           (void) refresh();
+           return (ch);
        }
        }
+    }
 }
 
 }
 
-
-static void randomfire(int *px, int *py)
+static void
+randomfire(int *px, int *py)
 /* random-fire routine -- implements simple diagonal-striping strategy */
 {
     static int turncount = 0;
     static int srchstep = BEGINSTEP;
 /* random-fire routine -- implements simple diagonal-striping strategy */
 {
     static int turncount = 0;
     static int srchstep = BEGINSTEP;
-    static int huntoffs;               /* Offset on search strategy */
+    static int huntoffs;       /* Offset on search strategy */
     int ypossible[BWIDTH * BDEPTH], xpossible[BWIDTH * BDEPTH], nposs;
     int ypreferred[BWIDTH * BDEPTH], xpreferred[BWIDTH * BDEPTH], npref;
     int x, y, i;
     int ypossible[BWIDTH * BDEPTH], xpossible[BWIDTH * BDEPTH], nposs;
     int ypreferred[BWIDTH * BDEPTH], xpreferred[BWIDTH * BDEPTH], npref;
     int x, y, i;
@@ -911,28 +887,23 @@ static void randomfire(int *px, int *py)
     nposs = npref = 0;
     for (x = 0; x < BWIDTH; x++)
        for (y = 0; y < BDEPTH; y++)
     nposs = npref = 0;
     for (x = 0; x < BWIDTH; x++)
        for (y = 0; y < BDEPTH; y++)
-           if (!hits[COMPUTER][x][y])
-           {
+           if (!hits[COMPUTER][x][y]) {
                xpossible[nposs] = x;
                ypossible[nposs] = y;
                nposs++;
                xpossible[nposs] = x;
                ypossible[nposs] = y;
                nposs++;
-               if (((x+huntoffs) % srchstep) != (y % srchstep))
-               {
+               if (((x + huntoffs) % srchstep) != (y % srchstep)) {
                    xpreferred[npref] = x;
                    ypreferred[npref] = y;
                    npref++;
                }
            }
 
                    xpreferred[npref] = x;
                    ypreferred[npref] = y;
                    npref++;
                }
            }
 
-    if (npref)
-    {
+    if (npref) {
        i = rnd(npref);
 
        *px = xpreferred[i];
        *py = ypreferred[i];
        i = rnd(npref);
 
        *px = xpreferred[i];
        *py = ypreferred[i];
-    }
-    else if (nposs)
-    {
+    } else if (nposs) {
        i = rnd(nposs);
 
        *px = xpossible[i];
        i = rnd(nposs);
 
        *px = xpossible[i];
@@ -940,12 +911,10 @@ static void randomfire(int *px, int *py)
 
        if (srchstep > 1)
            --srchstep;
 
        if (srchstep > 1)
            --srchstep;
-    }
-    else
-    {
+    } else {
        error("No moves possible?? Help!");
        error("No moves possible?? Help!");
-       exit(EXIT_FAILURE);
-       /*NOTREACHED*/
+       ExitProgram(EXIT_FAILURE);
+       /*NOTREACHED */
     }
 }
 
     }
 }
 
@@ -953,7 +922,8 @@ static void randomfire(int *px, int *py)
 #define S_HIT  1
 #define S_SUNK -1
 
 #define S_HIT  1
 #define S_SUNK -1
 
-static int cpufire(int x, int y)
+static int
+cpufire(int x, int y)
 /* fire away at given location */
 {
     bool hit, sunk;
 /* fire away at given location */
 {
     bool hit, sunk;
@@ -961,10 +931,11 @@ static int cpufire(int x, int y)
 
     hits[COMPUTER][x][y] = (hit = (board[PLAYER][x][y])) ? MARK_HIT : MARK_MISS;
     (void) mvprintw(PROMPTLINE, 0,
 
     hits[COMPUTER][x][y] = (hit = (board[PLAYER][x][y])) ? MARK_HIT : MARK_MISS;
     (void) mvprintw(PROMPTLINE, 0,
-       "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" : "miss");
+                   "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" :
+                   "miss");
     if ((sunk = (hit && (ss = hitship(x, y)))) != 0)
        (void) printw(" I've sunk your %s", ss->name);
     if ((sunk = (hit && (ss = hitship(x, y)))) != 0)
        (void) printw(" I've sunk your %s", ss->name);
-    (void)clrtoeol();
+    (void) clrtoeol();
 
     pgoto(y, x);
 #ifdef A_COLOR
 
     pgoto(y, x);
 #ifdef A_COLOR
@@ -975,7 +946,7 @@ static int cpufire(int x, int y)
            attron(COLOR_PAIR(COLOR_GREEN));
     }
 #endif /* A_COLOR */
            attron(COLOR_PAIR(COLOR_GREEN));
     }
 #endif /* A_COLOR */
-    (void)addch((chtype)(hit ? SHOWHIT : SHOWSPLASH));
+    (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH));
 #ifdef A_COLOR
     attrset(0);
 #endif /* A_COLOR */
 #ifdef A_COLOR
     attrset(0);
 #endif /* A_COLOR */
@@ -988,7 +959,8 @@ static int cpufire(int x, int y)
  * unstructuredness below. The five labels are states which need to be held
  * between computer turns.
  */
  * unstructuredness below. The five labels are states which need to be held
  * between computer turns.
  */
-static bool cputurn(void)
+static bool
+cputurn(void)
 {
 #define POSSIBLE(x, y) (ONBOARD(x, y) && !hits[COMPUTER][x][y])
 #define RANDOM_FIRE    0
 {
 #define POSSIBLE(x, y) (ONBOARD(x, y) && !hits[COMPUTER][x][y])
 #define RANDOM_FIRE    0
@@ -1003,29 +975,28 @@ static bool cputurn(void)
     int navail, x, y, d, n;
     int hit = S_MISS;
 
     int navail, x, y, d, n;
     int hit = S_MISS;
 
-    switch(next)
-    {
-    case RANDOM_FIRE:  /* last shot was random and missed */
-    refire:
+    switch (next) {
+    case RANDOM_FIRE:          /* last shot was random and missed */
+      refire:
        randomfire(&x, &y);
        if (!(hit = cpufire(x, y)))
            next = RANDOM_FIRE;
        randomfire(&x, &y);
        if (!(hit = cpufire(x, y)))
            next = RANDOM_FIRE;
-       else
-       {
-           ts.x = x; ts.y = y;
+       else {
+           ts.x = x;
+           ts.y = y;
            ts.hits = 1;
            next = (hit == S_SUNK) ? RANDOM_FIRE : RANDOM_HIT;
        }
        break;
 
            ts.hits = 1;
            next = (hit == S_SUNK) ? RANDOM_FIRE : RANDOM_HIT;
        }
        break;
 
-    case RANDOM_HIT:   /* last shot was random and hit */
-       used[E/2] = used[S/2] = used[W/2] = used[N/2] = FALSE;
+    case RANDOM_HIT:           /* last shot was random and hit */
+       used[E / 2] = used[S / 2] = used[W / 2] = used[N / 2] = FALSE;
        /* FALLTHROUGH */
 
        /* FALLTHROUGH */
 
-    case HUNT_DIRECT:  /* last shot hit, we're looking for ship's long axis */
-       for (d = navail = 0; d < 4; d++)
-       {
-           x = ts.x + xincr[d*2]; y = ts.y + yincr[d*2];
+    case HUNT_DIRECT:          /* last shot hit, we're looking for ship's long axis */
+       for (d = navail = 0; d < 4; d++) {
+           x = ts.x + xincr[d * 2];
+           y = ts.y + yincr[d * 2];
            if (!used[d] && POSSIBLE(x, y))
                navail++;
            else
            if (!used[d] && POSSIBLE(x, y))
                navail++;
            else
@@ -1033,8 +1004,7 @@ static bool cputurn(void)
        }
        if (navail == 0)        /* no valid places for shots adjacent... */
            goto refire;        /* ...so we must random-fire */
        }
        if (navail == 0)        /* no valid places for shots adjacent... */
            goto refire;        /* ...so we must random-fire */
-       else
-       {
+       else {
            for (d = 0, n = rnd(navail) + 1; n; n--)
                while (used[d])
                    d++;
            for (d = 0, n = rnd(navail) + 1; n; n--)
                while (used[d])
                    d++;
@@ -1042,68 +1012,70 @@ static bool cputurn(void)
            assert(d <= 4);
 
            used[d] = FALSE;
            assert(d <= 4);
 
            used[d] = FALSE;
-           x = ts.x + xincr[d*2];
-           y = ts.y + yincr[d*2];
+           x = ts.x + xincr[d * 2];
+           y = ts.y + yincr[d * 2];
 
            assert(POSSIBLE(x, y));
 
            if (!(hit = cpufire(x, y)))
                next = HUNT_DIRECT;
 
            assert(POSSIBLE(x, y));
 
            if (!(hit = cpufire(x, y)))
                next = HUNT_DIRECT;
-           else
-           {
-               ts.x = x; ts.y = y; ts.dir = d*2; ts.hits++;
+           else {
+               ts.x = x;
+               ts.y = y;
+               ts.dir = d * 2;
+               ts.hits++;
                next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
            }
        }
        break;
 
                next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
            }
        }
        break;
 
-    case FIRST_PASS:   /* we have a start and a direction now */
+    case FIRST_PASS:           /* we have a start and a direction now */
        x = ts.x + xincr[ts.dir];
        y = ts.y + yincr[ts.dir];
        x = ts.x + xincr[ts.dir];
        y = ts.y + yincr[ts.dir];
-       if (POSSIBLE(x, y) && (hit = cpufire(x, y)))
-       {
-           ts.x = x; ts.y = y; ts.hits++;
+       if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
+           ts.x = x;
+           ts.y = y;
+           ts.hits++;
            next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
            next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
-       }
-       else
+       } else
            next = REVERSE_JUMP;
        break;
 
            next = REVERSE_JUMP;
        break;
 
-    case REVERSE_JUMP: /* nail down the ship's other end */
+    case REVERSE_JUMP:         /* nail down the ship's other end */
        d = ts.dir + 4;
        x = ts.x + ts.hits * xincr[d];
        y = ts.y + ts.hits * yincr[d];
        d = ts.dir + 4;
        x = ts.x + ts.hits * xincr[d];
        y = ts.y + ts.hits * yincr[d];
-       if (POSSIBLE(x, y) && (hit = cpufire(x, y)))
-       {
-           ts.x = x; ts.y = y; ts.dir = d; ts.hits++;
+       if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
+           ts.x = x;
+           ts.y = y;
+           ts.dir = d;
+           ts.hits++;
            next = (hit == S_SUNK) ? RANDOM_FIRE : SECOND_PASS;
            next = (hit == S_SUNK) ? RANDOM_FIRE : SECOND_PASS;
-       }
-       else
+       } else
            next = RANDOM_FIRE;
        break;
 
            next = RANDOM_FIRE;
        break;
 
-    case SECOND_PASS:  /* kill squares not caught on first pass */
+    case SECOND_PASS:          /* kill squares not caught on first pass */
        x = ts.x + xincr[ts.dir];
        y = ts.y + yincr[ts.dir];
        x = ts.x + xincr[ts.dir];
        y = ts.y + yincr[ts.dir];
-       if (POSSIBLE(x, y) && (hit = cpufire(x, y)))
-       {
-           ts.x = x; ts.y = y; ts.hits++;
-           next = (hit == S_SUNK) ? RANDOM_FIRE: SECOND_PASS;
+       if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
+           ts.x = x;
+           ts.y = y;
+           ts.hits++;
+           next = (hit == S_SUNK) ? RANDOM_FIRE : SECOND_PASS;
            break;
            break;
-       }
-       else
+       } else
            next = RANDOM_FIRE;
        break;
     }
 
     /* check for continuation and/or winner */
            next = RANDOM_FIRE;
        break;
     }
 
     /* check for continuation and/or winner */
-    if (salvo)
-    {
-       (void)refresh();
-       (void)sleep(1);
+    if (salvo) {
+       (void) refresh();
+       (void) sleep(1);
     }
     if (awinna() != -1)
     }
     if (awinna() != -1)
-       return(FALSE);
+       return (FALSE);
 
 #ifdef DEBUG
     (void) mvprintw(PROMPTLINE + 2, 0,
 
 #ifdef DEBUG
     (void) mvprintw(PROMPTLINE + 2, 0,
@@ -1113,46 +1085,43 @@ static bool cputurn(void)
     return ((hit) ? TRUE : FALSE);
 }
 
     return ((hit) ? TRUE : FALSE);
 }
 
-static
-int playagain(void)
+static int
+playagain(void)
 {
     int j;
     ship_t *ss;
 
     for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
 {
     int j;
     ship_t *ss;
 
     for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
-       for(j = 0; j < ss->length; j++)
-       {
+       for (j = 0; j < ss->length; j++) {
            cgoto(ss->y + j * yincr[ss->dir], ss->x + j * xincr[ss->dir]);
            cgoto(ss->y + j * yincr[ss->dir], ss->x + j * xincr[ss->dir]);
-           (void)addch((chtype)ss->symbol);
+           (void) addch((chtype) ss->symbol);
        }
 
        }
 
-    if(awinna())
+    if (awinna())
        ++cpuwon;
     else
        ++plywon;
     j = 18 + strlen(name);
        ++cpuwon;
     else
        ++plywon;
     j = 18 + strlen(name);
-    if(plywon >= 10)
+    if (plywon >= 10)
        ++j;
        ++j;
-    if(cpuwon >= 10)
+    if (cpuwon >= 10)
        ++j;
        ++j;
-    (void) mvprintw(1,(COLWIDTH-j)/2,
-                   "%s: %d     Computer: %d",name,plywon,cpuwon);
+    (void) mvprintw(1, (COLWIDTH - j) / 2,
+                   "%s: %d     Computer: %d", name, plywon, cpuwon);
 
 
-    prompt(2, (awinna()) ? "Want to be humiliated again, %s [yn]? "
-          : "Going to give me a chance for revenge, %s [yn]? ",name);
-    return(sgetc("YN") == 'Y');
+    prompt(2, (awinna())? "Want to be humiliated again, %s [yn]? "
+          : "Going to give me a chance for revenge, %s [yn]? ", name);
+    return (sgetc("YN") == 'Y');
 }
 
 }
 
-static void do_options(int c, char *op[])
+static void
+do_options(int c, char *op[])
 {
     register int i;
 
 {
     register int i;
 
-    if (c > 1)
-    {
-       for (i=1; i<c; i++)
-       {
-           switch(op[i][0])
-           {
+    if (c > 1) {
+       for (i = 1; i < c; i++) {
+           switch (op[i][0]) {
            default:
            case '?':
                (void) fprintf(stderr, "Usage: battle [-s | -b] [-c]\n");
            default:
            case '?':
                (void) fprintf(stderr, "Usage: battle [-s | -b] [-c]\n");
@@ -1160,27 +1129,24 @@ static void do_options(int c, char *op[])
                (void) fprintf(stderr, "\t-s : play a salvo game\n");
                (void) fprintf(stderr, "\t-b : play a blitz game\n");
                (void) fprintf(stderr, "\t-c : ships may be adjacent\n");
                (void) fprintf(stderr, "\t-s : play a salvo game\n");
                (void) fprintf(stderr, "\t-b : play a blitz game\n");
                (void) fprintf(stderr, "\t-c : ships may be adjacent\n");
-               exit(EXIT_FAILURE);
+               ExitProgram(EXIT_FAILURE);
                break;
            case '-':
                break;
            case '-':
-               switch(op[i][1])
-               {
+               switch (op[i][1]) {
                case 'b':
                    blitz = 1;
                case 'b':
                    blitz = 1;
-                   if (salvo == 1)
-                   {
+                   if (salvo == 1) {
                        (void) fprintf(stderr,
                        (void) fprintf(stderr,
-                               "Bad Arg: -b and -s are mutually exclusive\n");
-                       exit(EXIT_FAILURE);
+                                      "Bad Arg: -b and -s are mutually exclusive\n");
+                       ExitProgram(EXIT_FAILURE);
                    }
                    break;
                case 's':
                    salvo = 1;
                    }
                    break;
                case 's':
                    salvo = 1;
-                   if (blitz == 1)
-                   {
+                   if (blitz == 1) {
                        (void) fprintf(stderr,
                        (void) fprintf(stderr,
-                               "Bad Arg: -s and -b are mutually exclusive\n");
-                       exit(EXIT_FAILURE);
+                                      "Bad Arg: -s and -b are mutually exclusive\n");
+                       ExitProgram(EXIT_FAILURE);
                    }
                    break;
                case 'c':
                    }
                    break;
                case 'c':
@@ -1188,81 +1154,75 @@ static void do_options(int c, char *op[])
                    break;
                default:
                    (void) fprintf(stderr,
                    break;
                default:
                    (void) fprintf(stderr,
-                           "Bad arg: type \"%s ?\" for usage message\n", op[0]);
-                   exit(EXIT_FAILURE);
+                                  "Bad arg: type \"%s ?\" for usage message\n",
+                                  op[0]);
+                   ExitProgram(EXIT_FAILURE);
                }
            }
        }
     }
 }
 
                }
            }
        }
     }
 }
 
-static int scount(int who)
+static int
+scount(int who)
 {
     register int i, shots;
     register ship_t *sp;
 
     if (who)
 {
     register int i, shots;
     register ship_t *sp;
 
     if (who)
-       sp = cpuship;   /* count cpu shots */
+       sp = cpuship;           /* count cpu shots */
     else
     else
-       sp = plyship;   /* count player shots */
+       sp = plyship;           /* count player shots */
 
 
-    for (i=0, shots = 0; i < SHIPTYPES; i++, sp++)
-    {
+    for (i = 0, shots = 0; i < SHIPTYPES; i++, sp++) {
        if (sp->hits >= sp->length)
            continue;           /* dead ship */
        else
            shots++;
     }
        if (sp->hits >= sp->length)
            continue;           /* dead ship */
        else
            shots++;
     }
-    return(shots);
+    return (shots);
 }
 
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
 {
+    setlocale(LC_ALL, "");
+
     do_options(argc, argv);
 
     intro();
     do {
        initgame();
     do_options(argc, argv);
 
     intro();
     do {
        initgame();
-       while(awinna() == -1)
-       {
-           if (!blitz)
-           {
-               if (!salvo)
-               {
-                   if(turn)
+       while (awinna() == -1) {
+           if (!blitz) {
+               if (!salvo) {
+                   if (turn)
                        (void) cputurn();
                    else
                        (void) plyturn();
                        (void) cputurn();
                    else
                        (void) plyturn();
-               }
-               else
-               {
+               } else {
                    register int i;
 
                    i = scount(turn);
                    register int i;
 
                    i = scount(turn);
-                   while (i--)
-                   {
-                       if (turn)
-                       {
+                   while (i--) {
+                       if (turn) {
                            if (cputurn() && awinna() != -1)
                                i = 0;
                            if (cputurn() && awinna() != -1)
                                i = 0;
-                       }
-                       else
-                       {
+                       } else {
                            if (plyturn() && awinna() != -1)
                                i = 0;
                        }
                    }
                            if (plyturn() && awinna() != -1)
                                i = 0;
                        }
                    }
-               } 
-           }
-           else
-               while(turn ? cputurn() : plyturn())
+               }
+           } else
+               while (turn ? cputurn() : plyturn())
                    continue;
            turn = OTHER;
        }
     } while
        (playagain());
     uninitgame(0);
                    continue;
            turn = OTHER;
        }
     } while
        (playagain());
     uninitgame(0);
-    /*NOTREACHED*/
+    /*NOTREACHED */
 }
 
 /* bs.c ends here */
 }
 
 /* bs.c ends here */
index 75d207764a936285958922f77db07e8fc9faa6ae..09a9823910465f223e3433b5298414f810b0373a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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
  *
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 1999
  *
- * $Id: cardfile.c,v 1.5 2000/09/09 19:08:32 tom Exp $
+ * $Id: cardfile.c,v 1.19 2002/09/01 17:59:48 tom Exp $
  *
  * File format: text beginning in column 1 is a title; other text forms the content.
  */
 
 #include <test.priv.h>
 
  *
  * File format: text beginning in column 1 is a title; other text forms the content.
  */
 
 #include <test.priv.h>
 
+#if HAVE_FORM_H && HAVE_PANEL_H && HAVE_LIBFORM && HAVE_LIBPANEL
+
 #include <form.h>
 #include <panel.h>
 
 #include <form.h>
 #include <panel.h>
 
-#include <string.h>
 #include <ctype.h>
 
 #define VISIBLE_CARDS 10
 #include <ctype.h>
 
 #define VISIBLE_CARDS 10
@@ -75,7 +76,7 @@ strdup(char *s)
 static const char *
 skip(const char *buffer)
 {
 static const char *
 skip(const char *buffer)
 {
-    while (isspace(*buffer))
+    while (isspace(UChar(*buffer)))
        buffer++;
     return buffer;
 }
        buffer++;
     return buffer;
 }
@@ -84,7 +85,7 @@ static void
 trim(char *buffer)
 {
     unsigned n = strlen(buffer);
 trim(char *buffer)
 {
     unsigned n = strlen(buffer);
-    while (n-- && isspace(buffer[n]))
+    while (n-- && isspace(UChar(buffer[n])))
        buffer[n] = 0;
 }
 
        buffer[n] = 0;
 }
 
@@ -130,6 +131,8 @@ add_content(CARD * card, const char *content)
            card->content = (char *) realloc(card->content, total + 1);
            strcpy(card->content + offset++, " ");
        } else {
            card->content = (char *) realloc(card->content, total + 1);
            strcpy(card->content + offset++, " ");
        } else {
+           if (card->content != 0)
+               free(card->content);
            card->content = (char *) malloc(total + 1);
        }
        strcpy(card->content + offset, content);
            card->content = (char *) malloc(total + 1);
        }
        strcpy(card->content + offset, content);
@@ -166,7 +169,7 @@ read_data(char *fname)
     if ((fp = fopen(fname, "r")) != 0) {
        while (fgets(buffer, sizeof(buffer), fp)) {
            trim(buffer);
     if ((fp = fopen(fname, "r")) != 0) {
        while (fgets(buffer, sizeof(buffer), fp)) {
            trim(buffer);
-           if (isspace(*buffer)) {
+           if (isspace(UChar(*buffer))) {
                if (card == 0)
                    card = add_title("");
                add_content(card, buffer);
                if (card == 0)
                    card = add_title("");
                add_content(card, buffer);
@@ -300,6 +303,46 @@ form_virtualize(WINDOW *w)
     }
 }
 
     }
 }
 
+static FIELD **
+make_fields(CARD * p, int form_high, int form_wide)
+{
+    FIELD **f = (FIELD **) calloc(3, sizeof(FIELD *));
+
+    f[0] = new_field(1, form_wide, 0, 0, 0, 0);
+    set_field_back(f[0], A_REVERSE);
+    set_field_buffer(f[0], 0, p->title);
+
+    f[1] = new_field(form_high - 1, form_wide, 1, 0, 0, 0);
+    set_field_buffer(f[1], 0, p->content);
+    set_field_just(f[1], JUSTIFY_LEFT);
+
+    f[2] = 0;
+    return f;
+}
+
+static void
+show_legend(void)
+{
+    erase();
+    move(LINES - 3, 0);
+    addstr("^Q/ESC -- exit form            ^W   -- writes data to file\n");
+    addstr("^N   -- go to next card        ^P   -- go to previous card\n");
+    addstr("Arrow keys move left/right within a field, up/down between fields");
+}
+
+#if (defined(KEY_RESIZE) && HAVE_WRESIZE) || NO_LEAKS
+static void
+free_form_fields(FIELD ** f)
+{
+    int n;
+
+    for (n = 0; f[n] != 0; ++n) {
+       free_field(f[n]);
+    }
+    free(f);
+}
+#endif
+
 /*******************************************************************************/
 
 static void
 /*******************************************************************************/
 
 static void
@@ -313,43 +356,29 @@ cardfile(char *fname)
     int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
     int form_wide = panel_wide - 2;
     int form_high = panel_high - 2;
     int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
     int form_wide = panel_wide - 2;
     int form_high = panel_high - 2;
-    int x = (visible_cards - 1) * OFFSET_CARD;
-    int y = 0;
-    int ch;
+    int y = (visible_cards - 1) * OFFSET_CARD;
+    int x = 0;
+    int ch = ERR;
+    int last_ch;
     int finished = FALSE;
 
     int finished = FALSE;
 
-    move(LINES - 3, 0);
-    addstr("^Q/ESC -- exit form            ^W   -- writes data to file\n");
-    addstr("^N   -- go to next card        ^P   -- go to previous card\n");
-    addstr("Arrow keys move left/right within a field, up/down between fields");
+    show_legend();
 
     /* make a panel for each CARD */
     for (p = all_cards; p != 0; p = p->link) {
 
     /* make a panel for each CARD */
     for (p = all_cards; p != 0; p = p->link) {
-       FIELD **f = (FIELD **) calloc(3, sizeof(FIELD *));
 
 
-       win = newwin(panel_high, panel_wide, x, y);
+       win = newwin(panel_high, panel_wide, y, x);
        keypad(win, TRUE);
        p->panel = new_panel(win);
        box(win, 0, 0);
 
        keypad(win, TRUE);
        p->panel = new_panel(win);
        box(win, 0, 0);
 
-       /* ...and a form in each panel */
-       f[0] = new_field(1, form_wide, 0, 0, 0, 0);
-       set_field_back(f[0], A_REVERSE);
-       set_field_buffer(f[0], 0, p->title);
-
-       f[1] = new_field(form_high - 1, form_wide, 1, 0, 0, 0);
-       set_field_buffer(f[1], 0, p->content);
-       set_field_just(f[1], JUSTIFY_LEFT);
-
-       f[2] = 0;
-
-       p->form = new_form(f);
+       p->form = new_form(make_fields(p, form_high, form_wide));
        set_form_win(p->form, win);
        set_form_sub(p->form, derwin(win, form_high, form_wide, 1, 1));
        post_form(p->form);
 
        set_form_win(p->form, win);
        set_form_sub(p->form, derwin(win, form_high, form_wide, 1, 1));
        post_form(p->form);
 
-       x -= OFFSET_CARD;
-       y += OFFSET_CARD;
+       y -= OFFSET_CARD;
+       x += OFFSET_CARD;
     }
 
     order_cards(top_card = all_cards, visible_cards);
     }
 
     order_cards(top_card = all_cards, visible_cards);
@@ -358,8 +387,9 @@ cardfile(char *fname)
        update_panels();
        doupdate();
 
        update_panels();
        doupdate();
 
-       switch (form_driver(top_card->form, ch =
-                           form_virtualize(panel_window(top_card->panel)))) {
+       last_ch = ch;
+       ch = form_virtualize(panel_window(top_card->panel));
+       switch (form_driver(top_card->form, ch)) {
        case E_OK:
            break;
        case E_UNKNOWN_COMMAND:
        case E_OK:
            break;
        case E_UNKNOWN_COMMAND:
@@ -378,6 +408,58 @@ cardfile(char *fname)
            case MAX_FORM_COMMAND + 4:
                write_data(fname);
                break;
            case MAX_FORM_COMMAND + 4:
                write_data(fname);
                break;
+#if defined(KEY_RESIZE) && HAVE_WRESIZE
+           case KEY_RESIZE:
+               /* resizeterm already did "something" reasonable, but it cannot
+                * know much about layout.  So let's make it nicer.
+                */
+               panel_wide = COLS - (visible_cards * OFFSET_CARD);
+               panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
+
+               form_wide = panel_wide - 2;
+               form_high = panel_high - 2;
+
+               y = (visible_cards - 1) * OFFSET_CARD;
+               x = 0;
+
+               show_legend();
+               for (p = all_cards; p != 0; p = p->link) {
+                   FIELD **oldf = form_fields(p->form);
+                   WINDOW *olds = form_sub(p->form);
+
+                   win = form_win(p->form);
+
+                   /* move and resize the card as needed
+                    * FIXME: if the windows are shrunk too much, this won't do
+                    */
+                   mvwin(win, y, x);
+                   wresize(win, panel_high, panel_wide);
+
+                   /* reconstruct each form.  Forms are not resizable, and
+                    * there appears to be no good way to reload the text in
+                    * a resized window.
+                    */
+                   werase(win);
+
+                   unpost_form(p->form);
+                   free_form(p->form);
+
+                   p->form = new_form(make_fields(p, form_high, form_wide));
+                   set_form_win(p->form, win);
+                   set_form_sub(p->form, derwin(win, form_high, form_wide,
+                                                1, 1));
+                   post_form(p->form);
+
+                   free_form_fields(oldf);
+                   delwin(olds);
+
+                   box(win, 0, 0);
+
+                   y -= OFFSET_CARD;
+                   x += OFFSET_CARD;
+               }
+               break;
+#endif
            default:
                beep();
                break;
            default:
                beep();
                break;
@@ -388,6 +470,28 @@ cardfile(char *fname)
            break;
        }
     }
            break;
        }
     }
+#if NO_LEAKS
+    while (all_cards != 0) {
+       FIELD **f;
+       int count;
+
+       p = all_cards;
+       all_cards = all_cards->link;
+
+       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 */
+
+       free_form_fields(f);
+
+       del_panel(p->panel);
+       free(p->title);
+       free(p->content);
+       free(p);
+    }
+#endif
 }
 
 /*******************************************************************************/
 }
 
 /*******************************************************************************/
@@ -397,6 +501,8 @@ main(int argc, char *argv[])
 {
     int n;
 
 {
     int n;
 
+    setlocale(LC_ALL, "");
+
     initscr();
     cbreak();
     noecho();
     initscr();
     cbreak();
     noecho();
@@ -416,5 +522,13 @@ main(int argc, char *argv[])
 
     endwin();
 
 
     endwin();
 
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 }
+#else
+int
+main(void)
+{
+    printf("This program requires the curses form and panel libraries\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
index de1cf77f931f96139b09886c585a337a5eadb054..8d44c2bb41d48427b8908c15e2aca7ad8c18f6b8 100755 (executable)
@@ -184,6 +184,7 @@ EOF
 cat <<EOF
 --enable and --with options recognized:
   --with-5lib             use SunOS sysv-libraries
 cat <<EOF
 --enable and --with options recognized:
   --with-5lib             use SunOS sysv-libraries
+  --with-ncursesw         use wide ncurses-libraries (installed)
   --with-ncurses          use ncurses-libraries (installed)
 EOF
     exit 0 ;;
   --with-ncurses          use ncurses-libraries (installed)
 EOF
     exit 0 ;;
@@ -528,7 +529,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:532: checking for $ac_word" >&5
+echo "configure:533: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -558,7 +559,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:562: checking for $ac_word" >&5
+echo "configure:563: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -609,7 +610,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:613: checking for $ac_word" >&5
+echo "configure:614: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -641,7 +642,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:645: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:646: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -652,12 +653,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
 
 cat > conftest.$ac_ext << EOF
 
-#line 656 "configure"
+#line 657 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -683,12 +684,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:687: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:688: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:692: checking whether we are using GNU C" >&5
+echo "configure:693: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -697,7 +698,7 @@ else
   yes;
 #endif
 EOF
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:701: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -716,7 +717,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:720: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:721: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -784,16 +785,239 @@ fi
 
 
 
 
 
 
+
+# Check whether --with-ncursesw or --without-ncursesw was given.
+if test "${with_ncursesw+set}" = set; then
+  withval="$with_ncursesw"
+  
+        cat >> confdefs.h <<\EOF
+#define _GNU_SOURCE 1
+EOF
+
+        cat >> confdefs.h <<\EOF
+#define _XOPEN_SOURCE_EXTENDED 1
+EOF
+
+        echo $ac_n "checking for initscr""... $ac_c" 1>&6
+echo "configure:803: checking for initscr" >&5
+if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 808 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char initscr(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char initscr();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_initscr) || defined (__stub___initscr)
+choke me
+#else
+initscr();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:831: \"$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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_initscr=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+
+        echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+echo "configure:850: checking for Gpm_Open in -lgpm" >&5
+ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgpm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 858 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char Gpm_Open();
+
+int main() {
+Gpm_Open()
+; return 0; }
+EOF
+if { (eval echo configure:869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo gpm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lgpm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        LIB_NAME=ncursesw
+        echo $ac_n "checking for putwc""... $ac_c" 1>&6
+echo "configure:898: checking for putwc" >&5
+if eval "test \"`echo '$''{'ac_cv_func_putwc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 903 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char putwc(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char putwc();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_putwc) || defined (__stub___putwc)
+choke me
+#else
+putwc();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_putwc=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_putwc=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'putwc`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for putwc in libutf8""... $ac_c" 1>&6
+echo "configure:945: checking for putwc in libutf8" >&5
+if eval "test \"`echo '$''{'cf_cv_libutf8'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       cf_save_LIBS="$LIBS"
+       LIBS="-lutf8 $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 953 "configure"
+#include "confdefs.h"
+
+#include <libutf8.h>
+int main() {
+putwc(0,0);
+; return 0; }
+EOF
+if { (eval echo configure:961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_libutf8=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_libutf8=no
+fi
+rm -f conftest*
+       LIBS="$cf_save_LIBS"
+
+fi
+
+echo "$ac_t""$cf_cv_libutf8" 1>&6
+
+if test "$cf_cv_libutf8" = yes ; then
+       cat >> confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
+EOF
+
+       LIBS="-lutf8 $LIBS"
+fi
+
+fi
+
+        for p in $HOME /usr/local /usr
+        do
+               if test -f $p/include/ncursesw/curses.h
+               then
+                       CPPFLAGS="$CPPFLAGS -I$p/include/ncursesw"
+                       test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+                       test $p != /usr && LIBS="-L$p/lib $LIBS"
+                       break
+               elif test $p != /usr
+               then
+                       if test -f $p/include/curses.h
+                       then
+                               CPPFLAGS="$CPPFLAGS -I$p/include"
+                               LIBS="-L$p/lib $LIBS"
+                               break
+                       fi
+               fi
+        done
+       
+fi
+
+fi
+
+
+
 # Check whether --with-ncurses or --without-ncurses was given.
 if test "${with_ncurses+set}" = set; then
   withval="$with_ncurses"
   echo $ac_n "checking for initscr""... $ac_c" 1>&6
 # Check whether --with-ncurses or --without-ncurses was given.
 if test "${with_ncurses+set}" = set; then
   withval="$with_ncurses"
   echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:792: checking for initscr" >&5
+echo "configure:1016: 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
 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 797 "configure"
+#line 1021 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -816,7 +1040,7 @@ initscr();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1044: \"$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
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -835,7 +1059,7 @@ else
   echo "$ac_t""no" 1>&6
 
         echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
         echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:839: checking for Gpm_Open in -lgpm" >&5
+echo "configure:1063: 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
 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
@@ -843,7 +1067,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 847 "configure"
+#line 1071 "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
 #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
@@ -854,7 +1078,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1082: \"$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
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -909,12 +1133,12 @@ fi
 
 
 echo $ac_n "checking for initscr""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:913: checking for initscr" >&5
+echo "configure:1137: 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
 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 918 "configure"
+#line 1142 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -937,7 +1161,7 @@ initscr();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1165: \"$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
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -956,7 +1180,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for initscr in -l$LIB_NAME""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for initscr in -l$LIB_NAME""... $ac_c" 1>&6
-echo "configure:960: checking for initscr in -l$LIB_NAME" >&5
+echo "configure:1184: checking for initscr in -l$LIB_NAME" >&5
 ac_lib_var=`echo $LIB_NAME'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo $LIB_NAME'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -964,7 +1188,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$LIB_NAME  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-l$LIB_NAME  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 968 "configure"
+#line 1192 "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
 #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
@@ -975,7 +1199,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1203: \"$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
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1005,7 +1229,7 @@ fi
 fi
 
 echo $ac_n "checking for form_driver in -lform""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for form_driver in -lform""... $ac_c" 1>&6
-echo "configure:1009: checking for form_driver in -lform" >&5
+echo "configure:1233: checking for form_driver in -lform" >&5
 ac_lib_var=`echo form'_'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
 ac_lib_var=`echo form'_'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
@@ -1013,7 +1237,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lform  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lform  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1017 "configure"
+#line 1241 "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
 #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
@@ -1024,7 +1248,7 @@ int main() {
 form_driver()
 ; return 0; }
 EOF
 form_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:1028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1252: \"$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
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1052,7 +1276,7 @@ else
 fi
 
 echo $ac_n "checking for menu_driver in -lmenu""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for menu_driver in -lmenu""... $ac_c" 1>&6
-echo "configure:1056: checking for menu_driver in -lmenu" >&5
+echo "configure:1280: checking for menu_driver in -lmenu" >&5
 ac_lib_var=`echo menu'_'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
 ac_lib_var=`echo menu'_'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
@@ -1060,7 +1284,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmenu  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lmenu  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1064 "configure"
+#line 1288 "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
 #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
@@ -1071,7 +1295,7 @@ int main() {
 menu_driver()
 ; return 0; }
 EOF
 menu_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:1075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1299: \"$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
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1099,7 +1323,7 @@ else
 fi
 
 echo $ac_n "checking for new_panel in -lpanel""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for new_panel in -lpanel""... $ac_c" 1>&6
-echo "configure:1103: checking for new_panel in -lpanel" >&5
+echo "configure:1327: checking for new_panel in -lpanel" >&5
 ac_lib_var=`echo panel'_'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
 ac_lib_var=`echo panel'_'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
@@ -1107,7 +1331,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpanel  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lpanel  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1111 "configure"
+#line 1335 "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
 #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
@@ -1118,7 +1342,7 @@ int main() {
 new_panel()
 ; return 0; }
 EOF
 new_panel()
 ; return 0; }
 EOF
-if { (eval echo configure:1122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1346: \"$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
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1147,12 +1371,12 @@ fi
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1151: checking return type of signal handlers" >&5
+echo "configure:1375: 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
 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 1156 "configure"
+#line 1380 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -1169,7 +1393,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:1173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -1189,7 +1413,7 @@ EOF
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1193: checking how to run the C preprocessor" >&5
+echo "configure:1417: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1204,13 +1428,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1208 "configure"
+#line 1432 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1221,13 +1445,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1225 "configure"
+#line 1449 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1238,13 +1462,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1242 "configure"
+#line 1466 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1269,12 +1493,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1273: checking for ANSI C header files" >&5
+echo "configure:1497: 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
 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 1278 "configure"
+#line 1502 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1282,7 +1506,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1510: \"$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*
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1299,7 +1523,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
 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 1303 "configure"
+#line 1527 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1317,7 +1541,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
 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 1321 "configure"
+#line 1545 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1338,7 +1562,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1342 "configure"
+#line 1566 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1349,7 +1573,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
 exit (0); }
 
 EOF
-if { (eval echo configure:1353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
 then
   :
 else
@@ -1373,12 +1597,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1377: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1601: 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
 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 1382 "configure"
+#line 1606 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -1387,7 +1611,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:1391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -1410,8 +1634,10 @@ fi
 for ac_hdr in \
 form.h \
 getopt.h \
 for ac_hdr in \
 form.h \
 getopt.h \
+locale.h \
 menu.h \
 nc_alloc.h \
 menu.h \
 nc_alloc.h \
+nomacros.h \
 panel.h \
 sys/ioctl.h \
 sys/select.h \
 panel.h \
 sys/ioctl.h \
 sys/select.h \
@@ -1422,17 +1648,17 @@ unistd.h \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1426: checking for $ac_hdr" >&5
+echo "configure:1652: 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
 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 1431 "configure"
+#line 1657 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1662: \"$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*
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1460,8 +1686,10 @@ done
 
 
 for ac_func in \
 
 
 for ac_func in \
+getnstr \
 gettimeofday \
 napms \
 gettimeofday \
 napms \
+resize_term \
 resizeterm \
 strdup \
 use_default_colors \
 resizeterm \
 strdup \
 use_default_colors \
@@ -1470,12 +1698,12 @@ wresize \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1474: checking for $ac_func" >&5
+echo "configure:1702: 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
 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 1479 "configure"
+#line 1707 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1498,7 +1726,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:1502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1730: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1524,7 +1752,7 @@ done
 
 
 echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:1528: checking for function curses_version" >&5
+echo "configure:1756: 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
 if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1533,7 +1761,7 @@ if test "$cross_compiling" = yes; then
   cf_cv_func_curses_version=unknown
 else
   cat > conftest.$ac_ext <<EOF
   cf_cv_func_curses_version=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 1537 "configure"
+#line 1765 "configure"
 #include "confdefs.h"
 
 #include <curses.h>
 #include "confdefs.h"
 
 #include <curses.h>
@@ -1545,7 +1773,7 @@ int main()
 }
 
 EOF
 }
 
 EOF
-if { (eval echo configure:1549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1777: \"$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
 
 then
   cf_cv_func_curses_version=yes
 
@@ -1568,20 +1796,194 @@ test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF
 EOF
 
 
 EOF
 
 
-echo $ac_n "checking if sys/time.h conflicts with sys/select.h""... $ac_c" 1>&6
-echo "configure:1573: checking if sys/time.h conflicts with sys/select.h" >&5
+echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
+echo "configure:1801: 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
+  
+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 1810 "configure"
+#include "confdefs.h"
+
+#include <curses.h>
+
+int main() {
+
+$name['k'] = ACS_PLUS
+
+; return 0; }
+EOF
+if { (eval echo configure:1821: \"$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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$cf_cv_curses_acs_map" 1>&6
+
+test "$cf_cv_curses_acs_map" != unknown && cat >> confdefs.h <<EOF
+#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
+EOF
+
+
+echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
+echo "configure:1841: checking for wide alternate character set array" >&5
+if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cf_cv_curses_wacs_map=unknown
+for name in wacs_map _wacs_map __wacs_map _nc_wacs
+do
+cat > conftest.$ac_ext <<EOF
+#line 1850 "configure"
+#include "confdefs.h"
+
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED
+#endif
+#include <curses.h>
+
+int main() {
+
+$name['k'] = *WACS_PLUS        
+
+; return 0; }
+EOF
+if { (eval echo configure:1864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_curses_wacs_map=$name; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6
+
+test "$cf_cv_curses_wacs_map" != unknown && cat >> confdefs.h <<EOF
+#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
+EOF
+
+
+
+
+
+echo $ac_n "checking for type attr_t in curses.h""... $ac_c" 1>&6
+echo "configure:1887: checking for type attr_t in curses.h" >&5
+cat > conftest.$ac_ext <<EOF
+#line 1889 "configure"
+#include "confdefs.h"
+
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED
+#endif
+#include <curses.h>
+int main() {
+
+attr_t foo
+
+; return 0; }
+EOF
+if { (eval echo configure:1902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  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 = yes ; then
+        
+cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+       cat >> confdefs.h <<EOF
+#define $cf_result 1
+EOF
+
+else
+       cat >> confdefs.h <<EOF
+#define attr_t long
+EOF
+
+fi
+
+
+echo $ac_n "checking for type mbstate_t in curses.h""... $ac_c" 1>&6
+echo "configure:1930: checking for type mbstate_t in curses.h" >&5
+cat > conftest.$ac_ext <<EOF
+#line 1932 "configure"
+#include "confdefs.h"
+
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED
+#endif
+#include <curses.h>
+int main() {
+
+mbstate_t foo
+
+; return 0; }
+EOF
+if { (eval echo configure:1945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  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 = yes ; then
+        
+cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+       cat >> confdefs.h <<EOF
+#define $cf_result 1
+EOF
+
+else
+       cat >> confdefs.h <<EOF
+#define mbstate_t long
+EOF
+
+fi
+
+
+
+echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
+echo "configure:1974: checking if sys/time.h works with sys/select.h" >&5
 if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
 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 1579 "configure"
+#line 1980 "configure"
 #include "confdefs.h"
 
 #include "confdefs.h"
 
-#if HAVE_SYS_TIME_H
+#include <sys/types.h>
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
 #include <sys/time.h>
 #endif
-#if HAVE_SYS_SELECT_H
+#ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
 
 #include <sys/select.h>
 #endif
 
@@ -1589,7 +1991,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:1593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sys_time_select=yes
 else
   rm -rf conftest*
   cf_cv_sys_time_select=yes
 else
@@ -1603,11 +2005,12 @@ rm -f conftest*
 fi
 
 echo "$ac_t""$cf_cv_sys_time_select" 1>&6
 fi
 
 echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test $cf_cv_sys_time_select = yes && cat >> confdefs.h <<\EOF
+test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
 #define HAVE_SYS_TIME_SELECT 1
 EOF
 
 
 #define HAVE_SYS_TIME_SELECT 1
 EOF
 
 
+
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
index d61d477d691c71934f84b68e480dbd06fe074a69..87b409a02b5816cf78f21262622a859062ee4bdd 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
 dnl***************************************************************************
-dnl Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,9 +26,9 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl Author: Thomas E. Dickey 1996,1997,1998,2000
+dnl Author: Thomas E. Dickey 1996, etc.
 dnl
 dnl
-dnl $Id: configure.in,v 1.31 2000/10/15 18:46:17 tom Exp $
+dnl $Id: configure.in,v 1.36 2002/09/07 16:55:23 tom Exp $
 dnl This is a simple configuration-script for the ncurses test programs that
 dnl allows the test-directory to be separately configured against a reference
 dnl system (i.e., sysvr4 curses)
 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)
@@ -36,7 +36,7 @@ dnl
 dnl If you're configuring ncurses, you shouldn't need to use this script.
 dnl It's only for testing purposes.
 dnl
 dnl If you're configuring ncurses, you shouldn't need to use this script.
 dnl It's only for testing purposes.
 dnl
-dnl See http://dickey.his.com/autoconf/ for additional information.
+dnl See http://invisible-island.net/autoconf/ for additional information.
 dnl ---------------------------------------------------------------------------
 AC_PREREQ(2.13.20000819)
 AC_INIT(ncurses.c)
 dnl ---------------------------------------------------------------------------
 AC_PREREQ(2.13.20000819)
 AC_INIT(ncurses.c)
@@ -77,6 +77,57 @@ AC_ARG_WITH(5lib,
        [LIBS="-L/usr/5lib $LIBS"
         CPPFLAGS="$CPPFLAGS -I/usr/5include"])
 
        [LIBS="-L/usr/5lib $LIBS"
         CPPFLAGS="$CPPFLAGS -I/usr/5include"])
 
+dnl ---------------------------------------------------------------------------
+dnl Check for libutf8
+AC_DEFUN([CF_LIBUTF8],
+[
+AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
+       cf_save_LIBS="$LIBS"
+       LIBS="-lutf8 $LIBS"
+AC_TRY_LINK([
+#include <libutf8.h>],[putwc(0,0);],
+       [cf_cv_libutf8=yes],
+       [cf_cv_libutf8=no])
+       LIBS="$cf_save_LIBS"
+])
+
+if test "$cf_cv_libutf8" = yes ; then
+       AC_DEFINE(HAVE_LIBUTF8_H)
+       LIBS="-lutf8 $LIBS"
+fi
+])dnl
+
+dnl ---------------------------------------------------------------------------
+dnl NcursesW, installed in conventional location
+AC_ARG_WITH(ncursesw,
+       [  --with-ncursesw         use wide ncurses-libraries (installed)],
+       [
+        AC_DEFINE(_GNU_SOURCE)
+        AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
+        AC_CHECK_FUNC(initscr,,[
+        AC_CHECK_LIB(gpm,Gpm_Open)
+        LIB_NAME=ncursesw
+        AC_CHECK_FUNC(putwc,,[CF_LIBUTF8])
+        for p in $HOME /usr/local /usr
+        do
+               if test -f $p/include/ncursesw/curses.h
+               then
+                       CPPFLAGS="$CPPFLAGS -I$p/include/ncursesw"
+                       test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
+                       test $p != /usr && LIBS="-L$p/lib $LIBS"
+                       break
+               elif test $p != /usr
+               then
+                       if test -f $p/include/curses.h
+                       then
+                               CPPFLAGS="$CPPFLAGS -I$p/include"
+                               LIBS="-L$p/lib $LIBS"
+                               break
+                       fi
+               fi
+        done
+       ],[test -d /usr/ccs/lib && LIBS="-L/usr/ccs/lib $LIBS"])])
+
 dnl Ncurses, installed in conventional location
 AC_ARG_WITH(ncurses,
        [  --with-ncurses          use ncurses-libraries (installed)],
 dnl Ncurses, installed in conventional location
 AC_ARG_WITH(ncurses,
        [  --with-ncurses          use ncurses-libraries (installed)],
@@ -121,8 +172,10 @@ AC_HEADER_TIME
 AC_CHECK_HEADERS( \
 form.h \
 getopt.h \
 AC_CHECK_HEADERS( \
 form.h \
 getopt.h \
+locale.h \
 menu.h \
 nc_alloc.h \
 menu.h \
 nc_alloc.h \
+nomacros.h \
 panel.h \
 sys/ioctl.h \
 sys/select.h \
 panel.h \
 sys/ioctl.h \
 sys/select.h \
@@ -132,8 +185,10 @@ unistd.h \
 )
 
 AC_CHECK_FUNCS( \
 )
 
 AC_CHECK_FUNCS( \
+getnstr \
 gettimeofday \
 napms \
 gettimeofday \
 napms \
+resize_term \
 resizeterm \
 strdup \
 use_default_colors \
 resizeterm \
 strdup \
 use_default_colors \
@@ -141,6 +196,7 @@ vsscanf \
 wresize \
 )
 
 wresize \
 )
 
+dnl ---------------------------------------------------------------------------
 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
 dnl It's a character string "SVR4", not documented.
 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
 dnl It's a character string "SVR4", not documented.
 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
@@ -159,21 +215,93 @@ rm -f core])
 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
 
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
 
 dnl ---------------------------------------------------------------------------
+dnl Check for likely values of acs_map[]:
+AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
+cf_cv_curses_acs_map=unknown
+for name in acs_map _acs_map __acs_map _nc_acs_map
+do
+AC_TRY_LINK([
+#include <curses.h>
+],[
+$name['k'] = ACS_PLUS
+],[cf_cv_curses_acs_map=$name; break])
+done
+])
+
+test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
+
+dnl ---------------------------------------------------------------------------
+dnl Check for likely values of wacs_map[]:
+AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
+cf_cv_curses_wacs_map=unknown
+for name in wacs_map _wacs_map __wacs_map _nc_wacs
+do
+AC_TRY_LINK([
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED
+#endif
+#include <curses.h>
+],[
+$name['k'] = *WACS_PLUS        
+],[cf_cv_curses_wacs_map=$name; break])
+done
+])
+
+test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
+
+dnl --------------------------------------------------------------------------- 
+dnl Make an uppercase version of a variable 
+dnl $1=uppercase($2) 
+AC_DEFUN([CF_UPPER], 
+[ 
+$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+])dnl 
+
+dnl ---------------------------------------------------------------------------
+dnl Check if curses.h defines the given type
+AC_DEFUN([CF_CURSES_TYPE],
+[
+AC_MSG_CHECKING(for type $1 in curses.h)
+AC_TRY_COMPILE([
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED
+#endif
+#include <curses.h>],[
+$1 foo
+],cf_result=yes,cf_result=no)
+AC_MSG_RESULT($cf_result)
+if test $cf_result = yes ; then
+       CF_UPPER(cf_result,have_type_$1)
+       AC_DEFINE_UNQUOTED($cf_result)
+else
+       AC_DEFINE_UNQUOTED($1,$2)
+fi
+])dnl
+
+CF_CURSES_TYPE(attr_t,long)
+CF_CURSES_TYPE(mbstate_t,long)
+
+dnl ---------------------------------------------------------------------------
+dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
+dnl older SCO configurations.
 dnl [CF_SYS_TIME_SELECT]
 dnl [CF_SYS_TIME_SELECT]
-AC_MSG_CHECKING(if sys/time.h conflicts with sys/select.h)
+
+AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
 AC_CACHE_VAL(cf_cv_sys_time_select,[
 AC_TRY_COMPILE([
 AC_CACHE_VAL(cf_cv_sys_time_select,[
 AC_TRY_COMPILE([
-#if HAVE_SYS_TIME_H
+#include <sys/types.h>
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
 #include <sys/time.h>
 #endif
-#if HAVE_SYS_SELECT_H
+#ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
 ],[],[cf_cv_sys_time_select=yes],
      [cf_cv_sys_time_select=no])
      ])
 AC_MSG_RESULT($cf_cv_sys_time_select)
 #include <sys/select.h>
 #endif
 ],[],[cf_cv_sys_time_select=yes],
      [cf_cv_sys_time_select=no])
      ])
 AC_MSG_RESULT($cf_cv_sys_time_select)
-test $cf_cv_sys_time_select = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
+test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
+
 dnl ---------------------------------------------------------------------------
 
 AC_OUTPUT(Makefile,[
 dnl ---------------------------------------------------------------------------
 
 AC_OUTPUT(Makefile,[
index 8ceafe5de11a05da49d2188c5bb58c71a67a1dcc..c2c6b26d1bf398934422e814d7bc5fb1b19505bb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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
  *
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 1998
  *
- * $Id: ditto.c,v 1.3 1998/08/15 23:39:34 tom Exp $
+ * $Id: ditto.c,v 1.4 2001/09/15 21:53:37 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
  *
  * The program illustrates how to set up multiple screens from a single
  * program.  Invoke the program by specifying another terminal on the same
 #include <errno.h>
 
 typedef struct {
 #include <errno.h>
 
 typedef struct {
-       FILE *input;
-       FILE *output;
-       SCREEN *screen;
+    FILE *input;
+    FILE *output;
+    SCREEN *screen;
 } DITTO;
 
 static void
 failed(const char *s)
 {
 } DITTO;
 
 static void
 failed(const char *s)
 {
-       perror(s);
-       exit(EXIT_FAILURE);
+    perror(s);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static void
 usage(void)
 {
 }
 
 static void
 usage(void)
 {
-       fprintf(stderr, "usage: ditto [terminal1 ...]\n");
-       exit(EXIT_FAILURE);
+    fprintf(stderr, "usage: ditto [terminal1 ...]\n");
+    ExitProgram(EXIT_FAILURE);
 }
 
 static FILE *
 open_tty(char *path)
 {
 }
 
 static FILE *
 open_tty(char *path)
 {
-       FILE *fp;
-       struct stat sb;
+    FILE *fp;
+    struct stat sb;
 
 
-       if (stat(path, &sb) < 0)
-               failed(path);
-       if ((sb.st_mode & S_IFMT) != S_IFCHR) {
-               errno = ENOTTY;
-               failed(path);
-       }
-       fp = fopen(path, "a+");
-       if (fp == 0)
-               failed(path);
-       printf("opened %s\n", path);
-       return fp;
+    if (stat(path, &sb) < 0)
+       failed(path);
+    if ((sb.st_mode & S_IFMT) != S_IFCHR) {
+       errno = ENOTTY;
+       failed(path);
+    }
+    fp = fopen(path, "a+");
+    if (fp == 0)
+       failed(path);
+    printf("opened %s\n", path);
+    return fp;
 }
 
 int
 main(
        int argc GCC_UNUSED,
 }
 
 int
 main(
        int argc GCC_UNUSED,
-       char *argv[] GCC_UNUSED)
+       char *argv[]GCC_UNUSED)
 {
 {
-       int j;
-       int active_tty = 0;
-       DITTO *data;
+    int j;
+    int active_tty = 0;
+    DITTO *data;
 
 
-       if (argc <= 1)
-               usage();
+    if (argc <= 1)
+       usage();
 
 
-       if ((data = (DITTO *)calloc(argc, sizeof(DITTO))) == 0)
-               failed("calloc data");
+    if ((data = (DITTO *) calloc(argc, sizeof(DITTO))) == 0)
+       failed("calloc data");
 
 
-       data[0].input = stdin;
-       data[0].output = stdout;
-       for (j = 1; j < argc; j++) {
-               data[j].input =
-               data[j].output = open_tty(argv[j]);
-       }
+    data[0].input = stdin;
+    data[0].output = stdout;
+    for (j = 1; j < argc; j++) {
+       data[j].input =
+           data[j].output = open_tty(argv[j]);
+    }
 
 
-       /*
-        * If we got this far, we have open connection(s) to the terminal(s).
-        * Set up the screens.
-        */
-       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);
-               if (data[j].screen == 0)
-                       failed("newterm");
-               cbreak();
-               noecho();
-               scrollok(stdscr, TRUE);
-       }
+    /*
+     * If we got this far, we have open connection(s) to the terminal(s).
+     * Set up the screens.
+     */
+    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);
+       if (data[j].screen == 0)
+           failed("newterm");
+       cbreak();
+       noecho();
+       scrollok(stdscr, TRUE);
+    }
 
 
-       /*
-        * Loop, reading characters from any of the inputs and writing to all
-        * of the screens.
-        */
-       for(;;) {
-               int ch;
-               set_term(data[0].screen);
-               ch = getch();
-               if (ch == ERR)
-                       continue;
-               if (ch == 4)
-                       break;
-               for (j = 0; j < argc; j++) {
-                       set_term(data[j].screen);
-                       addch(ch);
-                       refresh();
-               }
+    /*
+     * Loop, reading characters from any of the inputs and writing to all
+     * of the screens.
+     */
+    for (;;) {
+       int ch;
+       set_term(data[0].screen);
+       ch = getch();
+       if (ch == ERR)
+           continue;
+       if (ch == 4)
+           break;
+       for (j = 0; j < argc; j++) {
+           set_term(data[j].screen);
+           addch(ch);
+           refresh();
        }
        }
+    }
 
 
-       /*
-        * Cleanup and exit
-        */
-       for (j = argc-1; j >= 0; j--) {
-               set_term(data[j].screen);
-               endwin();
-       }
-       return EXIT_SUCCESS;
+    /*
+     * Cleanup and exit
+     */
+    for (j = argc - 1; j >= 0; j--) {
+       set_term(data[j].screen);
+       endwin();
+    }
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index a5ddcaad58884dd668b8b5455e96ca5630ad1302..2e0190fc61bb26751b72074dba7260d980e4a93e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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
  *
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 1999
  *
- * $Id: dots.c,v 1.4 2000/02/13 01:05:13 tom Exp $
+ * $Id: dots.c,v 1.8 2002/04/06 21:33:42 tom Exp $
  *
  * A simple demo of the terminfo interface.
  */
  *
  * A simple demo of the terminfo interface.
  */
-#include <test.priv.h>
-
-#include <term.h>              /* for tparm() */
-
 #include <time.h>
 #include <time.h>
-#include <signal.h>
+
+#include <test.priv.h>
 
 #define valid(s) ((s != 0) && s != (char *)-1)
 
 
 #define valid(s) ((s != 0) && s != (char *)-1)
 
@@ -81,7 +78,7 @@ onsig(int n GCC_UNUSED)
 {
     interrupted = TRUE;
     cleanup();
 {
     interrupted = TRUE;
     cleanup();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static float
 }
 
 static float
@@ -93,8 +90,8 @@ ranf(void)
 
 int
 main(
 
 int
 main(
-    int argc GCC_UNUSED,
-    char *argv[]GCC_UNUSED)
+       int argc GCC_UNUSED,
+       char *argv[]GCC_UNUSED)
 {
     int x, y, z, j, p;
     float r;
 {
     int x, y, z, j, p;
     float r;
@@ -123,19 +120,19 @@ main(
        y = (int) (r * ranf()) + 2;
        p = (ranf() > 0.9) ? '*' : ' ';
 
        y = (int) (r * ranf()) + 2;
        p = (ranf() > 0.9) ? '*' : ' ';
 
-       tputs(tparm(cursor_address, y, x), 1, outc);
+       tputs(tparm3(cursor_address, y, x), 1, outc);
        if (max_colors > 0) {
        if (max_colors > 0) {
-           z = (int)(ranf() * max_colors);
+           z = (int) (ranf() * max_colors);
            if (ranf() > 0.01) {
            if (ranf() > 0.01) {
-               tputs(tparm(set_a_foreground, z), 1, outc);
+               tputs(tparm2(set_a_foreground, z), 1, outc);
            } else {
            } else {
-               tputs(tparm(set_a_background, z), 1, outc);
+               tputs(tparm2(set_a_background, z), 1, outc);
            }
        } else if (valid(exit_attribute_mode)
            }
        } else if (valid(exit_attribute_mode)
-           && valid(enter_reverse_mode)) {
+                  && valid(enter_reverse_mode)) {
            if (ranf() <= 0.01)
                outs((ranf() > 0.6) ? enter_reverse_mode :
            if (ranf() <= 0.01)
                outs((ranf() > 0.6) ? enter_reverse_mode :
-                   exit_attribute_mode);
+                    exit_attribute_mode);
        }
        outc(p);
        fflush(stdout);
        }
        outc(p);
        fflush(stdout);
index 272f3722b7c7e090cdf815a331abd2c2a0a80359..c3ea3c1882b2866317cf9b1632b6a12d32bd8920 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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
  *
 /*
  * Author:  Thomas E. Dickey <dickey@clark.net> 1998
  *
- * $Id: filter.c,v 1.4 2000/09/02 18:50:38 tom Exp $
+ * $Id: filter.c,v 1.7 2002/03/23 23:02:15 tom Exp $
  */
 #include <test.priv.h>
 
  */
 #include <test.priv.h>
 
  * and refresh(), but that does not work any better.
  */
 
  * and refresh(), but that does not work any better.
  */
 
-#ifndef NCURSES_VERSION
-#define attr_t long
-#define getnstr(s,n) getstr(s)
-#endif
-
 static int
 new_command(char *buffer, int length, attr_t underline)
 {
 static int
 new_command(char *buffer, int length, attr_t underline)
 {
@@ -69,12 +64,11 @@ new_command(char *buffer, int length, attr_t underline)
 int
 main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 int
 main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
-    SCREEN *sp;
     char buffer[80];
     attr_t underline;
 
     filter();
     char buffer[80];
     attr_t underline;
 
     filter();
-    sp = newterm((char *) 0, stdout, stdin);
+    (void) newterm((char *) 0, stdout, stdin);
     cbreak();
     keypad(stdscr, TRUE);
 
     cbreak();
     keypad(stdscr, TRUE);
 
@@ -105,5 +99,5 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     printw("done");
     refresh();
     endwin();
     printw("done");
     refresh();
     endwin();
-    return 0;
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index 66c1227cf0f082731ac0bc9b783242360beee4c5..3d84c4399139d3c9c7839d7a3f668ef17cb41f70 100644 (file)
@@ -1,11 +1,10 @@
 /*
 /*
- * $Id: firework.c,v 1.17 2000/09/02 18:41:12 tom Exp $
+ * $Id: firework.c,v 1.20 2002/03/23 21:41:42 tom Exp $
  */
  */
-#include <test.priv.h>
-
-#include <signal.h>
 #include <time.h>
 
 #include <time.h>
 
+#include <test.priv.h>
+
 static int my_bg = COLOR_BLACK;
 
 static void
 static int my_bg = COLOR_BLACK;
 
 static void
@@ -19,7 +18,7 @@ static RETSIGTYPE
 onsig(int n GCC_UNUSED)
 {
     cleanup();
 onsig(int n GCC_UNUSED)
 {
     cleanup();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static void
 }
 
 static void
@@ -35,7 +34,7 @@ showit(void)
 #endif
        if (ch == 'q') {
            cleanup();
 #endif
        if (ch == 'q') {
            cleanup();
-           exit(EXIT_SUCCESS);
+           ExitProgram(EXIT_SUCCESS);
        } else if (ch == 's') {
            nodelay(stdscr, FALSE);
        } else if (ch == ' ') {
        } else if (ch == 's') {
            nodelay(stdscr, FALSE);
        } else if (ch == ' ') {
@@ -114,8 +113,8 @@ explode(int row, int col)
 
 int
 main(
 
 int
 main(
-    int argc GCC_UNUSED,
-    char *argv[]GCC_UNUSED)
+       int argc GCC_UNUSED,
+       char *argv[]GCC_UNUSED)
 {
     int j;
     int start, end, row, diff, flag = 0, direction;
 {
     int j;
     int start, end, row, diff, flag = 0, direction;
@@ -154,7 +153,7 @@ main(
        attrset(A_NORMAL);
        for (row = 0; row < diff; row++) {
            mvprintw(LINES - row, start + (row * direction),
        attrset(A_NORMAL);
        for (row = 0; row < diff; row++) {
            mvprintw(LINES - row, start + (row * direction),
-               (direction < 0) ? "\\" : "/");
+                    (direction < 0) ? "\\" : "/");
            if (flag++) {
                showit();
                erase();
            if (flag++) {
                showit();
                erase();
index f9515dcb5b38a8f183c572a9a099570413ad0bc2..6a79a33fbfb134af0e4dbc5db2e65c105533e1f2 100644 (file)
@@ -2,88 +2,89 @@
  * This test was written by Alexander V. Lukyanov to demonstrate difference
  * between ncurses 4.1 and SVR4 curses
  *
  * This test was written by Alexander V. Lukyanov to demonstrate difference
  * between ncurses 4.1 and SVR4 curses
  *
- * $Id: firstlast.c,v 1.2 1997/10/18 21:34:53 tom Exp $
+ * $Id: firstlast.c,v 1.3 2001/09/15 21:46:34 tom Exp $
  */
 
 #include <test.priv.h>
 
  */
 
 #include <test.priv.h>
 
-static void fill(WINDOW *w,const char *str)
+static void
+fill(WINDOW *w, const char *str)
 {
 {
-       const char *s;
-       for(;;) {
-               for(s=str; *s; s++) {
-                       if(waddch(w,*s)==ERR)
-                       {
-                               wmove(w,0,0);
-                               return;
-                       }
-               }
+    const char *s;
+    for (;;) {
+       for (s = str; *s; s++) {
+           if (waddch(w, *s) == ERR) {
+               wmove(w, 0, 0);
+               return;
+           }
        }
        }
+    }
 }
 
 }
 
-int main(
+int
+main(
        int argc GCC_UNUSED,
        int argc GCC_UNUSED,
-       char *argv[] GCC_UNUSED)
+       char *argv[]GCC_UNUSED)
 {
 {
-       WINDOW *large,*small;
-       initscr();
-       noecho();
-       
-       large = newwin(20,60,2,10);
-       small = newwin(10,30,7,25);
-       
-       /* test 1 - addch */
-       fill(large,"LargeWindow");
-       
-       refresh();
-       wrefresh(large);
-       wrefresh(small);
-
-       mvwaddstr(small,5,5,"   Test <place to change> String   ");
-       wrefresh(small);
-       getch();
-       
-       touchwin(large);
-       wrefresh(large);
-       
-       mvwaddstr(small,5,5,"   Test <***************> String   ");
-       wrefresh(small);
-
-       /* DIFFERENCE! */
-       getch();
-
-       /* test 2: erase */
-       erase();
-       refresh();
-       getch();
-       
-       /* test 3: clrtoeol */
-       werase(small);
-       wrefresh(small);
-       touchwin(large);
-       wrefresh(large);
-       wmove(small,5,0);
-       waddstr(small," clrtoeol>");
-       wclrtoeol(small);
-       wrefresh(small);
-
-       /* DIFFERENCE! */;
-       getch();
-
-       /* test 4: clrtobot */
-       werase(small);
-       wrefresh(small);
-       touchwin(large);
-       wrefresh(large);
-       wmove(small,5,3);
-       waddstr(small," clrtobot>");
-       wclrtobot(small);
-       wrefresh(small);
-
-       /* DIFFERENCE! */
-       getch();
-
-       endwin();
-
-       return EXIT_SUCCESS;
+    WINDOW *large, *small;
+    initscr();
+    noecho();
+
+    large = newwin(20, 60, 2, 10);
+    small = newwin(10, 30, 7, 25);
+
+    /* test 1 - addch */
+    fill(large, "LargeWindow");
+
+    refresh();
+    wrefresh(large);
+    wrefresh(small);
+
+    mvwaddstr(small, 5, 5, "   Test <place to change> String   ");
+    wrefresh(small);
+    getch();
+
+    touchwin(large);
+    wrefresh(large);
+
+    mvwaddstr(small, 5, 5, "   Test <***************> String   ");
+    wrefresh(small);
+
+    /* DIFFERENCE! */
+    getch();
+
+    /* test 2: erase */
+    erase();
+    refresh();
+    getch();
+
+    /* test 3: clrtoeol */
+    werase(small);
+    wrefresh(small);
+    touchwin(large);
+    wrefresh(large);
+    wmove(small, 5, 0);
+    waddstr(small, " clrtoeol>");
+    wclrtoeol(small);
+    wrefresh(small);
+
+    /* DIFFERENCE! */ ;
+    getch();
+
+    /* test 4: clrtobot */
+    werase(small);
+    wrefresh(small);
+    touchwin(large);
+    wrefresh(large);
+    wmove(small, 5, 3);
+    waddstr(small, " clrtobot>");
+    wclrtobot(small);
+    wrefresh(small);
+
+    /* DIFFERENCE! */
+    getch();
+
+    endwin();
+
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index df9a0c3fdf5c23ad5abffb5db33bffd5142f7299..c466f2fde2674d95849d355f4bd980da2913f581 100644 (file)
@@ -6,14 +6,12 @@
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
- * $Id: gdc.c,v 1.15 2000/09/02 18:40:39 tom Exp $
+ * $Id: gdc.c,v 1.23 2002/08/10 19:20:14 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
 #include <time.h>
 #include <time.h>
-#include <signal.h>
-#include <string.h>
+
+#include <test.priv.h>
 
 #define YBASE  10
 #define XBASE  10
 
 #define YBASE  10
 #define XBASE  10
@@ -38,7 +36,7 @@ sighndl(int signo)
     sigtermed = signo;
     if (redirected) {
        endwin();
     sigtermed = signo;
     if (redirected) {
        endwin();
-       exit(EXIT_FAILURE);
+       ExitProgram(EXIT_FAILURE);
     }
 }
 
     }
 }
 
@@ -97,7 +95,7 @@ set(int t, int n)
 
     m = 7 << n;
     for (i = 0; i < 5; i++) {
 
     m = 7 << n;
     for (i = 0; i < 5; i++) {
-       next[i] |= ((disp[t] >> (4 - i) * 3) & 07) << n;
+       next[i] |= ((disp[t] >> ((4 - i) * 3)) & 07) << n;
        mask |= (next[i] ^ older[i]) & m;
     }
     if (mask & m)
        mask |= (next[i] ^ older[i]) & m;
     }
     if (mask & m)
@@ -120,7 +118,7 @@ usage(void)
     unsigned j;
     for (j = 0; j < SIZEOF(msg); j++)
        fprintf(stderr, "%s\n", msg[j]);
     unsigned j;
     for (j = 0; j < SIZEOF(msg); j++)
        fprintf(stderr, "%s\n", msg[j]);
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 int
 }
 
 int
@@ -135,9 +133,10 @@ main(int argc, char *argv[])
     FILE *ifp = stdin;
     bool scrol = FALSE;
 
     FILE *ifp = stdin;
     bool scrol = FALSE;
 
+    setlocale(LC_ALL, "");
+
     signal(SIGINT, sighndl);
     signal(SIGTERM, sighndl);
     signal(SIGINT, sighndl);
     signal(SIGTERM, sighndl);
-    signal(SIGKILL, sighndl);
 
     while ((k = getopt(argc, argv, "sn")) != EOF) {
        switch (k) {
 
     while ((k = getopt(argc, argv, "sn")) != EOF) {
        switch (k) {
@@ -163,7 +162,7 @@ main(int argc, char *argv[])
        if (name == 0
            || newterm(name, ofp, ifp) == 0) {
            fprintf(stderr, "cannot open terminal\n");
        if (name == 0
            || newterm(name, ofp, ifp) == 0) {
            fprintf(stderr, "cannot open terminal\n");
-           exit(EXIT_FAILURE);
+           ExitProgram(EXIT_FAILURE);
        }
 
     } else {
        }
 
     } else {
@@ -304,13 +303,14 @@ main(int argc, char *argv[])
                standend();
                endwin();
                fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
                standend();
                endwin();
                fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
-               return EXIT_FAILURE;
+               ExitProgram(EXIT_FAILURE);
            }
            }
+           /* FALLTHRU */
        default:
            continue;
        }
     } while (--count);
     standend();
     endwin();
        default:
            continue;
        }
     } while (--count);
     standend();
     endwin();
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index 0b032f8318cae2d51c9c220f788bae278b122963..45d6b97d2093f348629537c20120d6ec6c837416 100644 (file)
  *
  *     Date: 05.Nov.90
  *
  *
  *     Date: 05.Nov.90
  *
- * $Id: hanoi.c,v 1.19 2000/09/02 18:51:16 tom Exp $
+ * $Id: hanoi.c,v 1.24 2002/06/29 23:32:18 tom Exp $
  */
 
 #include <test.priv.h>
 
  */
 
 #include <test.priv.h>
 
-#include <string.h>
-
 #define NPEGS                  3       /* This is not configurable !! */
 #define MINTILES               3
 #define MAXTILES               9
 #define NPEGS                  3       /* This is not configurable !! */
 #define MINTILES               3
 #define MAXTILES               9
-#define DEFAULTTILES   7
+#define DEFAULTTILES           7
 #define TOPLINE                        6
 #define BASELINE               16
 #define STATUSLINE             (LINES-3)
 #define TOPLINE                        6
 #define BASELINE               16
 #define STATUSLINE             (LINES-3)
@@ -70,7 +68,9 @@ int
 main(int argc, char **argv)
 {
     int NTiles, FromCol, ToCol;
 main(int argc, char **argv)
 {
     int NTiles, FromCol, ToCol;
-    unsigned char AutoFlag = 0;
+    bool AutoFlag = 0;
+
+    setlocale(LC_ALL, "");
 
     switch (argc) {
     case 1:
 
     switch (argc) {
     case 1:
@@ -80,24 +80,24 @@ main(int argc, char **argv)
        NTiles = atoi(argv[1]);
        if (NTiles > MAXTILES || NTiles < MINTILES) {
            fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
        NTiles = atoi(argv[1]);
        if (NTiles > MAXTILES || NTiles < MINTILES) {
            fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
        break;
     case 3:
        if (strcmp(argv[2], "a")) {
            Usage();
        }
        break;
     case 3:
        if (strcmp(argv[2], "a")) {
            Usage();
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
        NTiles = atoi(argv[1]);
        if (NTiles > MAXTILES || NTiles < MINTILES) {
            fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
        }
        NTiles = atoi(argv[1]);
        if (NTiles > MAXTILES || NTiles < MINTILES) {
            fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
        AutoFlag = TRUE;
        break;
     default:
        Usage();
        }
        AutoFlag = TRUE;
        break;
     default:
        Usage();
-       return EXIT_FAILURE;
+       ExitProgram(EXIT_FAILURE);
     }
 #ifdef TRACE
     trace(TRACE_MAXIMUM);
     }
 #ifdef TRACE
     trace(TRACE_MAXIMUM);
@@ -118,7 +118,7 @@ main(int argc, char **argv)
     if (LINES < 24) {
        endwin();
        fprintf(stderr, "Min screen length 24 lines\n");
     if (LINES < 24) {
        endwin();
        fprintf(stderr, "Min screen length 24 lines\n");
-       return EXIT_FAILURE;
+       ExitProgram(EXIT_FAILURE);
     }
     if (AutoFlag) {
        curs_set(0);
     }
     if (AutoFlag) {
        curs_set(0);
@@ -154,7 +154,7 @@ main(int argc, char **argv)
        }
     }
     endwin();
        }
     }
     endwin();
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 
 static int
 }
 
 static int
@@ -295,7 +295,7 @@ Solved(int NumTiles)
 }
 
 static void
 }
 
 static void
-Usage()
+Usage(void)
 {
     fprintf(stderr, "Usage: hanoi [<No Of Tiles>] [a]\n");
     fprintf(stderr,
 {
     fprintf(stderr, "Usage: hanoi [<No Of Tiles>] [a]\n");
     fprintf(stderr,
index 52e5c2166224928afd01b659dc5cf2d1e5f6aadb..06f29098911763b6eb7584185f3e2762d6a59492 100644 (file)
@@ -3,22 +3,20 @@
  *
  * Generate timing statistics for vertical-motion optimization.
  *
  *
  * Generate timing statistics for vertical-motion optimization.
  *
- * $Id: hashtest.c,v 1.15 2000/09/02 19:23:33 tom Exp $
+ * $Id: hashtest.c,v 1.22 2002/06/29 23:32:18 tom Exp $
  */
 
 #ifdef TRACE
 #define Trace(p) _tracef p
 #define USE_TRACE 1
 #else
  */
 
 #ifdef TRACE
 #define Trace(p) _tracef p
 #define USE_TRACE 1
 #else
-#define Trace(p) /* nothing */
+#define Trace(p)               /* nothing */
 #define USE_TRACE 0
 #endif
 
 #define USE_TRACE 0
 #endif
 
-#include <test.priv.h>
-
-#include <string.h>
 #include <ctype.h>
 #include <ctype.h>
-#include <signal.h>
+
+#include <test.priv.h>
 
 #define LO_CHAR ' '
 #define HI_CHAR '~'
 
 #define LO_CHAR ' '
 #define HI_CHAR '~'
@@ -30,191 +28,201 @@ static bool extend_corner = FALSE;
 static int foot_lines = 0;
 static int head_lines = 0;
 
 static int foot_lines = 0;
 static int head_lines = 0;
 
-static void cleanup(void)
+static void
+cleanup(void)
 {
 {
-       move(LINES-1,0);
-       clrtoeol();
-       refresh();
-       endwin();
+    move(LINES - 1, 0);
+    clrtoeol();
+    refresh();
+    endwin();
 }
 
 }
 
-static RETSIGTYPE finish(int sig GCC_UNUSED)
+static RETSIGTYPE
+finish(int sig GCC_UNUSED)
 {
 {
-       cleanup();
-       exit(EXIT_FAILURE);
+    cleanup();
+    ExitProgram(EXIT_FAILURE);
 }
 
 }
 
-static void genlines(int base)
+static void
+genlines(int base)
 {
 {
-       int i, j;
+    int i, j;
 
 #if USE_TRACE
 
 #if USE_TRACE
-       if (base == 'a')
-               Trace(("Resetting screen"));
-       else
-               Trace(("Painting `%c' screen", base));
+    if (base == 'a')
+       Trace(("Resetting screen"));
+    else
+       Trace(("Painting `%c' screen", base));
 #endif
 
 #endif
 
-       /* Do this so writes to lower-right corner don't cause a spurious
-        * scrolling operation.  This _shouldn't_ break the scrolling
-        * optimization, since that's computed in the refresh() call.
-        */
-       scrollok(stdscr, FALSE);
-
-       move(0,0);
-       for (i = 0; i < head_lines; i++)
-               for (j = 0; j < COLS; j++)
-                       addch((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;
-               int hi = (extend_corner || (i < LINES - 1)) ? COLS : COLS - 1;
-               for (j = 0; j < hi; j++)
-                       addch(c);
-       }
-
-       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) : '-');
-       }
-
-       scrollok(stdscr, TRUE);
-       if (single_step) {
-               move(LINES-1, 0);
-               getch();
-       } else
-               refresh();
+    /* Do this so writes to lower-right corner don't cause a spurious
+     * scrolling operation.  This _shouldn't_ break the scrolling
+     * optimization, since that's computed in the refresh() call.
+     */
+    scrollok(stdscr, FALSE);
+
+    move(0, 0);
+    for (i = 0; i < head_lines; i++)
+       for (j = 0; j < COLS; j++)
+           addch((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;
+       int hi = (extend_corner || (i < LINES - 1)) ? COLS : COLS - 1;
+       for (j = 0; j < hi; j++)
+           addch(c);
+    }
+
+    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) : '-');
+    }
+
+    scrollok(stdscr, TRUE);
+    if (single_step) {
+       move(LINES - 1, 0);
+       getch();
+    } else
+       refresh();
 }
 
 }
 
-static void one_cycle(int ch)
+static void
+one_cycle(int ch)
 {
 {
-       if (continuous) {
-               genlines(ch);
-       } else if (ch != 'a') {
-               genlines('a');
-               genlines(ch);
-       }
+    if (continuous) {
+       genlines(ch);
+    } else if (ch != 'a') {
+       genlines('a');
+       genlines(ch);
+    }
 }
 
 }
 
-static void run_test(bool optimized)
+static void
+run_test(bool optimized GCC_UNUSED)
 {
 {
-       char    ch;
-       int     lo = continuous ? LO_CHAR : 'a' - LINES;
-       int     hi = continuous ? HI_CHAR : 'a' + LINES;
+    char ch;
+    int lo = continuous ? LO_CHAR : 'a' - LINES;
+    int hi = continuous ? HI_CHAR : 'a' + LINES;
 
 
-       if (lo < LO_CHAR)
-               lo = LO_CHAR;
-       if (hi > HI_CHAR)
-               hi = HI_CHAR;
+    if (lo < LO_CHAR)
+       lo = LO_CHAR;
+    if (hi > HI_CHAR)
+       hi = HI_CHAR;
 
 #if defined(TRACE) || defined(NCURSES_TEST)
 
 #if defined(TRACE) || defined(NCURSES_TEST)
-       if (optimized) {
-               Trace(("With hash mapping"));
-               _nc_optimize_enable |= OPTIMIZE_HASHMAP;
-       } else {
-               Trace(("Without hash mapping"));
-               _nc_optimize_enable &= ~OPTIMIZE_HASHMAP;
-       }
+    if (optimized) {
+       Trace(("With hash mapping"));
+       _nc_optimize_enable |= OPTIMIZE_HASHMAP;
+    } else {
+       Trace(("Without hash mapping"));
+       _nc_optimize_enable &= ~OPTIMIZE_HASHMAP;
+    }
 #endif
 
 #endif
 
-       if (reverse_loops)
-               for (ch = hi; ch >= lo; ch--)
-                       one_cycle(ch);
-       else
-               for (ch = lo; ch <= hi; ch++)
-                       one_cycle(ch);
+    if (reverse_loops)
+       for (ch = hi; ch >= lo; ch--)
+           one_cycle(ch);
+    else
+       for (ch = lo; ch <= hi; ch++)
+           one_cycle(ch);
 }
 
 }
 
-static void usage(void)
+static void
+usage(void)
 {
 {
-       static const char *const tbl[] = {
-                "Usage: hashtest [options]"
-               ,""
-               ,"Options:"
-               ,"  -c      continuous (don't reset between refresh's)"
-               ,"  -f num  leave 'num' lines constant for footer"
-               ,"  -h num  leave 'num' lines constant for header"
-               ,"  -l num  repeat test 'num' times"
-               ,"  -n      test the normal optimizer"
-               ,"  -o      test the hashed optimizer"
-               ,"  -r      reverse the loops"
-               ,"  -s      single-step"
-               ,"  -x      assume lower-right corner extension"
-       };
-       size_t n;
-
-       for (n = 0; n < sizeof(tbl)/sizeof(tbl[0]); n++)
-               fprintf(stderr, "%s\n", tbl[n]);
-       exit(EXIT_FAILURE);
+    static const char *const tbl[] =
+    {
+       "Usage: hashtest [options]"
+       ,""
+       ,"Options:"
+       ,"  -c      continuous (don't reset between refresh's)"
+       ,"  -f num  leave 'num' lines constant for footer"
+       ,"  -h num  leave 'num' lines constant for header"
+       ,"  -l num  repeat test 'num' times"
+       ,"  -n      test the normal optimizer"
+       ,"  -o      test the hashed optimizer"
+       ,"  -r      reverse the loops"
+       ,"  -s      single-step"
+       ,"  -x      assume lower-right corner extension"
+    };
+    size_t n;
+
+    for (n = 0; n < SIZEOF(tbl); n++)
+       fprintf(stderr, "%s\n", tbl[n]);
+    ExitProgram(EXIT_FAILURE);
 }
 
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
 {
-       int c;
-       int test_loops = 1;
-       int test_normal = FALSE;
-       int test_optimize = FALSE;
-
-       while ((c = getopt(argc, argv, "cf:h:l:norsx")) != EOF) {
-               switch (c) {
-               case 'c':
-                       continuous = TRUE;
-                       break;
-               case 'f':
-                       foot_lines = atoi(optarg);
-                       break;
-               case 'h':
-                       head_lines = atoi(optarg);
-                       break;
-               case 'l':
-                       test_loops = atoi(optarg);
-                       break;
-               case 'n':
-                       test_normal = TRUE;
-                       break;
-               case 'o':
-                       test_optimize = TRUE;
-                       break;
-               case 'r':
-                       reverse_loops = TRUE;
-                       break;
-               case 's':
-                       single_step = TRUE;
-                       break;
-               case 'x':
-                       extend_corner = TRUE;
-                       break;
-               default:
-                       usage();
-               }
-       }
-       if (!test_normal && !test_optimize) {
-               test_normal = TRUE;
-               test_optimize = TRUE;
+    int c;
+    int test_loops = 1;
+    int test_normal = FALSE;
+    int test_optimize = FALSE;
+
+    setlocale(LC_ALL, "");
+
+    while ((c = getopt(argc, argv, "cf:h:l:norsx")) != EOF) {
+       switch (c) {
+       case 'c':
+           continuous = TRUE;
+           break;
+       case 'f':
+           foot_lines = atoi(optarg);
+           break;
+       case 'h':
+           head_lines = atoi(optarg);
+           break;
+       case 'l':
+           test_loops = atoi(optarg);
+           break;
+       case 'n':
+           test_normal = TRUE;
+           break;
+       case 'o':
+           test_optimize = TRUE;
+           break;
+       case 'r':
+           reverse_loops = TRUE;
+           break;
+       case 's':
+           single_step = TRUE;
+           break;
+       case 'x':
+           extend_corner = TRUE;
+           break;
+       default:
+           usage();
        }
        }
+    }
+    if (!test_normal && !test_optimize) {
+       test_normal = TRUE;
+       test_optimize = TRUE;
+    }
 #if USE_TRACE
 #if USE_TRACE
-       trace(TRACE_TIMES);
+    trace(TRACE_TIMES);
 #endif
 
 #endif
 
-       (void) signal(SIGINT, finish);  /* arrange interrupts to terminate */
+    (void) signal(SIGINT, finish);     /* arrange interrupts to terminate */
 
 
-       (void) initscr();      /* initialize the curses library */
-       keypad(stdscr, TRUE);  /* enable keyboard mapping */
-       (void) nonl();         /* tell curses not to do NL->CR/NL on output */
-       (void) cbreak();       /* take input chars one at a time, no wait for \n */
-       (void) noecho();       /* don't echo input */
-       scrollok(stdscr, TRUE);
+    (void) initscr();          /* initialize the curses library */
+    keypad(stdscr, TRUE);      /* enable keyboard mapping */
+    (void) nonl();             /* tell curses not to do NL->CR/NL on output */
+    (void) cbreak();           /* take input chars one at a time, no wait for \n */
+    (void) noecho();           /* don't echo input */
+    scrollok(stdscr, TRUE);
 
 
-       while (test_loops-- > 0) {
-               if (test_normal)
-                       run_test(FALSE);
-               if (test_optimize)
-                       run_test(TRUE);
-       }
+    while (test_loops-- > 0) {
+       if (test_normal)
+           run_test(FALSE);
+       if (test_optimize)
+           run_test(TRUE);
+    }
 
 
-       cleanup();               /* we're done */
-       return(EXIT_SUCCESS);
+    cleanup();                 /* we're done */
+    ExitProgram(EXIT_SUCCESS);
 }
 /* hashtest.c ends here */
 }
 /* hashtest.c ends here */
index 88cadd2f8a840dcfc6ad22423ad62b38ac5c932d..ee8fac89f9ec921356b4be52e81b6c28f2e3a9af 100644 (file)
@@ -1,14 +1,17 @@
 /*
 /*
- * $Id: keynames.c,v 1.2 1998/06/06 22:45:13 tom Exp $
+ * $Id: keynames.c,v 1.4 2002/09/01 19:42:42 tom Exp $
  */
 
 #include <test.priv.h>
 
  */
 
 #include <test.priv.h>
 
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 {
-       int n;
-       for (n = -1; n < 512; n++) {
-               printf("%d(%5o):%s\n", n, n, keyname(n));
-       }
-       return EXIT_SUCCESS;
+    int n;
+    for (n = -1; n < 512; n++) {
+       char *result = keyname(n);
+       if (result != 0)
+           printf("%d(%5o):%s\n", n, n, result);
+    }
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index e759d42689af65104062458c34ac17efe762e3dd..0e091f46dfa50e54fdcde54120e04180bad4c0c2 100644 (file)
@@ -6,14 +6,12 @@
  * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995.  Mouse support
  * added September 20th 1995.
  *
  * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995.  Mouse support
  * added September 20th 1995.
  *
- * $Id: knight.c,v 1.18 2000/10/15 18:36:34 Brian.Raiter Exp $
+ * $Id: knight.c,v 1.25 2002/06/29 23:32:18 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
 #include <ctype.h>
 #include <ctype.h>
-#include <signal.h>
-#include <string.h>
+
+#include <test.priv.h>
 
 /* board size */
 #define BDEPTH 8
 
 /* board size */
 #define BDEPTH 8
@@ -35,8 +33,8 @@
 #define PLUS_COLOR     2
 #define MINUS_COLOR    3
 
 #define PLUS_COLOR     2
 #define MINUS_COLOR    3
 
-#define CX(x)  (2 + 4 * (x))
-#define CY(y)  (1 + 2 * (y))
+#define CX(x)          (2 + 4 * (x))
+#define CY(y)          (1 + 2 * (y))
 #define cellmove(y, x) wmove(boardwin, CY(y), CX(x))
 #define CXINV(x)       (((x) - 1) / 4)
 #define CYINV(y)       (((y) - 2) / 2)
 #define cellmove(y, x) wmove(boardwin, CY(y), CX(x))
 #define CXINV(x)       (((x) - 1) / 4)
 #define CYINV(y)       (((y) - 2) / 2)
@@ -45,42 +43,38 @@ typedef struct {
     short x, y;
 } cell;
 
     short x, y;
 } cell;
 
-static short board[BDEPTH][BWIDTH];    /* the squares */
-static int rw, col;            /* current row and column */
-static int lastrow, lastcol;   /* last location visited */
-static cell history[BDEPTH * BWIDTH + 1];      /* choice history */
-static int movecount;          /* count of moves so far */
 static WINDOW *boardwin;       /* the board window */
 static WINDOW *helpwin;                /* the help window */
 static WINDOW *msgwin;         /* the message window */
 static WINDOW *boardwin;       /* the board window */
 static WINDOW *helpwin;                /* the help window */
 static WINDOW *msgwin;         /* the message window */
-static chtype trail = '#';     /* trail character */
-static chtype plus = '+';      /* cursor hot-spot character */
+static cell history[BDEPTH * BWIDTH + 1];      /* choice history */
 static chtype minus = '-';     /* possible-move character */
 static chtype oldch;
 static chtype minus = '-';     /* possible-move character */
 static chtype oldch;
-
-static void init(void);
-static void play(void);
-static void dosquares(void);
-static void drawmove(char, int, int, int, int);
-static bool evalmove(int, int);
-static bool chkmoves(void);
-static bool chksqr(int, int);
-static int iabs(int);
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
-    init();
-
-    play();
-
-    endwin();
-    return EXIT_SUCCESS;
-}
+static chtype plus = '+';      /* cursor hot-spot character */
+static chtype trail = '#';     /* trail character */
+static int movecount;          /* count of moves so far */
+static int trialcount;         /* count of trials so far */
+static short board[BDEPTH][BWIDTH];    /* the squares */
+/* *INDENT-OFF* */
+static const struct {
+    int y;
+    int x;
+} offsets[] = {
+    {  2,  1 },
+    {  1,  2 },
+    { -1,  2 },
+    { -2,  1 },
+    { -2, -1 },
+    { -1, -2 },
+    {  1, -2 },
+    {  2, -1 },
+};
+/* *INDENT-ON* */
 
 static void
 
 static void
-init(void)
+init_program(void)
 {
 {
+    setlocale(LC_ALL, "");
+
     srand((unsigned) getpid());
     initscr();
     cbreak();                  /* immediate char return */
     srand((unsigned) getpid());
     initscr();
     cbreak();                  /* immediate char return */
@@ -155,24 +149,288 @@ help2(void)
     (void) waddstr(helpwin, "x,q -- exit             y k u    7 8 9\n");
     (void) waddstr(helpwin, "r -- redraw screen       \\|/      \\|/ \n");
     (void) waddstr(helpwin, "bksp -- undo move       h-+-l    4-+-6\n");
     (void) waddstr(helpwin, "x,q -- exit             y k u    7 8 9\n");
     (void) waddstr(helpwin, "r -- redraw screen       \\|/      \\|/ \n");
     (void) waddstr(helpwin, "bksp -- undo move       h-+-l    4-+-6\n");
-    (void) waddstr(helpwin, "                         /|\\      /|\\ \n");
+    (void) waddstr(helpwin, "a -- autojump            /|\\      /|\\ \n");
     (void) waddstr(helpwin, "                        b j n    1 2 3\n");
 
     (void) waddstr(helpwin, "\nYou can place your knight on the selected\n");
     (void) waddstr(helpwin, "square with spacebar, Enter, or the keypad\n");
     (void) waddstr(helpwin, "                        b j n    1 2 3\n");
 
     (void) waddstr(helpwin, "\nYou can place your knight on the selected\n");
     (void) waddstr(helpwin, "square with spacebar, Enter, or the keypad\n");
-    (void) waddstr(helpwin, "center key.  You can quit with `x' or `q'.\n");
+    (void) waddstr(helpwin, "center key.  Use F/B to review the path.\n");
 
     (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
                     "Press `?' to go to game explanation");
 }
 
 
     (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
                     "Press `?' to go to game explanation");
 }
 
+static void
+show_help(bool * keyhelp)
+{
+    werase(helpwin);
+    if (*keyhelp) {
+       help1();
+       *keyhelp = FALSE;
+    } else {
+       help2();
+       *keyhelp = TRUE;
+    }
+    wrefresh(helpwin);
+}
+
+static bool
+chksqr(int r1, int c1)
+{
+    if ((r1 < 0) || (r1 > BDEPTH - 1))
+       return (FALSE);
+    if ((c1 < 0) || (c1 > BWIDTH - 1))
+       return (FALSE);
+    return ((!board[r1][c1]) ? TRUE : FALSE);
+}
+
+static bool
+chkmoves(int rw, int col)
+/* check to see if valid moves are available */
+{
+    unsigned n;
+
+    for (n = 0; n < SIZEOF(offsets); n++)
+       if (chksqr(rw + offsets[n].y, col + offsets[n].x))
+           return (TRUE);
+    return (FALSE);
+}
+
+static void
+dosquares(void)
+{
+    int i, j;
+
+    mvaddstr(0, 20, "KNIGHT'S MOVE -- a logical solitaire");
+
+    move(BOARDY, BOARDX);
+    waddch(boardwin, ACS_ULCORNER);
+    for (j = 0; j < 7; j++) {
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_TTEE);
+    }
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_URCORNER);
+
+    for (i = 1; i < BDEPTH; i++) {
+       move(BOARDY + i * 2 - 1, BOARDX);
+       waddch(boardwin, ACS_VLINE);
+       for (j = 0; j < BWIDTH; j++) {
+           waddch(boardwin, ' ');
+           waddch(boardwin, ' ');
+           waddch(boardwin, ' ');
+           waddch(boardwin, ACS_VLINE);
+       }
+       move(BOARDY + i * 2, BOARDX);
+       waddch(boardwin, ACS_LTEE);
+       for (j = 0; j < BWIDTH - 1; j++) {
+           waddch(boardwin, ACS_HLINE);
+           waddch(boardwin, ACS_HLINE);
+           waddch(boardwin, ACS_HLINE);
+           waddch(boardwin, ACS_PLUS);
+       }
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_RTEE);
+    }
+
+    move(BOARDY + i * 2 - 1, BOARDX);
+    waddch(boardwin, ACS_VLINE);
+    for (j = 0; j < BWIDTH; j++) {
+       waddch(boardwin, ' ');
+       waddch(boardwin, ' ');
+       waddch(boardwin, ' ');
+       waddch(boardwin, ACS_VLINE);
+    }
+
+    move(BOARDY + i * 2, BOARDX);
+    waddch(boardwin, ACS_LLCORNER);
+    for (j = 0; j < BWIDTH - 1; j++) {
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_HLINE);
+       waddch(boardwin, ACS_BTEE);
+    }
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_HLINE);
+    waddch(boardwin, ACS_LRCORNER);
+}
+
+static void
+mark_possibles(int prow, int pcol, chtype mark)
+{
+    unsigned n;
+
+    for (n = 0; n < SIZEOF(offsets); n++) {
+       if (chksqr(prow + offsets[n].y, pcol + offsets[n].x)) {
+           cellmove(prow + offsets[n].y, pcol + offsets[n].x);
+           waddch(boardwin, mark);
+       }
+    }
+}
+
+static void
+find_next_move(int *y, int *x)
+{
+    unsigned j, k;
+    int found = -1;
+    int first = -1;
+    int next = 0;
+    int oldy, oldx;
+    int newy, newx;
+
+    if (movecount > 1) {
+       oldy = history[movecount - 1].y;
+       oldx = history[movecount - 1].x;
+       for (j = 0; j < SIZEOF(offsets) * 2; j++) {
+           k = j % SIZEOF(offsets);
+           newy = oldy + offsets[k].y;
+           newx = oldx + offsets[k].x;
+           if (chksqr(newy, newx)) {
+               if (first < 0)
+                   first = k;
+               if (newy == *y
+                   && newx == *x) {
+                   found = k;
+               } else if (found >= 0) {
+                   next = k;
+                   break;
+               }
+           }
+       }
+       if (found < 0)
+           next = first;
+       if (next >= 0) {
+           *y = oldy + offsets[next].y;
+           *x = oldx + offsets[next].x;
+       }
+    } else {
+       beep();
+    }
+}
+
+static void
+unmarkcell(int row, int column)
+{
+    cellmove(row, column);
+    waddch(boardwin, '\b');
+    waddch(boardwin, ' ');
+    waddch(boardwin, minus);
+    waddch(boardwin, ' ');
+}
+
+static void
+markcell(chtype tchar, int row, int column)
+{
+    cellmove(row, column);
+    waddch(boardwin, '\b');
+    waddch(boardwin, tchar);
+    waddch(boardwin, tchar);
+    waddch(boardwin, tchar);
+}
+
+static void
+drawmove(chtype tchar, int oldy, int oldx, int row, int column)
+/* place the stars, update board & currents */
+{
+    if (movecount <= 1) {
+       int i, j;
+
+       for (i = 0; i < BDEPTH; i++) {
+           for (j = 0; j < BWIDTH; j++) {
+               if (movecount == 0) {
+                   unmarkcell(i, j);
+               } else {
+                   cellmove(i, j);
+                   if (winch(boardwin) == minus)
+                       waddch(boardwin, movecount ? ' ' : minus);
+               }
+           }
+       }
+    } else {
+       markcell(tchar, oldy, oldx);
+       mark_possibles(oldy, oldx, ' ');
+    }
+
+    if (row != -1 && column != -1) {
+       markcell(trail, row, column);
+       mark_possibles(row, column, minus);
+       board[row][column] = TRUE;
+    }
+
+    wprintw(msgwin, "\nMove %d", movecount);
+    if (trialcount != movecount)
+       wprintw(msgwin, " (%d tries)", trialcount);
+    wclrtoeol(msgwin);
+}
+
+static int
+iabs(int num)
+{
+    if (num < 0)
+       return (-num);
+    else
+       return (num);
+}
+
+static bool
+evalmove(int row, int column)
+/* evaluate move */
+{
+    if (movecount == 1)
+       return (TRUE);
+    else if (board[row][column] == TRUE) {
+       waddstr(msgwin, "\nYou've already been there.");
+       return (FALSE);
+    } else {
+       int rdif = iabs(row - history[movecount - 1].y);
+       int cdif = iabs(column - history[movecount - 1].x);
+
+       if (!((rdif == 1) && (cdif == 2)) && !((rdif == 2) && (cdif == 1))) {
+           waddstr(msgwin, "\nThat's not a legal knight's move.");
+           return (FALSE);
+       }
+    }
+
+    return (TRUE);
+}
+
+static int
+completed(void)
+{
+    int i, j, count = 0;
+
+    for (i = 0; i < BDEPTH; i++)
+       for (j = 0; j < BWIDTH; j++)
+           if (board[i][j] != 0)
+               count += 1;
+    return (count == (BWIDTH * BDEPTH) ? -1 : count);
+}
+
+static void
+no_previous_move(void)
+{
+    waddstr(msgwin, "\nNo previous move.");
+    beep();
+}
+
 static void
 play(void)
 /* play the game */
 {
     bool keyhelp;              /* TRUE if keystroke help is up */
 static void
 play(void)
 /* play the game */
 {
     bool keyhelp;              /* TRUE if keystroke help is up */
-    int c, ny = 0, nx = 0;
     int i, j, count;
     int i, j, count;
+    int lastcol = 0;           /* last location visited */
+    int lastrow = 0;
+    int ny = 0, nx = 0;
+    int review = 0;            /* review history */
+    int rw = 0, col = 0;       /* current row and column */
 
     do {
        /* clear screen and draw board */
 
     do {
        /* clear screen and draw board */
@@ -187,17 +445,21 @@ play(void)
        wnoutrefresh(boardwin);
        doupdate();
 
        wnoutrefresh(boardwin);
        doupdate();
 
-       for (i = 0; i < BDEPTH; i++)
+       movecount = 0;
+       for (i = 0; i < BDEPTH; i++) {
            for (j = 0; j < BWIDTH; j++) {
                board[i][j] = FALSE;
            for (j = 0; j < BWIDTH; j++) {
                board[i][j] = FALSE;
-               cellmove(i, j);
-               waddch(boardwin, minus);
+               unmarkcell(i, j);
            }
            }
-       memset(history, '\0', sizeof(history));
+       }
+       memset(history, 0, sizeof(history));
        history[0].y = history[0].x = -1;
        history[0].y = history[0].x = -1;
+       history[1].y = history[1].x = -1;
        lastrow = lastcol = -2;
        movecount = 1;
        lastrow = lastcol = -2;
        movecount = 1;
+       trialcount = 1;
        keyhelp = FALSE;
        keyhelp = FALSE;
+       show_help(&keyhelp);
 
        for (;;) {
            if (rw != lastrow || col != lastcol) {
 
        for (;;) {
            if (rw != lastrow || col != lastcol) {
@@ -221,11 +483,7 @@ play(void)
 
            wrefresh(msgwin);
 
 
            wrefresh(msgwin);
 
-           c = wgetch(boardwin);
-
-           werase(msgwin);
-
-           switch (c) {
+           switch (wgetch(boardwin)) {
            case 'k':
            case '8':
            case KEY_UP:
            case 'k':
            case '8':
            case KEY_UP:
@@ -297,6 +555,7 @@ play(void)
            case KEY_B2:
            case '\n':
            case ' ':
            case KEY_B2:
            case '\n':
            case ' ':
+               review = 0;
                if (evalmove(rw, col)) {
                    drawmove(trail,
                             history[movecount - 1].y,
                if (evalmove(rw, col)) {
                    drawmove(trail,
                             history[movecount - 1].y,
@@ -305,40 +564,58 @@ play(void)
                    history[movecount].y = rw;
                    history[movecount].x = col;
                    movecount++;
                    history[movecount].y = rw;
                    history[movecount].x = col;
                    movecount++;
-
-                   if (!chkmoves())
-                       goto dropout;
-               } else
+                   trialcount++;
+
+                   if (!chkmoves(rw, col)) {
+                       if (completed() < 0) {
+                           waddstr(msgwin, "\nYou won.");
+                       } else {
+                           waddstr(msgwin,
+                                   "\nNo further moves are possible.");
+                       }
+                   }
+               } else {
                    beep();
                    beep();
-               break;
-
-           case KEY_REDO:
-           case '\f':
-           case 'r':
-               clearok(curscr, TRUE);
-               wnoutrefresh(stdscr);
-               wnoutrefresh(boardwin);
-               wnoutrefresh(msgwin);
-               wnoutrefresh(helpwin);
-               doupdate();
+               }
                break;
 
            case KEY_UNDO:
            case KEY_BACKSPACE:
            case '\b':
                break;
 
            case KEY_UNDO:
            case KEY_BACKSPACE:
            case '\b':
-               if (movecount == 1) {
-                   ny = lastrow;
-                   nx = lastcol;
-                   waddstr(msgwin, "\nNo previous move.");
-                   beep();
+               review = 0;
+               if (movecount <= 0) {
+                   no_previous_move();
+               } else if (movecount <= 1) {
+                   ny = history[movecount].y;
+                   nx = history[movecount].x;
+                   if (nx < 0 || ny < 0) {
+                       ny = lastrow;
+                       nx = lastcol;
+                   }
+                   movecount = 0;
+                   board[ny][nx] = FALSE;
+                   oldch = minus;
+                   drawmove(' ', ny, nx, -1, -1);
+                   movecount = 1;
+                   trialcount = 1;
+                   no_previous_move();
                } else {
                    int oldy = history[movecount - 1].y;
                    int oldx = history[movecount - 1].x;
 
                } else {
                    int oldy = history[movecount - 1].y;
                    int oldx = history[movecount - 1].x;
 
+                   if (!board[rw][col]) {
+                       cellmove(rw, col);
+                       waddch(boardwin, ' ');
+                   }
+
                    board[oldy][oldx] = FALSE;
                    --movecount;
                    ny = history[movecount - 1].y;
                    nx = history[movecount - 1].x;
                    board[oldy][oldx] = FALSE;
                    --movecount;
                    ny = history[movecount - 1].y;
                    nx = history[movecount - 1].x;
+                   if (nx < 0 || ny < 0) {
+                       ny = oldy;
+                       nx = oldx;
+                   }
                    drawmove(' ', oldy, oldx, ny, nx);
 
                    /* avoid problems if we just changed the current cell */
                    drawmove(' ', oldy, oldx, ny, nx);
 
                    /* avoid problems if we just changed the current cell */
@@ -347,20 +624,49 @@ play(void)
                }
                break;
 
                }
                break;
 
+           case 'a':
+               nx = col;
+               ny = rw;
+               find_next_move(&ny, &nx);
+               break;
+
+           case 'F':
+               if (review > 0) {
+                   review--;
+                   ny = history[movecount - review - 1].y;
+                   nx = history[movecount - review - 1].x;
+               } else {
+                   beep();
+               }
+               break;
+
+           case 'B':
+               if (review < movecount - 2) {
+                   review++;
+                   ny = history[movecount - review - 1].y;
+                   nx = history[movecount - review - 1].x;
+               } else {
+                   beep();
+               }
+               break;
+
+           case KEY_REDO:
+           case '\f':
+           case 'r':
+               clearok(curscr, TRUE);
+               wnoutrefresh(stdscr);
+               wnoutrefresh(boardwin);
+               wnoutrefresh(msgwin);
+               wnoutrefresh(helpwin);
+               doupdate();
+               break;
+
            case 'q':
            case 'x':
                goto dropout;
 
            case '?':
            case 'q':
            case 'x':
                goto dropout;
 
            case '?':
-               werase(helpwin);
-               if (keyhelp) {
-                   help1();
-                   keyhelp = FALSE;
-               } else {
-                   help2();
-                   keyhelp = TRUE;
-               }
-               wrefresh(helpwin);
+               show_help(&keyhelp);
                break;
 
            default:
                break;
 
            default:
@@ -373,219 +679,24 @@ play(void)
        }
 
       dropout:
        }
 
       dropout:
-       count = 0;
-       for (i = 0; i < BDEPTH; i++)
-           for (j = 0; j < BWIDTH; j++)
-               if (board[i][j] != 0)
-                   count += 1;
-       if (count == (BWIDTH * BDEPTH))
+       if ((count = completed()) < 0)
            wprintw(msgwin, "\nYou won.  Care to try again? ");
        else
            wprintw(msgwin, "\n%d squares filled.  Try again? ", count);
            wprintw(msgwin, "\nYou won.  Care to try again? ");
        else
            wprintw(msgwin, "\n%d squares filled.  Try again? ", count);
+       wclrtoeol(msgwin);
     } while
        (tolower(wgetch(msgwin)) == 'y');
 }
 
     } while
        (tolower(wgetch(msgwin)) == 'y');
 }
 
-static void
-dosquares(void)
-{
-    int i, j;
-
-    mvaddstr(0, 20, "KNIGHT'S MOVE -- a logical solitaire");
-
-    move(BOARDY, BOARDX);
-    waddch(boardwin, ACS_ULCORNER);
-    for (j = 0; j < 7; j++) {
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_TTEE);
-    }
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_URCORNER);
-
-    for (i = 1; i < BDEPTH; i++) {
-       move(BOARDY + i * 2 - 1, BOARDX);
-       waddch(boardwin, ACS_VLINE);
-       for (j = 0; j < BWIDTH; j++) {
-           waddch(boardwin, ' ');
-           waddch(boardwin, ' ');
-           waddch(boardwin, ' ');
-           waddch(boardwin, ACS_VLINE);
-       }
-       move(BOARDY + i * 2, BOARDX);
-       waddch(boardwin, ACS_LTEE);
-       for (j = 0; j < BWIDTH - 1; j++) {
-           waddch(boardwin, ACS_HLINE);
-           waddch(boardwin, ACS_HLINE);
-           waddch(boardwin, ACS_HLINE);
-           waddch(boardwin, ACS_PLUS);
-       }
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_RTEE);
-    }
-
-    move(BOARDY + i * 2 - 1, BOARDX);
-    waddch(boardwin, ACS_VLINE);
-    for (j = 0; j < BWIDTH; j++) {
-       waddch(boardwin, ' ');
-       waddch(boardwin, ' ');
-       waddch(boardwin, ' ');
-       waddch(boardwin, ACS_VLINE);
-    }
-
-    move(BOARDY + i * 2, BOARDX);
-    waddch(boardwin, ACS_LLCORNER);
-    for (j = 0; j < BWIDTH - 1; j++) {
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_HLINE);
-       waddch(boardwin, ACS_BTEE);
-    }
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_HLINE);
-    waddch(boardwin, ACS_LRCORNER);
-}
-
-static void
-mark_possibles(int prow, int pcol, chtype mark)
-{
-    if (chksqr(prow + 2, pcol + 1)) {
-       cellmove(prow + 2, pcol + 1);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow + 2, pcol - 1)) {
-       cellmove(prow + 2, pcol - 1);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow - 2, pcol + 1)) {
-       cellmove(prow - 2, pcol + 1);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow - 2, pcol - 1)) {
-       cellmove(prow - 2, pcol - 1);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow + 1, pcol + 2)) {
-       cellmove(prow + 1, pcol + 2);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow + 1, pcol - 2)) {
-       cellmove(prow + 1, pcol - 2);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow - 1, pcol + 2)) {
-       cellmove(prow - 1, pcol + 2);
-       waddch(boardwin, mark);
-    };
-    if (chksqr(prow - 1, pcol - 2)) {
-       cellmove(prow - 1, pcol - 2);
-       waddch(boardwin, mark);
-    };
-}
-
-static void
-drawmove(char tchar, int oldy, int oldx, int row, int column)
-/* place the stars, update board & currents */
-{
-    if (movecount <= 1) {
-       int i, j;
-
-       for (i = 0; i < BDEPTH; i++)
-           for (j = 0; j < BWIDTH; j++) {
-               cellmove(i, j);
-               if (winch(boardwin) == minus)
-                   waddch(boardwin, movecount ? ' ' : minus);
-           }
-    } else {
-       cellmove(oldy, oldx);
-       waddch(boardwin, '\b');
-       waddch(boardwin, tchar);
-       waddch(boardwin, tchar);
-       waddch(boardwin, tchar);
-       mark_possibles(oldy, oldx, ' ');
-    }
-
-    if (row != -1 && column != -1) {
-       cellmove(row, column);
-       waddch(boardwin, '\b');
-       waddch(boardwin, trail);
-       waddch(boardwin, trail);
-       waddch(boardwin, trail);
-       mark_possibles(row, column, minus);
-       board[row][column] = TRUE;
-    }
-
-    wprintw(msgwin, "\nMove %d", movecount);
-}
-
-static bool
-evalmove(int row, int column)
-/* evaluate move */
-{
-    if (movecount == 1)
-       return (TRUE);
-    else if (board[row][column] == TRUE) {
-       waddstr(msgwin, "\nYou've already been there.");
-       return (FALSE);
-    } else {
-       int rdif = iabs(row - history[movecount - 1].y);
-       int cdif = iabs(column - history[movecount - 1].x);
-
-       if (!((rdif == 1) && (cdif == 2)) && !((rdif == 2) && (cdif == 1))) {
-           waddstr(msgwin, "\nThat's not a legal knight's move.");
-           return (FALSE);
-       }
-    }
-
-    return (TRUE);
-}
-
-static bool
-chkmoves(void)
-/* check to see if valid moves are available */
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 {
-    if (chksqr(rw + 2, col + 1))
-       return (TRUE);
-    if (chksqr(rw + 2, col - 1))
-       return (TRUE);
-    if (chksqr(rw - 2, col + 1))
-       return (TRUE);
-    if (chksqr(rw - 2, col - 1))
-       return (TRUE);
-    if (chksqr(rw + 1, col + 2))
-       return (TRUE);
-    if (chksqr(rw + 1, col - 2))
-       return (TRUE);
-    if (chksqr(rw - 1, col + 2))
-       return (TRUE);
-    if (chksqr(rw - 1, col - 2))
-       return (TRUE);
-    return (FALSE);
-}
+    init_program();
 
 
-static int
-iabs(int num)
-{
-    if (num < 0)
-       return (-num);
-    else
-       return (num);
-}
+    play();
 
 
-static bool
-chksqr(int r1, int c1)
-{
-    if ((r1 < 0) || (r1 > BDEPTH - 1))
-       return (FALSE);
-    if ((c1 < 0) || (c1 > BWIDTH - 1))
-       return (FALSE);
-    return ((!board[r1][c1]) ? TRUE : FALSE);
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
 }
 
 /* knight.c ends here */
 }
 
 /* knight.c ends here */
index fb99641117ce5f47e3753cefffcc202fb2e65b84..78dcaad2dca82bc0f19a012ecb4be981c2a3c430 100644 (file)
@@ -1,16 +1,16 @@
 /*
  * Test lower-right-hand corner access
  *
 /*
  * Test lower-right-hand corner access
  *
- * by Eric S. Raymond <esr@thyrsus.com>
+ * originally by Eric S. Raymond <esr@thyrsus.com>, written for animation
+ * and resizing -TD
  *
  * This can't be part of the ncurses test-program, because ncurses rips off the
  * bottom line to do labels.
  *
  *
  * This can't be part of the ncurses test-program, because ncurses rips off the
  * bottom line to do labels.
  *
- * $Id: lrtest.c,v 0.14 1999/10/23 19:44:35 tom Exp $
+ * $Id: lrtest.c,v 1.19 2002/07/13 16:55:50 tom Exp $
  */
 
 #include <test.priv.h>
  */
 
 #include <test.priv.h>
-#include <term.h>
 
 typedef struct {
     int y, x, mode, dir, inc;
 
 typedef struct {
     int y, x, mode, dir, inc;
@@ -56,8 +56,8 @@ show(MARK * m)
 
 int
 main(
 
 int
 main(
-    int argc GCC_UNUSED,
-    char *argv[]GCC_UNUSED)
+       int argc GCC_UNUSED,
+       char *argv[]GCC_UNUSED)
 {
     static MARK marks[] =
     {
 {
     static MARK marks[] =
     {
@@ -70,6 +70,8 @@ main(
        {2, 0, 1, 1, 1, '*' | A_REVERSE}
     };
 
        {2, 0, 1, 1, 1, '*' | A_REVERSE}
     };
 
+    setlocale(LC_ALL, "");
+
     initscr();
     noecho();
     cbreak();
     initscr();
     noecho();
     cbreak();
@@ -83,8 +85,8 @@ main(
     move(LINES / 2 - 1, 4);
     if (!(has_ic()
     /* see PutCharLR() */
     move(LINES / 2 - 1, 4);
     if (!(has_ic()
     /* see PutCharLR() */
-           || auto_right_margin
-           || (enter_am_mode && exit_am_mode))) {
+         || auto_right_margin
+         || (enter_am_mode && exit_am_mode))) {
        addstr("Your terminal lacks the capabilities needed to address the\n");
        move(LINES / 2, 4);
        addstr("lower-right-hand corner of the screen.\n");
        addstr("Your terminal lacks the capabilities needed to address the\n");
        move(LINES / 2, 4);
        addstr("lower-right-hand corner of the screen.\n");
@@ -103,7 +105,7 @@ main(
        unsigned n;
 
        box(stdscr, 0, 0);
        unsigned n;
 
        box(stdscr, 0, 0);
-       for (n = 0; n < sizeof(marks) / sizeof(marks[0]); n++) {
+       for (n = 0; n < SIZEOF(marks); n++) {
            show(&marks[n]);
        }
 
            show(&marks[n]);
        }
 
@@ -114,19 +116,37 @@ main(
                nodelay(stdscr, FALSE);
            else if (ch == ' ')
                nodelay(stdscr, TRUE);
                nodelay(stdscr, FALSE);
            else if (ch == ' ')
                nodelay(stdscr, TRUE);
+#ifdef TRACE
+           else if (ch == 'T')
+               trace(0);
+           else if (ch == 't')
+               trace(TRACE_CALLS|TRACE_ICALLS|TRACE_UPDATE);
+#endif
 #ifdef KEY_RESIZE
            else if (ch == KEY_RESIZE) {
 #ifdef KEY_RESIZE
            else if (ch == KEY_RESIZE) {
+               for (n = 0; n < SIZEOF(marks); n++) {
+                   if (marks[n].mode == 0) {   /* moving along x-direction */
+                       if (marks[n].y)
+                           marks[n].y = LINES - 1;
+                   } else {
+                       if (marks[n].x)
+                           marks[n].x = COLS - 1;
+                   }
+               }
+               flash();
                erase();
                erase();
+               wrefresh(curscr);
                goto restart;
            }
 #endif
        }
        napms(50);
                goto restart;
            }
 #endif
        }
        napms(50);
+       refresh();
     }
 
     curs_set(1);
     endwin();
     }
 
     curs_set(1);
     endwin();
-    return 0;
+    ExitProgram(EXIT_SUCCESS);
 }
 
 /* lrtest.c ends here */
 }
 
 /* lrtest.c ends here */
index ad1aa01c5cef55c289bf697f2952c350af59c636..b4bac67fdaad2fadd9bab4fb40725681eb1b5e05 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,22 +38,17 @@ DESCRIPTION
 
 AUTHOR
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
 
 AUTHOR
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
+           Thomas E. Dickey (beginning revision 1.27 in 1996).
 
 
-$Id: ncurses.c,v 1.138 2000/09/17 01:24:00 tom Exp $
+$Id: ncurses.c,v 1.180 2002/09/15 00:39:33 tom Exp $
 
 ***************************************************************************/
 
 
 ***************************************************************************/
 
-#include <test.priv.h>
-
 #include <stdio.h>
 #include <ctype.h>
 #include <stdio.h>
 #include <ctype.h>
-#include <string.h>
 #include <assert.h>
 #include <assert.h>
-#include <signal.h>
 
 
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
+#include <test.priv.h>
 
 #if HAVE_GETTIMEOFDAY
 #if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
 
 #if HAVE_GETTIMEOFDAY
 #if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
@@ -64,7 +59,7 @@ $Id: ncurses.c,v 1.138 2000/09/17 01:24:00 tom Exp $
 #endif
 #endif
 
 #endif
 #endif
 
-#if HAVE_PANEL_H
+#if HAVE_PANEL_H && HAVE_LIBPANEL
 #define USE_LIBPANEL 1
 #include <panel.h>
 #else
 #define USE_LIBPANEL 1
 #include <panel.h>
 #else
@@ -92,33 +87,56 @@ static int save_trace = TRACE_ORDINARY | TRACE_CALLS;
 extern int _nc_tracing;
 #endif
 
 extern int _nc_tracing;
 #endif
 
-#if !defined(HAVE_NAPMS)
-#define HAVE_NAPMS 1
-#endif
-
 #else
 
 #define mmask_t chtype         /* not specified in XSI */
 #else
 
 #define mmask_t chtype         /* not specified in XSI */
-#define attr_t chtype          /* not specified in XSI */
-#define ACS_S3          (acs_map['p']) /* scan line 3 */
-#define ACS_S7          (acs_map['r']) /* scan line 7 */
-#define ACS_LEQUAL      (acs_map['y']) /* less/equal */
-#define ACS_GEQUAL      (acs_map['z']) /* greater/equal */
-#define ACS_PI          (acs_map['{']) /* Pi */
-#define ACS_NEQUAL      (acs_map['|']) /* not equal */
-#define ACS_STERLING    (acs_map['}']) /* UK pound sign */
+
+#ifdef CURSES_ACS_ARRAY
+#define ACS_S3          (CURSES_ACS_ARRAY['p'])                /* scan line 3 */
+#define ACS_S7          (CURSES_ACS_ARRAY['r'])                /* scan line 7 */
+#define ACS_LEQUAL      (CURSES_ACS_ARRAY['y'])                /* less/equal */
+#define ACS_GEQUAL      (CURSES_ACS_ARRAY['z'])                /* greater/equal */
+#define ACS_PI          (CURSES_ACS_ARRAY['{'])                /* Pi */
+#define ACS_NEQUAL      (CURSES_ACS_ARRAY['|'])                /* not equal */
+#define ACS_STERLING    (CURSES_ACS_ARRAY['}'])                /* UK pound sign */
+#else
+#define ACS_S3          (A_ALTCHARSET + 'p')   /* scan line 3 */
+#define ACS_S7          (A_ALTCHARSET + 'r')   /* scan line 7 */
+#define ACS_LEQUAL      (A_ALTCHARSET + 'y')   /* less/equal */
+#define ACS_GEQUAL      (A_ALTCHARSET + 'z')   /* greater/equal */
+#define ACS_PI          (A_ALTCHARSET + '{')   /* Pi */
+#define ACS_NEQUAL      (A_ALTCHARSET + '|')   /* not equal */
+#define ACS_STERLING    (A_ALTCHARSET + '}')   /* UK pound sign */
+#endif
+
+#ifdef CURSES_WACS_ARRAY
+#define WACS_S3         (&(CURSES_WACS_ARRAY['p']))    /* scan line 3 */
+#define WACS_S7         (&(CURSES_WACS_ARRAY['r']))    /* scan line 7 */
+#define WACS_LEQUAL     (&(CURSES_WACS_ARRAY['y']))    /* less/equal */
+#define WACS_GEQUAL     (&(CURSES_WACS_ARRAY['z']))    /* greater/equal */
+#define WACS_PI         (&(CURSES_WACS_ARRAY['{']))    /* Pi */
+#define WACS_NEQUAL     (&(CURSES_WACS_ARRAY['|']))    /* not equal */
+#define WACS_STERLING   (&(CURSES_WACS_ARRAY['}']))    /* UK pound sign */
+#endif
 
 #endif
 
 #define P(string)      printw("%s\n", string)
 
 #endif
 
 #define P(string)      printw("%s\n", string)
-#ifndef CTRL
-#define CTRL(x)                ((x) & 0x1f)
+#ifdef CTRL
+#undef CTRL
 #endif
 #endif
+#define CTRL(x)                ((x) & 0x1f)
 
 #define QUIT           CTRL('Q')
 #define ESCAPE         CTRL('[')
 #define BLANK          ' '     /* this is the background character */
 
 
 #define QUIT           CTRL('Q')
 #define ESCAPE         CTRL('[')
 #define BLANK          ' '     /* this is the background character */
 
+#undef max_colors
+static int max_colors;         /* the actual number of colors we'll use */
+
+#undef max_pairs
+static int max_pairs;          /* ...and the number of color pairs */
+
 /* The behavior of mvhline, mvvline for negative/zero length is unspecified,
  * though we can rely on negative x/y values to stop the macro.
  */
 /* The behavior of mvhline, mvvline for negative/zero length is unspecified,
  * though we can rely on negative x/y values to stop the macro.
  */
@@ -163,6 +181,33 @@ wGetchar(WINDOW *win)
 }
 #define Getchar() wGetchar(stdscr)
 
 }
 #define Getchar() wGetchar(stdscr)
 
+#if USE_WIDEC_SUPPORT
+static int
+wGet_wchar(WINDOW *win, wint_t * result)
+{
+    int c;
+#ifdef TRACE
+    while ((c = wget_wch(win, result)) == 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 = wget_wch(win, result);
+#endif
+    return c;
+}
+#define Get_wchar(result) wGet_wchar(stdscr, result)
+
+#endif
+
 static void
 Pause(void)
 {
 static void
 Pause(void)
 {
@@ -246,106 +291,497 @@ mouse_decode(MEVENT const *ep)
  ****************************************************************************/
 
 static void
  ****************************************************************************/
 
 static void
-getch_test(void)
-/* test the keypad feature */
+setup_getch(WINDOW *win, bool flags[])
 {
 {
-    char buf[BUFSIZ];
-    int c;
-    int incount = 0, firsttime = 0;
-    bool blocking = TRUE;
+    keypad(win, flags['k']);   /* should be redundant, but for testing */
+    meta(win, flags['m']);     /* force this to a known state */
+    if (flags['e'])
+       echo();
+    else
+       noecho();
+}
+
+static void
+wgetch_help(WINDOW *win, bool flags[])
+{
+    static const char *help[] =
+    {
+       "e -- toggle echo mode"
+       ,"g -- triggers a getstr test"
+       ,"k -- toggle keypad/literal mode"
+       ,"m -- toggle meta (7-bit/8-bit) mode"
+       ,"q -- quit (x also exits)"
+       ,"s -- shell out\n"
+       ,"w -- create a new window"
+#ifdef SIGTSTP
+       ,"z -- suspend this process"
+#endif
+    };
     int y, x;
     int y, x;
+    unsigned chk = ((SIZEOF(help) + 1) / 2);
+    unsigned n;
 
 
-    refresh();
+    getyx(win, y, x);
+    move(0, 0);
+    printw("Type any key to see its %s value.  Also:\n",
+          flags['k'] ? "keypad" : "literal");
+    for (n = 0; n < SIZEOF(help); ++n) {
+       int row = 1 + (n % chk);
+       int col = (n >= chk) ? COLS / 2 : 0;
+       int flg = ((strstr(help[n], "toggle") != 0)
+                  && (flags[UChar(*help[n])] != FALSE));
+       if (flg)
+           standout();
+       mvprintw(row, col, "%s", help[n]);
+       if (col == 0)
+           clrtoeol();
+       if (flg)
+           standend();
+    }
+    wrefresh(stdscr);
+    wmove(win, y, x);
+}
 
 
-#ifdef NCURSES_MOUSE_VERSION
-    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
+static void
+wgetch_wrap(WINDOW *win, int first_y)
+{
+    int last_y = getmaxy(win) - 1;
+    int y = getcury(win) + 1;
 
 
-    (void) printw("Delay in 10ths of a second (<CR> for blocking input)? ");
-    echo();
-    getstr(buf);
-    noecho();
-    nonl();
+    if (y >= last_y)
+       y = first_y;
+    wmove(win, y, 0);
+    wclrtoeol(win);
+}
+
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+typedef struct {
+    WINDOW *text;
+    WINDOW *frame;
+} WINSTACK;
 
 
-    if (isdigit(buf[0])) {
-       timeout(atoi(buf) * 100);
-       blocking = FALSE;
+static WINSTACK *winstack = 0;
+static unsigned len_winstack = 0;
+
+static void
+remember_boxes(unsigned level, WINDOW *txt_win, WINDOW *box_win)
+{
+    unsigned need = (level + 1) * 2;
+
+    if (winstack == 0) {
+       len_winstack = 20;
+       winstack = malloc(len_winstack * sizeof(WINSTACK));
+    } else if (need >= len_winstack) {
+       len_winstack = need;
+       winstack = realloc(winstack, len_winstack * sizeof(WINSTACK));
     }
     }
+    winstack[level].text = txt_win;
+    winstack[level].frame = box_win;
+}
+
+/*
+ * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * Resize both and paint the box in the parent.
+ */
+static void
+resize_boxes(int level, WINDOW *win)
+{
+    unsigned n;
+    int base = 5;
+    int high = LINES - base;
+    int wide = COLS;
+
+    touchwin(stdscr);
+    wnoutrefresh(stdscr);
+
+    /* FIXME: this chunk should be done in resizeterm() */
+    slk_touch();
+    slk_clear();
+    slk_noutrefresh();
+
+    for (n = 0; (int) n < level; ++n) {
+       wresize(winstack[n].frame, high, wide);
+       wresize(winstack[n].text, high - 2, wide - 2);
+       high -= 2;
+       wide -= 2;
+       werase(winstack[n].text);
+       box(winstack[n].frame, 0, 0);
+       wnoutrefresh(winstack[n].frame);
+       wprintw(winstack[n].text,
+               "size %dx%d\n",
+               getmaxy(winstack[n].text),
+               getmaxx(winstack[n].text));
+       wnoutrefresh(winstack[n].text);
+       if (winstack[n].text == win)
+           break;
+    }
+    doupdate();
+}
+#else
+#define remember_boxes(level,text,frame)       /* nothing */
+#endif
+
+static void
+wgetch_test(int level, WINDOW *win, int delay)
+{
+    char buf[BUFSIZ];
+    int first_y, first_x;
+    int c;
+    int incount = 0;
+    bool flags[256];
+    bool blocking = (delay < 0);
+    int y, x;
+
+    memset(flags, FALSE, sizeof(flags));
+    flags['k'] = (win == stdscr);
+
+    setup_getch(win, flags);
+    wtimeout(win, delay);
+    getyx(win, first_y, first_x);
+
+    wgetch_help(win, flags);
+    wsetscrreg(win, first_y, getmaxy(win) - 1);
+    scrollok(win, TRUE);
 
 
-    c = '?';
-    raw();
     for (;;) {
     for (;;) {
-       if (firsttime++) {
-           printw("Key pressed: %04o ", c);
+       while ((c = wGetchar(win)) == ERR) {
+           incount++;
+           if (blocking) {
+               (void) wprintw(win, "%05d: input error", incount);
+               break;
+           } else {
+               (void) wprintw(win, "%05d: input timed out", incount);
+           }
+           wgetch_wrap(win, first_y);
+       }
+       if (c == ERR && blocking) {
+           wprintw(win, "ERR");
+           wgetch_wrap(win, first_y);
+       } else if (c == 'x' || c == 'q') {
+           break;
+       } else if (c == 'e') {
+           flags['e'] = !flags['e'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 'g') {
+           waddstr(win, "getstr test: ");
+           echo();
+           wgetnstr(win, buf, sizeof(buf) - 1);
+           noecho();
+           wprintw(win, "I saw %d characters:\n\t`%s'.", (int) strlen(buf), buf);
+           wclrtoeol(win);
+           wgetch_wrap(win, first_y);
+       } else if (c == 'k') {
+           flags['k'] = !flags['k'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 'm') {
+           flags['m'] = !flags['m'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 's') {
+           ShellOut(TRUE);
+       } else if (c == 'w') {
+           int high = getmaxy(win) - 1 - first_y + 1;
+           int wide = getmaxx(win) - first_x;
+           int old_y, old_x;
+           int new_y = first_y + getbegy(win);
+           int new_x = first_x + getbegx(win);
+
+           getyx(win, old_y, old_x);
+           if (high > 2 && wide > 2) {
+               WINDOW *wb = newwin(high, wide, new_y, new_x);
+               WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1);
+
+               box(wb, 0, 0);
+               wrefresh(wb);
+               wmove(wi, 0, 0);
+               remember_boxes(level, wi, wb);
+               wgetch_test(level + 1, wi, delay);
+               delwin(wi);
+               delwin(wb);
+
+               wgetch_help(win, flags);
+               wmove(win, old_y, old_x);
+               touchwin(win);
+               wrefresh(win);
+               doupdate();
+           }
+#ifdef SIGTSTP
+       } else if (c == 'z') {
+           kill(getpid(), SIGTSTP);
+#endif
+       } else {
+           wprintw(win, "Key pressed: %04o ", c);
 #ifdef NCURSES_MOUSE_VERSION
            if (c == KEY_MOUSE) {
                MEVENT event;
 
                getmouse(&event);
 #ifdef NCURSES_MOUSE_VERSION
            if (c == KEY_MOUSE) {
                MEVENT event;
 
                getmouse(&event);
-               printw("KEY_MOUSE, %s\n", mouse_decode(&event));
+               wprintw(win, "KEY_MOUSE, %s", mouse_decode(&event));
+               getyx(win, y, x);
+               move(event.y, event.x);
+               addch('*');
+               wmove(win, y, x);
            } else
 #endif /* NCURSES_MOUSE_VERSION */
            if (c >= KEY_MIN) {
            } else
 #endif /* NCURSES_MOUSE_VERSION */
            if (c >= KEY_MIN) {
-               (void) addstr(keyname(c));
-               addch('\n');
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+               if (c == KEY_RESIZE) {
+                   resize_boxes(level, win);
+               }
+#endif
+               (void) waddstr(win, keyname(c));
            } else if (c > 0x80) {
                int c2 = (c & 0x7f);
                if (isprint(c2))
            } else if (c > 0x80) {
                int c2 = (c & 0x7f);
                if (isprint(c2))
-                   (void) printw("M-%c", c2);
+                   (void) wprintw(win, "M-%c", c2);
                else
                else
-                   (void) printw("M-%s", unctrl(c2));
-               addstr(" (high-half character)\n");
+                   (void) wprintw(win, "M-%s", unctrl(c2));
+               waddstr(win, " (high-half character)");
            } else {
                if (isprint(c))
            } else {
                if (isprint(c))
-                   (void) printw("%c (ASCII printable character)\n", c);
+                   (void) wprintw(win, "%c (ASCII printable character)", c);
                else
                else
-                   (void) printw("%s (ASCII control character)\n", unctrl(c));
+                   (void) wprintw(win, "%s (ASCII control character)",
+                                  unctrl(c));
            }
            }
-           getyx(stdscr, y, x);
-           if (y >= LINES - 1)
-               move(0, 0);
-           clrtoeol();
+           wgetch_wrap(win, first_y);
        }
        }
+    }
 
 
-       if (c == 'g') {
-           addstr("getstr test: ");
-           echo();
-           getstr(buf);
-           noecho();
-           printw("I saw `%s'.\n", buf);
-       }
-       if (c == 's') {
-           ShellOut(TRUE);
-       }
-       if (c == 'x' || c == 'q' || (c == ERR && blocking))
-           break;
-       if (c == '?') {
-           addstr("Type any key to see its keypad value.  Also:\n");
-           addstr("g -- triggers a getstr test\n");
-           addstr("s -- shell out\n");
-           addstr("q -- quit\n");
-           addstr("? -- repeats this help message\n");
-       }
+    wtimeout(win, -1);
+}
 
 
-       while ((c = Getchar()) == ERR)
-           if (!blocking)
-               (void) printw("%05d: input timed out\n", incount++);
-           else {
-               (void) printw("%05d: input error\n", incount++);
-               break;
-           }
+static int
+begin_getch_test(void)
+{
+    char buf[BUFSIZ];
+    int delay;
+
+    refresh();
+
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
+    (void) printw("Delay in 10ths of a second (<CR> for blocking input)? ");
+    echo();
+    getnstr(buf, sizeof(buf) - 1);
+    noecho();
+    nonl();
+
+    if (isdigit(UChar(buf[0]))) {
+       delay = atoi(buf) * 100;
+    } else {
+       delay = -1;
     }
     }
+    raw();
+    move(5, 0);
+    return delay;
+}
 
 
+static void
+finish_getch_test(void)
+{
 #ifdef NCURSES_MOUSE_VERSION
     mousemask(0, (mmask_t *) 0);
 #endif
 #ifdef NCURSES_MOUSE_VERSION
     mousemask(0, (mmask_t *) 0);
 #endif
-    timeout(-1);
     erase();
     noraw();
     nl();
     endwin();
 }
 
     erase();
     noraw();
     nl();
     endwin();
 }
 
+static void
+getch_test(void)
+{
+    int delay = begin_getch_test();
+    wgetch_test(0, stdscr, delay);
+    finish_getch_test();
+}
+
+#if USE_WIDEC_SUPPORT
+/*
+ * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * Resize both and paint the box in the parent.
+ */
+static void
+resize_wide_boxes(int level, WINDOW *win)
+{
+    unsigned n;
+    int base = 5;
+    int high = LINES - base;
+    int wide = COLS;
+
+    touchwin(stdscr);
+    wnoutrefresh(stdscr);
+
+    /* FIXME: this chunk should be done in resizeterm() */
+    slk_touch();
+    slk_clear();
+    slk_noutrefresh();
+
+    for (n = 0; (int) n < level; ++n) {
+       wresize(winstack[n].frame, high, wide);
+       wresize(winstack[n].text, high - 2, wide - 2);
+       high -= 2;
+       wide -= 2;
+       werase(winstack[n].text);
+       box_set(winstack[n].frame, 0, 0);
+       wnoutrefresh(winstack[n].frame);
+       wprintw(winstack[n].text,
+               "size %dx%d\n",
+               getmaxy(winstack[n].text),
+               getmaxx(winstack[n].text));
+       wnoutrefresh(winstack[n].text);
+       if (winstack[n].text == win)
+           break;
+    }
+    doupdate();
+}
+
+static void
+wget_wch_test(int level, WINDOW *win, int delay)
+{
+    char buf[BUFSIZ];
+    int first_y, first_x;
+    wint_t c;
+    int incount = 0;
+    bool flags[256];
+    bool blocking = (delay < 0);
+    int y, x, code;
+
+    memset(flags, FALSE, sizeof(flags));
+    flags['k'] = (win == stdscr);
+
+    setup_getch(win, flags);
+    wtimeout(win, delay);
+    getyx(win, first_y, first_x);
+
+    wgetch_help(win, flags);
+    wsetscrreg(win, first_y, getmaxy(win) - 1);
+    scrollok(win, TRUE);
+
+    for (;;) {
+       while ((code = wGet_wchar(win, &c)) == ERR) {
+           incount++;
+           if (blocking) {
+               (void) wprintw(win, "%05d: input error", incount);
+               break;
+           } else {
+               (void) wprintw(win, "%05d: input timed out", incount);
+           }
+           wgetch_wrap(win, first_y);
+       }
+       if (code == ERR && blocking) {
+           wprintw(win, "ERR");
+           wgetch_wrap(win, first_y);
+       } else if (c == 'x' || c == 'q') {
+           break;
+       } else if (c == 'e') {
+           flags['e'] = !flags['e'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 'g') {
+           waddstr(win, "getstr test: ");
+           echo();
+           wgetnstr(win, buf, sizeof(buf) - 1);
+           noecho();
+           wprintw(win, "I saw %d characters:\n\t`%s'.", strlen(buf), buf);
+           wclrtoeol(win);
+           wgetch_wrap(win, first_y);
+       } else if (c == 'k') {
+           flags['k'] = !flags['k'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 'm') {
+           flags['m'] = !flags['m'];
+           setup_getch(win, flags);
+           wgetch_help(win, flags);
+       } else if (c == 's') {
+           ShellOut(TRUE);
+       } else if (c == 'w') {
+           int high = getmaxy(win) - 1 - first_y + 1;
+           int wide = getmaxx(win) - first_x;
+           int old_y, old_x;
+           int new_y = first_y + getbegy(win);
+           int new_x = first_x + getbegx(win);
+
+           getyx(win, old_y, old_x);
+           if (high > 2 && wide > 2) {
+               WINDOW *wb = newwin(high, wide, new_y, new_x);
+               WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1);
+
+               box_set(wb, 0, 0);
+               wrefresh(wb);
+               wmove(wi, 0, 0);
+               remember_boxes(level, wi, wb);
+               wget_wch_test(level + 1, wi, delay);
+               delwin(wi);
+               delwin(wb);
+
+               wgetch_help(win, flags);
+               wmove(win, old_y, old_x);
+               touchwin(win);
+               wrefresh(win);
+           }
+#ifdef SIGTSTP
+       } else if (c == 'z') {
+           kill(getpid(), SIGTSTP);
+#endif
+       } else {
+           wprintw(win, "Key pressed: %04o ", c);
+#ifdef NCURSES_MOUSE_VERSION
+           if (c == KEY_MOUSE) {
+               MEVENT event;
+
+               getmouse(&event);
+               wprintw(win, "KEY_MOUSE, %s", mouse_decode(&event));
+               getyx(win, y, x);
+               move(event.y, event.x);
+               addch('*');
+               wmove(win, y, x);
+           } else
+#endif /* NCURSES_MOUSE_VERSION */
+           if (code == KEY_CODE_YES) {
+#ifdef KEY_RESIZE
+               if (c == KEY_RESIZE) {
+                   resize_wide_boxes(level, win);
+               }
+#endif
+               (void) waddstr(win, key_name(c));
+           } else {
+               if (c < 256 && iscntrl(c)) {
+                   (void) wprintw(win, "%s (control character)", unctrl(c));
+               } else {
+                   wchar_t c2 = c;
+                   waddnwstr(win, &c2, 1);
+                   (void) wprintw(win, " = %#x (printable character)", c);
+               }
+           }
+           wgetch_wrap(win, first_y);
+       }
+    }
+
+    wtimeout(win, -1);
+}
+
+static void
+get_wch_test(void)
+{
+    int delay = begin_getch_test();
+    wget_wch_test(0, stdscr, delay);
+    finish_getch_test();
+}
+#endif
+
+/****************************************************************************
+ *
+ * Character attributes test
+ *
+ ****************************************************************************/
+
 static int
 show_attr(int row, int skip, chtype attr, const char *name)
 {
 static int
 show_attr(int row, int skip, chtype attr, const char *name)
 {
@@ -376,8 +812,10 @@ show_attr(int row, int skip, chtype attr, const char *name)
        const char *s = string;
        while (*s) {
            int ch = *s++;
        const char *s = string;
        while (*s) {
            int ch = *s++;
-           if ((ch = acs_map[ch]) == 0)
+#ifdef CURSES_ACS_ARRAY
+           if ((ch = CURSES_ACS_ARRAY[ch]) == 0)
                ch = ' ';
                ch = ' ';
+#endif
            addch(ch);
        }
     } else {
            addch(ch);
        }
     } else {
@@ -391,7 +829,7 @@ show_attr(int row, int skip, chtype attr, const char *name)
        if (!(termattrs() & attr)) {
            printw(" (N/A)");
        } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
        if (!(termattrs() & attr)) {
            printw(" (N/A)");
        } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
-           static const attr_t table[] =
+           static const chtype table[] =
            {
                A_STANDOUT,
                A_UNDERLINE,
            {
                A_STANDOUT,
                A_UNDERLINE,
@@ -405,7 +843,7 @@ show_attr(int row, int skip, chtype attr, const char *name)
            };
            unsigned n;
            bool found = FALSE;
            };
            unsigned n;
            bool found = FALSE;
-           for (n = 0; n < sizeof(table) / sizeof(table[0]); n++) {
+           for (n = 0; n < SIZEOF(table); n++) {
                if ((table[n] & attr) != 0
                    && ((1 << n) & ncv) != 0) {
                    found = TRUE;
                if ((table[n] & attr) != 0
                    && ((1 << n) & ncv) != 0) {
                    found = TRUE;
@@ -426,11 +864,9 @@ attr_getc(int *skip, int *fg, int *bg, int *ac)
 
     if (isdigit(ch)) {
        *skip = (ch - '0');
 
     if (isdigit(ch)) {
        *skip = (ch - '0');
-       return TRUE;
     } else if (ch == CTRL('L')) {
        touchwin(stdscr);
        touchwin(curscr);
     } else if (ch == CTRL('L')) {
        touchwin(stdscr);
        touchwin(curscr);
-       return TRUE;
     } else if (has_colors()) {
        switch (ch) {
        case 'a':
     } else if (has_colors()) {
        switch (ch) {
        case 'a':
@@ -454,15 +890,14 @@ attr_getc(int *skip, int *fg, int *bg, int *ac)
        default:
            return FALSE;
        }
        default:
            return FALSE;
        }
-       if (*fg >= COLORS)
+       if (*fg >= max_colors)
            *fg = 0;
        if (*fg < 0)
            *fg = 0;
        if (*fg < 0)
-           *fg = COLORS - 1;
-       if (*bg >= COLORS)
+           *fg = max_colors - 1;
+       if (*bg >= max_colors)
            *bg = 0;
        if (*bg < 0)
            *bg = 0;
        if (*bg < 0)
-           *bg = COLORS - 1;
-       return TRUE;
+           *bg = max_colors - 1;
     } else {
        switch (ch) {
        case 'a':
     } else {
        switch (ch) {
        case 'a':
@@ -474,9 +909,8 @@ attr_getc(int *skip, int *fg, int *bg, int *ac)
        default:
            return FALSE;
        }
        default:
            return FALSE;
        }
-       return TRUE;
     }
     }
-    return FALSE;
+    return TRUE;
 }
 
 static void
 }
 
 static void
@@ -488,7 +922,7 @@ attr_test(void)
     int fg = COLOR_BLACK;      /* color pair 0 is special */
     int bg = COLOR_BLACK;
     int ac = 0;
     int fg = COLOR_BLACK;      /* color pair 0 is special */
     int bg = COLOR_BLACK;
     int ac = 0;
-    bool *pairs = (bool *) calloc(COLOR_PAIRS, sizeof(bool));
+    bool *pairs = (bool *) calloc(max_pairs, sizeof(bool));
     pairs[0] = TRUE;
 
     if (skip < 0)
     pairs[0] = TRUE;
 
     if (skip < 0)
@@ -501,16 +935,18 @@ attr_test(void)
        int normal = A_NORMAL | BLANK;
 
        if (has_colors()) {
        int normal = A_NORMAL | BLANK;
 
        if (has_colors()) {
-           int pair = (fg * COLORS) + bg;
+           int pair = (fg * max_colors) + bg;
            if (!pairs[pair]) {
                init_pair(pair, fg, bg);
                pairs[pair] = TRUE;
            }
            normal |= COLOR_PAIR(pair);
        }
            if (!pairs[pair]) {
                init_pair(pair, fg, bg);
                pairs[pair] = TRUE;
            }
            normal |= COLOR_PAIR(pair);
        }
+       bkgd(normal);
        bkgdset(normal);
        erase();
 
        bkgdset(normal);
        erase();
 
+       box(stdscr, 0, 0);
        mvaddstr(0, 20, "Character attribute test display");
 
        row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
        mvaddstr(0, 20, "Character attribute test display");
 
        row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
@@ -551,7 +987,7 @@ attr_test(void)
  *
  ****************************************************************************/
 
  *
  ****************************************************************************/
 
-static NCURSES_CONST char *color_names[] =
+static NCURSES_CONST char *the_color_names[] =
 {
     "black",
     "red",
 {
     "black",
     "red",
@@ -574,10 +1010,10 @@ static NCURSES_CONST char *color_names[] =
 static void
 show_color_name(int y, int x, int color)
 {
 static void
 show_color_name(int y, int x, int color)
 {
-    if (COLORS > 8)
+    if (max_colors > 8)
        mvprintw(y, x, "%02d   ", color);
     else
        mvprintw(y, x, "%02d   ", color);
     else
-       mvaddstr(y, x, color_names[color]);
+       mvaddstr(y, x, the_color_names[color]);
 }
 
 static void
 }
 
 static void
@@ -591,29 +1027,30 @@ color_test(void)
     refresh();
     (void) printw("There are %d color pairs\n", COLOR_PAIRS);
 
     refresh();
     (void) printw("There are %d color pairs\n", COLOR_PAIRS);
 
-    width = (COLORS > 8) ? 4 : 8;
-    hello = (COLORS > 8) ? "Test" : "Hello";
+    width = (max_colors > 8) ? 4 : 8;
+    hello = (max_colors > 8) ? "Test" : "Hello";
 
     for (base = 0; base < 2; base++) {
 
     for (base = 0; base < 2; base++) {
-       top = (COLORS > 8) ? 0 : base * (COLORS + 3);
+       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",
        clrtobot();
        (void) mvprintw(top + 1, 0,
                        "%dx%d matrix of foreground/background colors, bright *%s*\n",
-                       COLORS, COLORS,
+                       max_colors, max_colors,
                        base ? "on" : "off");
                        base ? "on" : "off");
-       for (i = 0; i < COLORS; i++)
+       for (i = 0; i < max_colors; i++)
            show_color_name(top + 2, (i + 1) * width, i);
            show_color_name(top + 2, (i + 1) * width, i);
-       for (i = 0; i < COLORS; i++)
+       for (i = 0; i < max_colors; i++)
            show_color_name(top + 3 + i, 0, i);
            show_color_name(top + 3 + i, 0, i);
-       for (i = 1; i < COLOR_PAIRS; i++) {
-           init_pair(i, i % COLORS, i / COLORS);
+       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);
            attron((attr_t) COLOR_PAIR(i));
            if (base)
                attron((attr_t) A_BOLD);
-           mvaddstr(top + 3 + (i / COLORS), (i % COLORS + 1) * width, hello);
+           mvaddstr(top + 3 + (i / max_colors), (i % max_colors + 1) *
+                    width, hello);
            attrset(A_NORMAL);
        }
            attrset(A_NORMAL);
        }
-       if ((COLORS > 8) || base)
+       if ((max_colors > 8) || base)
            Pause();
     }
 
            Pause();
     }
 
@@ -653,7 +1090,6 @@ color_edit(void)
 {
     int i, this_c = 0, value = 0, current = 0, field = 0;
     int last_c;
 {
     int i, this_c = 0, value = 0, current = 0, field = 0;
     int last_c;
-    int max_colors = COLORS > 16 ? 16 : COLORS;
 
     refresh();
 
 
     refresh();
 
@@ -672,8 +1108,8 @@ color_edit(void)
        for (i = 0; i < max_colors; i++) {
            mvprintw(2 + i, 0, "%c %-8s:",
                     (i == current ? '>' : ' '),
        for (i = 0; i < max_colors; i++) {
            mvprintw(2 + i, 0, "%c %-8s:",
                     (i == current ? '>' : ' '),
-                    (i < (int) SIZEOF(color_names)
-                     ? color_names[i] : ""));
+                    (i < (int) SIZEOF(the_color_names)
+                     ? the_color_names[i] : ""));
            attrset(COLOR_PAIR(i));
            addstr("        ");
            attrset(A_NORMAL);
            attrset(COLOR_PAIR(i));
            addstr("        ");
            attrset(A_NORMAL);
@@ -950,6 +1386,27 @@ show_upper_chars(int first)
     }
 }
 
     }
 }
 
+static void
+show_box_chars(void)
+{
+    erase();
+    attron(A_BOLD);
+    mvaddstr(0, 20, "Display of the ACS Line-Drawing Set");
+    attroff(A_BOLD);
+    refresh();
+    box(stdscr, 0, 0);
+    /* *INDENT-OFF* */
+    mvhline(LINES / 2, 0,        ACS_HLINE, COLS);
+    mvvline(0,         COLS / 2, ACS_VLINE, LINES);
+    mvaddch(0,         COLS / 2, ACS_TTEE);
+    mvaddch(LINES / 2, COLS / 2, ACS_PLUS);
+    mvaddch(LINES - 1, COLS / 2, ACS_BTEE);
+    mvaddch(LINES / 2, 0,        ACS_LTEE);
+    mvaddch(LINES / 2, COLS - 1, ACS_RTEE);
+    /* *INDENT-ON* */
+
+}
+
 static int
 show_1_acs(int n, const char *name, chtype code)
 {
 static int
 show_1_acs(int n, const char *name, chtype code)
 {
@@ -976,37 +1433,43 @@ show_acs_chars(void)
     refresh();
 
     n = show_1_acs(0, BOTH(ACS_ULCORNER));
     refresh();
 
     n = show_1_acs(0, BOTH(ACS_ULCORNER));
-    n = show_1_acs(n, BOTH(ACS_LLCORNER));
     n = show_1_acs(n, BOTH(ACS_URCORNER));
     n = show_1_acs(n, BOTH(ACS_URCORNER));
+    n = show_1_acs(n, BOTH(ACS_LLCORNER));
     n = show_1_acs(n, BOTH(ACS_LRCORNER));
     n = show_1_acs(n, BOTH(ACS_LRCORNER));
-    n = show_1_acs(n, BOTH(ACS_RTEE));
+
     n = show_1_acs(n, BOTH(ACS_LTEE));
     n = show_1_acs(n, BOTH(ACS_LTEE));
-    n = show_1_acs(n, BOTH(ACS_BTEE));
+    n = show_1_acs(n, BOTH(ACS_RTEE));
     n = show_1_acs(n, BOTH(ACS_TTEE));
     n = show_1_acs(n, BOTH(ACS_TTEE));
+    n = show_1_acs(n, BOTH(ACS_BTEE));
+
     n = show_1_acs(n, BOTH(ACS_HLINE));
     n = show_1_acs(n, BOTH(ACS_VLINE));
     n = show_1_acs(n, BOTH(ACS_HLINE));
     n = show_1_acs(n, BOTH(ACS_VLINE));
-    n = show_1_acs(n, BOTH(ACS_PLUS));
-    n = show_1_acs(n, BOTH(ACS_S1));
-    n = show_1_acs(n, BOTH(ACS_S9));
-    n = show_1_acs(n, BOTH(ACS_DIAMOND));
-    n = show_1_acs(n, BOTH(ACS_CKBOARD));
-    n = show_1_acs(n, BOTH(ACS_DEGREE));
-    n = show_1_acs(n, BOTH(ACS_PLMINUS));
-    n = show_1_acs(n, BOTH(ACS_BULLET));
+
     n = show_1_acs(n, BOTH(ACS_LARROW));
     n = show_1_acs(n, BOTH(ACS_RARROW));
     n = show_1_acs(n, BOTH(ACS_LARROW));
     n = show_1_acs(n, BOTH(ACS_RARROW));
-    n = show_1_acs(n, BOTH(ACS_DARROW));
     n = show_1_acs(n, BOTH(ACS_UARROW));
     n = show_1_acs(n, BOTH(ACS_UARROW));
+    n = show_1_acs(n, BOTH(ACS_DARROW));
+
+    n = show_1_acs(n, BOTH(ACS_BLOCK));
     n = show_1_acs(n, BOTH(ACS_BOARD));
     n = show_1_acs(n, BOTH(ACS_LANTERN));
     n = show_1_acs(n, BOTH(ACS_BOARD));
     n = show_1_acs(n, BOTH(ACS_LANTERN));
-    n = show_1_acs(n, BOTH(ACS_BLOCK));
-    n = show_1_acs(n, BOTH(ACS_S3));
-    n = show_1_acs(n, BOTH(ACS_S7));
-    n = show_1_acs(n, BOTH(ACS_LEQUAL));
+    n = show_1_acs(n, BOTH(ACS_BULLET));
+    n = show_1_acs(n, BOTH(ACS_CKBOARD));
+    n = show_1_acs(n, BOTH(ACS_DEGREE));
+    n = show_1_acs(n, BOTH(ACS_DIAMOND));
+    n = show_1_acs(n, BOTH(ACS_PLMINUS));
+    n = show_1_acs(n, BOTH(ACS_PLUS));
+
     n = show_1_acs(n, BOTH(ACS_GEQUAL));
     n = show_1_acs(n, BOTH(ACS_GEQUAL));
-    n = show_1_acs(n, BOTH(ACS_PI));
     n = show_1_acs(n, BOTH(ACS_NEQUAL));
     n = show_1_acs(n, BOTH(ACS_NEQUAL));
+    n = show_1_acs(n, BOTH(ACS_LEQUAL));
+
     n = show_1_acs(n, BOTH(ACS_STERLING));
     n = show_1_acs(n, BOTH(ACS_STERLING));
+    n = show_1_acs(n, BOTH(ACS_PI));
+    n = show_1_acs(n, BOTH(ACS_S1));
+    n = show_1_acs(n, BOTH(ACS_S3));
+    n = show_1_acs(n, BOTH(ACS_S7));
+    n = show_1_acs(n, BOTH(ACS_S9));
 }
 
 static void
 }
 
 static void
@@ -1019,6 +1482,9 @@ acs_display(void)
        case 'a':
            show_acs_chars();
            break;
        case 'a':
            show_acs_chars();
            break;
+       case 'b':
+           show_box_chars();
+           break;
        case '0':
        case '1':
        case '2':
        case '0':
        case '1':
        case '2':
@@ -1029,7 +1495,7 @@ acs_display(void)
        mvprintw(LINES - 3, 0,
                 "Note: ANSI terminals may not display C1 characters.");
        mvprintw(LINES - 2, 0,
        mvprintw(LINES - 3, 0,
                 "Note: ANSI terminals may not display C1 characters.");
        mvprintw(LINES - 2, 0,
-                "Select: a=ACS, 0=C1, 1,2,3=GR characters, q=quit");
+                "Select: a=ACS, b=box, 0=C1, 1,2,3=GR characters, q=quit");
        refresh();
     } while ((c = Getchar()) != 'x' && c != 'q');
 
        refresh();
     } while ((c = Getchar()) != 'x' && c != 'q');
 
@@ -1038,6 +1504,221 @@ acs_display(void)
     endwin();
 }
 
     endwin();
 }
 
+#if USE_WIDEC_SUPPORT
+static void
+show_upper_widechars(int first)
+{
+    cchar_t temp;
+    wchar_t code;
+    int last = first + 31;
+
+    erase();
+    attron(A_BOLD);
+    mvprintw(0, 20, "Display of Character Codes %d to %d", first, last);
+    attroff(A_BOLD);
+    refresh();
+
+    for (code = first; code <= last; code++) {
+       int row = 4 + ((code - first) % 16);
+       int col = ((code - first) / 16) * COLS / 2;
+       wchar_t codes[10];
+       attr_t attrs = A_NORMAL;
+       char tmp[80];
+
+       memset(&codes, 0, sizeof(codes));
+       codes[0] = code;
+       sprintf(tmp, "%3ld (0x%lx)", code, code);
+       mvprintw(row, col, "%*s: ", COLS / 4, tmp);
+       setcchar(&temp, codes, attrs, 0, 0);
+       echo_wchar(&temp);
+    }
+}
+
+static int
+show_1_wacs(int n, const char *name, const cchar_t * code)
+{
+    const int height = 16;
+    int row = 4 + (n % height);
+    int col = (n / height) * COLS / 2;
+    mvprintw(row, col, "%*s : ", COLS / 4, name);
+    add_wchnstr(code, 1);
+    return n + 1;
+}
+
+static void
+show_wacs_chars(void)
+/* display the wide-ACS character set */
+{
+    int n;
+
+/*#define BOTH2(name) #name, &(name) */
+#define BOTH2(name) #name, name
+
+    erase();
+    attron(A_BOLD);
+    mvaddstr(0, 20, "Display of the Wide-ACS Character Set");
+    attroff(A_BOLD);
+    refresh();
+
+    n = show_1_wacs(0, BOTH2(WACS_ULCORNER));
+    n = show_1_wacs(n, BOTH2(WACS_URCORNER));
+    n = show_1_wacs(n, BOTH2(WACS_LLCORNER));
+    n = show_1_wacs(n, BOTH2(WACS_LRCORNER));
+
+    n = show_1_wacs(n, BOTH2(WACS_LTEE));
+    n = show_1_wacs(n, BOTH2(WACS_RTEE));
+    n = show_1_wacs(n, BOTH2(WACS_TTEE));
+    n = show_1_wacs(n, BOTH2(WACS_BTEE));
+
+    n = show_1_wacs(n, BOTH2(WACS_HLINE));
+    n = show_1_wacs(n, BOTH2(WACS_VLINE));
+
+    n = show_1_wacs(n, BOTH2(WACS_LARROW));
+    n = show_1_wacs(n, BOTH2(WACS_RARROW));
+    n = show_1_wacs(n, BOTH2(WACS_UARROW));
+    n = show_1_wacs(n, BOTH2(WACS_DARROW));
+
+    n = show_1_wacs(n, BOTH2(WACS_BLOCK));
+    n = show_1_wacs(n, BOTH2(WACS_BOARD));
+    n = show_1_wacs(n, BOTH2(WACS_LANTERN));
+    n = show_1_wacs(n, BOTH2(WACS_BULLET));
+    n = show_1_wacs(n, BOTH2(WACS_CKBOARD));
+    n = show_1_wacs(n, BOTH2(WACS_DEGREE));
+    n = show_1_wacs(n, BOTH2(WACS_DIAMOND));
+    n = show_1_wacs(n, BOTH2(WACS_PLMINUS));
+    n = show_1_wacs(n, BOTH2(WACS_PLUS));
+
+#ifdef CURSES_WACS_ARRAY
+    n = show_1_wacs(n, BOTH2(WACS_GEQUAL));
+    n = show_1_wacs(n, BOTH2(WACS_NEQUAL));
+    n = show_1_wacs(n, BOTH2(WACS_LEQUAL));
+
+    n = show_1_wacs(n, BOTH2(WACS_STERLING));
+    n = show_1_wacs(n, BOTH2(WACS_PI));
+    n = show_1_wacs(n, BOTH2(WACS_S1));
+    n = show_1_wacs(n, BOTH2(WACS_S3));
+    n = show_1_wacs(n, BOTH2(WACS_S7));
+    n = show_1_wacs(n, BOTH2(WACS_S9));
+#endif
+}
+
+static void
+show_wbox_chars(void)
+{
+    erase();
+    attron(A_BOLD);
+    mvaddstr(0, 20, "Display of the Wide-ACS Line-Drawing Set");
+    attroff(A_BOLD);
+    refresh();
+    box_set(stdscr, 0, 0);
+    /* *INDENT-OFF* */
+    mvhline_set(LINES / 2, 0,        WACS_HLINE, COLS);
+    mvvline_set(0,         COLS / 2, WACS_VLINE, LINES);
+    mvadd_wch(0,           COLS / 2, WACS_TTEE);
+    mvadd_wch(LINES / 2,   COLS / 2, WACS_PLUS);
+    mvadd_wch(LINES - 1,   COLS / 2, WACS_BTEE);
+    mvadd_wch(LINES / 2,   0,        WACS_LTEE);
+    mvadd_wch(LINES / 2,   COLS - 1, WACS_RTEE);
+    /* *INDENT-ON* */
+
+}
+
+static int
+show_2_wacs(int n, const char *name, char *code)
+{
+    const int height = 16;
+    int row = 4 + (n % height);
+    int col = (n / height) * COLS / 2;
+    mvprintw(row, col, "%*s : ", COLS / 4, name);
+    addstr(code);
+    return n + 1;
+}
+
+static void
+show_utf8_chars(void)
+/* display the wide-ACS character set */
+{
+    int n;
+
+    erase();
+    attron(A_BOLD);
+    mvaddstr(0, 20, "Display of the Wide-ACS Character Set");
+    attroff(A_BOLD);
+    refresh();
+    /* *INDENT-OFF* */
+    n = show_2_wacs(0, "WACS_ULCORNER",        "\342\224\214");
+    n = show_2_wacs(n, "WACS_URCORNER",        "\342\224\220");
+    n = show_2_wacs(n, "WACS_LLCORNER",        "\342\224\224");
+    n = show_2_wacs(n, "WACS_LRCORNER",        "\342\224\230");
+
+    n = show_2_wacs(n, "WACS_LTEE",    "\342\224\234");
+    n = show_2_wacs(n, "WACS_RTEE",    "\342\224\244");
+    n = show_2_wacs(n, "WACS_TTEE",    "\342\224\254");
+    n = show_2_wacs(n, "WACS_BTEE",    "\342\224\264");
+
+    n = show_2_wacs(n, "WACS_HLINE",   "\342\224\200");
+    n = show_2_wacs(n, "WACS_VLINE",   "\342\224\202");
+
+    n = show_2_wacs(n, "WACS_LARROW",  "\342\206\220");
+    n = show_2_wacs(n, "WACS_RARROW",  "\342\206\222");
+    n = show_2_wacs(n, "WACS_UARROW",  "\342\206\221");
+    n = show_2_wacs(n, "WACS_DARROW",  "\342\206\223");
+
+    n = show_2_wacs(n, "WACS_BLOCK",   "\342\226\256");
+    n = show_2_wacs(n, "WACS_BOARD",   "\342\226\222");
+    n = show_2_wacs(n, "WACS_LANTERN", "\342\230\203");
+    n = show_2_wacs(n, "WACS_BULLET",  "\302\267");
+    n = show_2_wacs(n, "WACS_CKBOARD", "\342\226\222");
+    n = show_2_wacs(n, "WACS_DEGREE",  "\302\260");
+    n = show_2_wacs(n, "WACS_DIAMOND", "\342\227\206");
+    n = show_2_wacs(n, "WACS_PLMINUS", "\302\261");
+    n = show_2_wacs(n, "WACS_PLUS",    "\342\224\274");
+    n = show_2_wacs(n, "WACS_GEQUAL",  "\342\211\245");
+    n = show_2_wacs(n, "WACS_NEQUAL",  "\342\211\240");
+    n = show_2_wacs(n, "WACS_LEQUAL",  "\342\211\244");
+
+    n = show_2_wacs(n, "WACS_STERLING",        "\302\243");
+    n = show_2_wacs(n, "WACS_PI",      "\317\200");
+    n = show_2_wacs(n, "WACS_S1",      "\342\216\272");
+    n = show_2_wacs(n, "WACS_S3",      "\342\216\273");
+    n = show_2_wacs(n, "WACS_S7",      "\342\216\274");
+    n = show_2_wacs(n, "WACS_S9",      "\342\216\275");
+    /* *INDENT-OFF* */
+}
+
+static void
+wide_acs_display(void)
+{
+    int c = 'a';
+
+    do {
+       switch (c) {
+       case 'a':
+           show_wacs_chars();
+           break;
+       case 'b':
+           show_wbox_chars();
+           break;
+       case 'u':
+           show_utf8_chars();
+           break;
+       default:
+           if (isdigit(c))
+               show_upper_widechars((c - '0') * 32 + 128);
+           break;
+       }
+       mvprintw(LINES - 2, 0,
+                "Select: a WACS, b box, u UTF-8, 0-9 non-ASCII characters, q=quit");
+       refresh();
+    } while ((c = Getchar()) != 'x' && c != 'q');
+
+    Pause();
+    erase();
+    endwin();
+}
+
+#endif
+
 /*
  * Graphic-rendition test (adapted from vttest)
  */
 /*
  * Graphic-rendition test (adapted from vttest)
  */
@@ -1139,21 +1820,30 @@ FRAME
     WINDOW *wind;
 };
 
     WINDOW *wind;
 };
 
+#ifdef NCURSES_VERSION
+#define keypad_active(win) (win)->_use_keypad
+#define scroll_active(win) (win)->_scroll
+#else
+#define keypad_active(win) FALSE
+#define scroll_active(win) FALSE
+#endif
+
 /* We need to know if these flags are actually set, so don't look in FRAME.
 /* We need to know if these flags are actually set, so don't look in FRAME.
- * These names are known to work with SVr4 curses as well as ncurses.
+ * These names are known to work with SVr4 curses as well as ncurses.  The
+ * _use_keypad name does not work with Solaris 8.
  */
 static bool
 HaveKeypad(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
  */
 static bool
 HaveKeypad(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
-    return win->_use_keypad;
+    return keypad_active(win);
 }
 
 static bool
 HaveScroll(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
 }
 
 static bool
 HaveScroll(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
-    return win->_scroll;
+    return scroll_active(win);
 }
 
 static void
 }
 
 static void
@@ -1200,7 +1890,7 @@ newwin_legend(FRAME * curp)
        }
     };
     size_t n;
        }
     };
     size_t n;
-    int y, x;
+    int x;
     bool do_keypad = HaveKeypad(curp);
     bool do_scroll = HaveScroll(curp);
     char buf[BUFSIZ];
     bool do_keypad = HaveKeypad(curp);
     bool do_scroll = HaveScroll(curp);
     char buf[BUFSIZ];
@@ -1221,7 +1911,7 @@ newwin_legend(FRAME * curp)
            sprintf(buf, legend[n].msg, do_keypad ? "/ESC" : "");
            break;
        }
            sprintf(buf, legend[n].msg, do_keypad ? "/ESC" : "");
            break;
        }
-       getyx(stdscr, y, x);
+       x = getcurx(stdscr);
        addstr((COLS < (x + 3 + (int) strlen(buf))) ? "\n" : (n ? ", " : ""));
        addstr(buf);
     }
        addstr((COLS < (x + 3 + (int) strlen(buf))) ? "\n" : (n ? ", " : ""));
        addstr(buf);
     }
@@ -1491,11 +2181,12 @@ acs_and_scroll(void)
            break;
 
        case CTRL('W'): /* save and delete window */
            break;
 
        case CTRL('W'): /* save and delete window */
-           if (current == current->next)
+           if (current == current->next) {
+               transient(current, "Will not save/delete ONLY window");
                break;
                break;
-           if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0)
+           } else if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0) {
                transient(current, "Can't open screen dump file");
                transient(current, "Can't open screen dump file");
-           else {
+           else {
                (void) putwin(current->wind, fp);
                (void) fclose(fp);
 
                (void) putwin(current->wind, fp);
                (void) fclose(fp);
 
@@ -1504,9 +2195,9 @@ acs_and_scroll(void)
            break;
 
        case CTRL('R'): /* restore window */
            break;
 
        case CTRL('R'): /* restore window */
-           if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0)
+           if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) {
                transient(current, "Can't open screen dump file");
                transient(current, "Can't open screen dump file");
-           else {
+           else {
                neww = (FRAME *) calloc(1, sizeof(FRAME));
 
                neww->next = current->next;
                neww = (FRAME *) calloc(1, sizeof(FRAME));
 
                neww->next = current->next;
@@ -1629,7 +2320,7 @@ acs_and_scroll(void)
        wrefresh(usescr);
     } while
        ((c = wGetchar(usescr)) != QUIT
        wrefresh(usescr);
     } while
        ((c = wGetchar(usescr)) != QUIT
-        && !((c == ESCAPE) && (usescr->_use_keypad))
+        && !((c == ESCAPE) && (keypad_active(usescr)))
         && (c != ERR));
 
   breakout:
         && (c != ERR));
 
   breakout:
@@ -2297,7 +2988,7 @@ padgetch(WINDOW *win)
            switch (c = wGetchar(win)) {
            case '!':
                ShellOut(FALSE);
            switch (c = wGetchar(win)) {
            case '!':
                ShellOut(FALSE);
-               c = KEY_REFRESH;
+               /* FALLTHRU */
            case CTRL('r'):
                endwin();
                refresh();
            case CTRL('r'):
                endwin();
                refresh();
@@ -3022,7 +3713,7 @@ form_virtualize(FORM * f, WINDOW *w)
            mode = REQ_INS_MODE;
        c = mode;
     } else {
            mode = REQ_INS_MODE;
        c = mode;
     } else {
-       for (n = 0; n < sizeof(lookup) / sizeof(lookup[0]); n++) {
+       for (n = 0; n < SIZEOF(lookup); n++) {
            if (lookup[n].code == c) {
                c = lookup[n].result;
                break;
            if (lookup[n].code == c) {
                c = lookup[n].result;
                break;
@@ -3261,6 +3952,12 @@ do_single_test(const char c)
        getch_test();
        break;
 
        getch_test();
        break;
 
+#if USE_WIDEC_SUPPORT
+    case 'A':
+       get_wch_test();
+       break;
+#endif
+
     case 'b':
        attr_test();
        break;
     case 'b':
        attr_test();
        break;
@@ -3289,6 +3986,12 @@ do_single_test(const char c)
        acs_display();
        break;
 
        acs_display();
        break;
 
+#if USE_WIDEC_SUPPORT
+    case 'F':
+       wide_acs_display();
+       break;
+#endif
+
 #if USE_LIBPANEL
     case 'o':
        demo_panels();
 #if USE_LIBPANEL
     case 'o':
        demo_panels();
@@ -3366,9 +4069,9 @@ usage(void)
 #endif
     };
     size_t n;
 #endif
     };
     size_t n;
-    for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); n++)
+    for (n = 0; n < SIZEOF(tbl); n++)
        fprintf(stderr, "%s\n", tbl[n]);
        fprintf(stderr, "%s\n", tbl[n]);
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static void
 }
 
 static void
@@ -3391,23 +4094,23 @@ announce_sig(int sig)
 #endif
 
 static int
 #endif
 
 static int
-rip_footer(WINDOW *win, int columns)
+rip_footer(WINDOW *win, int cols)
 {
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
 {
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "footer: %d columns", columns);
+    wprintw(win, "footer: %d columns", cols);
     wnoutrefresh(win);
     return OK;
 }
 
 static int
     wnoutrefresh(win);
     return OK;
 }
 
 static int
-rip_header(WINDOW *win, int columns)
+rip_header(WINDOW *win, int cols)
 {
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
 {
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "header: %d columns", columns);
+    wprintw(win, "header: %d columns", cols);
     wnoutrefresh(win);
     return OK;
 }
     wnoutrefresh(win);
     return OK;
 }
@@ -3428,9 +4131,7 @@ main(int argc, char *argv[])
     bool default_colors = FALSE;
 #endif
 
     bool default_colors = FALSE;
 #endif
 
-#if HAVE_LOCALE_H
-    setlocale(LC_CTYPE, "");
-#endif
+    setlocale(LC_ALL, "");
 
     while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
        switch (c) {
 
     while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
        switch (c) {
@@ -3504,12 +4205,22 @@ main(int argc, char *argv[])
     /* tests, in general, will want these modes */
     if (has_colors()) {
        start_color();
     /* tests, in general, will want these modes */
     if (has_colors()) {
        start_color();
-#ifdef NCURSES_VERSION
+#ifdef NCURSES_VERSION_PATCH
+       max_colors = COLORS > 16 ? 16 : COLORS;
+#if HAVE_USE_DEFAULT_COLORS
        if (default_colors)
            use_default_colors();
        if (default_colors)
            use_default_colors();
+#if NCURSES_VERSION_PATCH >= 20000708
        else if (assumed_colors)
            assume_default_colors(default_fg, default_bg);
 #endif
        else if (assumed_colors)
            assume_default_colors(default_fg, default_bg);
 #endif
+#endif
+#else /* normal SVr4 curses */
+       max_colors = COLORS > 8 ? 8 : COLORS;
+#endif
+       max_pairs = (max_colors * max_colors);
+       if (max_pairs < COLOR_PAIRS)
+           max_pairs = COLOR_PAIRS;
     }
     set_terminal_modes();
     def_prog_mode();
     }
     set_terminal_modes();
     def_prog_mode();
@@ -3534,11 +4245,17 @@ main(int argc, char *argv[])
     do {
        (void) puts("This is the ncurses main menu");
        (void) puts("a = keyboard and mouse input test");
     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");
        (void) puts("f = display ACS characters");
        (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");
        (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");
        (void) puts("g = display windows and scrolling");
        (void) puts("i = test of flushinp()");
        (void) puts("k = display character attributes");
@@ -3574,7 +4291,7 @@ main(int argc, char *argv[])
                if (command == 0)
                    command = 'q';
                break;
                if (command == 0)
                    command = 'q';
                break;
-           } else if (command == 0 && !isspace(ch)) {
+           } else if (command == 0 && !isspace(UChar(ch))) {
                command = ch;
            } else if (ch == '\n' || ch == '\r') {
                if (command != 0)
                command = ch;
            } else if (ch == '\n' || ch == '\r') {
                if (command != 0)
index d47d275e35a2d3ea8954b5d4151df537e3c46d3e..7f583389c321bfa83b517f67cf96e5c0e7c56eb7 100644 (file)
@@ -2,19 +2,12 @@
  *  newdemo.c  -       A demo program using PDCurses. The program illustrate
  *                     the use of colours for text output.
  *
  *  newdemo.c  -       A demo program using PDCurses. The program illustrate
  *                     the use of colours for text output.
  *
- * $Id: newdemo.c,v 1.17 1997/09/20 15:11:26 tom Exp $
+ * $Id: newdemo.c,v 1.24 2002/06/29 23:32:18 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
-#include <signal.h>
 #include <time.h>
 #include <time.h>
-#include <string.h>
 
 
-static int SubWinTest(WINDOW *win);
-static int WaitForUser(WINDOW *win);
-static int BouncingBalls(WINDOW *win);
-static RETSIGTYPE trap(int);
+#include <test.priv.h>
 
 #define delay_output(x) napms(x)
 
 
 #define delay_output(x) napms(x)
 
@@ -54,157 +47,59 @@ NCURSES_CONST char *messages[] =
 };
 
 /*
 };
 
 /*
- *  Main driver
+ *  Trap interrupt
  */
  */
-int
-main(
-       int argc GCC_UNUSED,
-       char *argv[] GCC_UNUSED)
+static RETSIGTYPE
+trap(int sig GCC_UNUSED)
 {
 {
-WINDOW  *win;
-int     w, x, y, i, j, k;
-char    buffer[200];
-const char *message;
-int     width, height;
-chtype  save[80];
-chtype  c;
+    endwin();
+    ExitProgram(EXIT_FAILURE);
+}
 
 
-    initscr();
-    start_color();
-    cbreak();
-    signal(SIGINT, trap);
-    width  = 48;
-    height = 14;                /* Create a drawing window */
-    win = newwin(height, width, (LINES-height)/2, (COLS-width)/2);
-    if(win == NULL)
-    {   endwin();
-        return 1;
+/*
+ *  Wait for user
+ */
+static int
+WaitForUser(WINDOW *win)
+{
+    time_t t;
+    chtype key;
+
+    nodelay(win, TRUE);
+    t = time((time_t *) 0);
+    while (1) {
+       if ((int) (key = wgetch(win)) != ERR) {
+           if (key == 'q' || key == 'Q')
+               return 1;
+           else
+               return 0;
+       }
+       if (time((time_t *) 0) - t > 5)
+           return 0;
     }
     }
+}
 
 
-    while(1)
-    {   init_pair(1,COLOR_WHITE,COLOR_BLUE);
-        wattrset(win, COLOR_PAIR(1));
-        werase(win);
-
-        init_pair(2,COLOR_RED,COLOR_RED);
-        wattrset(win, COLOR_PAIR(2));
-        box(win, ACS_VLINE, ACS_HLINE);
-        wrefresh(win);
-                                /* Do ramdom output of a character */
-        wattrset(win, COLOR_PAIR(1));
-        c = 'a';
-        for(i=0; i < 5000; ++i)
-        {   x = rand() % (width-2)  + 1;
-            y = rand() % (height-2) + 1;
-            mvwaddch(win, y, x, c);
-            wrefresh(win);
-            nodelay(win,TRUE);
-            if (wgetch(win) != ERR)
-                break;
-            if(i == 2000)
-            {   c = 'b';
-                init_pair(3,COLOR_CYAN,COLOR_YELLOW);
-                wattron(win, COLOR_PAIR(3));
-            }
-        }
-
-        SubWinTest(win);
-                                /* Erase and draw green window */
-        init_pair(4,COLOR_YELLOW,COLOR_GREEN);
-        wbkgd(win, COLOR_PAIR(4) | A_BOLD);
-        wattrset(win, COLOR_PAIR(4) | A_BOLD);
-        werase(win);
-        wrefresh(win);
-                                /* Draw RED bounding box */
-        wattrset(win, COLOR_PAIR(2));
-        box(win, ' ', ' ');
-        wrefresh(win);
-                                /* Display Australia map */
-       wattrset(win, COLOR_PAIR(4) | A_BOLD);
-        i = 0;
-        while(*AusMap[i])
-       {   mvwaddstr(win, i+1, 8, AusMap[i]);
-            wrefresh(win);
-            delay_output(50);
-            ++i;
-        }
-
-        init_pair(5,COLOR_BLUE,COLOR_WHITE);
-        wattrset(win, COLOR_PAIR(5) | A_BLINK);
-       mvwaddstr(win, height-2, 6, " PDCurses 2.1 for DOS, OS/2 and Unix");
-       wrefresh(win);
-
-                               /* Draw running messages */
-       init_pair(6,COLOR_YELLOW,COLOR_WHITE);
-       wattrset(win, COLOR_PAIR(6));
-       message = messages[j = 0];
-       i = 1;
-       w = width-2;
-       strcpy(buffer, message);
-        while(j < NMESSAGES) {
-           while ((int)strlen(buffer) < w) {
-               strcat(buffer, " ... ");
-               strcat(buffer, messages[++j % NMESSAGES]);
-           }
-
-           if (i < w)
-               mvwaddnstr(win, height/2, w - i, buffer, i);
-            else
-               mvwaddnstr(win, height/2, 1, buffer, w);
-
-            wrefresh(win);
-            nodelay(win,TRUE);
-            if (wgetch(win) != ERR)
-            {   flushinp();
-               break;
-            }
-           if (i++ >= w) {
-               for (k = 0; (buffer[k] = buffer[k+1]) != '\0'; k++)
-                   ;
-           }
-           delay_output(100);
-        }
-
-        j = 0;
-                                /*  Draw running As across in RED */
-        init_pair(7,COLOR_RED,COLOR_GREEN);
-        wattron(win, COLOR_PAIR(7));
-       for(i=2; i < width - 4; ++i)
-        {
-            k = mvwinch(win, 4, i);
-           if (k == ERR)
-               break;
-            save[j++] = c = k;
-            c &= A_CHARTEXT;
-           mvwaddch(win, 4, i, c);
-        }
-        wrefresh(win);
-
-                                /* Put a message up wait for a key */
-        i = height-2;
-        wattrset(win, COLOR_PAIR(5));
-       mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
-        wrefresh(win);
-
-        if(WaitForUser(win) == 1)
-           break;
-
-        j = 0;                  /* Restore the old line */
-        for(i=2; i < width - 4; ++i)
-            mvwaddch(win, 4, i, save[j++]);
-        wrefresh(win);
+static void
+set_colors(WINDOW *win, int pair, int foreground, int background)
+{
+    if (has_colors()) {
+       if (pair > COLOR_PAIRS)
+           pair = COLOR_PAIRS;
+       init_pair(pair, foreground, background);
+       wattrset(win, COLOR_PAIR(pair));
+    }
+}
 
 
-       BouncingBalls(win);
-                                /* Put a message up wait for a key */
-        i = height-2;
-        wattrset(win, COLOR_PAIR(5));
-       mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
-        wrefresh(win);
-        if(WaitForUser(win) == 1)
-            break;
+static int
+use_colors(WINDOW *win, int pair, int attrs)
+{
+    if (has_colors()) {
+       if (pair > COLOR_PAIRS)
+           pair = COLOR_PAIRS;
+       attrs |= COLOR_PAIR(pair);
     }
     }
-    endwin();
-    return 0;
+    wattrset(win, attrs);
+    return attrs;
 }
 
 /*
 }
 
 /*
@@ -213,34 +108,31 @@ chtype  c;
 static int
 SubWinTest(WINDOW *win)
 {
 static int
 SubWinTest(WINDOW *win)
 {
-int     w, h, sw, sh, bx, by;
-WINDOW  *swin1, *swin2, *swin3;
+    int w, h, sw, sh, bx, by;
+    WINDOW *swin1, *swin2, *swin3;
 
 
-    getmaxyx(win, h,  w);
+    getmaxyx(win, h, w);
     getbegyx(win, by, bx);
     sw = w / 3;
     sh = h / 3;
     getbegyx(win, by, bx);
     sw = w / 3;
     sh = h / 3;
-    if((swin1 = subwin(win, sh, sw, by+3, bx+5)) == NULL)
-        return  1;
-    if((swin2 = subwin(win, sh, sw, by+4, bx+8)) == NULL)
-        return  1;
-    if((swin3 = subwin(win, sh, sw, by+5, bx+11)) == NULL)
-       return  1;
-
-    init_pair(8,COLOR_RED,COLOR_BLUE);
-    wattrset(swin1, COLOR_PAIR(8));
+    if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL)
+       return 1;
+    if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL)
+       return 1;
+    if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL)
+       return 1;
+
+    set_colors(swin1, 8, COLOR_RED, COLOR_BLUE);
     werase(swin1);
     mvwaddstr(swin1, 0, 3, "Sub-window 1");
     wrefresh(swin1);
 
     werase(swin1);
     mvwaddstr(swin1, 0, 3, "Sub-window 1");
     wrefresh(swin1);
 
-    init_pair(8,COLOR_CYAN,COLOR_MAGENTA);
-    wattrset(swin2, COLOR_PAIR(8));
+    set_colors(swin2, 9, COLOR_CYAN, COLOR_MAGENTA);
     werase(swin2);
     mvwaddstr(swin2, 0, 3, "Sub-window 2");
     wrefresh(swin2);
 
     werase(swin2);
     mvwaddstr(swin2, 0, 3, "Sub-window 2");
     wrefresh(swin2);
 
-    init_pair(8,COLOR_YELLOW,COLOR_GREEN);
-    wattrset(swin3, COLOR_PAIR(8));
+    set_colors(swin3, 10, COLOR_YELLOW, COLOR_GREEN);
     werase(swin3);
     mvwaddstr(swin3, 0, 3, "Sub-window 3");
     wrefresh(swin3);
     werase(swin3);
     mvwaddstr(swin3, 0, 3, "Sub-window 3");
     wrefresh(swin3);
@@ -249,7 +141,19 @@ WINDOW  *swin1, *swin2, *swin3;
     delwin(swin2);
     delwin(swin3);
     WaitForUser(win);
     delwin(swin2);
     delwin(swin3);
     WaitForUser(win);
-    return  0;
+    return 0;
+}
+
+static int
+bounce(int n, int *dir, int len)
+{
+    if (*dir > 0)
+       ++n;
+    else
+       --n;
+    if (n <= 1 || n >= len - 2)
+       *dir = *dir ? 0 : 1;
+    return n;
 }
 
 /*
 }
 
 /*
@@ -258,91 +162,197 @@ WINDOW  *swin1, *swin2, *swin3;
 static int
 BouncingBalls(WINDOW *win)
 {
 static int
 BouncingBalls(WINDOW *win)
 {
-int    w, h;
-int     x1, y1, xd1, yd1;
-int     x2, y2, xd2, yd2;
-int     x3, y3, xd3, yd3;
+    int w, h;
+    int x1, y1, xd1, yd1;
+    int x2, y2, xd2, yd2;
+    int x3, y3, xd3, yd3;
 
     getmaxyx(win, h, w);
 
     getmaxyx(win, h, w);
-    x1   = 2 + rand() % (w - 4);
-    y1   = 2 + rand() % (h - 4);
-    x2   = 2 + rand() % (w - 4);
-    y2   = 2 + rand() % (h - 4);
-    x3   = 2 + rand() % (w - 4);
-    y3   = 2 + rand() % (h - 4);
-    xd1  = 1; yd1 = 1;
-    xd2  = 1; yd2 = 0;
-    xd3  = 0; yd3 = 1;
-    nodelay(win,TRUE);
-    while(wgetch(win) == ERR)
-    {   x1 = xd1 > 0 ? ++x1 : --x1;
-        if(x1 <= 1 || x1 >= w - 2)
-            xd1 = xd1 ? 0 : 1;
-        y1 = yd1 > 0 ? ++y1 : --y1;
-        if(y1 <= 1 || y1 >= h - 2)
-           yd1 = yd1 ? 0 : 1;
-
-        x2 = xd2 > 0 ? ++x2 : --x2;
-        if(x2 <= 1 || x2 >= w - 2)
-            xd2 = xd2 ? 0 : 1;
-        y2 = yd2 > 0 ? ++y2 : --y2;
-        if(y2 <= 1 || y2 >= h - 2)
-            yd2 = yd2 ? 0 : 1;
-
-        x3 = xd3 > 0 ? ++x3 : --x3;
-        if(x3 <= 1 || x3 >= w - 2)
-           xd3 = xd3 ? 0 : 1;
-        y3 = yd3 > 0 ? ++y3 : --y3;
-        if(y3 <= 1 || y3 >= h - 2)
-            yd3 = yd3 ? 0 : 1;
-
-        init_pair(8,COLOR_RED,COLOR_BLUE);
-        wattrset(win, COLOR_PAIR(8));
+
+    x1 = 2 + rand() % (w - 4);
+    y1 = 2 + rand() % (h - 4);
+    x2 = 2 + rand() % (w - 4);
+    y2 = 2 + rand() % (h - 4);
+    x3 = 2 + rand() % (w - 4);
+    y3 = 2 + rand() % (h - 4);
+
+    xd1 = 1;
+    yd1 = 1;
+    xd2 = 1;
+    yd2 = 0;
+    xd3 = 0;
+    yd3 = 1;
+
+    nodelay(win, TRUE);
+
+    while (wgetch(win) == ERR) {
+       x1 = bounce(x1, &xd1, w);
+       y1 = bounce(y1, &yd1, h);
+       x2 = bounce(x2, &xd2, w);
+       y2 = bounce(y2, &yd2, h);
+       x3 = bounce(x3, &xd3, w);
+       y3 = bounce(y3, &yd3, h);
+
+       set_colors(win, 11, COLOR_RED, COLOR_BLUE);
        mvwaddch(win, y1, x1, 'O');
        mvwaddch(win, y1, x1, 'O');
-        init_pair(8,COLOR_BLUE,COLOR_RED);
-        wattrset(win, COLOR_PAIR(8));
-        mvwaddch(win, y2, x2, '*');
-        init_pair(8,COLOR_YELLOW,COLOR_WHITE);
-        wattrset(win, COLOR_PAIR(8));
-        mvwaddch(win, y3, x3, '@');
-        wmove(win, 0, 0);
-        wrefresh(win);
+
+       set_colors(win, 12, COLOR_BLUE, COLOR_RED);
+       mvwaddch(win, y2, x2, '*');
+
+       set_colors(win, 13, COLOR_YELLOW, COLOR_WHITE);
+       mvwaddch(win, y3, x3, '@');
+
+       wmove(win, 0, 0);
+       wrefresh(win);
        delay_output(100);
     }
     return 0;
 }
 
 /*
        delay_output(100);
     }
     return 0;
 }
 
 /*
- *  Wait for user
+ *  Main driver
  */
  */
-static int WaitForUser(WINDOW *win)
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
 {
- time_t  t;
- chtype key;
-
- nodelay(win,TRUE);
- t = time((time_t *)0);
- while(1)
-   {
-    if ((int)(key = wgetch(win)) != ERR)
-      {
-       if (key  == 'q' || key == 'Q')
-          return  1;
-       else
-          return  0;
-      }
-    if (time((time_t *)0) - t > 5)
-       return  0;
-   }
-}
+    WINDOW *win;
+    int w, x, y, i, j, k;
+    char buffer[200];
+    const char *message;
+    int width, height;
+    chtype save[80];
+    chtype c;
 
 
-/*
- *  Trap interrupt
- */
-static RETSIGTYPE trap(int sig GCC_UNUSED)
-{
+    setlocale(LC_ALL, "");
+
+    initscr();
+    if (has_colors())
+       start_color();
+    cbreak();
+    curs_set(0);
+    signal(SIGINT, trap);
+    width = 48;
+    height = 14;               /* Create a drawing window */
+    win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
+    if (win == NULL) {
+       endwin();
+       ExitProgram(EXIT_FAILURE);
+    }
+
+    while (1) {
+       set_colors(win, 1, COLOR_WHITE, COLOR_BLUE);
+       werase(win);
+
+       set_colors(win, 2, COLOR_RED, COLOR_RED);
+       box(win, ACS_VLINE, ACS_HLINE);
+       wrefresh(win);
+       /* Do ramdom output of a character */
+       use_colors(win, 1, A_NORMAL);
+       c = 'a';
+       for (i = 0; i < 5000; ++i) {
+           x = rand() % (width - 2) + 1;
+           y = rand() % (height - 2) + 1;
+           mvwaddch(win, y, x, c);
+           wrefresh(win);
+           nodelay(win, TRUE);
+           if (wgetch(win) != ERR)
+               break;
+           if (i == 2000) {
+               c = 'b';
+               set_colors(win, 3, COLOR_CYAN, COLOR_YELLOW);
+           }
+       }
+
+       SubWinTest(win);
+       /* Erase and draw green window */
+       set_colors(win, 4, COLOR_YELLOW, COLOR_GREEN);
+       wbkgd(win, use_colors(win, 4, A_BOLD));
+       werase(win);
+       wrefresh(win);
+       /* Draw RED bounding box */
+       use_colors(win, 2, A_NORMAL);
+       box(win, ' ', ' ');
+       wrefresh(win);
+       /* Display Australia map */
+       use_colors(win, 4, A_BOLD);
+       i = 0;
+       while (*AusMap[i]) {
+           mvwaddstr(win, i + 1, 8, AusMap[i]);
+           wrefresh(win);
+           delay_output(50);
+           ++i;
+       }
+
+       set_colors(win, 5, COLOR_BLUE, COLOR_WHITE);
+       use_colors(win, 5, A_BLINK);
+       mvwaddstr(win, height - 2, 6, " PDCurses 2.1 for DOS, OS/2 and Unix");
+       wrefresh(win);
+
+       /* Draw running messages */
+       set_colors(win, 6, COLOR_YELLOW, COLOR_WHITE);
+       message = messages[j = 0];
+       i = 1;
+       w = width - 2;
+       strcpy(buffer, message);
+       while (j < NMESSAGES) {
+           while ((int) strlen(buffer) < w) {
+               strcat(buffer, " ... ");
+               strcat(buffer, messages[++j % NMESSAGES]);
+           }
+
+           if (i < w)
+               mvwaddnstr(win, height / 2, w - i, buffer, i);
+           else
+               mvwaddnstr(win, height / 2, 1, buffer, w);
+
+           wrefresh(win);
+           nodelay(win, TRUE);
+           if (wgetch(win) != ERR) {
+               flushinp();
+               break;
+           }
+           if (i++ >= w) {
+               for (k = 0; (buffer[k] = buffer[k + 1]) != '\0'; k++) ;
+           }
+           delay_output(100);
+       }
+
+       j = 0;
+       /*  Draw running As across in RED */
+       set_colors(win, 7, COLOR_RED, COLOR_GREEN);
+       for (i = 2; i < width - 4; ++i) {
+           k = mvwinch(win, 4, i);
+           if (k == ERR)
+               break;
+           save[j++] = c = k;
+           c &= A_CHARTEXT;
+           mvwaddch(win, 4, i, c);
+       }
+       wrefresh(win);
+
+       /* Put a message up wait for a key */
+       i = height - 2;
+       use_colors(win, 5, A_NORMAL);
+       mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
+       wrefresh(win);
+
+       if (WaitForUser(win) == 1)
+           break;
+
+       j = 0;                  /* Restore the old line */
+       for (i = 2; i < width - 4; ++i)
+           mvwaddch(win, 4, i, save[j++]);
+       wrefresh(win);
+
+       BouncingBalls(win);
+       /* Put a message up wait for a key */
+       i = height - 2;
+       use_colors(win, 5, A_NORMAL);
+       mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
+       wrefresh(win);
+       if (WaitForUser(win) == 1)
+           break;
+    }
     endwin();
     endwin();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_SUCCESS);
 }
 }
-
-/*  End of DEMO.C */
index 90eac981941161d0a298f3b209e02fbe5d208026..fd773c8c52e7695e286bb0b99fcebec8a5775e45 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 2000 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2000-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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> 2000
  *
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 2000
  *
- * $Id: railroad.c,v 1.4 2000/10/15 00:21:33 tom Exp $
+ * $Id: railroad.c,v 1.10 2002/04/06 20:45:22 tom Exp $
  *
  * A simple demo of the termcap interface.
  */
 #include <test.priv.h>
 
  *
  * A simple demo of the termcap interface.
  */
 #include <test.priv.h>
 
-#include <termcap.h>
 #include <ctype.h>
 #include <ctype.h>
-#include <signal.h>
 
 static char *wipeit;
 static char *moveit;
 
 static char *wipeit;
 static char *moveit;
@@ -119,36 +117,38 @@ ShowSign(char *string)
 
     while (*string != 0) {
        ch = *string;
 
     while (*string != 0) {
        ch = *string;
-       if (moveit != 0) {
-           for (first = length - 2; first >= (string - base); first--) {
-               if (first < length - 1) {
-                   tputs(tgoto(moveit, first + 1, height - 1), 1, outc);
-                   PutChar(' ');
+       if (ch != ' ') {
+           if (moveit != 0) {
+               for (first = length - 2; first >= (string - base); first--) {
+                   if (first < length - 1) {
+                       tputs(tgoto(moveit, first + 1, height - 1), 1, outc);
+                       PutChar(' ');
+                   }
+                   tputs(tgoto(moveit, first, height - 1), 1, outc);
+                   PutChar(ch);
                }
                }
-               tputs(tgoto(moveit, first, height - 1), 1, outc);
-               PutChar(ch);
-           }
-       } else {
-           last = ch;
-           if (isalpha(ch)) {
-               first = isupper(ch) ? 'A' : 'a';
-           } else if (isdigit(ch)) {
-               first = '0';
            } else {
            } else {
-               first = ch;
-           }
-           if (first < last) {
-               Underline(1);
-               while (first < last) {
-                   PutChar(first);
-                   Backup();
-                   first++;
+               last = ch;
+               if (isalpha(ch)) {
+                   first = isupper(ch) ? 'A' : 'a';
+               } else if (isdigit(ch)) {
+                   first = '0';
+               } else {
+                   first = ch;
+               }
+               if (first < last) {
+                   Underline(1);
+                   while (first < last) {
+                       PutChar(first);
+                       Backup();
+                       first++;
+                   }
+                   Underline(0);
                }
                }
-               Underline(0);
            }
            }
+           if (moveit != 0)
+               Backup();
        }
        }
-       if (moveit != 0)
-           Backup();
        StandOut(1);
        PutChar(ch);
        StandOut(0);
        StandOut(1);
        PutChar(ch);
        StandOut(0);
@@ -173,7 +173,7 @@ onsig(int n GCC_UNUSED)
 {
     interrupted = TRUE;
     cleanup();
 {
     interrupted = TRUE;
     cleanup();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static void
 }
 
 static void
@@ -233,9 +233,10 @@ main(int argc, char *argv[])
     if (argc > 1) {
        railroad(argv + 1);
     } else {
     if (argc > 1) {
        railroad(argv + 1);
     } else {
+       static char world[] = "Hello World";
        static char *hello[] =
        static char *hello[] =
-       {"Hello World", 0};
+       {world, 0};
        railroad(hello);
     }
        railroad(hello);
     }
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index a7771b09d3e346831bb9b46a542b667d6164d695..19e7f9000c29ba639a8bca2d0b81ba7589b1bd2d 100644 (file)
@@ -1,22 +1,22 @@
 /*
 /*
- * $Id: rain.c,v 1.15 2000/09/02 18:41:22 tom Exp $
+ * $Id: rain.c,v 1.20 2002/06/29 23:32:18 tom Exp $
  */
 #include <test.priv.h>
 
  */
 #include <test.priv.h>
 
-#include <term.h>      /* for tparm() */
-
-#include <signal.h>
-
 /* rain 11/3/1980 EPS/CITHEP */
 
 static float ranf(void);
 static void onsig(int sig);
 
 /* rain 11/3/1980 EPS/CITHEP */
 
 static float ranf(void);
 static void onsig(int sig);
 
-static int next_j(int j)
+static int
+next_j(int j)
 {
 {
-    if (j==0) j=4; else --j;
+    if (j == 0)
+       j = 4;
+    else
+       --j;
     if (has_colors()) {
     if (has_colors()) {
-       int z = (int)(3*ranf());
+       int z = (int) (3 * ranf());
        chtype color = COLOR_PAIR(z);
        if (z)
            color |= A_BOLD;
        chtype color = COLOR_PAIR(z);
        if (z)
            color |= A_BOLD;
@@ -28,15 +28,18 @@ static int next_j(int j)
 int
 main(
        int argc GCC_UNUSED,
 int
 main(
        int argc GCC_UNUSED,
-       char *argv[] GCC_UNUSED)
+       char *argv[]GCC_UNUSED)
 {
 {
-int x, y, j;
-static int xpos[5], ypos[5];
-float r;
-float c;
+    int x, y, j;
+    static int xpos[5], ypos[5];
+    float r;
+    float c;
+
+    setlocale(LC_ALL, "");
 
 
-    for (j=SIGHUP;j<=SIGTERM;j++)
-       if (signal(j,SIG_IGN)!=SIG_IGN) signal(j,onsig);
+    for (j = SIGHUP; j <= SIGTERM; j++)
+       if (signal(j, SIG_IGN) != SIG_IGN)
+           signal(j, onsig);
 
     initscr();
     if (has_colors()) {
 
     initscr();
     if (has_colors()) {
@@ -44,7 +47,7 @@ float c;
        start_color();
 #if HAVE_USE_DEFAULT_COLORS
        if (use_default_colors() == OK)
        start_color();
 #if HAVE_USE_DEFAULT_COLORS
        if (use_default_colors() == OK)
-               bg = -1;
+           bg = -1;
 #endif
        init_pair(1, COLOR_BLUE, bg);
        init_pair(2, COLOR_CYAN, bg);
 #endif
        init_pair(1, COLOR_BLUE, bg);
        init_pair(2, COLOR_CYAN, bg);
@@ -54,18 +57,18 @@ float c;
     curs_set(0);
     timeout(0);
 
     curs_set(0);
     timeout(0);
 
-    r = (float)(LINES - 4);
-    c = (float)(COLS - 4);
-    for (j=5;--j>=0;) {
-       xpos[j]=(int)(c* ranf())+2;
-       ypos[j]=(int)(r* ranf())+2;
+    r = (float) (LINES - 4);
+    c = (float) (COLS - 4);
+    for (j = 5; --j >= 0;) {
+       xpos[j] = (int) (c * ranf()) + 2;
+       ypos[j] = (int) (r * ranf()) + 2;
     }
 
     }
 
-    for (j=0;;) {
-       x=(int)(c*ranf())+2;
-       y=(int)(r*ranf())+2;
+    for (j = 0;;) {
+       x = (int) (c * ranf()) + 2;
+       y = (int) (r * ranf()) + 2;
 
 
-       mvaddch(y,x, '.');
+       mvaddch(y, x, '.');
 
        mvaddch(ypos[j], xpos[j], 'o');
 
 
        mvaddch(ypos[j], xpos[j], 'o');
 
@@ -73,33 +76,33 @@ float c;
        mvaddch(ypos[j], xpos[j], 'O');
 
        j = next_j(j);
        mvaddch(ypos[j], xpos[j], 'O');
 
        j = next_j(j);
-       mvaddch( ypos[j]-1, xpos[j],    '-');
-       mvaddstr(ypos[j],   xpos[j]-1, "|.|");
-       mvaddch( ypos[j]+1, xpos[j],    '-');
+       mvaddch(ypos[j] - 1, xpos[j], '-');
+       mvaddstr(ypos[j], xpos[j] - 1, "|.|");
+       mvaddch(ypos[j] + 1, xpos[j], '-');
 
        j = next_j(j);
 
        j = next_j(j);
-       mvaddch( ypos[j]-2, xpos[j],     '-');
-       mvaddstr(ypos[j]-1, xpos[j]-1,  "/ \\");
-       mvaddstr(ypos[j],   xpos[j]-2,  "| O |");
-       mvaddstr(ypos[j]+1, xpos[j]-1,  "\\ /");
-       mvaddch( ypos[j]+2, xpos[j],     '-');
+       mvaddch(ypos[j] - 2, xpos[j], '-');
+       mvaddstr(ypos[j] - 1, xpos[j] - 1, "/ \\");
+       mvaddstr(ypos[j], xpos[j] - 2, "| O |");
+       mvaddstr(ypos[j] + 1, xpos[j] - 1, "\\ /");
+       mvaddch(ypos[j] + 2, xpos[j], '-');
 
        j = next_j(j);
 
        j = next_j(j);
-       mvaddch( ypos[j]-2, xpos[j],     ' ');
-       mvaddstr(ypos[j]-1, xpos[j]-1,  "   ");
-       mvaddstr(ypos[j],   xpos[j]-2, "     ");
-       mvaddstr(ypos[j]+1, xpos[j]-1,  "   ");
-       mvaddch( ypos[j]+2, xpos[j],     ' ');
-
-       xpos[j] = x; ypos[j] = y;
-
-       switch(getch())
-       {
-       case('q'):
-       case('Q'):
+       mvaddch(ypos[j] - 2, xpos[j], ' ');
+       mvaddstr(ypos[j] - 1, xpos[j] - 1, "   ");
+       mvaddstr(ypos[j], xpos[j] - 2, "     ");
+       mvaddstr(ypos[j] + 1, xpos[j] - 1, "   ");
+       mvaddch(ypos[j] + 2, xpos[j], ' ');
+
+       xpos[j] = x;
+       ypos[j] = y;
+
+       switch (getch()) {
+       case ('q'):
+       case ('Q'):
            curs_set(1);
            endwin();
            curs_set(1);
            endwin();
-           return(EXIT_SUCCESS);
+           ExitProgram(EXIT_SUCCESS);
        case 's':
            nodelay(stdscr, FALSE);
            break;
        case 's':
            nodelay(stdscr, FALSE);
            break;
@@ -107,9 +110,9 @@ float c;
            nodelay(stdscr, TRUE);
            break;
 #ifdef KEY_RESIZE
            nodelay(stdscr, TRUE);
            break;
 #ifdef KEY_RESIZE
-       case(KEY_RESIZE):
-           r = (float)(LINES - 4);
-           c = (float)(COLS - 4);
+       case (KEY_RESIZE):
+           r = (float) (LINES - 4);
+           c = (float) (COLS - 4);
            break;
 #endif
        }
            break;
 #endif
        }
@@ -122,7 +125,7 @@ onsig(int n GCC_UNUSED)
 {
     curs_set(1);
     endwin();
 {
     curs_set(1);
     endwin();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static float
 }
 
 static float
index 9f846554285b4e8ba07900aa7dea7dc381c03973..d1cc0fa1e5c7395a5ed8afb0de1ce29cf1b78cb7 100644 (file)
@@ -1,7 +1,19 @@
+/* $Id: tclock.c,v 1.22 2002/06/29 23:34:13 tom Exp $ */
+
 #include "test.priv.h"
 
 #include <math.h>
 #include "test.priv.h"
 
 #include <math.h>
-#include <time.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
 
 /*
   tclock - analog/digital clock for curses.
 
 /*
   tclock - analog/digital clock for curses.
@@ -103,12 +115,10 @@ dline(int pair, int from_x, int from_y, int x2, int y2, char ch)
 }
 
 int
 }
 
 int
-main(
-    int argc GCC_UNUSED,
-    char *argv[]GCC_UNUSED)
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
     int i, cx, cy;
 {
     int i, cx, cy;
-    double mradius, hradius, mangle, hangle;
+    double cr, mradius, hradius, mangle, hangle;
     double sangle, sradius, hours;
     int hdx, hdy;
     int mdx, mdy;
     double sangle, sradius, hours;
     int hdx, hdy;
     int mdx, mdy;
@@ -119,6 +129,12 @@ main(
     struct tm *t;
     char szChar[10];
     int my_bg = COLOR_BLACK;
     struct tm *t;
     char szChar[10];
     int my_bg = COLOR_BLACK;
+#if HAVE_GETTIMEOFDAY
+    struct timeval current;
+    double fraction = 0.0;
+#endif
+
+    setlocale(LC_ALL, "");
 
     initscr();
     noecho();
 
     initscr();
     noecho();
@@ -142,14 +158,16 @@ main(
 #endif
     cx = (COLS - 1) / 2;       /* 39 */
     cy = LINES / 2;            /* 12 */
 #endif
     cx = (COLS - 1) / 2;       /* 39 */
     cy = LINES / 2;            /* 12 */
-    ch = (cx > cy) ? cy : cx;  /* usually cy */
-    mradius = (3 * cy) / 4;    /* 9 */
-    hradius = cy / 2;          /* 6 */
-    sradius = (2 * cy) / 3;    /* 8 */
+    if (cx / ASPECT < cy)
+       cr = cx / ASPECT;
+    else
+       cr = cy;
+    sradius = (5 * cr) / 6;    /* 10 */
+    mradius = (3 * cr) / 4;    /* 9 */
+    hradius = cr / 2;          /* 6 */
 
     for (i = 0; i < 12; i++) {
        sangle = (i + 1) * (2.0 * PI) / 12.0;
 
     for (i = 0; i < 12; i++) {
        sangle = (i + 1) * (2.0 * PI) / 12.0;
-       sradius = (5 * cy) / 6; /* 10 */
        sdx = A2X(sangle, sradius);
        sdy = A2Y(sangle, sradius);
        sprintf(szChar, "%d", i + 1);
        sdx = A2X(sangle, sradius);
        sdy = A2Y(sangle, sradius);
        sprintf(szChar, "%d", i + 1);
@@ -159,9 +177,9 @@ main(
 
     mvaddstr(0, 0, "ASCII Clock by Howard Jones (ha.jones@ic.ac.uk),1994");
 
 
     mvaddstr(0, 0, "ASCII Clock by Howard Jones (ha.jones@ic.ac.uk),1994");
 
-    sradius = 8;
+    sradius = (4 * sradius) / 5;
     for (;;) {
     for (;;) {
-       napms(1000);
+       napms(100);
 
        tim = time(0);
        t = localtime(&tim);
 
        tim = time(0);
        t = localtime(&tim);
@@ -170,7 +188,7 @@ main(
        if (hours > 12.0)
            hours -= 12.0;
 
        if (hours > 12.0)
            hours -= 12.0;
 
-       mangle = ((t->tm_min) * (2 * PI) / 60.0);
+       mangle = ((t->tm_min + (t->tm_sec / 60.0)) * (2 * PI) / 60.0);
        mdx = A2X(mangle, mradius);
        mdy = A2Y(mangle, mradius);
 
        mdx = A2X(mangle, mradius);
        mdy = A2Y(mangle, mradius);
 
@@ -178,7 +196,11 @@ main(
        hdx = A2X(hangle, hradius);
        hdy = A2Y(hangle, hradius);
 
        hdx = A2X(hangle, hradius);
        hdy = A2Y(hangle, hradius);
 
-       sangle = ((t->tm_sec) * (2.0 * PI) / 60.0);
+#if HAVE_GETTIMEOFDAY
+       gettimeofday(&current, 0);
+       fraction = (current.tv_usec / 1.0e6);
+#endif
+       sangle = ((t->tm_sec + fraction) * (2.0 * PI) / 60.0);
        sdx = A2X(sangle, sradius);
        sdy = A2Y(sangle, sradius);
 
        sdx = A2X(sangle, sradius);
        sdy = A2Y(sangle, sradius);
 
@@ -191,7 +213,7 @@ main(
        if (has_colors())
            attrset(COLOR_PAIR(1));
 
        if (has_colors())
            attrset(COLOR_PAIR(1));
 
-       plot(cx + sdx, cy - sdy, 'O');
+       dline(1, cx, cy, cx + sdx, cy - sdy, 'O');
 
        if (has_colors())
            attrset(COLOR_PAIR(0));
 
        if (has_colors())
            attrset(COLOR_PAIR(0));
@@ -199,7 +221,7 @@ main(
        mvaddstr(LINES - 2, 0, ctime(&tim));
        refresh();
        if ((t->tm_sec % 5) == 0
        mvaddstr(LINES - 2, 0, ctime(&tim));
        refresh();
        if ((t->tm_sec % 5) == 0
-        && t->tm_sec != lastbeep) {
+           && t->tm_sec != lastbeep) {
            lastbeep = t->tm_sec;
            beep();
        }
            lastbeep = t->tm_sec;
            beep();
        }
@@ -207,20 +229,22 @@ main(
        if ((ch = getch()) != ERR) {
 #ifdef KEY_RESIZE
            if (ch == KEY_RESIZE) {
        if ((ch = getch()) != ERR) {
 #ifdef KEY_RESIZE
            if (ch == KEY_RESIZE) {
+               flash();
                erase();
                erase();
+               wrefresh(curscr);
                goto restart;
            }
 #endif
            break;
        }
 
                goto restart;
            }
 #endif
            break;
        }
 
-       plot(cx + sdx, cy - sdy, ' ');
        dline(0, cx, cy, cx + hdx, cy - hdy, ' ');
        dline(0, cx, cy, cx + mdx, cy - mdy, ' ');
        dline(0, cx, cy, cx + hdx, cy - hdy, ' ');
        dline(0, cx, cy, cx + mdx, cy - mdy, ' ');
+       dline(0, cx, cy, cx + sdx, cy - sdy, ' ');
 
     }
 
     curs_set(1);
     endwin();
 
     }
 
     curs_set(1);
     endwin();
-    return 0;
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index 58bbd162386fe875a9ed00d45635d7c30d9957e1..18c1eb5c6fa5409b1f5eeaa0c37c5064ce753973 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *                                                                          *
  * 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                        *
  ****************************************************************************/
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996                        *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.19 2000/09/02 19:31:58 tom Exp $ */
+/* $Id: test.priv.h,v 1.35 2002/06/29 23:36:12 tom Exp $ */
 
 #if HAVE_CONFIG_H
 #include <ncurses_cfg.h>
 
 #if HAVE_CONFIG_H
 #include <ncurses_cfg.h>
 #define HAVE_WRESIZE 0
 #endif
 
 #define HAVE_WRESIZE 0
 #endif
 
-#ifndef HAVE_NC_ALLOC_H
-#define HAVE_NC_ALLOC_H 0
+#ifndef HAVE_CURSES_VERSION
+#define HAVE_CURSES_VERSION 0
+#endif
+
+#ifndef HAVE_FORM_H
+#define HAVE_FORM_H 0
+#endif
+
+#ifndef HAVE_LIBFORM
+#define HAVE_LIBFORM 0
+#endif
+
+#ifndef HAVE_LIBMENU
+#define HAVE_LIBMENU 0
+#endif
+
+#ifndef HAVE_LIBPANEL
+#define HAVE_LIBPANEL 0
 #endif
 
 #ifndef HAVE_LOCALE_H
 #define HAVE_LOCALE_H 0
 #endif
 
 #endif
 
 #ifndef HAVE_LOCALE_H
 #define HAVE_LOCALE_H 0
 #endif
 
+#ifndef HAVE_MENU_H
+#define HAVE_MENU_H 0
+#endif
+
+#ifndef HAVE_NAPMS
+#define HAVE_NAPMS 1
+#endif
+
+#ifndef HAVE_NC_ALLOC_H
+#define HAVE_NC_ALLOC_H 0
+#endif
+
+#ifndef HAVE_PANEL_H
+#define HAVE_PANEL_H 0
+#endif
+
+#ifndef HAVE_WRESIZE
+#define HAVE_WRESIZE 0
+#endif
+
 #ifndef NCURSES_NOMACROS
 #define NCURSES_NOMACROS 0
 #endif
 #ifndef NCURSES_NOMACROS
 #define NCURSES_NOMACROS 0
 #endif
 #include <unistd.h>
 #endif
 
 #include <unistd.h>
 #endif
 
+#include <signal.h>    /* include before curses.h to work around glibc bug */
+
 #include <curses.h>
 #include <curses.h>
+#include <term.h>
 
 #if NCURSES_NOMACROS
 #include <nomacros.h>
 
 #if NCURSES_NOMACROS
 #include <nomacros.h>
@@ -80,6 +119,12 @@ extern char *optarg;
 extern int optind;
 #endif /* HAVE_GETOPT_H */
 
 extern int optind;
 #endif /* HAVE_GETOPT_H */
 
+#if HAVE_LOCALE_H
+#include <locale.h>
+#else
+#define setlocale(name,string) /* nothing */
+#endif
+
 #ifndef GCC_NORETURN
 #define GCC_NORETURN /* nothing */
 #endif
 #ifndef GCC_NORETURN
 #define GCC_NORETURN /* nothing */
 #endif
@@ -87,17 +132,74 @@ extern int optind;
 #define GCC_UNUSED /* nothing */
 #endif
 
 #define GCC_UNUSED /* nothing */
 #endif
 
+#ifndef HAVE_GETNSTR
+#define getnstr(s,n) getstr(s)
+#endif
+
+#ifndef USE_WIDEC_SUPPORT
+#if defined(_XOPEN_SOURCE_EXTENDED) && defined(WACS_ULCORNER)
+#define USE_WIDEC_SUPPORT 1
+#else
+#define USE_WIDEC_SUPPORT 0
+#endif
+#endif
+
+#ifndef HAVE_TYPE_ATTR_T
+#if !USE_WIDEC_SUPPORT
+#define attr_t long
+#endif
+#endif
+
+#ifndef NCURSES_CH_T
+#if !USE_WIDEC_SUPPORT
+#define NCURSES_CH_T chtype
+#else
+#define NCURSES_CH_T cchar_t
+#endif
+#endif
+
+#ifndef CCHARW_MAX
+#define CCHARW_MAX 5
+#endif
+
+#ifndef KEY_MIN
+#define KEY_MIN 256    /* not defined in Solaris 8 */
+#endif
+
+#ifndef getcurx
+#define getcurx(win)            ((win)?(win)->_curx:ERR)
+#define getcury(win)            ((win)?(win)->_cury:ERR)
+#endif
+
+#ifndef getbegx
+#define getbegx(win)            ((win)?(win)->_begx:ERR)
+#define getbegy(win)            ((win)?(win)->_begy:ERR)
+#endif
+
+#ifndef getmaxx
+#define getmaxx(win)            ((win)?((win)->_maxx + 1):ERR)
+#define getmaxy(win)            ((win)?((win)->_maxy + 1):ERR)
+#endif
+
+/* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list
+ * (which is incompatible with legacy usage, doesn't solve any problems).
+ */
+#define tparm3(a,b,c) tparm(a,b,c,0,0,0,0,0,0,0)
+#define tparm2(a,b)   tparm(a,b,0,0,0,0,0,0,0,0)
+
+#define UChar(c)    ((unsigned char)(c))
+
 #define SIZEOF(table)  (sizeof(table)/sizeof(table[0]))
 
 #if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
 #include <nc_alloc.h>
 #else
 #define SIZEOF(table)  (sizeof(table)/sizeof(table[0]))
 
 #if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
 #include <nc_alloc.h>
 #else
-#define typeMalloc(type,n) (type *) malloc(n * sizeof(type))
-#define typeRealloc(type,n,p) (type *) realloc(p, n * sizeof(type))
+#define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
+#define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
 #endif
 
 #ifndef ExitProgram
 #endif
 
 #ifndef ExitProgram
-#define ExitProgram(code) return code
+#define ExitProgram(code) exit(code)
 #endif
 
 #ifndef EXIT_SUCCESS
 #endif
 
 #ifndef EXIT_SUCCESS
index 444da0a14bebe4feb02380ccf193afe176c5e793..ddc6776f9d25a4df9e50466411030abcdb99c1f0 100644 (file)
@@ -2,59 +2,60 @@
  * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
  * to demonstrate an inconsistency between ncurses and SVr4 curses.
  *
  * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
  * to demonstrate an inconsistency between ncurses and SVr4 curses.
  *
- * $Id: testaddch.c,v 1.3 1997/10/18 21:35:15 tom Exp $
+ * $Id: testaddch.c,v 1.5 2002/06/29 23:32:18 tom Exp $
  */
 #include <test.priv.h>
 
  */
 #include <test.priv.h>
 
-static void attr_addstr(const char *s, chtype a)
+static void
+attr_addstr(const char *s, chtype a)
 {
 {
-       while(*s)
-               addch(((unsigned char)(*s++))|a);
+    while (*s)
+       addch(((unsigned char) (*s++)) | a);
 }
 
 int
 main(
        int argc GCC_UNUSED,
 }
 
 int
 main(
        int argc GCC_UNUSED,
-       char *argv[] GCC_UNUSED)
+       char *argv[]GCC_UNUSED)
 {
 {
-       unsigned i;
-       chtype back,set,attr;
-       
-       initscr();
-       start_color();
-       init_pair(1,COLOR_WHITE,COLOR_BLUE);
-       init_pair(2,COLOR_WHITE,COLOR_RED);
-       init_pair(3,COLOR_BLACK,COLOR_MAGENTA);
-       init_pair(4,COLOR_BLACK,COLOR_GREEN);
-       init_pair(5,COLOR_BLACK,COLOR_CYAN);
-       init_pair(6,COLOR_BLACK,COLOR_YELLOW);
-       init_pair(7,COLOR_BLACK,COLOR_WHITE);
-
-       for(i=0; i<8; i++)
-       {
-               back = (i&1) ? A_BOLD|'B' : ' ';
-               set = (i&2) ? A_REVERSE : 0;
-               attr = (i&4) ? COLOR_PAIR(4) : 0;
-
-               bkgdset(back);
-               attrset(set);
-               
-               attr_addstr("Test string with spaces ->   <-\n",attr);
-       }
-       addch('\n');
-       for(i=0; i<8; i++)
-       {
-               back = (i&1) ? A_BOLD|'B'|COLOR_PAIR(1) : ' ';
-               set = (i&2) ? A_REVERSE|COLOR_PAIR(2) : 0;
-               attr = (i&4) ? COLOR_PAIR(4) : 0;
-
-               bkgdset(back);
-               attrset(set);
-               
-               attr_addstr("Test string with spaces ->   <-\n",attr);
-       }
-
-       getch();
-       endwin();
-       return EXIT_SUCCESS;
+    unsigned i;
+    chtype back, set, attr;
+
+    setlocale(LC_ALL, "");
+
+    initscr();
+    start_color();
+    init_pair(1, COLOR_WHITE, COLOR_BLUE);
+    init_pair(2, COLOR_WHITE, COLOR_RED);
+    init_pair(3, COLOR_BLACK, COLOR_MAGENTA);
+    init_pair(4, COLOR_BLACK, COLOR_GREEN);
+    init_pair(5, COLOR_BLACK, COLOR_CYAN);
+    init_pair(6, COLOR_BLACK, COLOR_YELLOW);
+    init_pair(7, COLOR_BLACK, COLOR_WHITE);
+
+    for (i = 0; i < 8; i++) {
+       back = (i & 1) ? A_BOLD | 'B' : ' ';
+       set = (i & 2) ? A_REVERSE : 0;
+       attr = (i & 4) ? COLOR_PAIR(4) : 0;
+
+       bkgdset(back);
+       attrset(set);
+
+       attr_addstr("Test string with spaces ->   <-\n", attr);
+    }
+    addch('\n');
+    for (i = 0; i < 8; i++) {
+       back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' ';
+       set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0;
+       attr = (i & 4) ? COLOR_PAIR(4) : 0;
+
+       bkgdset(back);
+       attrset(set);
+
+       attr_addstr("Test string with spaces ->   <-\n", attr);
+    }
+
+    getch();
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index 5fa054a943a51b2cb7c6724074b142910593ce2e..fd189a94492743370815a0557699824f887b0f83 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
  *
  *  wrs(5/28/93) -- modified to be consistent (perform identically) with either
  *                  PDCurses or under Unix System V, R4
  *
- * $Id: testcurs.c,v 1.22 2000/06/17 23:23:34 tom Exp $
+ * $Id: testcurs.c,v 1.31 2002/09/14 22:45:15 tom Exp $
  */
 
 #include <test.priv.h>
  */
 
 #include <test.priv.h>
@@ -36,7 +36,7 @@ typedef struct commands COMMAND;
 
 const COMMAND command[] =
 {
 
 const COMMAND command[] =
 {
-    {"Intro Test", introTest},
+    {"General Test", introTest},
     {"Pad Test", padTest},
 #if defined(PDCURSES) && !defined(XCURSES)
     {"Resize Test", resizeTest},
     {"Pad Test", padTest},
 #if defined(PDCURSES) && !defined(XCURSES)
     {"Resize Test", resizeTest},
@@ -45,28 +45,45 @@ const COMMAND command[] =
     {"Input Test", inputTest},
     {"Output Test", outputTest}
 };
     {"Input Test", inputTest},
     {"Output Test", outputTest}
 };
-#define MAX_OPTIONS ((sizeof(command)/sizeof(command[0])))
+#define MAX_OPTIONS SIZEOF(command)
+
+#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 */
 
 int width, height;
 
 int
 main(
 
 int width, height;
 
 int
 main(
-    int argc GCC_UNUSED,
-    char *argv[]GCC_UNUSED)
+       int argc GCC_UNUSED,
+       char *argv[]GCC_UNUSED)
 {
     WINDOW *win;
 {
     WINDOW *win;
-    int key, old_option = (-1), new_option = 0;
+    int key;
+    int old_option = (-1);
+    int new_option = 0;
     bool quit = FALSE;
     bool quit = FALSE;
+    unsigned n;
+
+    setlocale(LC_ALL, "");
 
 #ifdef PDCDEBUG
     PDC_debug("testcurs started\n");
 #endif
     if (!initTest(&win))
 
 #ifdef PDCDEBUG
     PDC_debug("testcurs started\n");
 #endif
     if (!initTest(&win))
-       return EXIT_FAILURE;
+       ExitProgram(EXIT_FAILURE);
 
     erase();
     display_menu(old_option, new_option);
 
     erase();
     display_menu(old_option, new_option);
-    while (1) {
+    for (;;) {
 #ifdef A_COLOR
        if (has_colors()) {
            init_pair(1, COLOR_WHITE, COLOR_BLUE);
 #ifdef A_COLOR
        if (has_colors()) {
            init_pair(1, COLOR_WHITE, COLOR_BLUE);
@@ -82,6 +99,17 @@ main(
        keypad(stdscr, TRUE);
        raw();
        key = getch();
        keypad(stdscr, TRUE);
        raw();
        key = getch();
+       if (key < KEY_MIN && key > 0 && isalpha(key)) {
+           if (islower(key))
+               key = toupper(key);
+           for (n = 0; n < MAX_OPTIONS; ++n) {
+               if (key == command[n].text[0]) {
+                   display_menu(old_option, new_option = n);
+                   key = ' ';
+                   break;
+               }
+           }
+       }
        switch (key) {
        case 10:
        case 13:
        switch (key) {
        case 10:
        case 13:
@@ -106,6 +134,9 @@ main(
            quit = TRUE;
            break;
        default:
            quit = TRUE;
            break;
        default:
+           beep();
+           break;
+       case ' ':
            break;
        }
        if (quit == TRUE)
            break;
        }
        if (quit == TRUE)
@@ -118,7 +149,7 @@ main(
 #ifdef XCURSES
     XCursesExit();
 #endif
 #ifdef XCURSES
     XCursesExit();
 #endif
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 
 static void
 }
 
 static void
@@ -186,7 +217,7 @@ introTest(WINDOW *win)
     wrefresh(win);
     cbreak();
     mvwaddstr(win, 1, 1,
     wrefresh(win);
     cbreak();
     mvwaddstr(win, 1, 1,
-       "You should have rectangle in the middle of the screen");
+             "You should have rectangle in the middle of the screen");
     mvwaddstr(win, 2, 1, "You should have heard a beep");
     Continue(win);
     return;
     mvwaddstr(win, 2, 1, "You should have heard a beep");
     Continue(win);
     return;
@@ -197,11 +228,11 @@ scrollTest(WINDOW *win)
 {
     int i;
     int half;
 {
     int i;
     int half;
-    int OldX, OldY;
+    int OldY;
     NCURSES_CONST char *Message = "The window will now scroll slowly";
 
     wclear(win);
     NCURSES_CONST char *Message = "The window will now scroll slowly";
 
     wclear(win);
-    getmaxyx(win, OldY, OldX);
+    OldY = getmaxy(win);
     half = OldY / 2;
     mvwprintw(win, OldY - 2, 1, Message);
     wrefresh(win);
     half = OldY / 2;
     mvwprintw(win, OldY - 2, 1, Message);
     wrefresh(win);
@@ -249,6 +280,8 @@ scrollTest(WINDOW *win)
 static void
 inputTest(WINDOW *win)
 {
 static void
 inputTest(WINDOW *win)
 {
+    int answered;
+    int repeat;
     int w, h, bx, by, sw, sh, i, c, num;
     char buffer[80];
     WINDOW *subWin;
     int w, h, bx, by, sw, sh, i, c, num;
     char buffer[80];
     WINDOW *subWin;
@@ -317,7 +350,7 @@ inputTest(WINDOW *win)
 #if defined(PDCURSES)
     mouse_set(ALL_MOUSE_EVENTS);
 #endif
 #if defined(PDCURSES)
     mouse_set(ALL_MOUSE_EVENTS);
 #endif
-    while (1) {
+    for (;;) {
        wmove(win, 3, 5);
        c = wgetch(win);
        wclrtobot(win);
        wmove(win, 3, 5);
        c = wgetch(win);
        wclrtobot(win);
@@ -365,20 +398,38 @@ inputTest(WINDOW *win)
     mouse_set(0L);
 #endif
     refresh();
     mouse_set(0L);
 #endif
     refresh();
-    wclear(win);
-    mvwaddstr(win, 3, 2, "The window should have moved");
-    mvwaddstr(win, 4, 2,
-       "This text should have appeared without you pressing a key");
-    mvwaddstr(win, 6, 2, "Enter a number then a string separated by space");
-    mvwin(win, 2, 1);
-    wrefresh(win);
-    echo();
-    noraw();
-    num = 0;
-    *buffer = 0;
-    mvwscanw(win, 7, 6, "%d %s", &num, buffer);
-    mvwprintw(win, 8, 6, "String: %s Number: %d", buffer, num);
-    Continue(win);
+
+    repeat = 0;
+    do {
+       static const char *fmt[] = {
+           "%d %10s",
+           "%d %[a-zA-Z]s",
+           "%d %[][a-zA-Z]s",
+           "%d %[^0-9]"
+       };
+       const char *format = fmt[repeat % SIZEOF(fmt)];
+
+       wclear(win);
+       mvwaddstr(win, 3, 2, "The window should have moved");
+       mvwaddstr(win, 4, 2,
+                 "This text should have appeared without you pressing a key");
+       mvwprintw(win, 6, 2,
+                 "Scanning with format \"%s\"", format);
+       mvwin(win, 2 + 2 * (repeat % 4), 1 + 2 * (repeat % 4));
+       erase();
+       refresh();
+       wrefresh(win);
+       echo();
+       noraw();
+       num = 0;
+       *buffer = 0;
+       answered = mvwscanw(win, 7, 6, strdup(format), &num, buffer);
+       mvwprintw(win, 8, 6,
+                 "String: %s Number: %d (%d values read)",
+                 buffer, num, answered);
+       Continue(win);
+       ++repeat;
+    } while (answered > 0);
 }
 
 static void
 }
 
 static void
@@ -392,7 +443,7 @@ outputTest(WINDOW *win)
     nl();
     wclear(win);
     mvwaddstr(win, 1, 1,
     nl();
     wclear(win);
     mvwaddstr(win, 1, 1,
-       "You should now have a screen in the upper left corner, and this text should have wrapped");
+             "You should now have a screen in the upper left corner, and this text should have wrapped");
     mvwin(win, 2, 1);
     waddstr(win, "\nThis text should be down\n");
     waddstr(win, "and broken into two here ^");
     mvwin(win, 2, 1);
     waddstr(win, "\nThis text should be down\n");
     waddstr(win, "and broken into two here ^");
@@ -409,7 +460,7 @@ outputTest(WINDOW *win)
 
     if (LINES < 24 || COLS < 75) {
        mvwaddstr(win, 5, 1,
 
     if (LINES < 24 || COLS < 75) {
        mvwaddstr(win, 5, 1,
-           "Some tests have been skipped as they require a");
+                 "Some tests have been skipped as they require a");
        mvwaddstr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS");
        Continue(win);
     } else {
        mvwaddstr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS");
        Continue(win);
     } else {
@@ -429,7 +480,7 @@ outputTest(WINDOW *win)
 #endif
        wclear(win1);
        mvwaddstr(win1, 5, 1,
 #endif
        wclear(win1);
        mvwaddstr(win1, 5, 1,
-           "This text should appear; using overlay option");
+                 "This text should appear; using overlay option");
        copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE);
 
 #if defined(PDCURSES) && !defined(XCURSES)
        copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE);
 
 #if defined(PDCURSES) && !defined(XCURSES)
@@ -444,7 +495,7 @@ outputTest(WINDOW *win)
        wclear(win1);
        wattron(win1, A_BLINK);
        mvwaddstr(win1, 4, 1,
        wclear(win1);
        wattron(win1, A_BLINK);
        mvwaddstr(win1, 4, 1,
-           "This blinking text should appear in only the second window");
+                 "This blinking text should appear in only the second window");
        wattroff(win1, A_BLINK);
        mvwin(win1, by, bx);
        overlay(win, win1);
        wattroff(win1, A_BLINK);
        mvwin(win1, by, bx);
        overlay(win, win1);
@@ -490,7 +541,7 @@ outputTest(WINDOW *win)
     wclear(win);
     wmove(win, 2, 2);
     wprintw(win, "This is a formatted string in a window: %d %s\n", 42,
     wclear(win);
     wmove(win, 2, 2);
     wprintw(win, "This is a formatted string in a window: %d %s\n", 42,
-       "is it");
+           "is it");
     mvwaddstr(win, 10, 1, "Enter a string: ");
     wrefresh(win);
     noraw();
     mvwaddstr(win, 10, 1, "Enter a string: ");
     wrefresh(win);
     noraw();
@@ -514,7 +565,7 @@ outputTest(WINDOW *win)
        wclear(win);
        curs_set(0);
        mvwaddstr(win, 1, 1,
        wclear(win);
        curs_set(0);
        mvwaddstr(win, 1, 1,
-           "The cursor should have disappeared (invisible)");
+                 "The cursor should have disappeared (invisible)");
        Continue(win);
     }
 
        Continue(win);
     }
 
@@ -608,7 +659,7 @@ padTest(WINDOW *dummy GCC_UNUSED)
     mvwaddstr(pad, 5, 2, "This is a new pad");
     wattrset(pad, A_NORMAL);
     mvwaddstr(pad, 8, 0,
     mvwaddstr(pad, 5, 2, "This is a new pad");
     wattrset(pad, A_NORMAL);
     mvwaddstr(pad, 8, 0,
-       "The end of this line should be truncated here:except  now");
+             "The end of this line should be truncated here:except  now");
     mvwaddstr(pad, 11, 1, "This line should not appear.It will now");
     wmove(pad, 10, 1);
     wclrtoeol(pad);
     mvwaddstr(pad, 11, 1, "This line should not appear.It will now");
     wmove(pad, 10, 1);
     wclrtoeol(pad);
@@ -652,6 +703,6 @@ display_menu(int old_option, int new_option)
     mvaddstr(5 + new_option, 25, command[new_option].text);
     attrset(A_NORMAL);
     mvaddstr(13, 3,
     mvaddstr(5 + new_option, 25, command[new_option].text);
     attrset(A_NORMAL);
     mvaddstr(13, 3,
-       "Use Up and Down Arrows to select - Enter to run - Q to quit");
+            "Use Up and Down Arrows to select - Enter to run - Q to quit");
     refresh();
 }
     refresh();
 }
index 8420ea0fc55a1f925c40f160779290a3449c2bab..7bce567b4431308a4e2f5b09220542bcffa32f2b 100644 (file)
@@ -2,37 +2,40 @@
  * Date:  1997/03/17
  * From:  bayern@morpheus.cis.yale.edu
  *
  * Date:  1997/03/17
  * From:  bayern@morpheus.cis.yale.edu
  *
- * $Id: testscanw.c,v 1.5 1997/09/20 14:16:20 tom Exp $
+ * $Id: testscanw.c,v 1.9 2002/06/29 23:32:18 tom Exp $
  */
 #include <test.priv.h>
 #include <ctype.h>
 
  */
 #include <test.priv.h>
 #include <ctype.h>
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
 {
-       long badanswer = 1;
-       long *response = &badanswer;
+    long badanswer = 1;
+    long *response = &badanswer;
 
 
-       initscr();
-       scrollok(stdscr, TRUE);
-       idlok(stdscr, TRUE);
-       echo();
+    setlocale(LC_ALL, "");
+
+    initscr();
+    scrollok(stdscr, TRUE);
+    idlok(stdscr, TRUE);
+    echo();
 
 #if 0
 
 #if 0
-       trace(TRACE_UPDATE|TRACE_CALLS);
+    trace(TRACE_UPDATE | TRACE_CALLS);
 #endif
 #endif
-       while (argc > 1) {
-               if (isdigit(*argv[1]))
-                       move(atoi(argv[1]), 0);
-               else if (!strcmp(argv[1], "-k"))
-                       keypad(stdscr, TRUE);
-               argc--, argv++;
-       }
+    while (argc > 1) {
+       if (isdigit(UChar(*argv[1])))
+           move(atoi(argv[1]), 0);
+       else if (!strcmp(argv[1], "-k"))
+           keypad(stdscr, TRUE);
+       argc--, argv++;
+    }
 
 
-       while (badanswer) {
-               printw("Enter a number (0 to quit):\n");
-               printw("--> ");
-               scanw("%20ld", response);    /* yes, it's a pointer */
-       }
-       endwin();
-       return EXIT_SUCCESS;
+    while (badanswer) {
+       printw("Enter a number (0 to quit):\n");
+       printw("--> ");
+       scanw("%20ld", response);       /* yes, it's a pointer */
+    }
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
 }
 }
index d6761cd0421940ffc9cb1d16938f5c67f6929ea0..451d17f3858c0a217b573334c9baa1e99785e7e6 100755 (executable)
@@ -1,16 +1,44 @@
-#!/usr/bin/perl
-#
+#!/usr/bin/perl -w
+# $Id: tracemunch,v 1.3 2002/09/22 16:31:18 tom Exp $
+##############################################################################
+# Copyright (c) 1998,2002 Free Software Foundation, Inc.                     #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
 # tracemunch -- compactify ncurses trace logs
 #
 # 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.
 #
 # tracemunch -- compactify ncurses trace logs
 #
 # 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.
 #
-# ($Id: tracemunch,v 1.2 1995/10/06 15:02:37 esr Exp $)
 
 $putattr="PutAttrChar\\('(.)' = 0x.., {A_NORMAL}\\) at \\(([0-9]+), ([0-9]+)\\)";
 $waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
 
 
 $putattr="PutAttrChar\\('(.)' = 0x.., {A_NORMAL}\\) at \\(([0-9]+), ([0-9]+)\\)";
 $waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
 
+$win_nums=0;
+
 sub transaddr
 {
     $arg = $_[0];
 sub transaddr
 {
     $arg = $_[0];
@@ -18,6 +46,9 @@ sub transaddr
     $arg =~ s/$curscr/curscr/ if ($curscr);
     $arg =~ s/$newscr/newscr/ if ($newscr);
     $arg =~ s/$stdscr/stdscr/ if ($stdscr);
     $arg =~ s/$curscr/curscr/ if ($curscr);
     $arg =~ s/$newscr/newscr/ if ($newscr);
     $arg =~ s/$stdscr/stdscr/ if ($stdscr);
+    for $n (0..$#win_addr) {
+       $arg =~ s/$win_addr[$n]/window$n/ if $win_addr[$n];
+    }
 
     return $arg;
 }
 
     return $arg;
 }
@@ -26,15 +57,37 @@ while (<STDIN>)
 {
 CLASSIFY: {
        # Transform window pointer addresses so it's easier to compare logs
 {
 CLASSIFY: {
        # Transform window pointer addresses so it's easier to compare logs
-       $awaiting = "curscr" if ($_ =~ /creating curscr/);
-       $awaiting = "newscr" if ($_ =~ /creating newscr/);
-       $awaiting = "stdscr" if ($_ =~ /creating stdscr/);
-       if ($awaiting && $_ =~ /newwin: returned window is 0x([0-9a-f]+)/)
-       {
-           $curscr = "0x$1" if ($awaiting eq "curscr");
-           $newscr = "0x$1" if ($awaiting eq "newscr");
-           $stdscr = "0x$1" if ($awaiting eq "stdscr");
+       $awaiting = "curscr" if ($_ =~ /creating curscr/);
+       $awaiting = "newscr" if ($_ =~ /creating newscr/);
+       $awaiting = "stdscr" if ($_ =~ /creating stdscr/);
+       if ($_ =~ /^create :window 0x([0-9a-f]+)/) {
+           $addr = "0x$1";
+           if ($awaiting eq "curscr") {
+               $curscr = $addr;
+           } elsif ($awaiting eq "newscr") {
+               $newscr = $addr;
+           } elsif ($awaiting eq "stdscr") {
+               $stdscr = $addr;
+           } else {
+               $win_addr[$win_nums] = $addr;
+               $win_nums = $win_nums + 1;
+           }
            $awaiting = "";
            $awaiting = "";
+       } elsif ($_ =~ /^\.\.\.deleted win=0x([0-9a-f]+)/) {
+           $addr = "0x$1";
+           if ($addr eq $curscr) {
+               $curscr = "";
+           } elsif ($addr eq $newscr) {
+               $newscr = "";
+           } elsif ($addr eq $stdscr) {
+               $stdscr = "";
+           } else {
+               for $n (0..$#win_addr) {
+                   if ($win_addr[$n] eq $addr) {
+                       $win_addr[$n] = "";
+                   }
+               }
+           }
        }
 
        # Compactify runs of PutAttrChar calls (TR_CHARPUT)
        }
 
        # Compactify runs of PutAttrChar calls (TR_CHARPUT)
index 4c1344cb5d3737f2ce3543fd4ec4334c78f9ac8d..a6303c1d30d123b4cd812bb8dd3b3dcbeec7120f 100644 (file)
  * scroll operation worked, and the refresh() code only had to do a
  * partial repaint.
  *
  * scroll operation worked, and the refresh() code only had to do a
  * partial repaint.
  *
- * $Id: view.c,v 1.31 2000/09/02 18:14:52 tom Exp $
+ * $Id: view.c,v 1.53 2002/06/29 23:28:27 tom Exp $
  */
 
  */
 
-#include <test.priv.h>
-
-#include <string.h>
 #include <ctype.h>
 #include <ctype.h>
-#include <signal.h>
+#include <time.h>
+
+#include <test.priv.h>
 
 #if HAVE_TERMIOS_H
 # include <termios.h>
 
 #if HAVE_TERMIOS_H
 # include <termios.h>
@@ -44,6 +43,8 @@
 # endif
 #endif
 
 # endif
 #endif
 
+#define my_pair 1
+
 /* This is needed to compile 'struct winsize' */
 #if NEED_PTEM_H
 #include <sys/stream.h>
 /* This is needed to compile 'struct winsize' */
 #if NEED_PTEM_H
 #include <sys/stream.h>
@@ -51,7 +52,7 @@
 #endif
 
 static RETSIGTYPE finish(int sig) GCC_NORETURN;
 #endif
 
 static RETSIGTYPE finish(int sig) GCC_NORETURN;
-static void show_all(void);
+static void show_all(const char *tag);
 
 #if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZETERM
 #define CAN_RESIZE 1
 
 #if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZETERM
 #define CAN_RESIZE 1
@@ -64,13 +65,13 @@ static RETSIGTYPE adjust(int sig);
 static int interrupted;
 #endif
 
 static int interrupted;
 #endif
 
-static int waiting;
-static int shift;
-static int utf8_mode = FALSE;
+static bool waiting = FALSE;
+static int shift = 0;
+static bool try_color = FALSE;
 
 static char *fname;
 
 static char *fname;
-static chtype **lines;
-static chtype **lptr;
+static NCURSES_CH_T **my_lines;
+static NCURSES_CH_T **lptr;
 
 static void
 usage(void)
 
 static void
 usage(void)
@@ -80,28 +81,37 @@ usage(void)
        "Usage: view [options] file"
        ,""
        ,"Options:"
        "Usage: view [options] file"
        ,""
        ,"Options:"
+       ," -c       use color if terminal supports it"
+       ," -i       ignore INT, QUIT, TERM signals"
        ," -n NUM   specify maximum number of lines (default 1000)"
 #if defined(KEY_RESIZE)
        ," -n NUM   specify maximum number of lines (default 1000)"
 #if defined(KEY_RESIZE)
-       ," -r       use experimental KEY_RESIZE rather than our own handler"
+       ," -r       use old-style sigwinch handler rather than KEY_RESIZE"
 #endif
 #ifdef TRACE
        ," -t       trace screen updates"
        ," -T NUM   specify trace mask"
 #endif
 #endif
 #ifdef TRACE
        ," -t       trace screen updates"
        ," -T NUM   specify trace mask"
 #endif
-       ," -u       translate UTF-8 data"
     };
     size_t n;
     for (n = 0; n < SIZEOF(msg); n++)
        fprintf(stderr, "%s\n", msg[n]);
     };
     size_t n;
     for (n = 0; n < SIZEOF(msg); n++)
        fprintf(stderr, "%s\n", msg[n]);
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static int
 }
 
 static int
-ch_len(chtype * src)
+ch_len(NCURSES_CH_T * src)
 {
     int result = 0;
 {
     int result = 0;
+#if USE_WIDEC_SUPPORT
+#endif
+
+#if USE_WIDEC_SUPPORT
+    while (getcchar(src++, NULL, NULL, NULL, NULL) > 0)
+       result++;
+#else
     while (*src++)
        result++;
     while (*src++)
        result++;
+#endif
     return result;
 }
 
     return result;
 }
 
@@ -109,78 +119,56 @@ ch_len(chtype * src)
  * Allocate a string into an array of chtype's.  If UTF-8 mode is
  * active, translate the string accordingly.
  */
  * Allocate a string into an array of chtype's.  If UTF-8 mode is
  * active, translate the string accordingly.
  */
-static chtype *
+static NCURSES_CH_T *
 ch_dup(char *src)
 {
     unsigned len = strlen(src);
 ch_dup(char *src)
 {
     unsigned len = strlen(src);
-    chtype *dst = typeMalloc(chtype, len + 1);
+    NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
     unsigned j, k;
     unsigned j, k;
-    unsigned utf_count = 0;
-    unsigned utf_char = 0;
-
-#define UCS_REPL 0xfffd
+#if USE_WIDEC_SUPPORT
+    wchar_t wstr[CCHARW_MAX + 1];
+    wchar_t wch;
+    int l = 0;
+    mbstate_t state;
+    size_t rc;
+    int width;
+#endif
 
 
+#if USE_WIDEC_SUPPORT
+    memset(&state, 0, sizeof(state));
+#endif
     for (j = k = 0; j < len; j++) {
     for (j = k = 0; j < len; j++) {
-       if (utf8_mode) {
-           unsigned c = src[j] & 0xff;
-           /* Combine UTF-8 into Unicode */
-           if (c < 0x80) {
-               /* We received an ASCII character */
-               if (utf_count > 0)
-                   dst[k++] = UCS_REPL;        /* prev. sequence incomplete */
-               dst[k++] = c;
-               utf_count = 0;
-           } else if (c < 0xc0) {
-               /* We received a continuation byte */
-               if (utf_count < 1) {
-                   dst[k++] = UCS_REPL;        /* ... unexpectedly */
-               } else {
-                   if (!utf_char && !((c & 0x7f) >> (7 - utf_count))) {
-                       utf_char = UCS_REPL;
-                   }
-                   /* characters outside UCS-2 become UCS_REPL */
-                   if (utf_char > 0x03ff) {
-                       /* value would be >0xffff */
-                       utf_char = UCS_REPL;
-                   } else {
-                       utf_char <<= 6;
-                       utf_char |= (c & 0x3f);
-                   }
-                   utf_count--;
-                   if (utf_count == 0)
-                       dst[k++] = utf_char;
-               }
-           } else {
-               /* We received a sequence start byte */
-               if (utf_count > 0)
-                   dst[k++] = UCS_REPL;        /* prev. sequence incomplete */
-               if (c < 0xe0) {
-                   utf_count = 1;
-                   utf_char = (c & 0x1f);
-                   if (!(c & 0x1e))
-                       utf_char = UCS_REPL;    /* overlong sequence */
-               } else if (c < 0xf0) {
-                   utf_count = 2;
-                   utf_char = (c & 0x0f);
-               } else if (c < 0xf8) {
-                   utf_count = 3;
-                   utf_char = (c & 0x07);
-               } else if (c < 0xfc) {
-                   utf_count = 4;
-                   utf_char = (c & 0x03);
-               } else if (c < 0xfe) {
-                   utf_count = 5;
-                   utf_char = (c & 0x01);
-               } else {
-                   dst[k++] = UCS_REPL;
-                   utf_count = 0;
-               }
-           }
-       } else {
-           dst[k++] = src[j];
+#if USE_WIDEC_SUPPORT
+       rc = mbrtowc(&wch, src + j, len - j, &state);
+       if (rc == (size_t) -1 || rc == (size_t) -2)
+           break;
+       j += rc - 1;
+       if ((width = wcwidth(wch)) < 0)
+           break;
+       if ((width > 0 && l > 0) || l == CCHARW_MAX) {
+           wstr[l] = L'\0';
+           l = 0;
+           if (setcchar(dst + k, wstr, 0, 0, NULL) != OK)
+               break;
+           ++k;
        }
        }
+       if (width == 0 && l == 0)
+           wstr[l++] = L' ';
+       wstr[l++] = wch;
+#else
+       dst[k++] = src[j];
+#endif
     }
     }
+#if USE_WIDEC_SUPPORT
+    if (l > 0) {
+       wstr[l] = L'\0';
+       if (setcchar(dst + k, wstr, 0, 0, NULL) == OK)
+           ++k;
+    }
+    setcchar(dst + k, L"", 0, 0, NULL);
+#else
     dst[k] = 0;
     dst[k] = 0;
+#endif
     return dst;
 }
 
     return dst;
 }
 
@@ -191,22 +179,44 @@ main(int argc, char *argv[])
     FILE *fp;
     char buf[BUFSIZ];
     int i;
     FILE *fp;
     char buf[BUFSIZ];
     int i;
-    chtype **olptr;
-    int done = FALSE;
+    int my_delay = 0;
+    NCURSES_CH_T **olptr;
     int length = 0;
     int length = 0;
+    int value = 0;
+    bool done = FALSE;
+    bool got_number = FALSE;
 #if CAN_RESIZE
 #if CAN_RESIZE
-    bool use_resize = TRUE;
+    bool nonposix_resize = FALSE;
+#endif
+    const char *my_label = "Input";
+
+    setlocale(LC_ALL, "");
+
+#ifndef NCURSES_VERSION
+    /*
+     * We know ncurses will catch SIGINT if we don't establish our own handler.
+     * Other versions of curses may/may not catch it.
+     */
+    (void) signal(SIGINT, finish);     /* arrange interrupts to terminate */
 #endif
 
 #endif
 
-    while ((i = getopt(argc, argv, "n:rtT:u")) != EOF) {
+    while ((i = getopt(argc, argv, "cin:rtT:")) != EOF) {
        switch (i) {
        switch (i) {
+       case 'c':
+           try_color = TRUE;
+           break;
+       case 'i':
+           signal(SIGINT, SIG_IGN);
+           signal(SIGQUIT, SIG_IGN);
+           signal(SIGTERM, SIG_IGN);
+           break;
        case 'n':
            if ((MAXLINES = atoi(optarg)) < 1)
                usage();
            break;
 #if CAN_RESIZE
        case 'r':
        case 'n':
            if ((MAXLINES = atoi(optarg)) < 1)
                usage();
            break;
 #if CAN_RESIZE
        case 'r':
-           use_resize = FALSE;
+           nonposix_resize = TRUE;
            break;
 #endif
 #ifdef TRACE
            break;
 #endif
 #ifdef TRACE
@@ -217,9 +227,6 @@ main(int argc, char *argv[])
            trace(TRACE_CALLS);
            break;
 #endif
            trace(TRACE_CALLS);
            break;
 #endif
-       case 'u':
-           utf8_mode = TRUE;
-           break;
        default:
            usage();
        }
        default:
            usage();
        }
@@ -227,23 +234,21 @@ main(int argc, char *argv[])
     if (optind + 1 != argc)
        usage();
 
     if (optind + 1 != argc)
        usage();
 
-    if ((lines = typeMalloc(chtype *, MAXLINES + 2)) == 0)
+    if ((my_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
        usage();
 
     fname = argv[optind];
     if ((fp = fopen(fname, "r")) == 0) {
        perror(fname);
        usage();
 
     fname = argv[optind];
     if ((fp = fopen(fname, "r")) == 0) {
        perror(fname);
-       return EXIT_FAILURE;
+       ExitProgram(EXIT_FAILURE);
     }
     }
-
-    (void) signal(SIGINT, finish);     /* arrange interrupts to terminate */
 #if CAN_RESIZE
 #if CAN_RESIZE
-    if (use_resize)
+    if (nonposix_resize)
        (void) signal(SIGWINCH, adjust);        /* arrange interrupts to resize */
 #endif
 
     /* slurp the file */
        (void) signal(SIGWINCH, adjust);        /* arrange interrupts to resize */
 #endif
 
     /* slurp the file */
-    for (lptr = &lines[0]; (lptr - lines) < MAXLINES; lptr++) {
+    for (lptr = &my_lines[0]; (lptr - my_lines) < MAXLINES; lptr++) {
        char temp[BUFSIZ], *s, *d;
        int col;
 
        char temp[BUFSIZ], *s, *d;
        int col;
 
@@ -259,40 +264,57 @@ main(int argc, char *argv[])
                col = (col | 7) + 1;
                while ((d - temp) != col)
                    *d++ = ' ';
                col = (col | 7) + 1;
                while ((d - temp) != col)
                    *d++ = ' ';
-           } else if (isprint(*d) || utf8_mode) {
+           } else
+#if USE_WIDEC_SUPPORT
+               col++, d++;
+#else
+           if (isprint(UChar(*d))) {
                col++;
                d++;
            } else {
                col++;
                d++;
            } else {
-               sprintf(d, "\\%03o", *s & 0xff);
+               sprintf(d, "\\%03o", UChar(*s));
                d += strlen(d);
                col = (d - temp);
            }
                d += strlen(d);
                col = (d - temp);
            }
+#endif
        }
        *lptr = ch_dup(temp);
     }
     (void) fclose(fp);
        }
        *lptr = ch_dup(temp);
     }
     (void) fclose(fp);
-    length = lptr - lines;
+    length = lptr - my_lines;
 
     (void) initscr();          /* initialize the curses library */
     keypad(stdscr, TRUE);      /* enable keyboard mapping */
     (void) nonl();             /* tell curses not to do NL->CR/NL on output */
     (void) cbreak();           /* take input chars one at a time, no wait for \n */
     (void) noecho();           /* don't echo input */
 
     (void) initscr();          /* initialize the curses library */
     keypad(stdscr, TRUE);      /* enable keyboard mapping */
     (void) nonl();             /* tell curses not to do NL->CR/NL on output */
     (void) cbreak();           /* take input chars one at a time, no wait for \n */
     (void) noecho();           /* don't echo input */
+    nodelay(stdscr, TRUE);
     idlok(stdscr, TRUE);       /* allow use of insert/delete line */
 
     idlok(stdscr, TRUE);       /* allow use of insert/delete line */
 
-    lptr = lines;
+    if (try_color) {
+       if (has_colors()) {
+           start_color();
+           init_pair(my_pair, COLOR_WHITE, COLOR_BLUE);
+           bkgd(COLOR_PAIR(my_pair));
+       } else {
+           try_color = FALSE;
+       }
+    }
+
+    lptr = my_lines;
     while (!done) {
        int n, c;
     while (!done) {
        int n, c;
-       bool got_number;
 
 
-       show_all();
+       if (!got_number)
+           show_all(my_label);
 
 
-       got_number = FALSE;
        n = 0;
        for (;;) {
 #if CAN_RESIZE
        n = 0;
        for (;;) {
 #if CAN_RESIZE
-           if (interrupted)
+           if (interrupted) {
                adjust(0);
                adjust(0);
+               my_label = "interrupt";
+           }
 #endif
            waiting = TRUE;
            c = getch();
 #endif
            waiting = TRUE;
            c = getch();
@@ -303,20 +325,25 @@ main(int argc, char *argv[])
                    clrtoeol();
                }
                addch(c);
                    clrtoeol();
                }
                addch(c);
-               n = 10 * n + (c - '0');
+               value = 10 * value + (c - '0');
                got_number = TRUE;
            } else
                break;
        }
                got_number = TRUE;
            } else
                break;
        }
-       if (!got_number && n == 0)
+       if (got_number && value) {
+           n = value;
+       } else {
            n = 1;
            n = 1;
+       }
 
 
+       if (c != ERR)
+           my_label = keyname(c);
        switch (c) {
        case KEY_DOWN:
        case 'n':
            olptr = lptr;
            for (i = 0; i < n; i++)
        switch (c) {
        case KEY_DOWN:
        case 'n':
            olptr = lptr;
            for (i = 0; i < n; i++)
-               if ((lptr - lines) < (length - LINES + 1))
+               if ((lptr - my_lines) < (length - LINES + 1))
                    lptr++;
                else
                    break;
                    lptr++;
                else
                    break;
@@ -327,7 +354,7 @@ main(int argc, char *argv[])
        case 'p':
            olptr = lptr;
            for (i = 0; i < n; i++)
        case 'p':
            olptr = lptr;
            for (i = 0; i < n; i++)
-               if (lptr > lines)
+               if (lptr > my_lines)
                    lptr--;
                else
                    break;
                    lptr--;
                else
                    break;
@@ -336,28 +363,29 @@ main(int argc, char *argv[])
 
        case 'h':
        case KEY_HOME:
 
        case 'h':
        case KEY_HOME:
-           lptr = lines;
+           lptr = my_lines;
            break;
 
        case 'e':
        case KEY_END:
            if (length > LINES)
            break;
 
        case 'e':
        case KEY_END:
            if (length > LINES)
-               lptr = lines + length - LINES + 1;
+               lptr = my_lines + length - LINES + 1;
            else
            else
-               lptr = lines;
+               lptr = my_lines;
            break;
 
        case 'r':
        case KEY_RIGHT:
            break;
 
        case 'r':
        case KEY_RIGHT:
-           shift++;
+           shift += n;
            break;
 
        case 'l':
        case KEY_LEFT:
            break;
 
        case 'l':
        case KEY_LEFT:
-           if (shift)
-               shift--;
-           else
+           shift -= n;
+           if (shift < 0) {
+               shift = 0;
                beep();
                beep();
+           }
            break;
 
        case 'q':
            break;
 
        case 'q':
@@ -368,12 +396,29 @@ main(int argc, char *argv[])
        case KEY_RESIZE:        /* ignore this; ncurses will repaint */
            break;
 #endif
        case KEY_RESIZE:        /* ignore this; ncurses will repaint */
            break;
 #endif
-#if CAN_RESIZE
+       case 's':
+           if (got_number) {
+               halfdelay(my_delay = n);
+           } else {
+               nodelay(stdscr, FALSE);
+               my_delay = -1;
+           }
+           break;
+       case ' ':
+           nodelay(stdscr, TRUE);
+           my_delay = 0;
+           break;
        case ERR:
        case ERR:
+           if (!my_delay)
+               napms(50);
            break;
            break;
-#endif
        default:
            beep();
        default:
            beep();
+           break;
+       }
+       if (c >= KEY_MIN || (c > 0 && !isdigit(c))) {
+           got_number = FALSE;
+           value = 0;
        }
     }
 
        }
     }
 
@@ -384,14 +429,20 @@ static RETSIGTYPE
 finish(int sig)
 {
     endwin();
 finish(int sig)
 {
     endwin();
-    exit(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+    ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
 }
 
 #if CAN_RESIZE
 /*
  * This uses functions that are "unsafe", but it seems to work on SunOS and
 }
 
 #if CAN_RESIZE
 /*
  * This uses functions that are "unsafe", but it seems to work on SunOS and
- * Linux.  The 'wrefresh(curscr)' is needed to force the refresh to start from
- * the top of the screen -- some xterms mangle the bitmap while resizing.
+ * Linux.  Usually:  the "unsafe" refers to the functions that POSIX lists
+ * which may be called from a signal handler.  Those do not include buffered
+ * I/O, which is used for instance in wrefresh().  To be really portable, you
+ * should use the KEY_RESIZE return (which relies on ncurses' sigwinch
+ * handler).
+ *
+ * The 'wrefresh(curscr)' is needed to force the refresh to start from the top
+ * of the screen -- some xterms mangle the bitmap while resizing.
  */
 static RETSIGTYPE
 adjust(int sig)
  */
 static RETSIGTYPE
 adjust(int sig)
@@ -400,9 +451,9 @@ adjust(int sig)
        struct winsize size;
 
        if (ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) {
        struct winsize size;
 
        if (ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) {
-           resizeterm(size.ws_row, size.ws_col);
+           resize_term(size.ws_row, size.ws_col);
            wrefresh(curscr);   /* Linux needs this */
            wrefresh(curscr);   /* Linux needs this */
-           show_all();
+           show_all(sig ? "SIGWINCH" : "interrupt");
        }
        interrupted = FALSE;
     } else {
        }
        interrupted = FALSE;
     } else {
@@ -413,14 +464,15 @@ adjust(int sig)
 #endif /* CAN_RESIZE */
 
 static void
 #endif /* CAN_RESIZE */
 
 static void
-show_all(void)
+show_all(const char *tag)
 {
     int i;
     char temp[BUFSIZ];
 {
     int i;
     char temp[BUFSIZ];
-    chtype *s;
+    NCURSES_CH_T *s;
+    time_t this_time;
 
 #if CAN_RESIZE
 
 #if CAN_RESIZE
-    sprintf(temp, "(%3dx%3d) col %d ", LINES, COLS, shift);
+    sprintf(temp, "%s (%3dx%3d) col %d ", tag, LINES, COLS, shift);
     i = strlen(temp);
     sprintf(temp + i, "view %.*s", (int) (sizeof(temp) - 7 - i), fname);
 #else
     i = strlen(temp);
     sprintf(temp + i, "view %.*s", (int) (sizeof(temp) - 7 - i), fname);
 #else
@@ -429,16 +481,29 @@ show_all(void)
     move(0, 0);
     printw("%.*s", COLS, temp);
     clrtoeol();
     move(0, 0);
     printw("%.*s", COLS, temp);
     clrtoeol();
+    this_time = time((time_t *) 0);
+    strcpy(temp, ctime(&this_time));
+    if ((i = strlen(temp)) != 0) {
+       temp[--i] = 0;
+       if (move(0, COLS - i - 2) != ERR)
+           printw("  %s", temp);
+    }
 
     scrollok(stdscr, FALSE);   /* prevent screen from moving */
     for (i = 1; i < LINES; i++) {
        move(i, 0);
 
     scrollok(stdscr, FALSE);   /* prevent screen from moving */
     for (i = 1; i < LINES; i++) {
        move(i, 0);
-       printw("%3ld:", (long) (lptr + i - lines));
+       printw("%3ld:", (long) (lptr + i - my_lines));
        clrtoeol();
        if ((s = lptr[i - 1]) != 0) {
            int len = ch_len(s);
            if (len > shift)
        clrtoeol();
        if ((s = lptr[i - 1]) != 0) {
            int len = ch_len(s);
            if (len > shift)
+#if USE_WIDEC_SUPPORT
+               add_wchstr(s + shift);
+#else
                addchstr(s + shift);
                addchstr(s + shift);
+#endif
+           if (try_color)
+               wchgat(stdscr, -1, A_NORMAL, my_pair, NULL);
        }
     }
     setscrreg(1, LINES - 1);
        }
     }
     setscrreg(1, LINES - 1);
index 142982aef22158049768d429ca65de614e3636b3..651ccc15fba59d074e78038752417b8850b39d9c 100644 (file)
@@ -34,18 +34,15 @@ Options:
   traces will be dumped.  The program stops and waits for one character of
   input at the beginning and end of the interval.
 
   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.31 2000/09/02 18:41:01 tom Exp $
+  $Id: worm.c,v 1.37 2002/06/29 23:32:18 tom Exp $
 */
 
 #include <test.priv.h>
 
 */
 
 #include <test.priv.h>
 
-#include <signal.h>
-
 static chtype flavor[] =
 {
     'O', '*', '#', '$', '%', '0', '@',
 };
 static chtype flavor[] =
 {
     'O', '*', '#', '$', '%', '0', '@',
 };
-#define MAXWORMS       (sizeof(flavor)/sizeof(chtype))
 static const short xinc[] =
 {
     1, 1, 1, 0, -1, -1, -1, 0
 static const short xinc[] =
 {
     1, 1, 1, 0, -1, -1, -1, 0
@@ -166,7 +163,7 @@ static RETSIGTYPE
 onsig(int sig GCC_UNUSED)
 {
     cleanup();
 onsig(int sig GCC_UNUSED)
 {
     cleanup();
-    exit(EXIT_FAILURE);
+    ExitProgram(EXIT_FAILURE);
 }
 
 static float
 }
 
 static float
@@ -188,6 +185,8 @@ main(int argc, char *argv[])
     short *ip;
     int last, bottom;
 
     short *ip;
     int last, bottom;
 
+    setlocale(LC_ALL, "");
+
     for (x = 1; x < argc; x++) {
        char *p;
        p = argv[x];
     for (x = 1; x < argc; x++) {
        char *p;
        p = argv[x];
@@ -202,7 +201,7 @@ main(int argc, char *argv[])
                goto usage;
            if ((length = atoi(argv[x])) < 2 || length > 1024) {
                fprintf(stderr, "%s: Invalid length\n", *argv);
                goto usage;
            if ((length = atoi(argv[x])) < 2 || length > 1024) {
                fprintf(stderr, "%s: Invalid length\n", *argv);
-               return EXIT_FAILURE;
+               ExitProgram(EXIT_FAILURE);
            }
            break;
        case 'n':
            }
            break;
        case 'n':
@@ -210,7 +209,7 @@ main(int argc, char *argv[])
                goto usage;
            if ((number = atoi(argv[x])) < 1 || number > 40) {
                fprintf(stderr, "%s: Invalid number of worms\n", *argv);
                goto usage;
            if ((number = atoi(argv[x])) < 1 || number > 40) {
                fprintf(stderr, "%s: Invalid number of worms\n", *argv);
-               return EXIT_FAILURE;
+               ExitProgram(EXIT_FAILURE);
            }
            break;
        case 't':
            }
            break;
        case 't':
@@ -231,8 +230,8 @@ main(int argc, char *argv[])
        default:
          usage:
            fprintf(stderr,
        default:
          usage:
            fprintf(stderr,
-               "usage: %s [-field] [-length #] [-number #] [-trail]\n", *argv);
-           return EXIT_FAILURE;
+                   "usage: %s [-field] [-length #] [-number #] [-trail]\n", *argv);
+           ExitProgram(EXIT_FAILURE);
        }
     }
 
        }
     }
 
@@ -287,14 +286,14 @@ main(int argc, char *argv[])
        w->orientation = w->head = 0;
        if (!(ip = typeMalloc(short, (length + 1)))) {
            fprintf(stderr, "%s: out of memory\n", *argv);
        w->orientation = w->head = 0;
        if (!(ip = typeMalloc(short, (length + 1)))) {
            fprintf(stderr, "%s: out of memory\n", *argv);
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
        w->xpos = ip;
        for (x = length; --x >= 0;)
            *ip++ = -1;
        if (!(ip = typeMalloc(short, (length + 1)))) {
            fprintf(stderr, "%s: out of memory\n", *argv);
        }
        w->xpos = ip;
        for (x = length; --x >= 0;)
            *ip++ = -1;
        if (!(ip = typeMalloc(short, (length + 1)))) {
            fprintf(stderr, "%s: out of memory\n", *argv);
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
        w->ypos = ip;
        for (y = length; --y >= 0;)
        }
        w->ypos = ip;
        for (y = length; --y >= 0;)
@@ -366,7 +365,7 @@ main(int argc, char *argv[])
             */
            if (ch == 'q') {
                cleanup();
             */
            if (ch == 'q') {
                cleanup();
-               return (EXIT_SUCCESS);
+               ExitProgram(EXIT_SUCCESS);
            } else if (ch == 's') {
                nodelay(stdscr, FALSE);
            } else if (ch == ' ') {
            } else if (ch == 's') {
                nodelay(stdscr, FALSE);
            } else if (ch == ' ') {
@@ -378,7 +377,7 @@ main(int argc, char *argv[])
        for (n = 0, w = &worm[0]; n < number; n++, w++) {
            if ((x = w->xpos[h = w->head]) < 0) {
                move(y = w->ypos[h] = bottom, x = w->xpos[h] = 0);
        for (n = 0, w = &worm[0]; n < number; n++, w++) {
            if ((x = w->xpos[h = w->head]) < 0) {
                move(y = w->ypos[h] = bottom, x = w->xpos[h] = 0);
-               addch(flavor[n % MAXWORMS]);
+               addch(flavor[n % SIZEOF(flavor)]);
                ref[y][x]++;
            } else {
                y = w->ypos[h];
                ref[y][x]++;
            } else {
                y = w->ypos[h];
@@ -401,14 +400,14 @@ main(int argc, char *argv[])
                }
            }
            op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
                }
            }
            op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
-                       left)) :
-               (x == last ? (y == 0 ? upright : (y == bottom ? lowright :
-                           right)) :
+                                               left)) :
+                  (x == last ? (y == 0 ? upright : (y == bottom ? lowright :
+                                                    right)) :
                    (y == 0 ? upper : (y == bottom ? lower : normal))))[w->orientation];
            switch (op->nopts) {
            case 0:
                cleanup();
                    (y == 0 ? upper : (y == bottom ? lower : normal))))[w->orientation];
            switch (op->nopts) {
            case 0:
                cleanup();
-               return EXIT_SUCCESS;
+               ExitProgram(EXIT_SUCCESS);
            case 1:
                w->orientation = op->opts[0];
                break;
            case 1:
                w->orientation = op->opts[0];
                break;
@@ -419,7 +418,7 @@ main(int argc, char *argv[])
 
            if (y < 0)
                y = 0;
 
            if (y < 0)
                y = 0;
-           addch(flavor[n % MAXWORMS]);
+           addch(flavor[n % SIZEOF(flavor)]);
            ref[w->ypos[h] = y][w->xpos[h] = x]++;
        }
        napms(10);
            ref[w->ypos[h] = y][w->xpos[h] = x]++;
        }
        napms(10);
index d99b8219c3062bb37f2039cc3ad90e8242b81e6b..c9f338c0cd5dc8a238a7dbb254b5566636083ad8 100644 (file)
 /******************************************************************************/
 
 /*
 /******************************************************************************/
 
 /*
- * $Id: xmas.c,v 1.15 2000/09/02 18:45:53 tom Exp $
+ * $Id: xmas.c,v 1.19 2002/06/29 23:32:18 tom Exp $
  */
 #include <test.priv.h>
 
  */
 #include <test.priv.h>
 
-#include <signal.h>
-
 #define FROMWHO "Mark Hessling - (M.Hessling@gu.edu.au)"
 
 static int my_bg = COLOR_BLACK;
 #define FROMWHO "Mark Hessling - (M.Hessling@gu.edu.au)"
 
 static int my_bg = COLOR_BLACK;
@@ -149,11 +147,10 @@ static int strng5(void);
 static int reindeer(void);
 static int blinkit(void);
 
 static int reindeer(void);
 static int blinkit(void);
 
-static RETSIGTYPE
-done(int sig) GCC_NORETURN;
+static RETSIGTYPE done(int sig) GCC_NORETURN;
 
 
-     static void
-       set_color(WINDOW *win, chtype color)
+static void
+set_color(WINDOW *win, chtype color)
 {
     if (has_colors()) {
        static bool *pairs;
 {
     if (has_colors()) {
        static bool *pairs;
@@ -191,6 +188,8 @@ main(int argc GCC_UNUSED, char **argv GCC_UNUSED)
 {
     int loopy;
 
 {
     int loopy;
 
+    setlocale(LC_ALL, "");
+
     initscr();
     noecho();
     nonl();
     initscr();
     noecho();
     nonl();
@@ -1156,5 +1155,5 @@ done(int sig GCC_UNUSED)
     refresh();
     endwin();
     curs_set(1);
     refresh();
     endwin();
     curs_set(1);
-    exit(EXIT_SUCCESS);
+    ExitProgram(EXIT_SUCCESS);
 }
 }